English
SurfacePro3買いました。なかなか面白いデバイスですね。 こころがぴょんぴょんするんじゃ~~ SurfacePro3を機に久しぶりにWindowsを触るという方もいらっしゃるかと思うので、Windowsでの開発環境構築まとめを書いてみます。タイミング的にタイトルにSurfacePro3を入れましたが、SurfacePro3特有の話はありません。 アカウント作成 いきなりですが、アカウント作成のときに注意点があります。ユーザー名に日本語を使ってはいけません。GNUツールの中には日本語パスやスペースを含むパスを考慮していないものが割とあります。あるいはemacsのように、プログラム自体は対応していても、プラグインの中に対応していないものがあるというケースもあります。それはそういうプログラムの問題ではあるのですが、使いたいプログラムが動かないと仕方がないですので、あらかじめユーザー名を英
プログラムがまだ不慣れな人が「プログラムちょっとわかるようになったけど、まだぜんぜんオブジェクト指向とかできてません」のように言ったり、ちょっと慣れた人が「このソース、ぜんぜんだめ。オブジェクト指向ができてない」にようなことを言ったり、まるで、オブジェクト指向ができてるかどうかがよいプログラムかどうかを表すことになってるようだ。 Javaのアルゴリズムの本に、「Javaなのにオブジェクト指向ができていない」のような書評がついているのを見たときには、お前は何を求めてるんだと思ったりもした。 そのようなオブジェクト指向は、窓から投げ捨てるべきだ。オブジェクト指向はプログラムのよしあしの基準にならない。 むだにHogeインタフェースとHogeImplクラスがあったり、むだにnewするだけのcreateメソッドがあったり、どこで値が設定されてるかわからないオブジェクトがひきまわされてたり、ソースコ
機械学習の問題 については以前に紹介したので、次はどんなデータを収集し、どんな機械学習アルゴリズムを使うことができるのかを見ていきましょう。本投稿では、現在よく使用されている代表的なアルゴリズムを紹介します。代表的なアルゴリズムを知ることで、どんな技法が使えるかという全体的なイメージもきっとつかめてくるはずですよ。 アルゴリズムには多くの種類があります。難しいのは、技法にも分類があり拡張性があるため、規範的なアルゴリズムを構成するものが何なのか判別するのが難しいということですね。ここでは、実際の現場でも目にする機会の多いアルゴリズムを例にとって、それらを検討して分類する2つの方法をご紹介したいと思います。 まず1つ目は、学習のスタイルによってアルゴリズムを分ける方法。そして2つ目は、形態や機能の類似性によって(例えば似た動物をまとめるように)分ける方法です。どちらのアプローチも非常に実用的
さきほどWWDCにて新言語 Swiftが発表されました。 The Swift Programming Language (iBooks Store) で言語ガイドが公開されていたのでザッと目を通してみました。 Objecitve-Cと比較してSwiftがイケてそうなところをパッと気になったところだけ書いていってみます。 変数/定数の型推論がある Objective-Cのように明示的に型を書かなくても型を推論してくれます。 推論で問題ないケースも多いと思うのでタイプ数がかなり減らせそうですね。 ( 変数を宣言する際はvar、定数を宣言する際はletで宣言します。 ) // 型推論 var name = "Shinji Ikari" // 変数の型は推論によりString型になる var age = 14 // 変数の型は推論によりInteger型になる let height = 141.5
私は宮崎出身ではありません。 目標管理シートドリブン開発はくそ - razokulover publog を読んで同意しました。 目標管理シートについて、私も感じる問題点と対策を挙げておきます。 (重複意見は抜いておきます) 事前にコミットするために目標の変更が利かない 表題のとおり。 ちょっとフィクションの話を。 半期の初めに目標設定をしました。 仮に「Ruby を業務で使えるレベルになる」とでもしましょう。 (この時点で別の問題もはらんでいるが、それは後述。) 少し勉強を重ねた1か月後、 Ruby が陳腐化しました。 実際 Ruby という言語自体のような手堅い目標であればいいでしょうが、 今さらそんな目標設定することはないでしょう。 登場したばかりの新しい技術を試してみることのほうが多いと思います。 しかしその技術は陳腐化する可能性があれば、 1か月後にもっといい技術が出てくる可能性
経営者として必要なスキルにはいくつかあります。 例えば弁護士の言うことだけを鵜呑みにせずに、きちんと契約書に書かれている文章を読み込み、それが法的にどういう意味を持つのか、裁判ではどのように判断されるのか、理解するのも重要な経営能力の一つです。 ただしこれは、実践を積まないと中々身に付くものではありません。 先日、ITジャーナリストの林信行さんと一緒に、Podcast、電脳空間カウボーイズの公開録音に行ってきました。 林さんといえば大のAppleウォッチャーであり、おそらく日本ではもちろん、世界でも最もApple史に詳しい人物、ということで、トークイベント自体は映画「スティーブ・ジョブズ」公開記念として行われました。 また、この映画の公開にあわせてか、1995年、どん底時代のスティーブ・ジョブズにインタビューを行った貴重な映像、「スティーブ・ジョブズ1995 〜失われたインタビュー〜」
ライブドアブログの PSGI 化の話 は良いはなしだと思う。一方で、私はあんまり Perl が好きじゃないので、10年にわたって生き続けた Perl アプリケーションが、次の10年にむけてアップをはじめているのは、ちょっとしたホラーでもある。 Twitter と Ruby と JVM ライブドアブログが、将来に向けて mod_perl から PSGI + Starlet にかえたように、将来に向けてプログラミング言語をかえる人達も存在する。最近の事例で有名なのは、Twitter の Ruby から JVM 言語群への移行だろう。 OSCON Java 2011 の Twitter: From Ruby on Rails to the JVM では、JVM への移行に至った理由として Ability to handle server workloads A real concurrency
数日前に日本で話題になっていた「超高速開発」について記事を残したいと思います。ニュース記事 超高速開発はスクラッチ開発の3倍から10倍の開発効率が条件、競合するベンダ13社が利害を超えて「超高速開発コミュニティ」を設立 - Publickey の はてなブックマーク に寄せられたコメントを見る限り「食わず嫌い」な方が非常に多いように見受けられたので、これは体験談の需要は高そうだなと思い、書き始めた次第です。 ネタ記事を書いた直後に真面目な記事を書くのは、少し気が引けるものではありますが…。 私は2006年初頭から2012年初頭まで、インフォテリア社製の開発ツール「Asteria」を使用していました。この製品には冒頭で紹介した記事からもリンクが張られていますが、超高速開発を実現するためのツールの一つです。もちろん、私がAsteriaを使用していた頃は「超高速開発」などという言葉は見たことも聞
2012-08-21 John Wiegley さんの “Monads in Pictures” を翻訳しました。翻訳の公開は本人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2012年8月20日 John Wiegley 著 2012年8月21日 e.e d3si9n 訳 これはモナドのチュートリアルではないし、ここには数学用語も出てこない。本稿は、既にモナドを一応使えるぐらいには習った人を対象とする。視覚化することで、何のために何をやっているかが明らかになるはずだ。 関数 モナドに対する直感を得る一つの方法として関数からモナドへの抽象化をたどるというものがある。関数が何をやっているのかを簡単な絵で表してみよう。Haskell の関数の呼び出しの構文を上に、同じ演算を視覚化したものを下に置いた: 関数はある値 a を投射 (map) して別の値 b を得る。中で何が起
2020-03-11追記: タイトルの「未だ」がいつなのかわかりづらいので「2012年現在」を追加しました。 バカバカしい話ですが、ソースコードをSubversionなどでバージョン管理しているにもかかわらず、未だ修正前をコメントアウトして残す習慣は残っているところも多々あります。こういうのです。 // 2012/08/15 irof 修正開始 // hoge = fuga(1); hoge = fuga(2); // 2012/08/15 irof 修正終了 見た事無い方は、そのまま見ないままで生きていかれることを切に願います。 コメントの修正がある場合 2012/07/21にあった、SCMBCでこんなツイートがありまして。 この時点でお見せしたのはこんな感じ。 // 2012/07/21 削除開始 // // 間違ったコメント // 2012/07/21 削除終了 someMethod
こういう問題が流れてきた。 まつひろのガレージライフ: 幼児が数分で解けるのに大人が解けない算数(?)の問題 「幼稚園児が5〜10分で解けるのに、プログラマなどの頭脳労働職の高学歴の方が解くのに1時間もかかる」とあるけど、これ1時間かかるの、プログラマとしてあまりよくないんじゃないのかなーと思った。 ので、プログラマ的に解いてみる。 改めて書き出すとこう。 8809=6 3333=0 7111=0 5555=0 2172=0 8193=3 6666=4 8096=5 1111=0 1012=1 3213=0 7777=0 7662=2 9999=4 9313=1 7756=1 0000=4 6855=3 2222=0 9881=5 3333=0 5531=0 5555=0 2581=??? 問題は英語だし語呂合わせじゃない。幼稚園児にわかるということでそこまで複雑なルールでもない。なんらか
Photo by muraterturk こういった記事って、ネーミング規則や慣習の視点から書かれていることが多いんですけど、この記事では、英文法に視点を置いて、参考になりそうなことをいくつかピックアップしてみたいと思います。 「省略形は使わない」などの規約的なものは、各プロジェクトのルールに従えばいいので、ここでは書きません。あくまで英語という視点から書いているということを、ご理解ください。 Rule 1 : “検索”は名詞 一般的な英語辞書のルールでは「検索」は、動詞ではなく「検索する」が動詞になります。「検索」は、検索することの名称 だと考えられるため、動詞ではなく名詞として扱います。 英語辞書には、日本語の品詞ごとに表記のルールがあります。これが理解できていると、和英辞書などで品詞を意識して検索できるようになります。以下に、一般的な英語辞書の表記ルールをまとめてみました。 <各品詞
(追記) コードが間違っていたので、次の日に修正版を書きました。 今日はちょっとマニアックなネタです。 というのも、@mike_neck が悩んでいるようだったので... JavaFX には WebView というブラウザーのコントロールがあります。それを使って JavaScript のテストをしてしまおうというのが今日のお題です。 ただ、問題は @mike_neck も悩んでいるように、スレッドの問題です。 JUnit は JUnit のスレッドで動作し、JavaFX も JavaFX のイベントディスパッチスレッド (EDT) で動作します。 問題はその間をどうやって取り持ってあげるかです。 JUnit は自身のスレッド @Before のメソッドを実行して、@Test のメソッドを実行していきます。つまり、主導権を握っているのは JUnit であって、テストされる側が自分で JUni
Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) Table of Contents 序章 (Introduction) 整形: ホワイトスペース, 命名, Imports, Braces, Pattern matching, Comments Types and Generics: Return type annotations, Variance, Type aliases, Implicits Collections: Hierarchy, Use, Style, Performance, Java Collections Concurrency: Futures, Collections Control structures: Recursion, Returns, for loops
プログラミング言語Clojureの作者Rich Hickey氏率いるClojure HackerのチームがDatomic(デートミックと発音するらしい)というデータベースをリリースしました。これが何やらとてつもないです。10年先を行ってる技術じゃないでしょうか。 まだ本番サービスは始まっていませんが開発環境用のライブラリが配布されています。 Datomicは斬新なアーキテクチャなので一言で説明するのはとても難しいです。 私が理解できたことを簡単に説明します。 2014/1/20追記 ライセンスモデル、サポートストレージ、サービスとしてではなく独立して使用する形になるなど記事作成時の内容から色々変更が合った部分を更新しました。 変更不可なAppend-onlyデータベース 従来のデータベースで、あるレコードを変更するというのはそのレコードに対応した場所があり、そこのデータを書き換えるというこ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く