
Web の場合は View と Controller の違いははっきりしてます。 View は html ページとその作成を担当します。 CGI は アドレスとパラメーター(アドレスの ? の後など)を受け取り、処理を行います。 その受け取り部分が Controller です。 Model と View ではなく、なぜ MVC としたのでしょうか ? 『 GoF 本』 では Controller を分ける利点をいくつか挙げられています。 キーボードの応答を変えたり、メニューからの呼び出しに変更するとき、表示方法を変更しなくていい。 入力イベントを無視するといったことをコントローラーのインスタンスの入れ替えで可能。 その他にも "View を入れ替えれば、 PC アプリ、 Web アプリでも使えるように" という理由もあります。 ちょっと無理そうな話ですが、例えば、 PC アプリが次のような
Appleは21日、iOSのソフトウェアアップデート7.0.6をリリースした。 iOS 7.1が早ければ3月中旬にもリリースされるとみられていたが、SSL接続の検証に関して、半月以上も待つことができない重大なバグが見つかったためだ。 SSLとは、「ウェブサイトで入力する個人情報やクレジットカード情報などを暗号化し、安全に送受信する技術」(Symantec)だ。データを安全にやりとりするために利用されている非常に重要な技術となっている。 そして今回、クライアント(ユーザ側)とサーバ(ウェブサイト側)の間をSSL接続する際のプログラムに、「BASIC初心者でも一目で分かるようなミス」(Wired)が見つかり、修正されることになったようだ。ミスがあったのは、以下の部分。 Appleが公開しているソースコード 「goto fail;」が2行続けて記述されている箇所に注目してほしい。2行目の「got
最近話題の エンジニアよ、ゼネラリストなんて目指すな!―VASILY 金山裕樹のキャリア論(http://japan.internet.com/busnews/20121130/3.html)を見て・・・ コードを書くことが目的化しちゃってる人も多いので全否定するつもりはないけど、コードが汚くても「アイツがいれば勝てる」と思わせる人間を素人判断で雇うことが如何に危険かプログラマ視点でまとめてみる。以下何度も見てきた典型的な失敗パターン、設計と実装が完全に分業化されてる分野は知らないけどWeb業界などそうでない所のお話。 手抜きプログラマは人を騙す非エンジニアを騙して手抜きするのは簡単。余程のヘタレでない限り手抜きをしても絶対にばれない。コードにコメントがなくてもモジュール化されてなくてもコピペ満載でもマジックナンバーだらけでも動いてさえいればユーザーは気にしない。 手抜きプログラマの評価は
ref: https://github.com/mame/radiation-hardened-quine 放射線はメモリエラーを引き起こすらしいです。そんな放射線が飛び交う過酷な環境でも、できることなら Quine したい。 ということで、プログラム内の 1 文字をランダムに消しても元のプログラムを出力する、なんともロバストな Quine を書きました。*1 何を言っているかわからないと思いますが、こんなふうに動くものです。 # ランダムに 1 文字消すスクリプト $ cat mutate.rb src = $<.read src[rand(src.size), 1] = "" print src # rrquine.rb からランダムに 1 文字消したプログラムを生成する $ ruby mutate.rb rrquine.rb > broken.rb # 壊れたプログラムを実行する (
21:07 09/03/26 zipWithN twitterでいけがみさんが張ってらした論文が面白かったです。 map f [a1, a2, ..., an] ==> [f a1, ..., f an] zipWith f [a1, ..., an] [b1, ..., bn] ==> [f a1 b1, ..., f an bn] zipWith3 f [a1, ..., an] [b1, ..., bn] [c1, ..., cn] ==> [f a1 b1 c1, ..., f an bn cn] ... zipWith7 f [a1, ..., an] [b1, ..., bn] ... [g1, ..., gn] ==> [f a1 b1 … g1, ..., f an bn … gn] Haskell98 の標準ライブラリの関数ですけど、 1引数関数 f と1つのリスト as
2017/01/10 誤字脱字を修正しました 2016/11/07 内容を修正しました 2010/09/17 文章を修正しました 一般的に、parallelは並列、concurrentは並行と訳されます。検索してもずばり書かれた物がなかったので、僕なりの理解を書いてみます。 (注:言葉の定義の問題なので、複数の流儀があり得ます。端的に言えば、いわゆるCPUのSIMD命令を「並行」と見なすかどうかに違いが現れます) 参考リンク: http://d.hatena.ne.jp/NyaRuRu/20060129/p2 http://d.hatena.ne.jp/muimy/20070322/1174526368 一番妥当(だと思う)定義 一言で言えば、 Concurrent(並行)は「複数の動作が、論理的に、順不同もしくは同時に起こりうる」こと Parallel(並列)は、「複数の動作が、物理的に
CoffeeScriptの関数は明示的にreturnするべき | CreativeStyle 本当に遅いのか、それを確かめましょう。 適当にでっちあげたコードです f1 = -> for i in [1, 2, 3] for j in [4, 5, 6] i + j f2 = -> for i in [1, 2, 3] for j in [4, 5, 6] i + j return console.time "f1" for i in [1..100000] then f1() console.timeEnd "f1" console.time "f2" for i in [1..100000] then f2() console.timeEnd "f2" 実行してみます $ coffee hoge.coffee f1: 105ms f2: 4ms 約26倍違う、ということがわかります。
(プログラマー以外の普通の人も是非見ていってください) プログラミングをしていると様々な英単語と出会いますが、そこで使われる単語の意味は日常的に使われる意味のごく一部だったりします。プログラミングでしか使われない意味だけを覚えていると、実際に英文を読むときに困ったりします。この記事では、今まで私がプログラミングで出会った英単語のうち、他の意味もちゃんと知っておいたほうが良いと思ったものをまとめました。一問一答のクイズ形式です。 しかし、タイトルで「プログラマーが間違えやすい」と書きましたが、書いていくにつれてプログラミングとあんまり関係なさそうな単語も並べてしまいました。プログラマー以外の人も自分の語彙チェックとして利用してもらえれば幸いです。 問題文は、格言・名文から引用すると印象に残って良いかなぁと思い、BrainQuotes から殆どを持ってきました。By~が明示されてないものは自分
About ★「魔法言語 リリカル☆Lisp」はノベルゲーム風のLispチュートリアルです。 "アリサ"や"すずか"達と楽しくLispを学べます。 全12話構成で各話の最後には練習問題が用意されています。 Lisp処理系にはNScripter上で動作するLispインタプリタであるNScLisperを使用。 別の処理系をインストールする必要はありません!! Lispとは ★CやC++、Java、BASIC、Perl、Ruby、PHP、Python、ML、Haskellなどと同じプログラミング言語の一つです。 マサチューセッツ工科大学のJohn McCarthy教授を中心とする研究グループによって開発され、1962年に発表されました。 LispとはList Processorの略で名前通りリストの処理を得意とします。 このことから人工知能の開発に多く用いられています。 NScLisperとは
Statically Recompiling NES Games into Native Executables with LLVM and Go I have always wanted to write an emulator. I made a half-hearted attempt in college but it never made it to a demo-able state. I also didn't want to write Yet Another Emulator. It should at least bring something new to the table. When I discovered LLVM, I felt like I finally had worthwhile idea for a project. This article pr
ハートビーツ最年長エンジニアの滝澤です。以前、弊社CTOにシニアおっさんエンジニアから若手エンジニアに向けて何か書いてくれと言われた気がしたので、アトミック(atomic)なファイル操作について3編に分けて紹介します。この内容は弊社の社内勉強会で話した内容をまとめ直したものです。 そのファイル、安全に更新できていますか?(アトミックなファイル操作:前編)←今回 そのファイル、安全に作成できていますか?(アトミックなファイル操作:中編) そのファイル、安全にロックできていますか?(アトミックなファイル操作:後編) 今回は「みなさん、安全にファイルの更新ができていますか?」ということについて、考えてみましょう。 あなたはあるサーバ上のファイルの更新を依頼され、もらったファイルをサーバ上でコピーして上書きしました。しばらくして、データに異常が発生したので調べて欲しいと言われました。さて、何が起き
ダックタイピングという考え方は間違ってると思いませんか? http://ja.wikipedia.org/wiki/%E3%83%80%E3%83%83%E3%82%AF%E3%83%BB%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0 今のオブジェクト指向言語はダックタイピングが当たり前、Javaのinterfaceは古い、 という意見をネット上で見かけたのですが、正しいと思いますでしょうか。 かつてC言語とPerlしか知らなかった私は、Javaのinterfaceを知って衝撃を受け、 そこからポリモーフィズムなどのオブジェクト指向設計を意識するようになりました。 クラス型が違えど同じメソッドを持っていれば同様に処理する、というダックタイピングのメリットは私には理解できません。 異なるクラスで、たまたま名前とパラメータが同じでも、中身の動作が違う
概要 Excelはビジネス用途だけでなく、高価な開発ツールを揃えなくとも、本格的なビデオゲームを製作するプラットフォームとしても活用できます。本書は、Excel VBAを使ったロールプレイングゲームの製作を通じて、少しずつレベルアップをしながら、ゲーム製作の知識を学ぶことができます。また、ROMにはサンプルファイルの他に作成補助ツールと画像素材を収録しているので、この1冊でゲームを作成できいます。 目次 序章 サンプルゲーム「真・魔討伝」の概要 序章-1 サンプルゲーム「真・魔討伝」とは サンプルゲーム「真・魔討伝」の概要 「真・魔討伝」の世界地図 システム要件 序章-2 サンプルゲームを起動しよう セキュリティの設定を変更する 序章-3 サンプルゲーム「真・魔討伝」の遊び方 サンプルゲーム「真・魔討伝」の基本操作 ゲームを開始する 主人公の基本操作 住人と話す トレード(売り買い) 道具
ちょうど一年前の今日、私はWebScoketを利用したLove Languages?(通称lovelang)という小さなサイトを公開しました。 Love Languages? プログラミング言語が好き? lovelangの存在はTwitterなどを通して瞬く間に全国のプログラマの間で共有され、その日一日彼らはコーディングそっちのけで画面に向かってクリックし続けたのです。その時の様子は以下にまとめてあります。 LoveLangの熱き戦い 多くのプログラマはlovelangを楽しんでくれたのですが、一方で一部のプログラマからは不満の声が聞こえてきました。 > 同期に http://t.co/83heKHXf を見せたら、「C#ねえとか喧嘩売ってんの」と申されておりました。 > 選択肢に悪意を感じる QT @akineko: なにこれこわい… http://t.co/lq3QRvXB > 選択肢
萩谷先生の「Excel でプログラムを書く」という原稿が話題に挙がっていたので、僕の知る範囲で、研究の文脈をちょっとご紹介します。 プログラミング環境としての Excel という考え方は、文字列ベースの開発環境に慣れた人にはちょっと頓狂に聞こえるかもしれませんが、Microsoft Research Cambridge のSimon P. Jones 氏 (2003-2004 年あたりに関連研究)など、MS の中の人もかなり自覚的に極めようとしてきた節があります。最近の例だと、Excel 2013 から導入されたFlashFillという機能もプログラミング言語の研究が背景にあります。 Excel に限らず、関数をサポートするスプレッドシートは関数型プログラミングを可能にするデータフロー言語の一種です。データフロー言語というと、ノード間の依存関係が有向辺で結ばれた Visual Progra
2020/10/18 エンジニア D4DJ Groovy Mix オープンベータ開始 2020/10/18 DJ 秋葉原(を夢見る)パラダイスレイディオ Vol.1 @ twitch配信 2020/10/25 エンジニア D4DJ Groovy Mix リリース 2020/11/14 DJ UNDER Freaks 2nd anniv. @ 渋谷Cafe W (渋谷WOMB 1F) ゲームプログラミング未経験の素人が、Unityを使って7日間1日1本クソゲーを作ってみて、気がついたことをまとめてみました。 ※2017/01/21 更新 VRでも7日間クソゲーを作り続けてみました! 【Unity】あの素人がOculusでVRクソゲーを7日間作り続けてみた | uinyan.com ※2013/12/28 更新 後日談も書きました!あわせてどうぞ! 【Unity】クソゲーを作って晒したら世界が
すこし前に、コードの字面について書いたので、いろいろな言語で共通して頻出しそうなパターンを例に、等価なコードを書いてみた。 課題設定 配列の各要素を関数に渡すループ手続きを書け。 要素は辞書やオブジェクトで、関数は引数の内容を加工するかもしれない。 ループブロック内のロジック追加を容易にするために、要素を一時変数で参照すること。 いろんな方法論(単位処理をストラテジとして受け付ける集合演算用ライブラリとか?)はあれど、構造化プログラムの延長にあるかぎり、現実的には書き下しに勝る選択肢はないと思うので、言語を問わず比較できるかと思います。分岐だと、書き下しと多態のどっちがいいかは、言語の選択や状況(あと、好みやスキルに起因する感情)によるので。 ややこしいかな?要するに、「公平に言語を比較しようとすると、foreachが得意かどうか比べるのがいいと思う」ってこと。 記述性の評価の比較基準は、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く