タグ

ブックマーク / kawairi.jp (17)

  • 日刊 あおのうま Vol.2706(2018.04.13)【手が届くよ】

    UML と エディタ プログラミングや開発を独学で学び始めると高確率で行き着く考え方のひとつにオブジェクト指向というものがあります。 で、そのオブジェクト指向に行き着くと、これまた高確率で目にするのがUML と呼ばれる構造化記法群でしょう。 あれこれと足掻いて七転八倒した果てに知るUML は随分と素晴らしい銀の弾丸に見えるものです。 実際、ホワイトボードなどに手描きで良いので描いてみるとわかりますが、定義された約束事があるというのは大変便利です。 Unified Modeling Language の名の通り、それは言語でありプロトコルなのだなーと実感させてくれます。 と・こ・ろ・が。 無かったんですよねー、良いエディタが。 かつて様々なUML エディタを触ってきましたが、主に機能と価格の面でどうにも使えませんでした。 良いなーと思うエディタは高価で個人で手を出すのはキツかったですし、安価

  • 日刊 あおのうま Vol.2688(2018.03.26)【HTML にChart.js じゃあかんですか?】

  • 日刊 あおのうま Vol.2147(2017.02.15)【これでWindows版とUbuntu版があれば最高なのに】

    for iOS と for Mac 上司から、Qiita にこんな記事があることを教えてもらいました。 この記事自体もすんごい量のあれこれが紹介されていて、気になった項目を拾い読みするだけでもかなり楽しめるのですが、その冒頭に挙がっていたDash というアプリケーションが大変ステキでした。 なにせ大量の言語やフレームワークの公式リファレンスがまとめて1つのアプリから参照できちゃうのですから。 しかも、最初にダウンロードしてしまえば、オフラインでも使えてしまうという優れもの。 これはたまらんですわ。 iOS 版は自前でXcode を使ってビルドしてやる必要がありますが、その価値は充分にあるのではないでしょうか。 開発者の方はいっぺん試してみて下さい。 ただ、残念ながらWindows 版もUbuntu 版も無いので、職場で使えないんですよね。 職場でMac 使いたいなあ。

  • 日刊 あおのうま Vol.1960(2016.08.08)【悩みは尽きぬ】

    長い名前 と 短い名前 Git でブランチを新しく起こすとき、そのブランチで何をしようとしているかを示そうとすると、どうしても長い名前になってしまいます。 例えば部品在庫モデルを追加してあれこれしようという場合、add_model_of_the_product_part_stock といった具合。 長い名前ってCUIコンソールに表示させると残りの入力スペースが狭くなるので困るんですよね。 じゃあ、短く済ませてadd_model とかで良いんじゃないかとも考えるのですが、それだと「何のモデルを追加したのか?」が判りません。 英語の語彙力が上がれば、もっと良い名前を付けられる様になるかなあ。 それとも、内容がわかる名前はあきらめて、develop_1_1_10 みたくリビジョン番号で管理する形態の方が良いんだろか。

  • Git お仕事お持ち帰りフロー

    「区切りは悪いが続きは家でやりたい」なんて時もあるわけで…。 # if exist git branch -D snapshot_branch # end if git checkout -b snapshot_branch git add . git commit -m "snapshot_yyyymmddhhnn" # if exist git push --delete cloud_repository snapshot_branch git fetch --prune cloud_repository # end if git push cloud_repository snapshot_branch git fetch cloud_repository # if exist git branch -D snapshot_branch # end if git checkout -

  • git-completion.bash を使ってブランチ名やコマンドの補完を可能にする

    前説 git のブランチ名ですが、いちいち入力するの面倒くさーい!という方に CUIでgit 操作する方を前提にしています bash です 手順の流れ git-completion.bash をダウンロード 読み込み設定を.bash_profile に追記 補完を試す 1. git-completion.bash をダウンロード cd /etc/bash_completion.d sudo -E wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash 2. 読み込み設定を.bash_profile に追記 cd $HOME echo -e "# Use git completion" >> ~/.bash_profile echo "source /etc/ba

  • Ubuntu で新規ユーザーを追加したホームディレクトリが無いぞと言われた

    Could not chdir to home directory Ubuntu で新規ユーザーを追加したはええんですが、いざSSHでログインしてみるとCould not chdir to home directory とか言われる。 確認してみると、ほんまにhome 下にユーザーディレクトリが無い。 ユーザーを追加するときはuseradd でなくadduser で CentOS ではuseradd hoge って感じでユーザーを追加していたのですが、Ubuntu の場合、これだとホームディレクトリは作ってくれないわctrl+L やらのコマンドキーは効かなくなるわで、いいとこ無し。 useradd でなくadduser コマンドでユーザー追加すると、上記の様な問題も発生せず、サクッとユーザー追加できました。 adduser hoge つかね、adduser なんてコマンドはじめて知りました

  • CentOS にChef-Solo を楽ちんインストールする

    かつてはcurl コマンドを使ってinstall.sh をダウンロードして、それを実行して、コケて、問題箇所を習性して(以下略)とかやっておりました。 ですが、最近は公式推しのChef DK(Chef Development Kit)を利用すると、すごーく楽にインストールできるのでご紹介。 手順の流れ 流れも何も、シェルで以下のコマンドを叩くだけです。 Chef DK のダウンロードリンクは、下記にてOSのバージョンに合ったものをコピーして使って下さい。 https://downloads.chef.io/chef-dk/redhat/ # 作業ディレクトリに移動 cd /usr/local/src # 自分の使用しているOSバージョン向けダウンロードリンクから.rpm ファイルをダウンロード sudo -E wget https://packages.chef.io/stable/el/

  • 日刊 あおのうま Vol.1743(2016.01.05)【目立たせる】

    Redmine と カンバン 日より、親会社への半出向開始です。 とは言え、なーんも決まっていない状況からのスタート。 せっかくなので好き勝手させてもらう事にしました。 先ずは自席の横に机サイズのボードを立てて設置。 それを縦に3分割して、それぞれのエリアに「ToDo」「Doging」「Done」とマジックで書き込み。 あとは、大判の付箋にタスクを書き出して、ペタペタと貼っていきます。 SCRUM のカンバンボード(っぽいもの)の出来上がりです。 *01実際にSCRUM に沿って行うなら、もっとちゃんとしたステップがあります。 ほんまは、タスクの共有だけならRedmine を使えばスマートだし色々と楽なんです。 ですが、物理的なボードを皆の目に付くところに常設して、そこでタスクを共有・管理するという事で、デジタルなRedmine 管理では得られないメリットが得られるのです。 それは、私た

  • アルゴリズムのチカラ

    昨日の社内勉強会で詰まって悔しかったのでリベンジ。 x^3 + x^2 + x = 1 となるx を求めよ(近似値 = 0.000001とする)という三次方程式の解を求めるプログラム。 まず、ループを使ったベタな線形探索。 解答に至るまで543690ステップの計算を要しています。 EPSILON = 0.000001 # 近似値イプシロン FUNC_EQUAL = 1 # 三次方程式func の値 # 三次方程式func def func(x) return x**3 + x**2 + x end x = 0 # 仮定解x i = 0 # 計算回数カウンタ while func(x) <= FUNC_EQUAL do # FUNC_EQUAL に到達するまでぶん回し x += EPSILON i += 1 end puts "#{x}:[#{i}]" # 0.543689999994796

  • VirtualBox 上のCentOS でntpd を通す

    毎度毎回時計がズレる VirtualBox 上に(Vagrant使わずに)CentOS 環境を構築しているんですが、毎度時計がズレるんですよね。 そらあ、仮想マシンはVirtualBox 上で動いていない限り、時計もなんもあらへんわけで。 ntpサーバーに接続して時計同期を行う必要がありますわな。 ntpd は123番ポートを使う で、ntpは123番ポートを使うんですが、VirtualBox 上にCentOS を構築しても123番ポートがホストを抜けないと、当然役に立たないわけです。 なら話は簡単で、VirtualBox のポートフォワーディング機能を使って、ゲスト(CentOS)の123番ポートをホスト側の何がしかのポート(50000番以降推奨)と連結してやればいい。 よろしい、ならばポートフォワーディングだ まず、VirtualBox で以下を設定します。 VirtualBox の「

    VirtualBox 上のCentOS でntpd を通す
  • [Perl] Shift-JIS の固定長テキストデータをutf8 変換して処理するときのちょっとした注意点

    Perl でShift-JIS の固定長テキストをバラしてutf8 変換してからデータベースに取り込む処理を書いたのですが、すんごく初歩的なところでミスしたので自戒の意味も込めてメモ。 修正前のコード どこがマズかったかわかりますでしょうか? use Encode; # Shift-JIS の固定長テキスト my_shift_jis.csv を開く my $path = "my_shift_jis.csv"; open my $file, '<', $path or die; # ファイルの内容を1行ずつ取り出す my @lines = (); while ( my $line = readline $file ) { # utf8 に変換してから $line = encode('utf8', decode('MS932', $line)); # 配列に放り込む push @lines,

  • MySQL でプレースホルダを使ったINSERT … ON DUPLICATE KEY UPDATE 文を書く

    レコードの連続挿入に便利なプレースホルダ テキストデータなどから1行ずつ取り出してデータベースにレコード挿入する場合、同じSQLのINSERT文を値だけ変えて何度も実行することになります。 この時、プログラム上で都度SQL文を用意して値を埋め込んで(以下略)とやると、データベースはSQLを渡される度にその内容を「えーっとなになに…?」と解析せねばならないので、負担が大きく無駄です。 これを省力化できる仕組みが「プレースホルダ」です。 あらかじめ値部分だけ空けておいたSQLを用意してやり、あとは連続して値だけを放り込んで実行を繰り返させる。 ざっくり言うと、そういう仕組です。 (※以下、文例はPerl で書いておりますが、基的な使い方は同じ。) プレースホルダがないとき # $file(ファイル) やら$sth(ステートメントハンドル)やらは既に用意してあります。 while ( my $

    MySQL でプレースホルダを使ったINSERT … ON DUPLICATE KEY UPDATE 文を書く
  • フローチャートじゃなくてポンチ絵で考えることがよくあります

    プログラムの構造を考えるとき、フローチャートやUMLでなくポンチ絵 *01落書き程度の概要図。描き方にルールは無い。 で考える事がよくあります。 以前はフローチャートやUMLで描こうとしていたのですが、仕事でドキュメントを残すのでもなければ、ポンチ絵の方がルールやらの縛りを気にせず描けるし、気楽に直しもできるので便利です。 ただし、細かいテスト項目や処理分岐の網羅性は期待できないので、そこいらは別途考えましょう。 下図は、Evernote に連続投稿するプログラムを考えたときに描いたポンチ絵。 (※実際にはこんなに丁寧じゃなくて、各アイテムは単にグリっと描いた◯やら△やらだったりします。) 字が恐ろしく汚いのは仕様です。orz

    フローチャートじゃなくてポンチ絵で考えることがよくあります
  • [Evernote SDK] Evernote のタイトル文字数制限は何文字まで?

    どんだけ長いタイトルつける気だよと思われるかもしれませんが、ちゃんと文字数に限度は設定されています。 他にも「ノート数は10万件まで」とか、「1つのノートに書ける文字数は?」とか、ひと通りは決められています。 そのへんが全て書いてあるのがこちら。(2013.12.25現在) 制限に関しはLimits の項目に網羅されています。 先に挙げた例で言うと、タイトル文字数の上限はEDAM_NOTE_TITLE_LEN_MAX に定義されており、Unicode 文字で255文字までです。 ですから、プログラム内にはタイトル文字数がこの上限を超えた場合の処理を書いておく必要が出てくるわけです。 (個人的には、基的なこのへんのエラーにはデフォルトのエラー用IFを用意して欲しいところですが、そこいらは各プラットフォーム向けSDK によって違う様ですね。)

    [Evernote SDK] Evernote のタイトル文字数制限は何文字まで?
  • やはり電子書籍はPDFがいい 〜達人出版会さんで「開発現場に伝えたい10のこと」を買いました〜

    達人出版会というIT系の電子書籍販売を看板に挙げてくれている奇特な貴重なマーケットです。 扱っている電子書籍PDF版ですので、iPad mini のi文庫HDで読めて非常に重宝しています。 Kindleは正直Kindleアプリの使い勝手がイマイチなので、これはとても嬉しいことなのです。 i文庫HD カテゴリ: ブック 価格: ¥800 Kindle もいいけど達人出版会もね! 私、Kindle は「他の国内囲い込みストアよりマシ」という非常に消極的な理由で使っています。 *01そのわりには、結構な金額を突っ込んでおりますが。orz ですが、この達人出版会の様にPDF版を販売してくれるならば、そちらにお金を払いたいわけです。 なので、技術系書籍などを出そうという方は、Kindle で出すついででもよい*02不遜な物言いですね。ご容赦下さい。ので、達人出版会さんでも販売して下さるとありがた

    やはり電子書籍はPDFがいい 〜達人出版会さんで「開発現場に伝えたい10のこと」を買いました〜
  • ようやくLinkShare のリンクをPHG に貼り替えました

    約1ヶ月放りっぱなし 先日、ようやくApple関連のリンクをLinkShare からPHG のそれに更新しました。 やらねばx2と思いつつ、10月1日から1ヶ月放りっぱなしでございました。 @hondamarlboro さんの記事を参考に 貼り替え作業はWordPress のプラグインを使用して一括処理しました。 らくちん。 方法は@hondamarlboro さんの以下の記事を参考に。 正規表現とか凄く面倒くさい部分を丸ごと真似できましたので、非常に助かりました。 @hondamarlboro さん、@toshiya240 さん、ありがとうございました。 たぶん大丈夫 プラグインを使って一括変換しましたので、置換漏れや破損があるのではないか?と心配もしましたが、今のところ大丈夫そうです。 もし「これおかしくね?」という箇所がありましたら、ご教示くださると大変嬉しいです。 やることリスト有

    ようやくLinkShare のリンクをPHG に貼り替えました
  • 1