日付を扱う処理についていろいろまとめたついでに、わりと簡単なことだけど知らないと落とし穴にハマる系のネタを。 日頃いろいろな処理を書いていて、現時刻を扱うこともは少なくないはずです。ですが、これを適当にやっていると困ることが多々あります。 実行中に「現時刻」を元にした処理が食い違う 例えばこんなコード。ログ集計とかやってるイメージです。 class Analyzer(object): def analyze(self): logfile = datetime.datetime.now().strftime('my_log_file.%H') self.save(self.analyze_logfile(logfile)) def save(self, result): now = datetime.datetime.now() self.result[now.hour] = result
これまでのあらすじ 新人の力量を測るための課題としてオセロの作成を指示したが、 指示した当人が作れないようでは話にならないので実際に作り始めた。 一先ず盤面が4×4で黒も白も人間が指す一人二役の寂しいオセロは実装できたのだが、 快適に遊ぶには大きな問題が潜んでいたのであった。 実は4×4で既に重い問題 実際に前回作成したオセロを実行すると、 ゲームが遊べるようになるまでに割りと待たされます。 それもそのはずで、あの実装は ゲーム中で取り得る局面を予め全て列挙 していたからです。 しかも4×4という最小限の盤面のオセロですらゲーム中に出現し得る局面 = ゲーム木に含まれるノード数は 284,881個 あります(※回転すると同じになる盤面等は個別に数えて、同一盤面でも手番のプレイヤーが異なるなら別と数えて、パスした場合も1個と数えています)。 そりゃあ待たされるに決まってますし、無闇矢鱈にメモ
As much as choice of a font is subjective there are important criteria to consider when choosing a programming font. The characters should be clear, easy to read, in cases of clashing ones such as 1, l, i or O, o, 0 easily distinguishable, differences between different kinds of brackets, quotes and parentheses should be clear, punctuation should be emphasized and they shouldn't break up words or s
By iLikeSpoons 「年輩のプログラマーはテクノロジーの急速な変化についていけず、ソフトウェア開発から外れてしまう」という考え方が存在しますが、ノースカロライナ州立大学の研究によって、新しいソフトウェア・プラットフォームにおいても年輩プログラマーは若い同僚よりも知識があり、プログラミングのスキルは進歩し続けていることがわかりました。 NC State News :: NC State News and Information » Older Is Wiser: Study Shows Software Developers’ Skills Improve Over Time http://news.ncsu.edu/releases/wms-murphyhill-age-2013/ 研究者たちはプログラミング技術に関するナレッジコミュニティであるStack Overflowで8万
メモリリークに悩まされている技術者は多いだろう。メモリリークが嫌でGCという技術が開発されたといっても過言ではないし、歴史的にはC++からJavaへシフトが起きた大きな理由のひとつといっていい。Unix系の簡単な定義でいえば、ヒープ領域を指すポインタ(アドレス)をロストしてしまえばそのメモリはもう漏れたといってよい。たとえばこういったコードだ。 struct { int i; char c; } spam; int main(){ void* p; int i; for(i=0; i<1024; ++i){ p = malloc(sizeof(struct spam)); } pause(); } このコードではpause(3)の時点で約5KBのメモリが漏れている。free(3)を使えばメモリをOSに返却できるが、アドレスが分からないので返却できない。 ところが、ここでいいたいのは、メモリ
CM iOS部隊所属の平井です。今回は前回の記事「OpenCVを利用したリアルタイムフィルタリングの基本」で作成したOpenCVを利用したリアルタイムフィルタリングを行うためのプロジェクトと、結構前の記事「OpenCVで写真を漫画風に加工しよう 〜実装編〜」で作成した漫画風フィルタを組み合わせて漫画風ビデオカメラを作ってみましょう! では早速。 ちなみに今回は以下の環境を前提に説明します。 Mac OS X 10.8 Moutain lion Xcode 4.6.1 iOS SDK 6.1 iPhone 5 サンプルプロジェクトのダウンロード 今回紹介するiOSアプリのソースコードをGitHubにあげてあるのでダウンロードしてください。 hirai-yuki/RealTimeManga 実機につないでプロジェクトを実行すると、以下のように動画が漫画風になるはず。 今は表示をいい具合にするた
みなさんはコーディング規約を利用していますか。 個人で開発している時はオレオレルールで良かったのですが、 複数人で開発するようになると共通のルールがあった方がストレス無く開発が出来るようになります。 WEB系の言語のコーディング規約について、調べ物が必要だったので、 まとめたものをブログでもシェアします。 HTML・CSS Google HTML/CSS Style Guide の推奨ガイドラインまとめ HTML5 コーディングガイドライン(HTML5)ver1.0 JavaScript JavaScriptのいろいろなコーディングルールをまとめてみた PHP PHPのコーディング規約 PSR-0、PSR-1、PSR-2、PSR-3とは WordPress コーディング基準 Pear Manual :: 標準コーディング規約 Zend Framework PHP 標準コーディング規約 Ca
すごいアバウトに言うとプログラミングするゲーム。(日本語版あり。設定に言語設定があるのでそこで設定すれば初めから日本語が使える。) SpaceChemの公式サイト → SpaceChem たとえば水(H2O)を作るためにOにHを2個くっつけるためにどういう風にデバイスを設置していけばよいか、みたいな機械のフローチャートを書く感じのゲーム。すごくプログラミングっぽい。ただ、このゲームに化学物質や化学式の知識は一切必要ない。幾何的にどういう配置にすればよいかというのが常に画面に表示されてるので。 結合するだけじゃなくて化学物質の分離の問題もある。以下の問題はフッ素(F2)をF単体に分離する機械を作れというもの。 このゲームは音楽がまじでかっこいい! 概要を説明すると、赤と青の二つのレーンがあって、それぞれの上をクレーンみたいなのが動く。この赤と青の線は自在に配置することができる。そしてその線上
メリークリスマス! PHP Advent Calendarもいよいよ24日目に突入です。 昨日はxhprofについてでしたね。僕もパフォーマンスチューニングの際に使っています。手軽に利用できるのでお勧めです。 さて、このエントリーでは表題の通りMVCについて書かせていただきます。これは、PHPカンファレンス2012&WordCamp Tokyo2012合同LT大会で発表した「やはりお前らのMVCは間違っている」で煽るだけだったこの問題をきちんと解説するものです。 この発表資料を公開するとPHPの枠を超えて広く閲覧いただき*1、また多くの方から突っ込みを戴きました。「LTだから」と言って逃げていた回答をして、気持ち新たに新年を迎えようと思います。 MVCとはなんなのか 間違いを指摘する前にMVCがそもそもどういうアーキテクチャであるのかを確認しなければいけません。 MVCは1970年代にパロ
はじめに こんにちは、動画配信界の情弱です。年始からStackOverflow眺めてたら超絶便利な質問に神回答がされてたので忘れないうちにメモっておく。2012年どっかで役に立てばいいですね。 参考 オリジナルはこちら。ここではコメントにパラパラと載ってたので、まずは直近1ページ目だけにあったものを1個のリストにまとめてみた。ほぼGeorge Stocker氏による回答を載せただけだけど。あとちょっとだけ自分で和訳とか加えたので、知っているものがあればコメントに載せて下さい。追加します。まだDとかFactorとか載ってないし、Pythonも全然足りないし。 API Only - Stack Exchange もしかするとバージョンが古かったりするものもあるかも知れませんが、それもコメントで教えてもらえるとその旨追記します。 他にも過去に挙がったもののリンク ReadWriteWebのプログ
動機 Subversionで困ってない ぶっちゃけSubversionで全然困っていませんでした。 コードレビューはちゃんとやっていたし、マージ・ブランチングも自作シェルスクリプトのおかげてスムーズにやれていました。 よく「Gitはマージが賢い、ブランチ作成が一瞬でできる」とかいわれますが、Subversionだってちゃんと使えばコンフリクトなんかめったに起きないし、ブランチ管理・マージだって全然めんどくさくない。 特にver1.7からはサーバもクライアントも大幅に高速化されたし、.svnディレクトリが.gitみたいに1個になったし、rebaseみたいなことだってできる。(sync merge & reintegrate) ただ、世の中が一斉にGitにシフトしている中でいつまでもSubversionを使っててよいのかという不安がありました。 また、月から金までSubversionにどっぷり
2012年9月に行われた札幌Ruby会議2012の基調講演の1つで、Rubyの生みの親のまつもとゆきひろさんが、最近あった面白いエピソードを混じえて“イノベーション”の本質について語っていました(44分の動画)。ポイントとなる部分をまとめてみました。まつもとさんの話はもちろん、統計的裏付けだとか学問的裏付けがある議論というものではありませんし、ご本人も楽しそうに話し、聴衆も楽しんでトークを聞くというゆるい感じのものでした。ただ、「イノベーションの本質は捉えがたい」というメッセージや、「だからあれこれ考えずにコードを書こう、われわれはコードを書くことにアイデンティティを感じているのだから、それこそがハッピーになる道だ」というメッセージは、参加していたRubyistたちの胸に響くものがあったのではないかと思います。 以下、口語文体のまま、ポイントとなる前半のトークをまとめてみました。トーク後半
はいどうも~。季節の変わり目のせいかゲホゲホが止まらないエンジニアの吉田です。 今回は、「MVC」と「MVC2」について改めて考えてみたいと思います。 Webアプリケーション開発では、よく「MVC」という言葉を耳にしますね。 「モデル」「ビュー」「コントローラ」の頭文字3文字をとって「MVC」です。 でも、「MVC」の話をしているのに、なんだか話が噛み合わないことがあるんです。 よくよく話を聞いていると、多くの場合、それは「MVC」と「MVC2」の混同です。 というわけで、「MVC」と「MVC2」の違いについて改めて考えてみたいと思います。 「MVC」とは何か そもそも「MVC」という言葉は30年ほど前(1979年頃)からあり、最初はSmalltalkの ウィンドウプログラム開発の設計指針として生まれたものです[※1]。 なので、「MVC」はもともとGUIのソフトウェアに適用するためのアー
codicは、プログラマーのためのネーミング辞書です。新しいcodicでは、翻訳エンジンを搭載しネーミングをジェネレートできるようになりました。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く