タグ

2014年9月27日のブックマーク (96件)

  • インデントコミットで真犯人がわからなくなった場合の git blame

    config_param :queued_chunk_flush_interval, :time, :default => 1 を追加したコミットがどれかを探したいとします。 しかし、git blame を見るとこんなかんじに、インデントコミットによってほぼ全ての履歴が上塗りされていてどれだかわからない、みたいな状況にどうやって真犯人を探そうかという話です。 1. git blame -w を使う インデントコミットを無視したいだけであれば git blame の -w オプションが使える。-w は比較の際に whitespace を無視してくれるオプション。git diff にもあるよね。 $ git blame -w lib/fluent/output.rb ... (省略) 14d01c71 (Masahiro Nakagawa 2013-03-27 03:56:51 +0900 1

    インデントコミットで真犯人がわからなくなった場合の git blame
  • GitHub - jpetazzo/dind: Docker in Docker

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - jpetazzo/dind: Docker in Docker
  • Dockerホストをプロジェクトや権限で分ける

    エントリはDockerの基礎知識を前提としています。) Dockerにはイメージやコンテナレベルのアクセス制限機能がありません。つまり、Dockerデーモンに接続できる人は誰でも、全てのイメージやコンテナを操作できます。よって、社内にDockerを使う複数のプロジェクトがあり、各プロジェクトメンバーの権限をプロジェクト内に制限したい場合、Dockerホストを分ける必要があります。今回は、そんなシチュエーションでDocker-in-DockerDockerの入れ子)を活用する話です。 なぜアクセス制限機能がないか コンテナを起動するときDockerホストの/(ルート)をマウントすると、コンテナの中からホストの全てのファイルにアクセスできます。つまりDockerデーモンへのアクセスはホストのroot権限と同等であり、イメージやコンテナレベルのアクセス制限をしても意味がありません。Dock

    Dockerホストをプロジェクトや権限で分ける
  • 脱関数化を実用する

    [1 背景と導入](脱関数化を実用する 1#section1) [1.1 静的な個数のクロージャのある高階のプログラムのサンプル](脱関数化を実用する 1#section1-1) [1.2 動的な個数のクロージャのある高階のプログラムのサンプル](脱関数化を実用する 1#section1-2) [1.3 脱関数化とはつまり](脱関数化を実用する 1#section1-3) [1.4 関連研究](脱関数化を実用する 1#section1-4) [1.5 この研究](脱関数化を実用する 1#section1-5) [2 リストと木を処理するプログラムの脱関数化](脱関数化を実用する 2#section2) [2.1 二分木をリストへと平坦化する](脱関数化を実用する 2#section2-1) [2.2 リストの高階な表現](脱関数化を実用する 2#section2-2) [2.3 チャーチ符

    脱関数化を実用する
  • 写経なんてやめとけ - カレーなる辛口Javaな加齢日記

    http://kuranuki.sonicgarden.jp/2011/11/post-54.html http://d.hatena.ne.jp/mizchi/20111102/1320235835 もちろん、学ぶプログラミング言語の文法や基的なAPIについては覚えているにこしたことはありませんが、それらを覚えることはそこまで重要ではありません。 んなことはない.写経するよりはずっと重要.プログラミングができない奴の言い訳だから耳を貸すべきではない. 自分の手でソースコードを打ってみて、実行してみるということです。 ここまでは,一応賛成. そのプログラムの表示する文字列の部分を変更していくことで、どこを変えれば、どこの振る舞いが変わるのか、を学ぶことができたはずです。同じように写経をしながら、ソースコードの一部を変えながら、動きがどう変わっていくかを試していくと、より良いでしょう。プロ

    写経なんてやめとけ - カレーなる辛口Javaな加齢日記
  • プロジェクトを準備する - パルカワ2

    準備は重要 コードコンプリートでは、準備が重要とされていて、そこで言われている準備とは、「課題定義」「要求」「アーキテクチャ」があげられている。 そんな事とは露知らず、準備の重要性の話を昨晩していた。 テスト、プロジェクト開始時からちゃんと書く準備してないとあとから書こうとしてもほぼ確実に書かないので、最初にそういう準備するのメッチャ重要だと思ってる。— ひさいち (@hisaichi5518) 2014, 9月 7 あと最初からあると次来た人も書きやすい。— ひさいち (@hisaichi5518) 2014, 9月 7 もちろん、テストだけの話ではなくコードコンプリートに書かれている例外・データベースのコネクションの管理などなども同じ。 準備不足にならないために コードコンプリートでは、準備が不十分になる原因は2つあるとしている。 準備が不十分になる一般的な原因は、上流の作業を担当する

    プロジェクトを準備する - パルカワ2
  • Zephir使えばPHP Extensionが誰でも超絶簡単に作れる - Qiita

    はじめに ※ タイトルは、正確には、「Zephir使えばPHP Extensionが(PHPのコードさえかければ)誰でも超絶簡単に作れる」ですが、PHP Extensionを書きたい人はPHPのコードを書ける人だと思われますので、省略してます。 メモリ操作を気にせずにPHP Extensionを作れる言語”Zephir” こちらの記事を読んで面白そうだなと気になってストックだけして積んでた状態でした。 しかし、とある案件でファイルのフルスキャンをしたくなったのでPHP Extension化を試みました。 情報は公式の Zephir Language にもありますが、日語情報が少ないのでこちらに簡単にまとめます。 結論から箇条書きすると 面白い。 初めて触ったその日にメモリ管理に気を使う必要なく、PHP Extensionの開発が出来ました。 今回のケースでは、PHPでベタ書きした場合と比

    Zephir使えばPHP Extensionが誰でも超絶簡単に作れる - Qiita
  • ProcessingでコンピュータビジョンライブラリBoofCVを使う - Imaginary Code

    BoofCVというJava用のコンピュータビジョンライブラリがあります。これを使うと基的な画像処理に加え、オブジェクトトラッキングや特徴量抽出、ステレオ画像計測、領域セグメンテーション、モザイキングなどができます。機能豊富なOpenCVと比べると見劣りしますが性能はなかなか。Androidでも利用できるようです。 ありがたいことにProcessing版もあるのですが、ライブラリを自分でビルドしないといけないようです。 Tutorial Processing - BoofCV というわけで、トライしてみたので導入方法をメモしておきます。 要点 Gradle(グレイドル)なるビルドツールを使います。 JDK(Javaの開発環境)をインストールしておく必要があります。 ビルド時にProcessingに同梱されているcore.jarが必要です。 以下、実際にやった作業手順を記しておきます。環境は

    ProcessingでコンピュータビジョンライブラリBoofCVを使う - Imaginary Code
  • あなたのお家に届くまで CPUキャッシュアーキテクチャ入門 Dora.Panda

    3. ハードウェア構成 左図の構成で説明を進めます CPUによって実装が異なるので、機種 固有の説明は省きます。 私なりに考えた「キャッシュの基礎を 理解する」ための仮想CPUです。 「そこそこ」ワーストケースで考えます。 TLBヒット、L1、L2キャッシュはミス ヒット。 細かい用語は後ほど。 Processor Chip CPU Core L2 Cache Mem Ctrl DRAM HW… PCIe MMU L1 Cache

    あなたのお家に届くまで CPUキャッシュアーキテクチャ入門 Dora.Panda
  • クラスの命名のアンチパターン - Qiita

    昔から「名は体を表す」と言ひます。クラスの名前がクラスの果たす役割と一致してゐるかどうか常に考へ続けませう。 ImageInfo, AccountData, etc. Info って何やねん? Data って何やねん? ImageInfo って Image とはどう違ふねん?? FooInfo や FooData よりも好ましいかもしれない名前の例: FooAttribute, FooProperty, FooMetadata, FooDescription FooConfiguration, FooSetting, FooParameter FooResult, FooStatistics, FooSummary FooBuffer, FooList, FooCollection, ... ProductListItem, TranslationTableEntry, etc. Prod

    クラスの命名のアンチパターン - Qiita
  • せっき~のゲーム屋さん ゲーム世界を動かすサイコロの正体 ~ 往年のナムコタイトルから学ぶ乱数の進化と応用

    [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 2014年9月4日 にあった、CEDECの講演についての記事です。 ゲーム世界を動かすサイコロの正体 ~ 往年のナムコタイトルから学ぶ乱数の進化と応用 バンダイナムコのプログラマさんより乱数の講演です。 ・ゲームで使われている主要な乱数のしくみについて ・乱数のアルゴリズムが改良されていく歴史 ・乱数の選択の注意点 などについて、取り上げられました。 (乱数分布などは せっかくなので 初め、自分で乱数プログラム組んで 用意しようかと思ったのですが 力尽きてしまい・・・ 撮影した写真を使わせていただきました) -------------------------------------------------------------------- ●はじめに ・真の乱数 → 実際のサ

  • どこでCommon Lispの質問をしたらいいのか - 八発白中

    1週間ほど前、Quicklispの作者のZach Beaneがこんなブログ記事をポストしていて少し話題になりました。 Zach Beane's Blog - Where to get help with Common Lisp Common Lispの質問をする場所はいくつかある。 一般的な質問の場合、 Stack Overflowに「Common-Lisp」タグをつけて明瞭な質問をすれば、何人かの詳しい人が即座に回答してくれる。特にRainer Joswigは数百の質問に質の高い情報を提供しているし、他にも多くの人がすばやく回答をくれる。回答はスコア付けされ、一般的には良い回答はスコアが高く、悪い回答はそれなりになる。 redditの/r/lispや/r/learnlispに投稿された質問も同様に多数の回答がつけられる。経験上、redditにはより多くの人がいて回答をくれる。個人的には未

    どこでCommon Lispの質問をしたらいいのか - 八発白中
  • クラスの「継承」より「合成」がよい理由とは?ゲーム開発におけるコードのフレキシビリティと可読性の向上 | POSTD

    コード構造における重要な問題として、複数のクラスを共有する場合に合成と継承のどちらを用いるかという点があります。“has a”の関係と、“is a”の関係と言われる2つの対比です。例えば、“ソファには綿が入っている”と、“ソファは家具である”という違いのようなものです。この例では2つの違いは非常に明白ですが、実際には、“has a”の関係でも“is a”の関係でも意味を成すケースがたくさんあります。ゲームのキャラクターについて、これはコリジョンボックスを持っているかと聞くのと、これは衝突可能なオブジェクトかと聞くような場合です。この2つは全く同じことではありませんが、それぞれが(または両方一緒に)衝突を処理する主構造として用いられ、どちらの方がよいかは必ずしも明白ではありません。私の経験では、直感的には継承の方がよいと思うことも多いのですが、それだと問題がたくさんあって結局は合成の方がよか

    クラスの「継承」より「合成」がよい理由とは?ゲーム開発におけるコードのフレキシビリティと可読性の向上 | POSTD
  • Rails の rescue_from で拾えない例外を exceptions_app で処理する - Qiita

    rescue_from で拾えない例外がある Rails が用意してくれている rescue_from は controller の外側で発生した例外を拾ってくれない。 例えばパラメータに不正なエンコーディングが含まれるときに、Rails は ActionController::BadRequest を例外として投げる。しかし、この処理は Rails の routing 層で行われているため rescue_from で捕捉することはできない。 そのため Rails の外で発生した例外を捕捉していない場合、ユーザには意図していないエラーページが見えている可能性がある。 Rails の外で起きる例外は exceptions_app で処理するのがお手軽 例えば config/initializers/exceptions_app.rb に以下のコードを書いておく(ErrorsControlle

    Rails の rescue_from で拾えない例外を exceptions_app で処理する - Qiita
  • チャットで学ぶ Go ネットワークプログラミング : DSAS開発者の部屋

    簡単なチャットプログラムは、ネットワークプログラミング用のフレームワークでは定番のサンプルプログラムです。 echo サーバーが Hello World とするなら、チャットは FizzBuzz といったところでしょう。 とりあえず動くだけのチャットならだれでもすぐに作れるようになりますが、まじめにチャットを作ることで、 ネットワークプログラミングで考えないといけない点やエラー処理の重要な基礎を学ぶことができます。 ということで、 Go でシンプルなチャットを実装してみました。 (ソースコード) 以降、何を考えてどういう設計を採用したのかを解説していきます。 考慮すべきポイント 特定のクライアントへの送信に長時間待たされた場合に、他のクライアントへの送信が遅れないようにする。 クライアントを切断するのは、 (1)ルーム側から kick する場合, (2)受信エラー, (3)送信エラー の3

    チャットで学ぶ Go ネットワークプログラミング : DSAS開発者の部屋
  • ゲームの神様「ゼビウス」の遠藤雅伸が語った「人がゲームをやめる理由」 - エキサイトニュース

    どういうエンディングが良いんでしょうね、(テレビゲームって。 テレビゲームはアーケードのピンボールなどを背景に登場したため、当初は明確な目的がありませんでした。しかし1980年代に入り、長時間プレイの抑制やプレイヤーに対する目的設定などを背景に、プレイ時間の有限化という概念が登場してきます(レースゲームでは上手い人ほど早くゲームが終わる!)。そして家庭用ゲームの一般化に伴い、いわゆる「エンディング」のあるゲームが一般的となっていきました。 しかし、昨今ではネットゲームの普及やゲームのサービス化に伴い、明確なエンディングが存在しないゲームが増加しています。そこでは多くの場合、サービス終了がエンディングと同義語になります。そこまでいかずとも、MMORPGなどで友達が一人、また一人と減っていくなど、コミュニティ崩壊がゲームをやめる理由になったという人も少なくないでしょう。いずれにせよ、あまり良

    ゲームの神様「ゼビウス」の遠藤雅伸が語った「人がゲームをやめる理由」 - エキサイトニュース
  • Haskellを愛する若者たちへ | POSTD

    この手紙は、”熟練者”ならではの知識を語るものではありません。新人かベテランかに関わらず、私たちの誰もが繰り返し学び、覚えておくべきことについて書いています。ここでは、一般的な傾向や、聞けばなるほどと思うような傾向、重要とされていることを新たに学んで興奮している時に見られる傾向を紹介します。また、学んだことの面白さや重要性を人にきちんと伝わるように話すことの難しさについてもお伝えします。この手紙はかなり具体的に書いています。一般的な話をするなら具体的なことも併せて話さなければ理解してもらえないと悟ったからです。これは代数的構造やその他の抽象的な概念についても言えることですね。この手紙には、私が頭に入れておきたい、また皆さんに共有したいアドバイスが詰まっています。インターネット上で適切とは言えない振る舞いをしている人に出くわした時、そんなことはめったにないでしょうが、そんな時に思い出したい内

    Haskellを愛する若者たちへ | POSTD
  • RailsでAPIをつくるときのエラー処理 - Qiita

    例外を利用して実装すると便利な場合が多い この投稿では、HTTP経由でJSONを返すようなWeb APIRailsを利用して実装するとき、エラーレスポンスを返す場合の処理をどう実装するとやりやすいのか、というニッチな話題に触れる。APIでエラーを返したいとき、即ち400以上のステータスコードと共にレスポンスを返したいような場合、どう実装するのが良いか。もしリクエストの処理中にエラーが検出された場合、それ以降の処理を行わずに直ちに中断してエラーレスポンスを返したいという場合が多いため、例外を利用して実装すると便利な場合が多い。 例外を利用しない方が良い場合もある 1つのリクエストに複数の問題が含まれている場合、先に見つけた問題だけを報告するようなエラーレスポンスを返すのか、それとも問題を抱えながらも進めるところまで処理を進めて報告可能な情報を全て含むようなエラーレスポンスを返すのか、という

    RailsでAPIをつくるときのエラー処理 - Qiita
  • RailsのCSRF対策の仕組みについて - (2015年までの)odaillyjp blog

    先日、Rails で開発しているときに意図しない InvalidAuthenticityToken エラーが発生して、すごくハマってしまいました。そのときに Rails のCSRF対策の仕組みについて調べてみましたので、ブログに残しておきます。 Rails のCSRF対策 Rails が生成した ApplicationController には以下の記述があります。 class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception end protect_from_forg

    RailsのCSRF対策の仕組みについて - (2015年までの)odaillyjp blog
  • Why Semantic Versioning Isn't

    Spurred by recent events (https://news.ycombinator.com/item?id=8244700), this is a quick set of jotted-down thoughts about the state of "Semantic" Versioning, and why we should be fighting the good fight against it. For a long time in the history of software, version numbers indicated the relative progress and change in a given piece of software. A major release (1.x.x) was major, a minor release

    Why Semantic Versioning Isn't
  • Transpec 開発記 – 前編 – blog.yujinakayama.me

    Transpecという、RSpecの古い記法で書かれたspecを、最新の記法に自動で書き換えるツールを作った。 最初のバージョン0.0.1をリリースしたのが2013年8月9日なので、すでに一年前になる。 先日のRSpec 3の正式リリースからもしばらく経って一段落したところだし、 この辺で一旦振り返って、 開発中のその時々で何を考えていたのか、忘れてしまう前に長々と残しておくことにする。 きっかけ そもそもTranspecを作り始めたきっかけは、 should記法を使っていた自分のプロジェクトのspecをexpect記法に書き換えようとしたところから。 これは2013年の7月下旬の話で、まだRSpec 2.99/3.0のベータ版も出ていない頃。 正直なところexpect記法が導入された当初は違和感があったし、 更にはThe Plan for RSpec 3も発表され、 「このままRSpec

    Transpec 開発記 – 前編 – blog.yujinakayama.me
  • JSON Hyper-Schemaのようなサービスディスクリプションがうまくいかない理由 - ぶろぐ。@はてな

    RubyKaigiの発表のために考えていたのですが、発表編に詳しく入れられなくなりそうなので、まとまりないですがブログに書いてみます。 SOAPでいうWSDL(Web Service Definition Language)のような、サービスのインタフェースを定義・記述するためのしくみを総称してIDL(Interface Description Language)と呼びます。 JSON Hyper-Schema*1もIDL、サービスディスクリプションの一種といえます。 WebのIDLは今までにもたくさん出てきて、しかしうまくいっていません。 なぜでしょう? @yohei さん曰く、 RESTは統一インタフェースなんだから、そこにさらにインタフェースを定義するのはおかしい (API Meetup #1 質疑応答より) WebAPIのこれまでとこれから from yohei これはどういうこ

    JSON Hyper-Schemaのようなサービスディスクリプションがうまくいかない理由 - ぶろぐ。@はてな
  • Linuxのmmap()を通して、アドレス空間の扱いを垣間見る - Qiita

    近況 飲んで帰ってきて、気づいたらこんなの書いていました。 ちょっと具体性に乏しいので、もう少し後でパッチを書きます。 (でも、明日は会社の歓迎会で飲んでくるのだ) 前回のあらましと今回見るところ 前回、仮想アドレスと物理アドレスの紐付けをする処理とそのデータ構造のページテーブルを見ました。 そして、今回はユーザ空間へのアドレス空間マップを行うmmap()を見ることで、仮想アドレス空間の扱いの一端をかいま見てみましょう。 mmapの実装 mmapは以下の実装である。 (厳密に言うと、システムコールのベクタではないので「システムコールの開始地点」ではない) asmlinkage long sys32_mmap(struct mmap_arg_struct32 __user *arg) { struct mmap_arg_struct32 a; if (copy_from_user(&a, a

    Linuxのmmap()を通して、アドレス空間の扱いを垣間見る - Qiita
  • http://impulse.luster.io/

  • Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察 | POSTD

    この記事を書き上げるには、相当長い時間がかかりました。来は今年の年明け、 Rubyの死 やデイヴィッド・ハイネマイヤー・ハンソンの TDDは死んだ がアップされて騒ぎになる前に投稿するつもりだったのです。昨年末に書いたツイートを見てください。 > Rubyにはもう飽き飽きした。理由はいろいろあるが、特にその副作用と、ステータスが可変なせいで大量のユニットテストを書かされるのにはウンザリだ。 @abevoelker Rubyの開発に関しては、大勢の人が心のどこかで何かおかしい、何かが欠けていると思っているようですが、たいていの人は責める対象を間違っています。Rubyで書いたアプリがとんでもない代物になったって? それはあなたがきちんとテストコードを書かなかったか、テスト駆動開発(TDD)の指針に則って開発しなかったからです。もしくは、正しいデザインパターンに切り分けるための知識が不足してい

    Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察 | POSTD
  • Javaプログラマから見たJavaScriptデザインパターン(導入編) - Qiita

    仕事などでJSを書くようになって少々経つが、Java信者で頭が固い僕にとってはどうもJSというのは柔らかすぎてしっくりこない部分が多い。 考え方を整理するにはデザインパターンを知るのが早いと、最近思い立ったので改めて調べてみた。 ということで、Javaは大体分かるし、JSも書くけどそこまで詳しくない人向け(つまり自分主体)にまとめておく。 今のところシリーズ化予定。 ※ JSの知識には自信ないので間違った点に気付いた方がいらしたらコメント等でご指摘いただけると助かります。 ※ デザインパターンとして挙げているコードは、個人的にアレンジしている場合がありますので、ご了承ください。 0.はじめに 編案内 内容に入る前に、予備知識をおさらい。要点ではないのでざっくり。 シリーズ案内 Javaプログラマから見たJavaScriptデザインパターン(導入編) Javaプログラマから見たJavaSc

    Javaプログラマから見たJavaScriptデザインパターン(導入編) - Qiita
  • Swift+有限オートマトンでPromiseを拡張する - Qiita

    前回のSwiftで有限オートマトン(ステートマシン)を作る - Qiitaの続きです。 ステートマシン(SwiftState)を実際に使うにあたり、何か分かりやすいサンプルを作った方が良いと思い、今回、JavaScriptでおなじみのPromiseクラスを再発明してみました。 Promiseについて Promiseについては、こちらの記事が参考になります。 JavaScript Promiseの JavaScript Promises: There and back again - HTML5 Rocks 一般的なPromiseライブラリの状態遷移は、Pending => Fulfilled or Rejectedの2パターンがあります。 が、機能としてややシンプルすぎる&n番煎じ感が否めないので、新たにProgress、Pause、Cancelといったインターフェースを追加して、複雑な

    Swift+有限オートマトンでPromiseを拡張する - Qiita
  • teratail【テラテイル】|ITエンジニア特化型Q&Aサイト

    teratailには、プログラミングに関する質問と回答を通して引き出される価値ある知識が集まっています。 もっと詳しく

    teratail【テラテイル】|ITエンジニア特化型Q&Aサイト
  • 改訂版: プログラマーが効果的な可視化を作成する (前編) - Qiita

    改訂版について (5/7/2019公開) この記事は、私がこちらに公開したもの中では最も読まれているようです。そこで、執筆後に気づいたこと、古くなった情報、新しい技術動向などを考慮に入れて改訂をしました。主な変更点は以下の通りです: 新しいセクションの追加 最近のの紹介 細かな表現の修正 この記事は複数のセクションに分かれていますので、前編から始め、順番にアップデートして行きたいと思います。何かお気付きの点などありましたら、コメント欄、もしくはkonoアットマークucsd.eduにお願いいたします。 はじめに この記事は、可視化の専門家ではない人がコンピュータを使ってデータ可視化を実際に行う場合に必要な、一般的なノウハウをお伝えするシリーズの第一回です。 前編: 効果的なデータ可視化とはどのようなものか? (稿) 中編: 分かりにくい可視化を避けるための手法の選択 後編: Part 1

    改訂版: プログラマーが効果的な可視化を作成する (前編) - Qiita
  • 主キーはインデックスではない - 設計者の発言

    仕事柄、奇妙なDB構造を目にすることが多い。どういう発想からそんな設計がされるのかを理解したいと思っていたのだが、モデラー仲間の秋里さんが先日うまい指摘をした。「主キーをインデックスみたいなものと勘違いしているからではないでしょうか」。インデックス(キー)というのは、レコードの並び順を規定するキーのことだ。 たしかに思い当たる節がある。「こんな順にレコードが並んでいれば処理上都合がよさそうだ」という考えで主キーが設定される。さらに主キーはユニーク制約でもあるので、重複が起こらないように「多め」に項目を突っ込んでおく。つまり「ユニーク制約をともなう代表的インデックス」程度に主キーが理解された結果として、グダグダなDB構造が出来上がるのではないか。 じっさい、昔こんなことがあった。{a,b,c,d}の複合主キーをもつテーブルXがある。ところが、別のテーブルYからテーブルXの特定レコードにアクセ

    主キーはインデックスではない - 設計者の発言
  • 職業としてのPerlを書き続けることの難しさとPerl教育革命 - はてな村定点観測所

    2014-08-26 職業としてのPerlを書き続けることの難しさとPerl教育革命 もうすぐ、世界最大のPerlの祭典・YAPC::Asiaですね。 私も2日間、慶應義塾日吉キャンパスまで遊びに行きます。 ただ、最近やはり正直Perlに関して思うところはあるんですよね〜。職業としてのPerlを選択できる道は年々狭くなっているなと。それこそ針の穴をラクダが通るよりも難しい。 以前、「ついに顕在化し始めたPerlリスク」なんて増田の投稿が出たりして、詳しい人から手斧が投げられたりしましたが、やはり年々Perlを採用する企業は増えていないし、YAPCのスポンサーを見ていても毎回ほぼ同じ企業が並びますよね。スピーカーも人気を集める人は固定化されてて、(Perlだけじゃない話をする場とはいえ)インフラ系の話題の比重も大きくなっています。 私は1999年にPerlの魅力に触れてから、ずっとPerl

    職業としてのPerlを書き続けることの難しさとPerl教育革命 - はてな村定点観測所
  • なぜクロージャ(Closure)と言うのか? - Qiita

    クロージャはわかりづらい。 なんでかと言うと、以下の2つです。 名前 定義がよくわからない Wikipediaさんなんかで調べると。 クロージャ(クロージャー、英: closure)、関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数で実現している。 関数閉包!! 関数閉包、意味不明すぎる。なんかこの字面が意味分からなくしようとしているような気配すら感じる。(とはいえ、じゃあどんな名前が良いかと言えば、わかりませんし。それに一般的には「クロージャ」で通っていますから、別にいいのですが。) 関数ヘイホウってなに?初めてクロージャを学ぶような僕は、もう、むしろ笑えます。ちなみに、その先の「関数オブジェクトの一種」とか「ラムダ式」なんかも知りません。 けど、JavaScriptのクロージャの事例は、とても分かりやすい。 関数の中に関数があります。

    なぜクロージャ(Closure)と言うのか? - Qiita
  • ソフトウェアの基礎

    単純型付きラムダ計算(Simply Typed Lambda-Calculus, STLC)は、 関数抽象(functional abstraction)を具現する、小さな、核となる計算体系です。 関数抽象は、ほとんどすべての実世界のプログラミング言語に何らかの形 (関数、手続き、メソッド等)で現れます。 ここでは、この計算体系(構文、スモールステップ意味論、 型付け規則)とその性質(進行と保存)の形式化を、 これまでやったのとまったく同じパターンで行います。 (扱うためにいくらかの作業が必要になる)新しい技術的挑戦は、 すべて変数束縛(variable binding)と置換(substitution)の機構から生じます。 STLC は基型(base types)の何らかの集まりの上に構成されます。 基型はブール型、数値、文字列などです。 実際にどの基型を選択するかは問題ではありま

  • タスクランナーの連続実行を抑止する: gulp.js, Grunt - Qiita

    MacWindowsのテキストエディタ・画像編集ツールを使っていると、ファイルの保存時に書き込みが2度続けて起きる(と判定される)場合があります。例えば、Espresso, Coda, SublimeTextほかを使っていて、ソースコードを保存する際に、タスクランナーのログを見ると2度走っているケースなど。 gulp.jsやGruntといった、Node.js系のタスクランナーでは、ファイル監視にgazeを使っています。このgazeに適切なオプションを渡せば、この問題は解決されます。以下、その説明です。 gulp.js の場合 通常、こんな感じでwatchしていると思いますが、第二引数にgazeのオプションを渡すことができます。 cf. 公式APIドキュメント var gulp = require("gulp"); gulp.task('watch', function(){ gulp.w

    タスクランナーの連続実行を抑止する: gulp.js, Grunt - Qiita
  • neue cc - A Beginners Guide to Reactive Extensions with UniRx

    どうも始めましての人は始めまして、@neueccといいます。この記事はUnity アセット真夏のアドベントカレンダー 2014 Summer!というイベントの23日目です。クリスマスのアレ!真夏に……!しかしクリスマスのアレは比較的脱落も少なくのないのですが、これは見事ーに続いてます。しかも日付が変わった瞬間に公開されることの多いこと多いこと。〆切というのは23:59:59だと思っている私には辛い話です……。さて、前日はnaichiさんの【うに部屋】Unityゲーム投稿サイトにアセット検索機能を付けてみたでした。便利でいいですねー、UniRxも使ったアセットとして沢山並ぶ日が来ると、いいなぁ。 Reactive Programming とは。と、ここで7/30に行われた【第1回】UnityアセットまみれのLT大会で使ったスライドが! LTということで制限時間5分だったんですが当然終わるわ

  • 私立プログラミングキャンプに行ってScala+PlayでWebSocket通信してみた - Lambdaカクテル

    どうも。Windymeltです。 僕は今はてなサマーインターンで京都に滞在しており、id:masawadaが私立プログラミングキャンプのお誘いをしてくれて僕も参加してきたのでそのレポートです。 私立プログラミングキャンプははてなオフィスで行われたため迷わず会場に来ることができました。会場では大量のレッドブルとサイボウズウォーターが配給?されてメンバーの戦意を高揚させていました。 このキャンプ、ひとたび自己紹介が終わればいきなり作業に突入するタイプのイベントのようです。事前に何もする目標を決めていなかったので恐怖以外のなにものでもありませんでしたが、なんと同じScalaユーザであるUAdachiさんに遭遇したためScalaプログラミングをすることにしました。わいわい。 今回の技術的目標はScalaによるWebSocketを利用したXFD(eXtreme Frrdback Device)の作成

    私立プログラミングキャンプに行ってScala+PlayでWebSocket通信してみた - Lambdaカクテル
  • 秋元@サイボウズラボ・プログラマー・ブログ: reCAPTCHA - キャプチャを利用した人力高性能OCR

    reCAPTCHA という新サービスはすごい。その構想力には感動させられた。 念のためにCAPTCHA(キャプチャ)について説明しておくと、スパムプログラム(bot)と人間のユーザを見分けるための簡単な(しかし機械にとっ […] reCAPTCHA という新サービスはすごい。その構想力には感動させられた。 念のためにCAPTCHA(キャプチャ)について説明しておくと、スパムプログラム(bot)と人間のユーザを見分けるための簡単な(しかし機械にとっては難しい)クイズのことだ。ある程度ウェブを使っている人なら、ネットサービスの登録時やコメントの書き込み時などに、読みにくく加工されたアルファベットを読まされたりした経験があるだろうと思う。 それらのサイトでは、あなたが人間にしかできないクイズを解いたのを見て、ユーザ登録やコメントの投稿を受け付けたりする仕組みになっているわけだ。文字を読む以外のC

  • ソフトウェアエンジニアリングにおける認知バイアス5つ | POSTD

    人間の論理は、私たちがプログラミングして毎日使っているマシンの論理とは違って完璧ではありません。人間は間違えますし、悪い精神的習慣を確立してしまいますし、エンジニアとして成功するための能力に悪影響を及ぼす認知バイアスをたくさん持っています。ソフトウェアエンジニアとして定期的に目にする一般的なバイアスのうち5つを見ていきたいと思います。 1. 根的な帰属の誤り 根的な帰属の誤りは、個人の行動を説明するにあたって、気質的または個性的な面を重視しすぎて、状況的な面を軽視しすぎる傾向を言う。対応バイアスとも。 (参照) これは私のお気に入りの認知バイアスです。”至る所で”見られるからです。道で誰かに行く手を遮られると、その人を完全に嫌なヤツだと思ってしまいますが、自分が同じことをしてしまう時は、相手が見えていなかったとか、会議があって遅刻できなくて急いでいたといった理由があります。誰かがバグを

    ソフトウェアエンジニアリングにおける認知バイアス5つ | POSTD
  • 書き始めはconcrete5を始めるなら今ですよという話だった雑文

    Facebookに書きかけていた雑文ですが長くなったのでこちらで。最近、身の周りで、WordPressでさえ理解していないのだから、まだconcrete5に手を付けるときではない…と言う声をよく耳にします。でも、WordPressをマスターするのなんて、そうそうできることじゃないですよ。当ブログのこんな記事やこんな記事を見ていただいてもいいですが、WordPressを深く理解するのはそれなりに大変です。 これはWordPressが難しいとかconcrete5がかんたんだという話に誤解していただきたくないのですが、考え方としてCMSの設計や構造について「理解しなくてもいい」と思うんですよね。むしろ「使える」ということが大事ではないかと思います。 WordPressであれば、テンプレート階層と言うものがあるんだな、WP_Queryにパラメーターを渡せばデータが取れるんだな、ループ内で関数を書け

  • これからGoを始める人のためのTips集 | The Wacul Blog

    こんにちわ。最近業務でGoを書いているのですが、3,4週間たち、だいぶ環境にも慣れてきたので、これからGoを初めようと思っている人向けにTipsを書きたいと思います。 間違いや改善点などあれば、 @tutuming まで教えていただけると大変ありがたいです。 インストール と設定 (OSX) http://golang.org/dl/ から、インストーラー (go1.3.1.darwin-amd64-osx10.8.pkg など) を選んで最新版をインストールしたら大丈夫です。自分の環境にあわせたインストーラ選んでください。 homebrewを使っている人は でもインストールできます。 $GOPATH とプロジェクトの作り方 Go のパッケージ管理には、 go get コマンドを使います。 go get github.com/aaa/bbb とすると、 github.com/aaa/bbb

    これからGoを始める人のためのTips集 | The Wacul Blog
  • OptionParser底力+ARGFを使ったコマンド作り - ザリガニが見ていた...。

    前回からの続き。マニュアルがあるのだから、ちゃんと読めばそこにすべてが書かれているのだけど、自分はマニュアルを読むのが苦手。それよりもサンプルコードを実行して、その結果を体感しながら覚える方が好き。自分にとってはそうやって覚えた方が、忘れずに記憶が後々まで残るのだ。 RubyのOptionParserの底力を知る - ザリガニが見ていた...。 RubyのOptionParserの使い方は、大体分かった。すると便利な機能を知った後では、以前のコードがずいぶん無駄な努力をしているように思えてくる。もっと楽して、もっと使いやすいコマンドに仕上げるのだ。 サンプルコード(悪い例) 以下のコードは、以前作ったコマンドのRubyコードである。 Closure Compilerを利用してJavaScriptを圧縮・整形する。 #!/usr/bin/ruby require 'optparse' req

    OptionParser底力+ARGFを使ったコマンド作り - ザリガニが見ていた...。
  • intro-to-aop

    複雑なアプリケーションではロギング、 トレーシング 、メトリクスといったサポートの機能により、関数にすぐ負荷がかかってしまいます。これらのコードブロックはあらゆるコードベース上でそれぞれ少し変形して繰り返し使用されるのですが、これを 横断的関心事(cross-cutting concerns) と言います。 アスペクト指向プログラミング (AOP)は、アスペクトと呼ばれるモジュール内にコードブロックを引き入れて、 関心の分離 (separation of concerns)を手助けします。 AOPの実装 Phoneクラス ^(1) 不自然な例だというのは承知の上で、 dial メソッド1つを使って簡単なPhoneクラスを構築してみました。 function Phone() {}; Phone.prototype.dial = function (friend) { var start =

    intro-to-aop
  • ストリーム表現とその変換 - ✘╹◡╹✘

    データをストリームとして表現する方法と、ストリームを変換する方法を紹介する。 ストリームはメッセージが流れる川である Pub/Subメッセージングモデルでメッセージを流すためのオブジェクトのことをストリームと呼ぶことにする。ストリームにはメッセージをPublishでき、またメッセージを受け取ったときの処理をSubscribeできる。例えばキーボードからの入力をPublishして、内容をコンソールに出力するような処理をSubscribeできる。 kamo.jsでストリームを表現する ストリームについて説明するために、kamo.jsというストリームを表現するためのライブラリをつくった。kamo.jsは、ストリームを作成するためのkamo.Streamというコンストラクタ関数を提供する。このコンストラクタ関数から作成されたオブジェクトは、publishとsubscribeというメソッド(※プロパ

    ストリーム表現とその変換 - ✘╹◡╹✘
  • RubyのOptionParserの底力を知る - ザリガニが見ていた...。

    コマンドは、以下のような書式でオプションと引数を設定して、実行する仕組みになっている。 例: コマンド名 オプション オプション オプション引数 オプション コマンド引数 optparser_test.rb -a -b VALUE --foo FILE_PATH 実際にコマンドを作ろうとすると、オプションの解析には手間がかかると気付く。 そのため、多くの言語環境にはオプション解析用のライブラリが用意されている。 Rubyのoptparserについて、基的な使い方は知っているつもりだったが... Rubyでコマンドの中身を作るまで - ザリガニが見ていた...。 ちょっと気の利いたコマンドにしようとすると、その使い方は謎だらけになった。 どうしたら苦労最小限でオプションを解析できるのか、調べてみた。 基 require 'optparse' OptionParser.new do |op

    RubyのOptionParserの底力を知る - ザリガニが見ていた...。
  • Rubyで知らなかったメソッドとかちょっとだけ - 惰眠と論理と指揮棒と

    2014-08-13 Rubyで知らなかったメソッドとかちょっとだけ 配列 今までこう書いてた (1..20).to_a こう書ける事を知った [*1..20] 添字 今までこうしてた 10.times do |idx| p "#{idx+1} ループ目" end こう書いたら素敵だった 10.times.with_index(1) do |idx| p "#{idx} ループ目" end if 数字 ずっともっといい書き方があると思ってたけどこう書いてた i = 10 p "hoge" if i >= 5 && i <= 15 やっぱりあった i = 10 p "hoge" if i.between?(5, 15) first, last めんどくさいなぁと思って書いてた arr = [*1..50] 5.times.map{ |idx| arr[idx] } 衝撃が走った arr =

  • setTimeout, setIntervalを乗っ取って爆速にする - 素人がプログラミングを勉強していたブログ

    setTimeout() vs ハッカー、仁義なき戦いによると function isNativeFunction(func, name) { for (var o in func) { if (o === "toString") return false; } var match = func.toString().match(/^function (\S+)\(\)\s*{\s*\[native code\]\s*}$/); return (match && match[1] === name); } setInterval = function(){}; isNativeFunction(setInterval, 'setInterval'); // false でsetIntervalが偽装されているか調べられると書いてあるが、そんなことはない。 自分が普段使っているブラウザはSa

    setTimeout, setIntervalを乗っ取って爆速にする - 素人がプログラミングを勉強していたブログ
  • 高速、高精度、省メモリな線形分類器、SCW - Qiita

    今回は機械学習アルゴリズム、SCW(Exact Soft Confidence-Weighted Learning)の紹介です。 まずはどれだけすごいか見てみてください。 使用しているデータセットはscikit-learnの手書き文字認識用のものです。 上がSCW、下がscikit-learnのSVCで学習、分類した結果です。timeは学習にかかった時間、accuracyは精度を表しています。 結果を見ればわかるように、SCWは非常に高速に学習することができます。 また、SCWは逐次学習が可能です。すなわち、データをひとつずつ入力しても学習することができます。つまり、データを全てメモリ上に展開して学習させなくてもよいのです。 精度はデータセットに依存します。というのも、SCWは線形分類器だからです。 線形分離不可能なデータに対してはSCWでは精度が落ちてしまいますが、線形分離可能、もしくは

    高速、高精度、省メモリな線形分類器、SCW - Qiita
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • JavaScriptでvarを並べること - ワザノバ | wazanova

    http://benalman.com/news/2012/05/multiple-var-statements-javascript/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 まあ、好みの問題もあるので、嫌な人にとっては嫌なんでしょうが、、 JavaScriptで、例えば先頭で var をまとめて定義 & 値を代入する際に、 var foo = 1, bar = 2; でなく、 var foo = 1, var bar = 2; と、varを並べたほうが、メンテ性も見た目を揃えるにもよいのではないかという、Ben Almanの2年前のブログが最近いくつかtweetされてたので、チェックしてみました。 そもそも、 複数varを並べるのは無駄だし、初心者っぽい。 単独varの方が見た目がよい。

  • SkypeやYammerよりも使いやすい!チーム向けコミュニケーションツール、Slackが超便利!

    皆さんはSlackをご存知ですか?Slackはチーム向けのコミュニケーションツールで、プレビュー版の段階から人気を集めていたのですが、2014年2月13日(日時間)ついに正式ローンチされました。私が所属しているGoodpatchは新しいものが大好きなので、最近試しにSlackを使い始めてみたのですが、これが当に便利!今日はその魅力を皆さんにお伝えしたいと思います。 Slackって何? Slackは、Tiny Speckという会社からローンチされたチーム用コミュニケーションツール。Tiny Speckは元Flickrの中心的メンバーによって作られ、CEOFlickrの共同創業者Stewart Butterfieldです。ネットスケープの創業者であるMarc Andreessenなどから投資を集めている彼らが、2013年8月にSlackをローンチし、HipChatやYammer、Skyp

    SkypeやYammerよりも使いやすい!チーム向けコミュニケーションツール、Slackが超便利!
  • JavaScript で流体シミュレーションを試してみるテスト - CX's Hatena Blog

    最近、Google から物理エンジンに関して面白そうなライブラリが登場したようなので jsdo.it で試してみました。 Googleがオープンソースの2D物理エンジンLiquidFun 1.1をリリース このライブラリは「Box2D」(2D の物理エンジンライブラリ)に、流体シミュレーション関連の機能を拡張したライブラリとなっているようです。 (ちなみに、JavaScript 版のライブラリは、C++ 版を Emscripten でコンバージョンしたものとなっているようです。) Wave Machine Particles Soup Soup Stirrer Impulse Rigid Particles Elastic Particles Surface Tension Theo Jansen サンプルを動かしてみるだけでも、結構楽しいので、興味がある方は試してみては如何でしょうか。

    JavaScript で流体シミュレーションを試してみるテスト - CX's Hatena Blog
  • MacのDeleteキーがなぜBackSpaceの動作なのか - 仮想と現実

    WindowsユーザーがMacを使うときにひっかかるポイントとしてよく「Deleteキーでカーソルの前が消される」というのがある。そりゃBackspaceだろ、あれ?BSキーがない。なんで?となっちゃうわけだ。解決策としてはDeleteで前の文字、Fn+Deleteで後ろの文字が消されるからそれうまく使ってねということになるけど、そもそもなぜDeleteキーしかなく、それが「前の文字を消す」動作なんだという疑問は残るだろう。 実はLisa及び初代Macintosh~Macintosh Plusまでのキーボードには「Delete」キーはなく、「Backspace」キーがあった。これがMacintosh II/SEのキーボードで「Delete」キーに置き換わったのだ。なので最初の頃、とにかく文字の編集に関しては「Backspace」の動作は後のWindowsユーザーのイメージと変わらなかっただ

    MacのDeleteキーがなぜBackSpaceの動作なのか - 仮想と現実
  • isValidの書き方 - Mitsuyuki.Shiiba

    きっかけ コードのネストを深くするな | anopara を読んで、 僕もネストは浅い方が好きだけどisValid…お前はダメだ。 - bufferings のコメント / はてなブックマーク って書いたら、@m_seki さんに"isValidダメなんだ。どう書けばいいの?"というツッコミを頂いたので。ちょい考えてみた。まぁ、元記事の主題とは関係ないところなので。ゆるりとね。 元々のんは、こんな感じ? Groovyで書いてみた。 class Data { def Count def Error def Result } class Validator { boolean isValid(Data a) { if(a != null) { if(a.Count > 0) { if(a.Error == null) { if (a.Result != null) return true; }

    isValidの書き方 - Mitsuyuki.Shiiba
  • srclib

    srclib is a hackable, multi-language code analysis library for building better software tools. srclib makes developer tools like code search and static analyzers better. It supports things like jump to definition, find usages, type inference, and documentation generation. srclib consists of language analysis toolchains (currently for Go, Python, JavaScript, and Ruby) with a common output format, a

  • Go言語のスタックとヒープ

    Go言語の スタックとヒープ najeira @ GoCon 2013 Autumn

    Go言語のスタックとヒープ
  • 開発者(個人)のためのJenkins - Git Plugin編 - Qiita

    はじめに 「開発者(個人)のための」としているのは、別に自分でやっても良いんだけど Jenkins に任せられるなら任せたい、くらいのモチベーションを表現したつもりです。 環境 Ubuntu 14.04 LTS Jenkins 1.573 Bootstrap になって雰囲気が変わりましたね 初期設定 Jenkins 初期設定 Plugin のインストール Git Plugin 依存しているPluginも自動的にインストールされます。 Git Parameter Plugin は、ビルド時に Extended Choice Parameter plugin の Single Select ようなパラメータ形式で、リビジョンやタグを選択できるプラグインです。 Git 初期設定 Git Install Git がインストールされていないなら、apt や yum でインストールしておいて良いでしょ

    開発者(個人)のためのJenkins - Git Plugin編 - Qiita
  • switch文を使ってはいけない

    昔Qiitaで書いた内容なんですが、PHPswitch文は悪名高い「==」演算子で比較を行います。 <?php switch (true) { case 0: echo '数字の0'; break; case '0': echo '文字列の0'; break; case '0.0': echo '文字列の0.0'; break; case true: echo '真偽値のtrue'; break; } このコードは「文字列の0.0」を出力します。大変分かりにくいですね。 この点はif ... elseif ...を使えば解決するんですが、switchで書きたくなるようなコードをelseifにするとおそらく読みにくくなるでしょう。 ではどうするか。 正解はオブジェクトのポリモーフィズム(多態性)機能を使うことです。 といっても、多態性で調べて出てくる記事とか書籍に関しては抽象的な説明が多い

    switch文を使ってはいけない
  • PHPのコーディングスタイルをPHP_CodeSnifferで修正する - Qiita

    PHP_CodeSnifferはPHPのコーディングスタイルをチェックするツールとして有名ですが、現在開発中の2.0系ではチェックだけでなく修正もできるようです。 Fixing Errors Automatically · squizlabs/PHP_CodeSniffer Wiki インストール 2.0系ではpharも提供されているので、 https://github.com/squizlabs/PHP_CodeSniffer/releases からphpcs.pharとphpcbf.pharをダウンロードしましょう。 $ curl -LO https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.0.0RC1/phpcs.phar $ curl -LO https://github.com/squizlabs/PH

    PHPのコーディングスタイルをPHP_CodeSnifferで修正する - Qiita
  • 単体テスト(画面単位のテスト)がクソらしいので思ったことを書いてみる - うさぎ組

    なんか2週間くらいずっと画面単位のテストを単体テストと呼んで、手動テストをする現場についていろいろ文句がSNSで流れていた。それについて思うことをバカスカ書く。 これは、誰かを批難したいわけでもなく、ただの感想である。言うなれば街の風景をみたときの日記だ。そうだよ。これは日記だよ? 要約 だいたいの話は僕が2,3年前にTwitterで言いまくった単体テスト/結合テストなんて存在しない - Togetterまとめに似ていると思ったけど、僕の狭い観測範囲では生産的な結論を迎えずに文句の固まりで終わって、こう非常にあーあっていう気持ちが残った。 あと、観測結果として 同僚や上司に加えてkyon_mmに「なぜその手法でテストをしたいの?ねぇ?なんで?」って聞かれても答えられるか。が相手を評価する目安だと僕自身が自覚した。 というのが大きかった。 単体テスト まず、最初に思ったのはTwitterで文

    単体テスト(画面単位のテスト)がクソらしいので思ったことを書いてみる - うさぎ組
  • プログラマが持つべき心構え (The Zen of Python) - Qiita

    はじめに この記事はstackoverflowのThe Zen of Pythonに関する質問と解答(CC BY-SA3.0 ライセンス)を訳したものです。 The Zen of Pythonの日語訳は"我々は「Python」に何を求めているのか?"を参考にしました。 The Zen of Pythonとは The Zen of Pythonとは、Pythonプログラマが持つべき心構えを簡潔にまとめたものです。 Pythonを書かないプログラマにとっても、これは大いに役に立つはずです。 ちなみに、"Zen"は日語の「禅」です。 最初から全文を読もうとする必要はありません。この記事にざっと目を通してみて、気になった部分を読むことをおすすめします。 全文はPythonインタプリタ上で The Zen of Python, by Tim Peters Beautiful is better

    プログラマが持つべき心構え (The Zen of Python) - Qiita
  • JPL(ジェット推進研究所)におけるLispの顛末 | POSTD

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

    JPL(ジェット推進研究所)におけるLispの顛末 | POSTD
  • Fisher-Yates Shuffle - Faith and Brave - C++で遊ぼう

    Fisher-Yates Shuffle – An Algorithm Every Developer Should Know てきとうに抜粋して書く。 以下のシャッフルアルゴリズムは間違っていて、 def incorrect_shuffle(items): for i in range(len(items)): randomIndex = random.randint(0, len(items)-1) temp = items[randomIndex] items[randomIndex] = items[i] items[i] = temp return items これには、以下の3つの問題がある: 偏る 偏る 偏る 実は1つだったけど、これは大きな問題だ。 Fisher-Yates Shuffle (Knuth Shuffleとも呼ばれる)の実装は、以下のようになる: def fi

    Fisher-Yates Shuffle - Faith and Brave - C++で遊ぼう
  • PHPerの書くコードの保守性・管理性が劇的に上がるのスマートな方法

    みなさんお仕事の進捗どうですか? 今日は ふと今こそ保守性・管理性が劇的に上がるPHPのスマートなコードの書き方まとめを俺が書くときじゃないだろうか。 — そーだい@初代ALF (@soudai1025) 2014, 8月 12 こんな軽はずみな発言をしてしまったが故にネットで触れては行けない3大炎上案件について触れる。 ※ネットで触れては行けない3大炎上案件とは? Excel関連(スクショとか) 宗教(エディタとか) PHP のこと。 で今話題の元ネタを既に@sue445さんが魚拓してくれてる。 「Hello! my name is 404 お探しのページはありませんでした!申し訳ありません。。」 http://t.co/MS8Xy0bCMz 魚拓とっててよかったw http://t.co/UvG3gzsPul — sue445 (@sue445) 2014, 8月 12 (炎上したら即

  • Padrino 覚書き - ataru_kodaka’s diary

    前準備 インストール ふつーに % sudo gem install padrino で。 プロジェクト作成 padrino のgenerate project コマンドで。-d で ORM、-e でレンダリングエンジンを指定。-b をつけると bundle までやってくれる。 % padrino g project sample -d activerecord -e erb ... 作った後に設定変えたい場合は .components をいじる。 ファイル構成 こんなかんじ。rails よりだいぶシンプル。 + app/ | + controllers/ | + helpers/ | + views/ | | + layouts/ | + app.rb + config/ | + apps.rb | + boot.rb | + database.rb + public/ | + (sni

    Padrino 覚書き - ataru_kodaka’s diary
  • JavaScript:ブロック構文の性能比較

    ブロックスコープを作る構文をちゃんと性能比較してみました。 ブロック構文の性能比較 前回の記事で書いたcreateScope関数もセットにしました。 function createScope(prev) { var newScope, Scope=createScope.Scope; if (prev instanceof Object) { Scope.prototype = prev; newScope = new Scope; newScope.__outer__ = prev; return newScope; } else { Scope.prototype = null; return new Scope; } } createScope.Scope = function(){ this.my = this }; ひとまずFirefoxでの測定結果をのせます。 ブロック自体の生

    JavaScript:ブロック構文の性能比較
  • 現場のフォーム - steps to phantasien

    このごろ仕事の進みが悪く、しかもまったくの自業自得で肩を落としている。 今日はそれをふりかえり明日への糧としたい。反省文。 仕事の進みは「遅い」だけ。動いてはいる。一歩一歩は正しい。 でも一歩を踏み出すまでが遅い。正しい一歩を踏み出せる、正しい姿勢をとるのが遅い。 背中を丸め足を引きずる。たとえばこんなふうに… Bisection ある昼下がりにバグ修正を頼まれた。リグレッション。ここ三ヶ月くらいで壊れたらしい。 リグレッションを直す「正しい」一歩目は、二分探索で原因のリビジョンを探す bisection 作業だ。 でもこのバグ、bisection が面倒そう。なんとなく原因の想像はつくからあたりをつけて直してしまおう・・・ ・・・半日たち、結局あたりはつかない。日が暮れてしょんぼり帰宅。 翌朝気を取り直し bisection をしたら 2 時間でリビジョンの特定がおわる。あらら。 しかも

  • 「抽象から学ぶ」に具体例を追加 - 西尾泰和のはてなダイアリー

    gihyo版「エンジニアの学び方」の第3章で、抽象化の必要性とその方法について学びました。その中の一つ、「抽象から学ぶ」が実例が足りなくてわかりにくいようなので、ここで具体例を追加してよりわかりやすく解説してみます。 「抽象から学ぶ」は「読者の抽象化を助けることを目的とした文章」を読んで、それによって自分の中での抽象化を促進する方法でした。では「読者の抽象化を助けることを目的とした文章」とは具体的にはどのようなものでしょう? たとえば「Xには3つの要素A、B、Cがある」などの記述は、これに該当します。具体的には「学び方には広い視野軸・深い理解軸・応用軸がある」などです。具体的な学び方にはいろいろな要素があり、いろいろな方法があり、個別の事例それぞれ違ったところがあります。その違いの一部をバッサリ切り捨てて見せることで、読者の中での抽象化を助けるのです。 このような文章を読んだ人は、その反応

    「抽象から学ぶ」に具体例を追加 - 西尾泰和のはてなダイアリー
  • AvalonからMVVM、そしてRxへ: GUIプログラミングの哲学の歴史

    MSテクノロジ知らんがな、とよしぞうに言われて、そういえばこの辺の話は外ではあまり聞かないな、と思ったので、ちょっと軽く振り返ってみる。 なお、Javaプログラマ向けに一部翻訳してるので、C# の実際とはちょっと違う。 かつて人々は、onclickでリクエストを発行しデータを取ってきて、その間はローディング中としてアイコンを回したりして、帰ってきたらアイコンを戻して取得したデータからtableを組み立てたりしていた。 このシーケンシャルな手続きプログラムは、非同期なGUIという物と大層相性が悪く、すぐにアイコンが回り続けたり途中で何か違う事をすると落ちたりといったバグを埋め込んでしまい、人々は悩んでいた。 GUIプログラムのバグはどこから来るのだろうか? それはページの動的な所から来る、という観察があった。 静的なhtmlはあまりバグらない。 一旦動く、という事が静的に確認されれば、それ以

    AvalonからMVVM、そしてRxへ: GUIプログラミングの哲学の歴史
  • Fluentdとログ収集のパターン - Go ahead!

    「ログを集めて保存する」と言うのは簡単だけど,ログ収集の構成にはいくつか方法があり,勉強会などでちょくちょく聞かれるので,いくつかのパターンについて書く. 「俺はもうバリバリログ収集やってるぜ!」という人は多分すでに知っていることが書かれているので,タブを閉じて良い. ここではログコレクタにFluentdを想定しているが,他のログ収集プロダクトにも適用出来るはず. ただ,Fluentdはタグベースのルーティングを持ち,単体でもキューのように動作させることが可能で,既存のものより複雑な問題を解決しようとしているので,少し工夫が必要かもしれない. Fluentdそのものについては公式ドキュメントや,Fluentdとはどのようなソフトウェアなのかを参考に. クライアントから直接保存する いきなりFluentdを使わないパターン.JavaScript SDKを提供している解析サービスやモバイル端末

    sh19910711
    sh19910711 2014/09/27
    "KafkaやKinesisなど信頼性のあるキューを間に置けば,ログをそれなりの期間保持しつつ,Consumerを複数用意することでストリームを分岐できる"
  • ソフトウェア開発の敷居は再び下がるのか - assertInstanceOf('Engineer', $a_suenami)

    なんとなく最近思ったこと*1。(ポエムです。) 言いすぎな気がするけどプログラマに向いてるかどうかを判断するのが難しいのは同意。初心者が「プログラミングやってみたいんです」って言ったときに背中を押してあげるべきかどうかはいつもすごく悩む。— 末並晃 (@a_suenami) 2014, 7月 29 あ、言いすぎってのはRTが言いすぎってことやで。— 末並晃 (@a_suenami) 2014, 7月 29 LLの台頭によってこの10年くらい(?)プログラミングの敷居はすごく下がったと思う。その点からはPerlPHPが果たした役割はすごく大きいと思うんだけど、それが再び複雑化しているような印象はあって、これから勉強しますって人が想像してるほど華やかではなくなるのではないか的な。— 末並晃 (@a_suenami) 2014, 7月 29 まあ、でも自分が期待しているそのさらに先の世界は、D

    ソフトウェア開発の敷居は再び下がるのか - assertInstanceOf('Engineer', $a_suenami)
  • 自作2D物理エンジンを作った話 - Qiita

    最近Unityを始めてあまりのできのよさに感動を覚えつつ、物理演算とかがあまりにも手軽に行えるのでさすがに仕組みをまったく知らずに使うのは問題だろうと物理シミュレーションの勉強をしました。 ゴールとしていた、実際に動くものが作れたのでそのまとめです。 ただ、あくまで勉強が目的なので軽量化などはしていません。そのため、結構冗長な書き方をしていて実際に使うにはだいぶ重いです。 [2019.09.10 追記] GitHubへのリンクを掲載していなかったので追記。 リポジトリの内容は以下から確認できます。 PhysJS2D 実際に作ったサンプル 実際の動作サンプル サンプルでは三角形と四角形、そして円との衝突判定を行い、衝突時に応答する部分まで作っています。 ここでは、この実装をしていくにあたって、躓いた点やメモなど自分が学んだことをつらつらと書いていきす。 シミュレーションパイプライン さて、物

    自作2D物理エンジンを作った話 - Qiita
  • "Reverse Engineering for Beginners" book

    The book is also known as RE4B and "Understanding Assembly Language". Written by Dennis Yurichev. News: Domain for sale: cryptography.re Discord server. How to start learning reverse engineering in 2023. Subscribe to my news feed Download PDF files English Russian French German Japanese Italian Polish Chinese (published by PTPress, 2017) vol1, vol2, more info. There is also partial translation: as

  • Universally unique identifier - Wikipedia

    The legacy Apollo NCS UUID has the format described in the previous table. The OSF DCE UUID variant is described in RFC 4122. The Microsoft COM / DCOM UUID has its variant described in the Microsoft documentation. To assist human reading the groups are typically presented in hexadecimal format where the groups are separated with the dash (-) symbol Textual representation[edit] Because a UUID is a

    Universally unique identifier - Wikipedia
  • パラメトリック – 平均律 / HEIKINRITSU

    僕は、はじめてコンピュータに触った小学生のころ、いわゆる「お絵かきソフト」に熱中していました。といっても、その熱中の対象はマウスを使って絵を描くことではなく、ソフトの機能についていた「虹色が出せるペン」や「クリックするたび違う形の木が生成されるツール」でした。こうした〈プログラムにより作られた独特のかたち〉になんともいえない魅力を感じていたのです。 コードによって淡々と生成された絵は、人が作りだした造形とはまた別の、静かな美しさを発散していました。 そして近年、一部のデザイナーやアーティストの間で、自分で直接プログラムを書いて作品をつくる試みが増えています。彼らはいわゆる写実的なCGには興味を示さず、プログラムだからこそ実現できる、あたらしい形を作ることを目指しているのです。 アート向けプログラム環境である processing や openFrameworks の登場が象徴的ですが、十数

    パラメトリック – 平均律 / HEIKINRITSU
  • 実践テスト駆動開発(GOOS)読んだ - Qiita

    実践テスト駆動開発を読んだ(和智さんいい仕事、ありがとう!)。 タイトル(GOOS = "Growing Object-Oriented Software, Guided By Tests")に、「テスト(TDD)」と「オブジェクト指向(Object-Oriented)」と「育てる(Growing)」が入っていて、ずっと読まなきゃと思っていた。出たときに角谷さんに「これは!」、と薦められたのに、機会を失っていたけど、最近、astahの開発でテストに悩みがあって読んでみた。 外から攻めるか、内からか テストを書いてプロダクトコードを育てていくという話なのだが、内側のテスト(ユニットテスト)と外側のシステムテスト(受け入れテスト、システムテスト、エンド・トゥ・エンド(E2E)テスト)をどっちを先に書くべきかいつも悩む。外側のテストを書いて、内側に進んでいくのか、内側から組み上げるか。設計の方向

    実践テスト駆動開発(GOOS)読んだ - Qiita
  • 大学院に入った時に知っておきたかった、ソフトウェアエンジニアとして学んだ9つのこと | POSTD

    3年前、私はバルセロナの神経科学の研究室で働いていました。被験者に電極を取り付けたり、認知体系の授業で講義をしたりと多忙な日々を過ごしていました。現在はソフトウェアの製作で生計を立てています。 もちろん科学研究をしていた当時も多くのソフトウェアを書きました。40GBの脳スキャンデータを解析するには、計算処理のプログラムを、気合を入れて書かなければなりません。私は常に優秀なプログラマでしたが、学術研究の職(および、私の約束された将来)に別れを告げて、 小規模ながらも野心的なスタートアップ企業 で働き始めるまで、気付かなかったことがあります。それは、ソフトウェアエンジニアであるということはどういうことか、ということです。そしてさらに重要なことですが、ソフトウェアエンジニアの業界に身を置くということはどういうことか、ということです。プログラミング言語やライブラリ、アルゴリズムやデザインパターンに

    大学院に入った時に知っておきたかった、ソフトウェアエンジニアとして学んだ9つのこと | POSTD
  • デザイナーと一口に言うけれど - LIFULL Creators Blog

    Apple原理主義者の大坪です。 最近 「UXUIは何が違うのか」 といった議論を時々みかけます。それぞれの言葉について、合意のとれた定義がないから正解はないのですが、この問題に対してのあれこれの議論は時として興味深いものになります。 というわけで昨日見つけた記事について。 記事の題名は"Recruiting a Designer? Here's What You Should Know" 「デザイナーを探している人が知っておくべきこと」 デザイナーという言葉はとても幅広いわけです。車などのプロダクトデザインもあれば雑誌のデザインもあり、web、アプリなどのデザインもある。この記事ではweb、アプリなどを対象にしたTech Industory(日語ではIT業界なのですかね)での様々なデザイナーの役割について書かかれています。 記事中それぞれの「デザイナー」が使っているツールとかもでてい

    デザイナーと一口に言うけれど - LIFULL Creators Blog
  • JUnit 4.12の新機能紹介まとめ - うさぎ組

    全国50万のJUnit4ユーザーさん。使っている言語とテスティングフレームワークののMLとGithubやBitBucketリポジトリを監視していると思うので今さらかもしれませんが、2014/7/30にJUnit4.12 Beta-1がリリースされました。 結構楽しい機能が追加されているので、見逃している方のために情報を共有させていただければと思います。 基的にリリースから抜粋しながら紹介ですがご容赦ください。 Release Notes junit/ReleaseNotes4.12.md at master · junit-team/junit · GitHub 全体の感想 JUnit4がおれの足元にやっと追いついたと思った。(今までJUnitとSpockを魔改造しまくってた。) テストランナー系 クラス階層化 JUnit魔改造コミュニティに朗報です。私たちのテストランナーでよしなにやっ

    JUnit 4.12の新機能紹介まとめ - うさぎ組
  • 無意識にダブルクリックしてしまうユーザー | Accessible & Usable

    公開日 : 2014年8月6日 カテゴリー : ユーザビリティ Web サイトの各機能 (リンク、ボタン、チェックボックス、ラジオボタン、セレクトメニューの選択、など...) は基的にシングルクリック (シングルタップ) で使うものです。ところが、ユーザビリティテストをしていると、クリック対象箇所 (リンクやボタンなど) を無意識的にダブルクリックしてしまう人が少なからずいることに気付かされます。 一般的な PC の OS 操作では、フォルダを開いたりアプリを起動したりなど、対象物を「探す」「実行する」際にダブルクリックが使われます。Web ページ上のリンクやボタンを叩くのも「探す」「実行する」行為の一種と考えれば、ユーザーがダブルクリックしてしまうのもわからないではありません。あるいはもっと単純に、PC 操作の中でダブルクリックとシングルクリックが混在することにややこしさを感じる (あ

    無意識にダブルクリックしてしまうユーザー | Accessible & Usable
  • 専業プログラマーが楽しいわけがない

    プログラムを書くひとが報われやすい時代が近づいているという意見を多く聞くようになりました。 しかしそれは、専業プログラマーが報われるという意味ではないとおもいます。 たとえば社長をやりながら、自分の会社のためのプログラムを書く。 たとえば農場主をやりながら、自分の農場のためのプログラムを書く。 そのように、自分の専門があって、その専門のために兼業でプログラミングをする専門家が、プログラミングをしない専門家よりも、報われやすい、という時代が来るということだとおもいます。 もちろんPHPゴリゴリとかではなく、Railsみたいなフレームワークに依拠して書くことが多いだろうとおもいます。 そういうフレームワークが整った現代は、兼業プログラマーが育ちやすい環境が整備されているとおもいます。 プログラミングが楽しいと思えないのは悪いことなのか という記事を読みました。 これは、他人に売るプログラムを書

  • コーディングスタイルガイドをみんなで議論するということ | mah365

    コーディングスタイルガイドとは、ある言語、あるフレームワークを使用するときに守る、コードの書き方のガイドのようなものです。システムに対してより抽象度の高い表現が可能になった昨今、コーディングとはシステムにおける設計そのものであり、コーディングスタイルガイドはその設計を支える標準化の仕組みと言えるでしょう。 コーディングスタイルガイドはシステムの品質を支える源泉 チームでコーディングスタイルを合わせるのには重要な意味があります。何より他人のコードが読みやすくなるし、読みやすければ表現したい処理に対してコードが妥当かどうかチェックするのに時間がかからない、つまり品質とコスト(時間)を両立して改善することができます。 ところでコーディングスタイルは随時進化するものです。使用している言語で表現できることもバージョンを重ねるにつれて広がっていきますし、何よりチームが時間を重ねるにつれて成長しています

    コーディングスタイルガイドをみんなで議論するということ | mah365
  • 「2つのボールをぶつけると円周率がわかる」らしいのでシミュレーションしてみた - 倭算数理研究所

    「2つのボールをぶつけると円周率がわかる」 だそうなので、ちょっと便乗記事を。 衝突回数が円周率(の桁をズラした値)になることの数学的証明まで追うのは大変そうなので、この記事では 衝突による速度の変化と衝突しなくなる条件を数式で書き下す 衝突回数はシミュレーションで求める という方針で。 衝突による速度の変化回数を数える衝突には以下の2つがあります: 質点同士の衝突 質点と壁の衝突 それぞれがどのように速度を変化させるのかを見ていきましょう。 2つの質点から壁に向かう方向を速度の正の方向とします。 質点同士の衝突参照記事には書いてませんが、2つの質点の衝突は完全弾性衝突(反発係数 )としていいんだと思います。 最初に動かす方の質点を 、最初は止まっている方の質点を とし、それぞれの質量を とします(このとき衝突回数が *1 になるというのが元記事で証明されたことだそう)。 これらの質点がそ

    「2つのボールをぶつけると円周率がわかる」らしいのでシミュレーションしてみた - 倭算数理研究所
  • 眼鏡なしのコードレビュー | POSTD

    例えば、あなたが驚くほど聡明な開発チームのメンバーで、コードレビューのみに一日の時間を確保しているとします。しかし作業を開始して2時間後、眼鏡を忘れてきてしまい、午前中はぼんやりとしたカラフルな表示を見つめていただけだったということに気づいたとします。さて、あなたはどうしますか? 家まで歩いて10分もかからないし、天気も良ければ、眼鏡を取りに帰るのが一番です。でも朝家を出るとき、攻撃的なスズメバチの群れが眼鏡の置いてある部屋に巣を作って、邪魔されたくない様子だったらどうしますか? そういう時はもちろん、コンタクトレンズを付けてきたふりをして、恥ずかしい思いをしないようにするのがよいでしょう。実際に読むことなく膨大な量のファイルを見分けることができるということを覚えておいて下さい。 参考コード 1 不安の種は隔離するべきだということに誰も異論はないでしょう。そしてもちろん、あらゆるクラスは一

    眼鏡なしのコードレビュー | POSTD
  • DMM.make - 熊野MAKE日記 - 家をつくる・1

    DMM.make - 熊野MAKE日記 - 家をつくる・1
    sh19910711
    sh19910711 2014/09/27
    “「ファミカセって額縁っぽいよね?」という友人との雑談の中から生まれた展示イベント『わたしのファミカセ展』は、ファミカセをキャンバスに見立て、理想のゲームラベルをデザインしてもらう参加型の”
  • ソフトウェアのバグを見つけたときにやってはいけないこと

    ソフトウェアのバグを見つけたときの対応には、プログラマとしてのセンスがけっこうあらわれると思っている。ぼくはセンスの無い人間の代表例みたいなものだから、ここにはぼくがよくやってしまう行動を思い返して書き、「ソフトウェアのバグを見つけたときにやってはいけないこと」とした。 バグを見つけたことを周囲に吹聴してはいけない ソフトウェアにバグを見つけることや、ソフトウェアのバグを踏むことは、基的に嫌なことだ。当にそうだろうか。 有名なソフトウェアが不可解な挙動をするのを見たとき、周囲のひとびとをデスクに呼んで、 「いやー、このソフト、マジでクソですよ。こんなバグがあるんです。ほら、ひどいでしょ」 と毒づいているとき、ぼくは口を歪めながら、ある種のよろこびを感じている。それは、他者のプレゼンに対して不備を指摘するときのよろこびにとてもよく似ている。いうなれば「鬼の首を取ってやったぞ」という気分だ

  • RubyとQML/Qt Quickでデスクトップ用GUIアプリを書けるgem「ruby-qml」を作った - Qiita

    ================ ruby-qmlという、QML / Qt Quickを使ってUIを記述し、Rubyで書いたロジックと組み合わせてGUIアプリを作ることを可能にするgemを作りました (gem名は'qml') 。 https://github.com/seanchas116/ruby-qml で公開しています。 今のところ、Ruby 2.0以降・OS X/Linuxに対応しています。 [追記] Qtは 5.2 以降に対応しています。 [さらに追記] Ruby 1.9.3に対応しました。 [2014-10-14] QML.application do ~をQML.run do ~に修正しました。 何ができるか? ruby-qmlでできるのは、 クロスプラットフォームのUI記述言語であるQMLを使ってQt QuickのGUIを書く Rubyでアプリのロジック部を書く それらを組

    RubyとQML/Qt Quickでデスクトップ用GUIアプリを書けるgem「ruby-qml」を作った - Qiita
  • DirectX 11の圧縮フォーマットBC1~BC7について(前編) - OPTPiX Labs Blog

    こんにちは。ウェブテクノロジの清水です。 米Net Applications社の調査によると、Windows XPは2014年4月の時点でも26.3%と高いシェアを保ってるようです。しかし、いくらユーザが残っているとはいえ、末端の開発者がサポートが終了したOSの面倒をいつまでも見ているわけにもいきません。 最近ではWindowsアプリケーションの動作対象OSからWindows XPが外されることも普通のことになり、ようやくWindows XPの束縛から解放された、と内心安堵している開発者の方も多いのではないでしょうか。 そして、3D系アプリの最低動作環境の見直しとなると、Windows Vistaは飛ばして、Windows 7とDirectX 11を最低動作環境にする、という選択もそれほど無茶ではないように思えます。 今回は、DirectX 11で利用可能な圧縮テクスチャについて、解説いた

    DirectX 11の圧縮フォーマットBC1~BC7について(前編) - OPTPiX Labs Blog
  • Swiftの関数の引数は、常に一つ - Qiita

    だとしたら、Swiftではカリー化は不要ということになってしまう。 すなわち、ざっくり言うとカリー化とは複数の引数を1つに減らすことを指します - Swiftで関数のカリー化(currying)入門 Swiftの関数は、つねに一つの値を受け取り、一つの値を返すのだから。 以下のコードを動かしてみれば、それがわかる。 func call<A,R>(f:A->R, a:A)->R { return f(a) } func id(i:Int)->Int { return i } func add(x:Int, y:Int)->Int { return x + y } call(id, 42) // 42 call(add, (21,21)) // 42 上記のcall()は、「『型Aの値を一つだけ取って型Rの値を返す関数』と『型Aの値』を取って『型Rの値』を返す関数」なはずなのに、「IntとIn

    Swiftの関数の引数は、常に一つ - Qiita
  • CoffeeScriptのリファクタリング - ワザノバ | wazanova

    http://blog.arkency.com/2014/07/6-front-end-techniques-for-rails-developers-part-i-from-big-ball-of-mud-to-separated-concerns/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 シングルページアプリもあり、それでなくてもフロント側のコードを書く機会は増えてきてますが、コードをうまく整理して、 簡単に、もっとテストしやすいコードを書く。 クオリティを下げることなく開発スピードをあげる。 ためのノウハウの一端を開発会社のArkencyがシェアしてくれています。 シリーズの初回は、シンプルなリファクタリングのケーススタディ。 CoffeeScriptのコードが、DOM変換、イベントハン

  • Node Express でそこまで取り上げられていないあれこれ

    くまくらです。 私は API サーバを実装する際に Node の Express を利用する事が多いので、今回は使っていて知った事のうち、世間的にはポツポツ程度にしか取り上げられていない事柄をいくつかあげていきます。簡単に Express を利用している初心者レベルを主な対象としています。 前置き 以後の文中にて登場する名称/変数値は、Express API リファレンス を始めとした各種ドキュメント内でも扱われているものと同等に、以下のインスタンスを指すこととします。 app: Application インスタンス req: Request インスタンス res: Response インスタンス routes: Application インスタンスによるURLルート定義にてマッピングされた Middleware app, req, res のライフサイクルについて 当に基的なことです

  • Island Life - 先ずデータありき

    About 南の島のプログラマ。 たまに役者。 Practical Schemeの主。 WiLiKi:Shiro 最近のエントリ 無限cxr高校受験Defense振り返ってみると2019年は色々学んで楽...覚えるより忘れる方が難しい(こともある)眼鏡のつると3DプリンタIris Klein Acting ClassSAG-AFTRA conservatory: Voice Acting創作活動って自分を晒け出さねばならないと...ループを使わずに1から100までMore... 最近のコメント shiro on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/14)1357 on 歳を取ると時間が速く過ぎるのは、新しいことに挑戦しないから? (2023/03/01)ベアトリーチェ on ハイポハイポハイポのシューリンガン (2022/04/02)ベアトリーチ

    Island Life - 先ずデータありき
  • GitHub - severin-lemaignan/vim-minimap: A Sublime-like minimap for VIM, based on the Drawille console-based drawing library

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - severin-lemaignan/vim-minimap: A Sublime-like minimap for VIM, based on the Drawille console-based drawing library
  • GitHub - whitesmith/rubycritic: A Ruby code quality reporter

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - whitesmith/rubycritic: A Ruby code quality reporter
  • x64dbg

    Open-source Intuitive and familiar, yet new user interface C-like expression parser Full-featured debugging of DLL and EXE files (TitanEngine) IDA-like sidebar with jump arrows IDA-like instruction token highlighter (highlight registers, etc.) Memory map Symbol view Thread view Source code view Graph view Content-sensitive register view Fully customizable color scheme Dynamically recognize modules

  • libchanを読んだ - 世界線航跡蔵

    libchan を読んだのでまとめてみる。 libchanとは libchanはdockerに使われているライブラリの1つで、先月の DockerCon で発表された。 非同期かつ一方向の通信チャネルをインプロセスでもネットワーク越しでも扱えるというGoライブラリである。 一方向とはいうものの、チャネル自体をデータに添えて他のチャネル越しに送れる。なので、返信や待ち合わせが必要ならば自分宛のチャネルを送って相手に使ってもらい、自分はそのチャネルの上で待機していれば良い。 早い話がGo言語の機能であるチャネルをネットワーク対応したようなものだ、と書いてある。 DockerはこのDockerConではDocker 1.0に加えてlibcontainer, libchan, libswarm, Docker Hubを発表していて一応キーノートの話題の1つではあったものの、 個人的にはlibswa

    libchanを読んだ - 世界線航跡蔵
  • オブジェクト指向とは結局メンタルモデルのモデリング手法である - assertInstanceOf('Engineer', $a_suenami)

    きしださんのエントリが話題です。 オブジェクト指向は禁止するべき - きしだのはてな 「禁止するべき」とはまた随分と煽りタイトルですねと思いつつも、内容自体はとても納得のいくものでした。 ただ「オブジェクト指向」というのはいろいろな観点で語られることが多く、多少モヤモヤとはしているので僕の考えを書いてみようと思います。 なお、きしださんご自身は以下の補足エントリで立場は明確にされています。エントリはこれを否定するものではありません。あくまで違った立場からの意見です。*1 オブジェクト指向について - きしだのはてな 参考までに、ぼくの基的な定義は、ランボーの「データ構造と振る舞いが一体となったオブジェクトの集まりとしてソフトウェアを組織化すること」という定義に従っています。そのようなオブジェクトが単体ではなく組織化されるということが重要です。オブジェクト指向を勉強するとはそのような組織

    オブジェクト指向とは結局メンタルモデルのモデリング手法である - assertInstanceOf('Engineer', $a_suenami)