2020年 10月 1

DraftSight Mac 2020 Beta – DraftSight Blog – DraftSight Blogにリンクがあるけど

Mac用のDraftSightのBeta版がDraftSight 2020 Beta – 3D Software – Dassault Systèmes®からダウンロードできる。

シリアルナンバーはダウンロードページにあるので、アクティベーションする時にはこれを使えば出来たんだけど先日DraftSightを使おうと思ったらアクティベーション画面がでてこのシリアルナンバーを使ってもアクティベーション出来なくなっていた。

Beta版なので無料で使用出来ていたので何だけど、バージョンアップするごとにアクティベーションしなくてはならなかったり、どこにシリアルナンバーがあるか分かりにくいのが難点だった。

Mac版も有料版(サブスク)に以降した事で久しぶりに使おうと起動してもすぐに使うことが出来そうでストレスにならなくて済むかも。

Catalinaが出た当時はDraftSightが落ちまくって使えない状態だったけど、バージョンが2020 SP3になってからはほぼ落ちないので実用上問題なさそうかな。まぁ、まめに保存しておかないと怖いけど。

DraftSightの購入

DraftSight® 2D CAD製図および3D設計ソフトウェア | DraftSight

一番安いのが年間1万円程なので、他のCADと比べたら圧倒的に安い。

Filed under: CAD

Trackback Uri






2020年 3月 20

とある事情でMAMPのバージョンを上げざるを得なく、その影響でDBD::mysqlがインストール出来なくなった。

mampな環境のmacにdbdmysqlをインストールの手順だとエラーが出る。(正確に言うと、/tmpが残っている間は成功する)

上記手順でbuildしたものを削除してからcarton installした時のログ

実行環境
macOS Catalina 10.15.3
MAMP 3.5.2
MySQL 5.5.42

Searching DBD::mysql on mirror index /Users/clicktx/***/***/***/local/cache/modules/02packages.details.txt ...
--> Working on DBD::mysql
Fetching http://cpan.metacpan.org/authors/id/D/DV/DVEEDEN/DBD-mysql-4.050.tar.gz
-> OK
Unpacking DBD-mysql-4.050.tar.gz
Copying DBD-mysql-4.050.tar.gz to /Users/clicktx/***/***/***/local/cache/authors/id/D/DV/DVEEDEN/DBD-mysql-4.050.tar.gz
Entering DBD-mysql-4.050
Checking configure dependencies from META.json
Checking if you have DBI 1.636 ... Yes (1.639)
Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (6.98)
Checking if you have Data::Dumper 2.172 ... Yes (2.172)
Checking if you have Devel::CheckLib 1.09 ... Yes (1.14)
Configuring DBD-mysql-4.050
Running Makefile.PL
I will use the following settings for compiling and testing:

  cflags        (mysql_config) = -I/Applications/MAMP/Library/include/mysql -fno-omit-frame-pointer   -g -DNDEBUG
  embedded      (mysql_config) = 
  ldflags       (guessed     ) = 
  libs          (mysql_config) = -L/Applications/MAMP/Library/lib -lmysqlclient -lz
  mysql_config  (environment ) = /Applications/MAMP/Library/bin/mysql_config
  nocatchstderr (default     ) = 0
  nofoundrows   (default     ) = 0
  nossl         (default     ) = 0
  testdb        (environment ) = test
  testhost      (environment ) = localhost
  testpassword  (environment ) = root
  testport      (environment ) = 3306
  testsocket    (default     ) = 
  testuser      (environment ) = root

To change these settings, see 'perl Makefile.PL --help' and
'perldoc DBD::mysql::INSTALL'.

Checking if libs are available for compiling...
dyld: Library not loaded: /tmp/mysql-5.5.42/libmysql/libmysqlclient.18.dylib
  Referenced from: /Users/clicktx/.cpanm/work/1584659015.38984/DBD-mysql-4.050/assertlibBS_L2R_L
  Reason: image not found
wrong result: 'mysqlclient'
-> N/A

手順変更

/Applications/MAMP以下にbuildしたMySQLを残しておく手順に変更。

実行したcommand

$ mkdir -p /Applications/MAMP/Library/src
$ cd /Applications/MAMP/Library/src
$ wget http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.42.tar.gz
$ tar zxvf mysql-5.5.42.tar.gz
$ rm -f mysql-5.5.42.tar.gz
$ cd mysql-5.5.42
$ cmake . \
    -DMYSQL_UNIX_ADDR=/Applications/MAMP/tmp/mysql/mysql.sock \
    -DCMAKE_INSTALL_PREFIX=/Applications/MAMP/Library
$ make -j 3
$ cp -v libmysql/*.dylib /Applications/MAMP/Library/lib
$ mkdir -p /Applications/MAMP/Library/include/mysql
$ cp -v include/*.h /Applications/MAMP/Library/include/mysql

.bash_profileに追加するもの

# export path for MAMP
export PATH="$PATH:/Applications/MAMP/Library/bin/"
export DBD_MYSQL_CFLAGS=-I/Applications/MAMP/Library/include/mysql
export DBD_MYSQL_LIBS="-L/Applications/MAMP/Library/bin/mysql -lmysqlclient"
export DBD_MYSQL_EMBEDDED=
export DBD_MYSQL_CONFIG=/Applications/MAMP/Library/bin/mysql_config
export DBD_MYSQL_NOCATCHSTDERR=0
export DBD_MYSQL_NOFOUNDROWS=0
export DBD_MYSQL_SSL=
export DBD_MYSQL_TESTDB=test
export DBD_MYSQL_TESTHOST=localhost
export DBD_MYSQL_TESTPORT=3306
export DBD_MYSQL_TESTUSER=root
export DBD_MYSQL_TESTPASSWORD=root

Filed under: Mac,MySQL,perlモジュール,開発環境

Trackback Uri






2020年 3月 3

環境

  • macOS Catalina(10.15.3)
  • MAMP 3.0.7.3

なぜMAMP3.x?

MAMP4系以上はphp7が標準で、php5系を使うのが面倒そう。レガシー。

PHPのHTTPS通信、SSL暗号方式をTLS1.2に対応させてみた – ノラプログラマーの技術メモ にあるけど、

TLS1.2に対応するためには、cUrlのバージョンが7.34.0以上かつOpenSSLのバージョンが1.0.1以上でなければならない

これに対応するだけのために2日間つぶした。

手順

大体以下のページの通り

php – How to upgrade OpenSSL in MAMP – Stack Overflow
lunr/mamp-curl-tls: Instructions to upgrade MAMP to use OpenSSL 1.0.2 to support TLS 1.2 connections

  • post時点でbrewでインストール出来るopensslのバージョンは1.1.1で、上記手順ではうまく行かない。
  • MAMP3.0系ではcurlのバージョンが低すぎてうまく行かないため、3.5系にupgradeする必要がある

やったこと

程よいバージョンのMAMPとcurlとopensslが必要。高過ぎず低すぎず。

  • openssl 1.0.2のビルド&インストール
    • 1.0.1だとうまく行かない(うろ覚え)
  • ビルドしたopensslを使用したcurl 7.43.0のビルド&インストール

MAMP

Downloads (older versions) – MAMP & MAMP PRO

から3.5.2をダウンロード&インストール。

openssl

https://www.openssl.org/source/old/あたりから1.0.2のソースをダウンロード。
通常は使わないので、MAMP以下(/Applications/MAMP/Library/lib/openssl)にインストールしておく。

64bitなので./configureではなく./Configureを使わなくてはだめらしい。

cd ~/Downloads
wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz
tar zxvf openssl-1.0.2u.tar.gz

cd ~/Downloads/openssl-1.0.2
./Configure darwin64-x86_64-cc --openssldir=/Applications/MAMP/Library/lib/openssl

make
make install

curl

下準備

curlバージョン確認
https://github.com/lunr/mamp-curl-tls#3-check-the-curl-version-included-with-mamp

/Applications/MAMP/Library/bin/curl-config --version
libcurl 7.43.0

CA/CertificateをMAMPに設置する
https://github.com/lunr/mamp-curl-tls#5-download-ca–certificate-bundles-and-extract-into-mamp

cd ~/Downloads
wget https://github.com/lunr/mamp-curl-tls/raw/master/ca-bundle.tgz
tar zxvf ca-bundle.tgz -C /Applications/MAMP
curlをインストール

https://curl.haxx.se/download/から該当するバージョン(7.43.0)をダウンロード。

cd ~/Downloads
wget https://curl.haxx.se/download/curl-7.43.0.tar.gz
tar zxvf curl-7.43.0.tar.gz

cd ~/Downloads/curl-7.43.0
./configure --prefix=/Applications/MAMP/Library --with-ssl=/Applications/MAMP/Library/lib/openssl/ --with-ca-path=/Applications/MAMP/etc/openssl/certs --with-ca-bundle=/Applications/MAMP/etc/openssl/certs/ca-bundle.crt

make
make install

諦めたこと

  • brewで特定のバージョン(openssl)をinstall
    • gitログを辿ってやるしかないっぽい。面倒

雑感

モダンな開発環境に変えたい。

Filed under: インストールメモ,開発環境

Trackback Uri






2017年 6月 30

Mojolicious::Validator::Validation – Perform validations – metacpan.org

Mojolicious純正のフォームバリデーションを使う上で気を付ける点を書き留めておく。Mojolicious::Plugin::TagHelpersとも相性良いし(当たり前)、活用すべき。

my $validation = $c->validation;
$validation->required('name')->like(qr/hoge/);
$validation->optional('name2', 'trim')->like(qr/hoge2/);

バリデーション

required()又はoptional()から始める

$validation->required('name')又は$validation->optional('name')から始める。メソッドチェーンでもいいし、都度バリデーションメソッドを呼んでも良い。

  • requidedかoptionalを呼んだ時点でバリデーション対象のfieldが切り替わる。
  • 現在バリデーション対象になっているfieldは$validation->topicで取得できる。

filterはrequired()又はoptional()の第2引数以降で指定する

※ Mojolicious v6.41以降

$validation->required( 'name', 'filter1', 'filter2', ... );
$validation->optional( 'name', 'filter1', 'filter2', ... );

DB等へ保存する値は$validation->outputの値を使う

$c->req->paramsの値はリクエスト時の値なのでDB等に値を保存する場合には使用しない。

  • 特にfilterを使う場合は注意が必要。
  • filter適用後の値は$validation->outputに収納されている。
my $hash_ref = $validation->output;
my $value = $hash_ref->{name};

my $scalar = $validation->param('name');
my $array_ref = $validation->every_param('name');

フィルター

フィルインフォーム

タグヘルパーを使うとfill-in formしてくれるけど、値にフィルターを適用する場合は注意が必要。

  • バリデーション実行時に$c->param()でリクエストパラメータの値の書き換えが必要。
    • タグヘルパーの値補完にはreq->paramの値が使われる
バリデーションも同時に行っている場合

バリデーションエラーがあるとvalidation->param()がundefを返すのでバリデーションエラーがない時だけ書き換える…としなくてはならない。

my $validated_email_value = $c->validation->param('email');
$c->param( email => $validated_email_value ) if $validated_email_value;

独自のバリデーションを追加する

$validation->validator->add_check( name => sub {} )

独自のフィルターを追加する

$validation->validator->add_filter( name => sub {} )

Filed under: Mojolicious,perl

Trackback Uri






2017年 6月 28

開発中に現在行っている作業とは別のバグや修正箇所を思いつき、忘れないようにとりあえずfeature-xxx branchを作成しておくって事をよくやる。

だけど、作業が終わって、作っておいたfeature-xxx branchの作業を始めようにもそのbranchが最新では無いので git merge mastergit branch -d feature-xxx してから再度branchを作成したりしていた。

margeすると1コミット増えるし、branch削除→作成は面倒だし…と思っていたけど良い方法があるらしい。

git で master に追いつく?ブランチは都度closeするべき? – スタック・オーバーフロー

git checkout master
git pull origin master
git checkout my-branch
git rebase master

rebase使えば良かったとは。rebase -i しか使ったこと無かった…。

Filed under: プログラミング

Trackback Uri