定食屋おろポン

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

Rubyのワンライナーでファイルパスをファイル名に落としこみつつflattenする

自分でもタイトルの意味がわからんけど、要するに こいつを ./01/hoge.png ./02/fuga.png ./03/01/moga.png ./03/02/piyo.png こうしたいときがたまにある。 ./dest/01-hoge.png ./dest/02-fuga.png ./dest/03-01-moga.png ./dest/03-02-piyo.png ワンライナ…

楽しく学ぼう公開鍵暗号方式

仕事で「そろそろパスワードやめて公開鍵暗号つかいませんか..?」と近代化をすすめるにあたって、説明資料が必要かと思って公開鍵暗号方式の説明から作り始めた。 よく考えたら、興味のない人には仕組みとかどうでもよくて「なにがよいのか」「どうつかうの…

シカクいアタマでハスケルする

中学受験予備校の日能研が昔から、「シカクいアタマをマルくする」という広告を張っている。電車内のドア横・窓上ポスターによく掲載されているため、ご存じの方も多いだろう。 2015年2月掲載分(とウェブサイトに記載されているが、1月時点で既に掲載されて…

シグルイの最終話でなぜ三重は自害したかの国語的読解

シグルイ 1 (チャンピオンREDコミックス)作者: 山口貴由,南條範夫出版社/メーカー: 秋田書店発売日: 2013/09/13メディア: Kindle版この商品を含むブログを見る 漫画「シグルイ」の最終話でなぜ三重は自害したのか。 「シグルイ 最終回」 「シグルイ ラスト」…

Haskell / トップダウン or ボトムアップ

関数プログラミングの本がでるようです。とりあえずAmazonで予約注文しています。 関数プログラミング実践入門という本を書きました - ぼくのぬまち 出張版 関数プログラミング実践入門という本を書きました - ぼくのぬまち 出張版 日本語のHaskell本(Haske…

Rubyのnet/httpで重複するキーをもつパラメータをPostする

net/http を使うと、単純にPostするのは至って簡単だ。 Net::HTTP.post_formメソッドを叩くだけで事足りる。 library net/http require 'net/http' require 'uri' #例1: POSTするだけ res = Net::HTTP.post_form(URI.parse('http://www.example.com/search')…

中間値のroundによる丸め 〜Haskellのround関数を見て吹き出した件〜

C Way round(1.5)は、2になります。 round(2.5)は、3になります。 それが、C言語流。俗にいう「四捨五入」の処理です。 ISO/IEC 9899 p233にも記載されています。 The round functions round their argument to the nearest integer value in floating-point…

SwiftでNSTimerとかUIButtonを使うときはBlocksKit使うといいよ

Cocoaでは、引数にtargetとselectorを取るメソッドがいくつかありますね。 NSTimerの+ scheduledTimerWithTimeInterval:target:selector:userInfo:repeats: UIControlの- addTarget:action:forControlEvents: こういうメソッドを、純粋なSwiftのクラス--つま…

Swiftのアクセスコントロールはファイル/モジュール単位だから気ィ付けや

公式ドキュメントはこちら The Swift Programming Language: Access Control ※ドキュメント以上のことは記載されていません。 SwiftにもXcode beta4からアクセスコントロールが可能になりました。 privateとかpublicとかinternalといった修飾子を付けること…

Swiftでも#pragma mark 的なのが使えます

もろもろの対応状況 ジャンプバーの見出しとセパレータ メニューのView→Show Document Itemsで表示されるアレです。 // Objective-C: #pragma mark - hogehoge - // Swift: // MARK: - hogehoge - TODO, FIXME 今までと同様です。 // Objective-C, Swift // …

Swift時代のDelegate通知

Objective-C時代のDelegate 今は昔、Objective-Cの時代ではOwnerへの通知にDelegateを使用していました。 言語仕様としてDelegate機構が用意されているわけでも、Delegateは通知のための機構であるというわけでもなく、CocoaフレームワークでDelegateパター…

SwiftでJSONを扱うライブラリ SwiftyJSON | json-swift

SwiftでJSONを扱う「つらみ」を解消するライブラリがトレンドにあがってたのでながめてみます。 つらみ SwiftでJSONを扱うとなったとき、まず頭に浮かぶのがFoundationフレームワークのNSJSONSerializationです。 JSONを渡すと、パースしてNSDictionaryやNSA…

Swiftのエラーハンドリング

Objective-Cにおいては、「Exceptionは処理するな」が鉄則です。 つまり、 「例外を投げるのは致命的な問題(復旧不可能な問題)が発生したときのみ」 「例外を受け取ったらアプリを終了させろ」 というポリシーです。 これは、そもそも例外を受け取ってキャ…

Swift情報の収集方法

情報源メモ。初心者向けチュートリアルは他の記事に任せて、Swiftの情報がなんか気になって仕方がない人達のために書いた。 Appleの公式ドキュメント とりあえずここらへんは基本。 iBooks iTunes - Books - The Swift Programming Language by Apple Inc. …

Swiftのmapは処理だけしてVoid返すことは出来ないから気ィ付けや

追記 この記事の情報は古いので注意して下さい。 最新のXcodeでは、mapに返り値を持たないクロージャを渡しても問題ありません。 追記ここまで SwiftのArrayは、非破壊的なメソッド、mapを持っています。素晴らしい。 enumerateObjectsUsingBlock:とか書いて…

Swiftでデバッグ出力(日時、メソッド名、行番号)

メソッド名と行番号 かつてObjective-Cではこのように書いていた時代があった。 NSLog(@"%s, %d", __PRETTY_FUNCTION__, __LINE__); 今日からはこう書ける!*1 println(__FUNCTION__, __LINE__) //=> (someFunction(), 60) Swiftのprintlnは、NSLogと違って…

Swiftでコマンドライン引数を取る

OS XのコマンドラインアプリをSwiftで作る時に役立ちます。どこにあるんだそんな需要。*1 StackOverflowではC_ARGCを使う方法が示されています。 これでも良いと思いますが、ちょっと冗長ですね。 osx - How do you access command line arguments in Swift?…

swiftでフィボナッチ数列

フィボナッチ数列を再帰で(遅いやつ) func fib(n:Int) -> Int { if n < 1 {return 0} if n == 1 {return 1} return fib(n-1)+fib(n-2) } func fibs(n:Int) -> Int[] { if n == 0 {return []} if n == 1 {return [1]} return fibs(n-1) + [fib(n)] } printl…

swiftでfizzbuzz

とりあえずfizzbuzzを書いてみる。 func fizzbuzz (#max: Int) { func fb(n:Int) -> String { let isFizz = n % 3 == 0 let isBuzz = n % 5 == 0 switch true { case isFizz && isBuzz: return "fizzbuzz" case isFizz: return "fizz" case isBuzz: return "…

RMagickを使ってアプリ用のサンプル画像を量産しよう

やりたいこと あなたはiOSアプリを開発しているとします。 一週間後に、デザイナーからimage1.pngからimage100.pngまでの100枚の画像リソースが届きます。あなたはこの画像をアプリに組み込んで表示しなければいけません。 しかし、デザインが届くのを待って…

GitHub Flavored Markdownを書くならAtomで決まりでしょ

先日、こんな記事を書きました。 AtomがGithub Flavored Markdownのエディタとして使える件について - 定食屋おろポン 要約すると、 GitHubがAtomってエディタ出したよね GitHub Flavored Markdown、いわゆるGFMてのがあるよ いわゆるMarkdown(Traditional …

分かんないことあったらTwitterで@飛ばせ VS プロに質問するなら金払えよボケ

ファイ! ※ちなみに僕はプロプログラマじゃないです。 3行で プログラマに質問するのは、プログラマ文化的にあたりまえのこと プログラマにタダで質問するのは、時間と金を費やして身につけたプロの知識をタダでよこせと言ってるようなもの ..どっちやねん …

Grunt使おうと思ってcoffee, scssファイルなどの配置を調べた

ファイル配置に悩む Gruntを使う時に 「.coffeeファイルや、.scssファイルをどこに置けばいいの?」 「ビルド後のファイルをどこに配置するのがいいの?」 って疑問に思っていたので調べてみた。 毎回悩んで適当に配置するより、良さそうな方法で決め打ちし…

サーバーにパシフィック・リムのイェーガーと怪獣の名前を付ける話

サーバー環境を立ち上げる時に、最初に考えねばならないことはなにか。それは名前です。 クールな名前を付けることが至上命題、最優先事項であります。 森羅万象、名前を付けることにより初めて魂が吹き込まれます。 しかし、VPSやらAWSやらVMやら、なにかと…

cabal hellから抜け出したくてあがいた話

「cabalでパッケージをインストールする際、依存の解消がイマイチでハマりがち」という噂が流れているのは知っていた。 自分が遭遇するまでは「ふーん」と右から左であった。 仔細は省略するが、このたび見事にハマり、cabal hellを目の当たりにした。 熟練H…

テスト崩壊

テストファーストを数学の勉強にあてはめるとするでしょ 問題集を解く=テストする 解けなかった問題がある=テストが失敗する 解けなかった問題について解法を学ぶ=実装する 再度問題集を解く=再度テストを回す 解ける=テストに通る 数日後、また問題集を解く…

AtomがGithub Flavored Markdownのエディタとして使える件について

「これが21世紀のエディタだ!」とGithubが喧伝しているAtomについて。 今まで クローズドベータ中なのでまだ作りが荒いところはあるようですが、なんとこれ、GFM(Github Flavored Markdown)のライブプレビューエディタ*1として使えます。 Markdown専用の…

Ninety-Nine Haskell Problems 解いてみた

H-99: Ninety-Nine Haskell Problems - HaskellWiki 99 questions/1 to 10 - HaskellWiki とりあえず1-10問目まで。 Preludeなどのライブラリ関数になるべく依存しない縛りで解いてみた。 そのため、myLastを書くのにhead', reverse', fold', flip'を書くこ…

HaskellのHspecでテストケースぶん回したいの巻

Hspecって(使いづらいけど)楽しいよね! 特に使いづらいと思ったのがこれ。 Hspecで関数fの振る舞いを記述するとき、テストケースとして[(a1,b1),(a2,b2),...]っていうリストを渡して「f a1 `shouldBe` b1」みたいに書きたいとか思ってもモナドに阻まれて…

RubyのModule#===について

==と===のおさらいは飛ばして記事の下の方を読む ==とか===とかequalとか ==での同値性判定は暗黙の型変換を行ってゆるーくふわっと判定するけど、===は型変換を行わずに同値性判定を行う言語ってありますよね。 PHPとかJavaScriptとか。 一方で、==はオブジ…