タグ

ブックマーク / postd.cc (30)

  • パイプとフィルタ ~ソフトウェア工学における有用なアーキテクチャ~ | POSTD

    パイプライン は、最近のソフトウェアエンジニアリングにおいて、非常に便利な(そして驚くほど活用されていない)アーキテクチャパターンです。ソフトウェアでデータの流れを制御するためにパイプとフィルタを用いる考え方は、最初のUNIXシェルが作られた1970年代からあります。もしターミナルエミュレータでパイプ” | ”を使ったことがあるなら、”パイプとフィルタ”を活用できていることになります。以下の例を見てみましょう。 cat /usr/share/dict/words | # Read in the system's dictionary. grep purple | # Find words containing 'purple' awk '{print length($1), $1}' | # Count the letters in each word sort -n | # Sort l

    パイプとフィルタ ~ソフトウェア工学における有用なアーキテクチャ~ | POSTD
    what_alnk
    what_alnk 2014/11/22
  • オンライン学習の未来 ー高校生にプログラミングを教えて知り得たこと | POSTD

    学校で習うような物事をインターネット上で学ぶことは、将来的には不可避なことのように思えますが、 現状において、多くの人々はオンラインで効率的に学習をしているとは言い難いようです。 Sebastian Thrunも、数カ月前のFast Companyのインタビューでこのことを 認めています。 私はこの夏、高校生に教える傍らソフトウェアを作り、コンピュータがどの程度、人々の学習の役に立つかを検証してみました。 この投稿ではその夏について、つまり生徒がどのように学び、私が作ったソフトウェアがどの程度、 彼らの学習の役に立ったか、何がうまくいき、何がうまくいかなかったか、そして次に目指すべきところはどこなのか、 について書いていきたいと思います。 カリキュラム 今回の検証の実践の場として、 AP(アドバンスト・プレースメント:成績上位の高校生が受講可能な大学の科目)コンピュータサイエンス の講義を

    オンライン学習の未来 ー高校生にプログラミングを教えて知り得たこと | POSTD
    what_alnk
    what_alnk 2014/11/19
  • 視覚化による5つのガベージコレクションアルゴリズム入門 | POSTD

    ほとんどの開発者は、自動のガベージコレクション(GC)を当たり前のように使っています。これは、私たちの仕事を容易にするために言語ランタイムが提供する素晴らしい機能の1つです。 しかし、最新のガベージコレクタの中をのぞいてみれば、実際の仕組みは非常に理解しづらいことが分かります。実装の詳細が無数にあるため、それが何をしようとしているのか、また、それがとんでもなく間違った事態を引き起こしかねないことについて十分理解していない限り、すっかり混乱してしまうでしょう。 そこで、5種類のガベージコレクションアルゴリズムを持つおもちゃを作ってみました。小さいアニメーションはランタイムの動作から作成しました。もっと大きいアニメーションとそれを作成するコードは github.com/kenfox/gc-viz で見ることができます。単純なアニメーションによってこうした重要なアルゴリズムを明らかにできることは

    視覚化による5つのガベージコレクションアルゴリズム入門 | POSTD
    what_alnk
    what_alnk 2014/11/16
  • 毎日文章を書くことのススメ | POSTD

    私はDropbox内に”Write every day”という名前を付けたマークダウンファイルを入れています。2014年4月22日に作成したものです。それから5カ月経った今、ドキュメントのワード数は40,164ワードになりました。 4月に始めてから、少なくとも1日に250ワードの文章を書いた計算になります。確かに私は、毎日毎日、文章を書いてきました。 今では文章を書くことが私の日課となりました。自分の中での約束事にして、守るように決めた誇れる日課です。多産な文章家は私の書く文字数の少なさに笑ってしまうかもしれませんが、それは特に気にしません。誰しも出発点というものがあるのです。 文章を書く習慣をつけると決めたことは、今年一番の決断になりました。ここでは、私が毎日書き続けている理由について書いていきます。皆さんが私のように(そして私よりも)文章を書くことに意識を向けるきっかけになればうれしい

    毎日文章を書くことのススメ | POSTD
    what_alnk
    what_alnk 2014/11/14
  • Pythonを教えるためのいくつかの提案 | POSTD

    私は最近PyCon Australia 2014におけるクイーンズランド大学のチューターのプレゼンテーションを見るだけではなく、クイーンズランド大学のSoftware Carpentryブートキャンプに参加する機会がありました(ティーチングアシスタントとして)。 彼らが出くわした課題の多くはプログラミングを教えるときの固有の複雑さによるものでしたが、いくらかは避けられることのように思えました。 整数の除算から浮動小数点の値を得る デフォルトのPython 2では、整数の除算は答えの小数点以下を切り捨てた商を表示します。

    Pythonを教えるためのいくつかの提案 | POSTD
    what_alnk
    what_alnk 2014/11/01
  • GitLab flowから学ぶワークフローの実践 | POSTD

    Gitによるバージョン管理では、従来のSVNなどよりずっと簡単にブランチングやマージができます。さまざまなブランチ戦略やワークフローが可能であり、以前のシステムに比べるとほとんど全てが改善されたと言えるでしょう。しかしGitを利用する多くの組織はワークフローの問題に直面します。明確な定義がなく複雑で、Issue Tracking Systemと統合されていないからです。そこで、明確に定義された最良の実践的方法としてのGitLab flowを提案したいと思います。issue trackingには feature driven development と feature branches を組み合わせます。 他のバージョン管理システムからGitに移行する際によく耳にすることは、効果的なワークフローの開発が難しいということです。この記事ではGitワークフローとIssue Tracking Sys

    GitLab flowから学ぶワークフローの実践 | POSTD
    what_alnk
    what_alnk 2014/10/24
  • MediumのCSSはこの上なく最高! | POSTD

    自分は常に最高であれって思っている。最高の香りを身にまとい、最高の振る舞いをする。ごみ1つ捨てるのだって、ほかの誰よりイカしてなきゃ。 ―Lil Wayne ずっと長いこと恥も外聞も知らずに、MediumでCSSについて執筆しようと思っていました…。 それからどうなったって? 違うことをやっていた? 何てこと、どうやったら同じことができるかって? やり方を教わりたいって? これから書くことは私たちのCSSについての覚書で、これまでに歩んできた道のりと現在のCSSについて述べています。 始まり(これまでの道のり) だいたい2年ほど前、私はソフトウェアアプリケーション開発と(皆さんが読んでくれているといいのですが) medium.com に取り組むためにObvious Corp.に加わりました。 その時、Mediumは、すでに一連の”スタイル更新”を行っていました( スタイル更新とは デザイナ

    MediumのCSSはこの上なく最高! | POSTD
    what_alnk
    what_alnk 2014/09/26
  • 抽象化と組み合わせができるレイアウト言語があれば、CSSは必要ない | POSTD

    Web上の視覚的なスタイルを指定するCSSは、あまりにも複雑で、恐らく今までに一度も正確に実装されたことはないだろう。それにもかかわらず、バージョンが上がるにつれて、その複雑さは増すばかりだ。一方で、CSSではできることが限られており、初歩的なデザインでさえ不可能であるか、あるいは法外に難しいことも少なくない。加えて状況依存的(または計算的)な側面を持つものは、すべて外部で対応しなければならないという有様だ。その結果、CSSに関するほとんどの手引きでは、希望する外観に何とか近づけたり、非互換性を回避したりするための頼りないハックに多くの労力が費やされている。 – Bret Victor 私は近年、クライアントサイドの開発技術を数多く見てきました。そして、その中でも特に興味深いと思ったのが Elm です。関数型のプログラミング言語としては、Elmはそれほどワクワクするようなものではありません

    抽象化と組み合わせができるレイアウト言語があれば、CSSは必要ない | POSTD
    what_alnk
    what_alnk 2014/09/26
  • JPL(ジェット推進研究所)におけるLispの顛末 | POSTD

    この記事はジェット推進研究所(JPL)におけるLispの盛衰について、私の(しかもかなり偏った)個人的見地から書きました。JPLの所員としての立場で書いているのではなく、JPLの公的な立場を代弁するものでもないことをお断りしておきます(これについては読み進めていただければ分かります)。 1988-1991 ロボット工学の時代 私は1988年にJPLに入所し、自律移動ロボットの人工知能AI)グループに配属されました。当時は今と違って政府の財源から資金が潤沢に流入していました。「AIの冬」が始まりかけていましたが、まだJPLには到達していませんでした。研究所の技術動向は最先端から数年遅れになる傾向があるようです。 当時のJPLはマーズ・ローバー・サンプル・リターン(MRSR)と呼ばれるマーズ・ローバー・ミッションの初期計画段階にありました。あの時代、宇宙ミッションはあらゆる意味で巨大でした。

    JPL(ジェット推進研究所)におけるLispの顛末 | POSTD
    what_alnk
    what_alnk 2014/08/16
  • 機械学習はどの分野に属するのか? | POSTD

    機械学習は、学際的な分野であり、密接に関連する分野である人工知能やデータマイニングと区別しようと考えると、かなり困惑するかもしれません。 この記事では、機械学習に関連したこうした分野について学びます。特に、機械学習が、どのようにして数学人工知能の分野の上に成り立っているのか、そして機械学習がデータマイニングやデータサイエンスといった分野の中でどのように使用されているかということを学び、こうした分野の境界について学びます。 基礎 機械学習は、数学とコンピューターサイエンスの分野を基礎として成り立っています。特に、機械学習の手法は、線形代数と行列代数を使用して説明されることが多く、その作用は、確率、統計学というツールを使用して理解されることが多いです。機械学習にとっての基礎科目を代表する統計学、確率、人工知能の分野です。 確率 確率理論の分野では、ランダムな事象の可能性を描写する研究が行われ

    機械学習はどの分野に属するのか? | POSTD
    what_alnk
    what_alnk 2014/08/06