日々の記録。

プログラミングのメモや感じた事などを記録。

経験からの「認識の違い」のいくつか

「選択の科学」から 「選択の科学」という本に、”旧共産圏で暮らしていた人は、沢山の種類の(例えば7つの)炭酸飲料があっても、「炭酸ならどれも同じ、選択肢は1つ」という認識になる傾向になる”というエピソードがある。 旧共産圏の人は、選択肢は少な…

リファクタリングという言葉一つとっても・・・

リファクタリングという言葉一つとっても、人によって解釈が異なってしまうのでは? というお話。 自分が勤めている職場は、中途入社が多い会社で、色々な経験や知識を持っている人が集まっている。 そんな環境で仕事を進める時には、「”自分が持っている知…

レビューするとき、されるとき

先日、チームメンバーが作成した仕様をレビューする機会があった。 相互理解を行う機会なので、認識の不一致は当然として、その他に記載漏れがあったり、誤字、コピペミスがあったりと、色々と実りある時間だったと思う。 その日の帰りの電車で、池谷裕二さ…

iPadより紙が良い/本を使う

iPadより紙が良い これが、iPad2を利用して6年、iPadやiPhoneで電子書籍を読み続けた中、私が得た教訓。 (と言ってもiPad2はここ2,3年ほとんど使っていない) 「どんな本も紙でなくてはダメ」というわけではなく、マンガ や小説のように、ストーリを楽しむ…

「英語などのリスニング教材をより活用しやすくする」リスニングプレーヤーcut & loop2.4.0の新機能紹介

この度cut & loopを大幅にアップデートしたので、アップデート内容の紹介をします!! cut & loopをご存じないという方は、こちらの記事をご覧ください。 cut & loop ~「リスニング教材をより活用しやすくする」iOS向け語学用リスニングプレイヤー - 日々の…

cut & loop ~「英語などのリスニング教材をより活用しやすくする」iOS向け語学用リスニングアプリ

cut & loopは、Duo3.0やTOEICなどの市販の語学教材の付属CDを「より活用しやすくする」iOS向けのリスニングプレイヤーです。 ◆英語などの語学CDにありがちなリスニングの不満を解消します 語学CDを利用すると 「フレーズごとに聞きたい!」 「フレーズだけリ…

Podfileで取得するプロジェクト一覧を出力する

ポイント Podfileで定義されているメソッドを再定義した。Podfileの内容に応じて、空のメソッドを定義する。 Podfileは拡張子がないため(または.podfile)、requreは利用できない Podfileをロードする箇所は、https://github.com/CocoaPods/Core/blob/master…

Xcode ターミナルから楽して開く

インストール cd ~ git clone https://github.com/hmuronaka/xcode_scripts.git cd xcode_scripts ./install.sh .bash_profileに以下を追加 source ~/.xcode_scripts/xcode_script.bash 出来る事 xo (xcopen) ... カレントディレクトリ以下のXcodeプロジェク…

コンピュータプログラミング小史とこれから

独断と偏見に基づく個人の考察でプログラミング小史と、現状のWebプログラミングについての不満と課題についてです。 長文なので先に言いたかったことを書くと 「Railsって、クライアントサイドも自由に扱えない限りDRYにはなり得ないよね」 ってことです。 …

その3 "Hello world!!"を表示してみよう!! 中編

その2 "Hello world!"を表示してみよう 前編 前回はHello worldを表示した画面を作成しましたが、今回は作成した画面を表示してみましょう。 今回やること AppDelegate.mのソースファイルの編集して画面を表示する AppDelegateって? 画面を表示するためには…

その2 "Hello world!"を表示してみよう 前編

その1 夏休みにMacでメトロノームアプリを作ってみよう!!へ戻る 今回は、画面を作成して"Hello world!!"という文字列を表示してみたいと思います。 まずは実行!! MetrnomeAppプロジェクトを作成すると、次のような画面が表示されます。 まずはとにかく実…

その1 夏休みにMacでメトロノームアプリを作ってみよう!! 

前口上 MacさえあればiOS(iPhone,iPad)のアプリケーションを無料で、開発し、シミュレータ上で動かす事ができます(iPhone/iPad本体に開発したアプリケーションをインストールするためには、有料の開発者用アカウントを作成する必要があります。ここではシミ…

C++講座 その6 列挙型

列挙型を利用すると、定数の集合に名前を付ける事ができ、新しい型のように扱う事ができる。 enum Sex { MALE, WOMAN }; enum ButtonType { NORMAL, IMAGE, TOGGLE }; 定数は明示しなければ0から連番で0,1,2,...と付けられる。 = 1のように値を明示すること…

mysql sqlファイルを実行する

いつも忘れるのでメモ。 > mysql database -u username -p < text_file.sql 参考 https://dev.mysql.com/doc/refman/4.1/ja/batch-commands.html

「記憶力を強くする」にみる英語教材「Duo」の勉強方法

はじめに... 語学教材のCDでは複数の文章を1トラックで記録していますが、文章毎に再生可能なアプリなどを利用すると、より学習しやすくなります。 例えば、私が作成したiOS用アプリcut & loopを利用すると、 1トラックに記録されている文章を、簡単に文単…

VirtualBoxにCentOS, mysql, ruby, railsをインストールする

案の定いくつかはまったところがあったのでメモに残します。 環境 osx 10.9 virtualbox 4.3.8 centos 6.5 ruby 2.0.0-p451 ※ p251はbugがあるためrailsでこける可能性があります。 rails 4.0 前提 必要に応じて、各コマンドはsudoで実行してください。 CentO…

rails4 jQuery.readyが働かない場合の対処法

rails4から導入されているturbolinksという機能が影響しているらしい。 参考 Rails 4のturbolinksについて最低でも知っておきたい事 Rails4でturbolinksを謳歌するためのまとめ とりあえずの対処 // $(document).ready(function() {}) ↓に置き換える。 $(doc…

rails4 fields_forの要素に対してはfile_fieldが働かない?

Rails4でfields_forの要素に対して、file_fieldを行ってもファイルアップロードが行えなかった。 form_forの要素に対して、行う必要がある。 例 NGな例 <%= form_for(@model) %> |f| <%= f.fields_for(@model.file) %> |ff| <%= ff.file_field :fileinfo %> …

FileMaker ProとRubyを接続してみた。

最近FileMaker Pro(以下FM)というDBを利用する機会があったのですが、このFMのスクリプトがどうしても好きになれず、rubyでスクリプトが書けないか模索してみました。 (好きになれない理由: FMではスクリプトを作成するために、本来のテーブル構造には不要…

rails 既存DBを使ってrailsしてみた。

環境 osx10.9.1 ruby2.0.0 rails4 MySQL5.6.x 経緯 既にMySQL上に存在するtableを使ってrailsしてみた。 MySQLと接続する 下のサイトを参考にして、database.yamlを定義。 - development: adapter: mysql2 encoding: utf8 database: my_db_name username: ro…

iOS CoreAudioを使う上で参考になったサイト

iPadでバーチャルピアノ的なものを(今更ながら)試作しようとしたら、「CoreAudioのドキュメントは分かりづらい、取っつきづらい」など、散々な目に遭ったので、参考になったサイトをメモしておきます。 前口上 開発当初は、サウンドフォントのような音源が…

vimのメモ

vim

vim操作を随時追加します。 テキストオブジェクトの選択 keys 内容 ip 段落 iw 単語 is 文 例 keys 内容 vipd ビジュアルモード 段落を削除する. vipy ビジュアルモード 段落をヤンク(コピー)する. dip 段落を削除する. yip 段落をヤンク(コピー)する. フ…

rails modelの属性設定メソッドをオーバーライドしてみる

モデルのある属性を変更した際に、別の属性も併せて変更したかったので、モデルの属性を設定するメソッドを定義してみました。 例 やりたいこと。 Todoクラスに、0〜100の範囲の進捗状況という属性があって、0からの変化時に開始日を設定、 100に変化したと…

jQuery を使った要素の表示、非表示(スクロールアニメーション付き)

jQuery日本語リファレンスのソースコードを参考(というか、ほぼそのまま)。 自分向けのメモとして残します。 <div id="test">test</div> <div> <div>child1</div> <div>child2</div> </div> $(function() { $("#test").click(function() { var child = $(this).next(); if( child.is(':hidden')) { child.slideDow…

iOS アプリがバックグランドに遷移する際の処理方法

について勉強中です。 ドキュメントより学んだ2つの方法と、1つのアイディアを紹介します。 方法1 UIApplicationDelegateのメソッドで処理する メリット: 一カ所で処理できる。 デメリット: 処理対象のオブジェクトをUIApplicationDelegateが知る必要にな…

iOS7 UITableViewCellAccessoryDetailDisclosureButton

iOS7では、なぜかUITableViewのUITableViewCellAccessoryDetailDisclosureButtonの表示が変更されています。 iOS6までは、次のよう>がボタンで表示されます。 一方iOS7では、次のようにiボタンと>が両方表示されます。 iOS7から新しくUITableViewCellAccesso…

Webメニューはなぜ左側に配置されている? (身体的機能と文字の並びとシェードネグレクト)

先日飲みの席で、先輩が「Webのメニューはなぜ左側か?」という問いを出しました。その問いが興味深かったので、まとめてみました。 身体的機能による説 「右手を前に出した状態(ちょうどマウスを握った状態)では、顔は左側は向けやすいけど、右側に向けづ…

osx mavericks Java7でEclipse Keplerを動かす

osx mavericksでJava7をインストールして、FinderからEclipseを起動しようとするとJRE6が必要と言われて起動できません。(なぜかターミナルから直接実行する場合はできます。) launchd.confに環境変数JAVA_HOMEやPATHを追加してみても解決しませんでしたが…

C#のusingが、Java7でtry-with-resource statementとして実現

C#には、ファイルやDBのリソースのクローズを必ず行うためにusingステートメントという便利な機能があります。 void foo() { using (TextWriter w = File.CreateText("test.txt")) { w.WriteLine("ごにょごにょ"); } } 上記の例では、TextWriterオブジェク…

お酒の量を減らすのに効果があったこと

半年くらい前まで、仕事帰りに必ず缶チューハイを買って帰っていたのですが、とある事を試してから、(自分にとっては)あまり苦も無くお酒を買う回数が減らすことができました。 (・・・あくまでも個人的な経験なので、他の方にも効果があるかは全く保証でき…

ruby LinuxやWindowsのコマンドをクラスメソッドに割り当てるクラスマクロの例

昨日の書いた「Windows セットアップ用(環境設定用)のスクリプトがあったら便利だなぁと」の第一歩として、画面解像度を変更するスクリプトを作成してみました。 そのついでに、楽にrubyのメソッドとコマンドを対応づけられないかと思い、クラスマクロ化し…

Windows セットアップ用(環境設定用)のスクリプトがあったら便利だなぁと

仕事では、開発したアプリケーションを投入するだけではなく、クライアントPCなどのOSセットアップをすることが良くあります。例えば解像度を指定したり、スタイルを変更したり、パフォーマンス優先にしたり、JREをインストールしたりなどなど。 そうした一…

os x bash で cd + ls を行うコマンド

cdした後にlsを行う。だけのコマンドをbashに追加する。 .bash_profileを編集する 以下を追加する。 function cdd() { ¥cd "$1"; if [ $? -eq 0 ]; then ls; fi } 上記例では、cddというコマンド名にしている。 コマンド名をcdにするとlsしたくないときもls…

Windows net shareとrubyを利用して共有フォルダのサイズを取得する

仕事で共有フォルダのサイズを定期的に採取する必要があったので、共有名とパスを取得するスクリプトをrubyで作成してみた。 共有名とパスの取得の仕方 Windows で net shareを実行すると、次のような共有フォルダの一覧が取得できる。 > net share 共有名 …

C++講座 その5 サイズとバイトオーダー

サイズ 32bit CPUでWindows系の環境では各型は次のようなサイズになっている。 型名 サイズ(byte) char 1 short 2 int 4 long 4 float 4?(後日確認) double 8 「一般的な」としたのは、これらのサイズはCPUやOSの環境に依存するため。64bit環境では上…

Ruby blockが与えられているか確認する

def aaa yield if block_given? end

Ruby 定義されているメソッド一覧の取得

Object.methods # クラスメソッド(publicのみ) Object.private_methods # クラスメソッド(privateのみ) Object.instance_methods # インスタンスメソッド(publicのみ) Object.private_instance_methods # インスタンスメソッド(privateのみ) Class.metho…

C++講座 その4 整数型と浮動小数点

整数型 C言語と同様にintが整数型.よく利用するshortやlongという型はshort int, long intの省略形。 整数リテラル 3 -5 12352 0x53 といった値が整数リテラル。上記の値はintとして扱われる。 サイズを意識しなくて良い場合、整数値にはint型を利用した方が…

rails libディレクトリに配置した自作ライブラリが読み込まれないときに試したこと

前提 rails 3.2.13 ruby 1.9.3 内容 rails で 自作ライブラリCodegenLibというライブラリを利用する際、中々ロードできなかったのでそのときのメモ。(色々な無知が重なった結果の事故) 結果 結果的には、以下に注意すること application.rbにautoloadのパ…

aws で rails serverに失敗. execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime.

rails 3.2.13, ruby 1.9.3の構成でawsのec2上でrails serverを実行したら上記のエラー発生。 ここを参考 解決方法 Gemfileに以下を定義 gem 'execjs' gem 'therubyracer' bundle installでインストール rails serverで起動!!

rails 4.0.0をインストールした後に特定のバージョンを入れ直すには?

4.0.0は試したいけど「今のところ」不要なのでアンインストールした。 gem でrails 4.0.0をアンインストール。 gem uninstall rails -v=4.0.0 gem uninstall railties -v=4.0.0 railtiesも削除しないと、rails --versionの結果は4.0.0のままだった。 gem ins…

aws rails 3.2.13 をインストールする

事前にruby 1.9.3をインストールしておく 以下を実行する. gem install rails --version "3.2.13" gemでパッケージのバージョンをするためには--versionを指定する。 参考はここ http://webos-goodies.jp/archives/51106257.html

AWS(Amazon Web Services) にruby1.9.3をインストールする.

AWSの導入についてはこちらを参考にした。 http://dotinstall.com/lessons/basic_aws/9501 導入後のrubyが1.8.7だったので、1.9.3にバージョンアップした。これについては こちらを参考にした。 http://www.johnvarghese.com/installing-ruby-1-9-3-on-a-lin…

vim 正規表現でグループ化をする方法

vimで正規表現を使う時には、エスケープシーケンスが必要になるので注意. vimの正規表現の表記方法はここを参照 Vimで使える正規表現 グループ化の仕方のメモ def m a = 'Test' "#{a}" end この#{a}を<%= a %>に置き換えるとする。 rubyでの正規表現は s.gsu…

風立ちぬを見て。「感動しました」の一言に感動。

先日、風立ちぬを見た。前評判では「主人公の声が棒読み」とか「効果音が人の声」だとか聞いていたけど、最初こそ違和感を感じたもののすぐに慣れ、物語に集中することができた(・・・といっても正直なところ、飛行機のエンジン音を聞く度に人の声だなぁと意識…

C++講座 その3 文字型

char型はcharacter型の略なので、キャラ型と読むのが正解だと思う。たまに50歳代のおっさんとかがチャーとか言っているけど、ちょっと悲しくなってしまう。 以上は余談。 char型は1文字を格納する型。一般的にサイズは1byte。主にASCIIを格納するために利…

rails link_toでget,post,deleteの指定

methodで指定する。(rails 3.2.3) <%= link_to :logout, logout_path, method: :delete %>

ruby Stringにインデント用メソッドを追加

コード自動生成スクリプトを書いていてほしくなったので作成してみた。ただし文字列の追加にindentメソッドを利用する必要があるのでちょっと気持ち悪い(できれば<<とかで追加したい)。しかもこのメソッド、作成しただけでまだ未使用なので使い勝手も未知…

C++講座 その2 論理型 bool型

論理型(bool, boolean型)はtrue(真)かfalse(偽)を表現する。 例えばC言語では、 if ( 3 ) { /* 必ずこっちの処理が行われる */ } else { /* */ } のように、0以外が真で0が偽となっていた。if文の結果が真の場合、if文ブロックの処理が行われ、偽の場合else…

C++講座 その1

最近、会社の若手に対してC++の講義を行っていて、今後も再利用できるようにここに残しておきたいと思う。 講義書は、個人所有の「プログラミング言語C++第3版」。アマゾンの評価では翻訳は悪いらしいけど、C++の原典なのでこれを利用する。 この講義の目的…