定食屋おろポン

おろしポン酢と青ネギはかけ放題です

HaskellのnubとRubyのuniq

HaskellのData.List#nubと、 RubyのArray#uniqは、どちらもリスト/配列内の重複要素を取り除いた新しい配列を返す関数です。 どうもHaskellのnubはRubyに比べてだいぶ遅いなあと感じます。 リストと配列のデータ構造の違いに起因するのだろうと想像はできま…

バーコードジェネレータをゆるーくRubyで

「IOモナド難しい..Rubyで書いたらゆるふわ楽勝なのに..」 とか前に書いてたので、ほぼ同様のコードをゆるーく書いてみました。 gist8574615 # => #MJDRYCAD #CKLKCQSW #CHJAQKSZ #YWASAYMI #UHVRVEWW #以下略 重複する可能性を考慮して、必要な数の2倍のコ…

Common Lisp初め

「おろポンくん、プログラミングできるの?」 僕「うーんどうだろう、少しは書けますね」 「じゃあWindowsのプログラムとか作れちゃう?」 僕「いや、Windowsはちょっと」 「分かったJavaだ」 僕「Javaは全く。。」 「なんだ、Web系?PHPとか?」 僕「PHPは…

バーコードのチェックサムとHaskellの練習

コンビニの商品にも、スーパーの商品にも、たいていの売り物にはバーコードがついていますね。 すだれハゲみたいなアレです。 http://ja.wikipedia.org/wiki/バーコード 日本の商品に使用されるバーコードは JANコード というもので、8桁あるいは13桁の数字…

Haskell勉強日誌 -エラなんとかの篩-

練習のため、素数判定で有名なエラなんとかの篩を実装しました。 エラなんとかの篩 13行目のx ^ 2が毎回評価されると実行速度に悪影響を与えそうですが、参照透明性のお陰で1度しか評価されていないハズですね。 reverseはコストが高い処理ですが、1回しか…

Haskell勉強日誌 -RPN電卓-

Haskellで逆ポーランド記法電卓。関数型言語らしい題材で練習してみる。 まずは普通に書いてみる。 最初は、Stackを定義してpopやpushを実装するべきかと考えたけど、強力なパターンマッチのおかげでシンプルに書けた。 単なるリストをスタックとして使用し…

ふつうのHaskell勉強日誌

ふつうのHaskellプログラミング 初版 p246 練習問題 9.6問題: 新しい型"Line"を定義し、sortLines関数でソートする Line型は`data Lines = Lines {number::Int, string::String} deriving Show`で定義されるように、行番号とテキストで構成されます。 問題で…

iTunesHelperを殺せ!!

mac

Mac使ってると、iPhoneやiPadを繋ぐたびにiTunesが立ち上がってウザいですよね。 殺したくなりますよね。 犯人はiTunesHelperってやつです。殺せ!!ログイン項目からiTunesHelperを削除しても無駄です。なにかの拍子にiTunesを立ち上げた瞬間、一緒にiTunes…

メモ:マウスを使わずアプリケーションを強制終了

mac

Keynote使ってたら、Keynoteがバグってマウスクリックができなくなってしまった。 他のアプリケーションを開いても、ずっとKeynoteがマウスイベントを受け取り続けているせいで、他のアプリケーションがマウスイベントを受け取れない状態。 なぜかKeynoteを…

viewWillLoad/viewDidLoad on NSViewController

UIKitのUIViewControllerには - (void)viewWillLoad; - (void)viewDidLoad; が定義されています。UIViewControllerのサブクラスにおいて、これらのメソッドは頻繁にオーバーライドされます。 しかし、AppKitのNSViewControllerには存在しません。UIKitに慣れ…

ブログのコード表示フォントを等幅にしたら捗った

mac

バックスラッシュが¥になってて腹が立ったので、ブログのCSSを編集してみた。 html { font-family: sans-serif; } pre.syntax-highlight { font-family: 'Ricty', 'Osaka-mono', 'Osaka−等幅', monospace; } I love Ricty! Windows向けの設定じゃないけど、…

Objective-Cのボトルネック検出

パフォーマンスの改善には、ボトルネックの検出が欠かせません。 どの処理に時間がかかっているのか判別するため、処理の経過時間を記録します。stackoverflow*1では以下のような方法が提案されています。 NSDate *start = [NSDate date]; // do stuff... NS…

悩ましきコード整形

論理演算子のコード整形ってなんだか悩ましいですね。 まずは例を。UIViewのautoresizingMaskを設定するコード。いくつかの設定値の論理和を取ります。 view.autoresizingMask = ( UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMar…

RecursiveDescriptionについて

UIKitのUIViewクラスには、ビューのヒエラルキーを再帰的にダンプする -(NSString*)recursiveDescription というプライベートAPIが用意されています。 しかし、どうもこれはAppKitのNSViewクラスには定義されていないようです。 ないので書きました。UIView…

REKitを使ってみた

REKit自体の紹介は開発者に譲ります。これはもっと広まると思う。 https://github.com/zuccoi/REKit (ProjectのGitHubページ) https://github.com/zuccoi/REKit/blob/master/README_ja.md (日本語README) http://runlooprun.wordpress.com/2013/02/12/rekit-…

TextMate2でHaskellのRunが効かない件について

TextMate2はパス周りでどうもうまく動かない場合が多い気がする。 TextMateは「Cmd + Rで即実行」機能がついていて、涙がでるほど便利なんだけど、Haskell BundleのRunがちゃんと動いてくれなかったので直しました。っていうメモ。修正箇所は2点 1. Prefere…

「ベジェ曲線とはなんぞや」を説明するアプリケーション

なめらかな曲線を描くならベジェ曲線。 プログラマ、マークアップエンジニア、デザイナetc.. IT土方でベジェ曲線に縁がない職の方が少ないんではないかってくらい身近な存在ベジェ曲線。ベジェ曲線についてプレゼンする必要に迫られて、ざっくりとMacアプリ…

あまりにも美しいコードを書いてしまった

#import <Foundation/Foundation.h> @interface _ : NSObject typedef _* (^__)(); typedef __ (^___)(); typedef ___ (^____)(); typedef ____ (^_____)(); typedef _____ (^______)(); @property (readonly) _* _; @property (readonly) __ __; @property (readonly) ___ ___; @prop</foundation/foundation.h>…

NSRailsが面白いことをしていた

サーバサイドとiPhoneアプリの連携をしたくて、Ruby on Railsの勉強中です。優れたFWの勉強が楽しいのは、CocoaもRailsも一緒ですね。Railsでサーバサイドがある程度作れるようになると、iPhone側と連携したくなります。自前でNSURLConnectionをこねくり回す…

ドットインストール Ruby on Railsの基礎 #36 でAjaxによるPost削除処理が動かない

メモ $('a[data-method="delete"]').live('ajax:success', function(e, data, status, xhr) { $('#post_'+data.post.id).fadeOut("slow"); }); data-method="delete"って属性を持つaタグに、イベントハンドラを設定するコード。JSデバッガコンソールに'undef…

iPhoneシミュレータをAlfredから起動

Mac

めもめも AlfredのPreferenceを開く Features->Default Results->Search Scope 一覧に /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/ を追加。 これで、iPhone Simulator.appをAlfredから起動で…

iOS5以下に配慮した、iOS6での画面回転制御コードメモ

これまで回転の可不可を判別していた - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientationがiOS非推奨になり、plistと - (BOOL)shouldAutorotate - (NSUInteger)supportedInterfaceOrientations - (UIInterface…

Webインスペクタの行番号がズレてたら直しましょう

mac

「まあこれくらい、仕方ないか」とおもわず、直しましょう。 GoogleChromeのデベロッパーツール使えばいいやん、とか言わずに。 iOS6になってリモートデバッグ*1が可能になったこともあり、SafariのWebインスペクタを使わなければいけない場面も出てくるかと…

誰か僕のかわりにWebインスペクタの行番号がずれないようにしてください。

Mac

今年の夏、MountainLionと共にSafariも6.0になりましたね。 そのせいかはわかりませんが、以下のTipsが僕の環境では使えませんでした。 SafariのWebインスペクタで行番号がずれる問題を解決 どうやら、現在は以下のパスにあるCSSファイルを参照している模様…

アリンコの問題といた

職業プログラマがFizzBuzz書けない理由 タイトル: Ants 問題文: 長さL cmの竿の上をn匹のアリが毎秒1cmのスピードで歩いています。アリが竿の端に到達すると竿の下に落ちていきます。また、竿の上は狭くてすれ違えないので、二匹のアリが出会うと、それぞれ…

Objective-CのBlocksでカリー化関数と部分適用

すごいH本を少しずつ読み進めているんだけど、なかなか進まない。iOS6の新APIの調査の方に時間を取られています*1。 5章くらいまで読んでるところだが、カリー化の説明がサラッと終わって消化不良なので、Objective-C*2で書いてみた。 multiplyThree(2)(3)(4…

Haskellの本を買ってみた

amazon:すごいHaskellたのしく学ぼう! とりあえずfizzbuzzを書いてみる。 -- ghci Prelude> [if x `mod` 15 == 0 then "fizzbuzz" else if x `mod` 3 == 0 then "fizz" else if x `mod` 5 == 0 then "buzz" else show x | x <- [1..100]] -- output ["1","2…

Alfred+TextMate+Rubyで簡単な計算は済ませてます*1

mac

irbも鍛えれば同様の使い心地を実現できるかも知れない。 TotalTerm使えばTerminalもショートカットコマンドで一発起動です。 例えば、符号付き32bit int の最大値ってなんだっけ。。って時。 Opt+Space #=> Alfred表示*1"mate" Return #=> TextMate起動Cmd …

iOS Developer Program参加

初任給でiOS Developer ProgramとiPhoneスタンドを購入しました。 Luxa2 Mobile Holder H2出版社/メーカー: OZAKI発売日: 2010/10/01メディア: エレクトロニクス クリック: 6回この商品を含むブログを見るiMac風のアルミ製iPhoneスタンドは他にもありますが…

まあ3行ならコピペするけどね。

とある業者からのメール 「下記日程のいずれかにて、ヒアリングいただけますでしょうか。 6月5日(火) 14:00以降 6月6日(火) 14:00以降 6月7日(火) 14:00以降」 皆様,これがコードクローンとその弊害です.2012-05-31 18:13:24 v…