本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはJapanizeやText::MicroTemplateなどで有名な奥一穂さんで、テーマはUNIXプログラミングです。 はじめに 「正しいプログラム」を書くために必要な知識とはなんでしょうか。テストが正しく実行されることは、正しいプログラムであるための必要条件に過ぎません。プログラミングにおいてはプログラミング言語だけでなく、OSの動作やデータベース、ネットワークプロトコルなど、さまざまな知識が必要になります。 PerlはもともとUNIX系のOS(LinuxやFreeBSD、Mac OS XなどのOSを本稿では以下UNIXと総称します)の上で処理を行うためのスクリプト言語として開発され、今日でもPerlプログラムの多くはUNIX上で実行されています。しかし、「Perlでプログラミング」と言った場合はともすれば
multiprocessingモジュール multiprocessingモジュールは、Python2系列では2.6以降、3系列では3.0以降に標準となったモジュールです。このモジュールはthreadingモジュールに似たAPIでプロセス間通信などの機能を提供します。このモジュールにより、GILの問題を回避することができ、複数のCPUやCPUコアの性能を生かすことができます。また、このモジュールはローカルのみならず、リモートでのプロセス間通信も行うことが可能で、簡単に分散処理などを実装することができます。 まず、GIL(Global Interpreter Lock)とはPythonのインタプリタ上で一度に1つのスレッドだけが動作するよう保証するためのロックです。このロックによって、同時に同じメモリにアクセスするスレッドが存在しないことを保証します。 しかしながら、このロックによって、一度に
お疲れさまです、trebyです。 もうだいぶ日付が変わりそうな勢いですが、Git Advent Calendar 2014の23日目を担当させていただきます。 Gitを業務で使い始めて早2年、だいぶ慣れてきた感じがありますが、それをアウトプットする機会があるかといえばなかなかありません。せいぜいたまに同僚に聞かれるくらいでなんかもったいない感じがあります。 そこで今日は私個人がgitを使って仕事をする上でどういうフローしているかなーということを改めて文字にアウトプットしてみたいと思います。ご参考にしていただくなり、ツッコミしていただくなりしていただけますと幸いです。 なお、本投稿において想定するツールはGit、ホスティングサービスはGitHubですが、多分その他のサービスでもいけるのではないかと思います。 開発準備 「新しくチームに配属された!」等のシチュエーションを想定しています。 開発
これはAndroid Advent Calendar 2014の25日目の記事です。 はじめに Androidアプリの開発をしていたのがきっかけで彼女が出来たyuyakaidoです。昨日のkaneshinさんの記事の冒頭にあるように僕はマルチスレッド初心者なので常にシングルスレッドで動作しています。勿論クリスマスイブも。 今回はAndroidアプリのボトルネックを探すための手法を紹介していこうと思います。 目次 StrictMode パフォーマンスに影響を及ぼすコードの検出 Traceview パフォーマンス計測ツール その他 Viewのネストについて Viewの塗り潰しについて 環境 この記事で紹介するソースコードの動作確認は以下環境で行いました。 Mac OS X 10.9.5 Android Studio 1.0.1 Genymotion 2.3.1 Nexus 6 (5.0.0)
RubyのパパことMatzさんに、新卒エンジニアの適正年収を伺いました。twitterで下記のようなコメントがあり、弊社も新卒採用などやっていることから、Matzさんに新卒エンジニアの給料について伺ってみました。 質問 新卒エンジニアの適正給料はこれだとするならいくら位だと思いますか?ざっくり。 Matz 日本ということ考えて…理系大卒で600万くらいかなあ でもねぇ、大卒はだいたい粒ぞろいだと言っているのと同じ。個人差は無いものとしているってことなので、それだとおかしいよね。 ただ、コンピュータサイエンスの学科を出て、プログラミングできるっていう学生が300万とか400万とかしか貰えないと、彼の持ってる技能はあまり評価されてないってことじゃないかなと。特殊技能を持っていると思われてないってことじゃないかな。 プログラミングするのに国家試験はいらないので誰でもなれるって思われ
この記事は Vim Advent Calendar 2014 の5日目の記事です。諸事情によりVim Advent Calendar 2014で穴が空いてしまった5日の記事を、遅ればせながら代打で投稿させていただきます。この投稿を以って、 Vim Advent Calendar 2014 は全ての日程が埋まる事になります。完走おめでとうございます。皆様、お疲れ様でした。 2014年もあと僅かとなり、年末の忙しさに追われている方もおられることでしょう。土日は家の大掃除という方も多いのではないでしょうか。 大掃除…大掃除と言えば、vimrcです!!! あなたはvimrcはたくさん書いていますか? Vimをもっと便利にしたくありませんか? 包丁は砥ぐことにより長く使えるのと同様に、普段あなたが使っているvimrcも定期的に見なおすことで、より愛着がわき、更にVimに対する理解も深まります。あなた
能力に自信がないのは、評価する機会に恵まれていないことの裏返し 「自分にそんなに自信を持っているエンジニアはいませんよ」 先週、とあるエンジニア対象のイベント(トークショーのゲストとして出演していました)で出会ったエンジニアの多くは、「エンジニア採用が難しいと企業が悩んでいる、だからエンジニアにとっては売り手市場なのだ」といくら説明しても、自分自身の能力にイマイチ自信が持てない、といった様子でした。 しかし、求人倍率などのデータを見れば、転職市場にエンジニアが足りていないのは一目瞭然です。私自身がプロデュースしているCodeIQへも、企業の採用担当者たちからの期待が高いことからも明らかなのですが。 本連載を読んでいる皆さんの中にも「自分の能力に絶対の自信がある」という人は、それほど多くないのかもしれません。しかし、それは同時に、自分の能力を客観的にアセスメント(評価)する機会に恵まれてい
はい、Webアプリエンジニア養成読本 AdventCalendar2014です。突然トリをやる事になってしまったので、どうしたもんかとおもいます…。 「最終日だぞ…ちゃんとかかないといけない…しかしネタはない…そうだリンク集を作ろう!」とか思ったんですが、そもそもアドベントカレンダーってリンク集だよねって気付いて愕然としているクリスマスの夜です。現在朝の4時、これを書き終えて寝たい。 さて…何を話そう ここまでWebアプリエンジニア養成読本アドベントカレンダーということで続けてきました。そして今日は25日、ついに最終日です! Webアプリエンジニア養成読本 Advent Calendar 2014 - Qiita Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus) 作者:和田 裕介,石田 絢一 (uz
リアルタイムなデータ通信はインタラクティブなwebコンテンツには不可欠の要素です。今回はリアルタイムなデータ通信を簡単にしてくれるSocket.IOを使ってパソコンとスマホがペアリングするコンテンツを作りました。Socket.IOの簡単な解説と共に紹介します。まずは次のデモをご覧ください。 ※ ファイアーウォールの設定によっては閲覧できない可能性があります。デモ動画も御覧ください。 別画面でデモを再生する サーバーサイドのソースコード(Node.js) サーバーサイドのJavaScriptを含む全ソースコード ※ 全ソースコードをダウンロードし展開後のフォルダーにてコマンドラインでnode serverを実行後、http://localhost:5000にアクセスするとローカル環境でもデモを確認できます。 デモについて デモページにアクセスするとURLとペアリングコードが表示されます。以下
この記事はSwift Advent Calendar 12月23日の記事です。 アドベントカレンダーは後半ほどネタが出尽くすので不利ですね。 自分はこの2ヶ月半ほどプライベートの時間を使ってSwiftで新しくアプリを作っていたので、それについて考えていたこと、感じたことをつらつらと書き下してみたいと思います。 [2014/12/28 追記] 今朝、アプリがリリースされました!! Rebuilt きっかけ 2014/6/3にWWDCでSwiftが発表され非常に気になっていました。 しかし、当時の自分は業務でアプリ開発から離れており、他に優先順位の高い事柄があったので積極的に勉強することを避けていました。 Xcodeベータは安定していない、Swiftの仕様もコロコロ変わる中、学習効率を重視するのであれば安定版がリリースされてから勉強したほうが良いとも思いました。 新しい技術が出てくるタイミング
私はこのところしばらく仕事でVMやコンテナを扱っていましたが、大学のいくつかのプロジェクトでJavaのコードを書かなければならないときは未だにvimを使用せず、新たに本格的なIDEをインストールしなければなりませんでした。これにはいつもイライラさせられていましたが、ついに今週、Dockerコンテナ内でNetBeansを実行できるようになったのです。それによって普段使用しないJavaのコードを書くための膨大な環境をパソコンにインストールしなくて済むようになりました。 Dockerコンテナ内でGUIアプリケーションを実行する場合には、いくつかの方法があり、 X11転送を行うSSH や VNC を使用します。しかし私が発見した最もシンプルな方法は、X11のソケットをコンテナと共有して、直接使用するというものでした。 このアイデアはとてもシンプルで、以下の Dockerfile を開始点として使用
この連載では、iOS SDKによるiPhone/iPad開発について解説します。現在iPhone/iPadアプリケーションを開発するには、Xcode/Interface Builderを用いた標準的な開発手法の他に、WEBアプリケーション+ネイティブアプリケーションのハイブリッド型開発手法、PhoneGapやTitanuim Mobile, Corona SDKといったサードパーティライブラリによるクロスプラットフォームアプリケーション開発手法などいくつか選択肢があります。 本連載ではObjective-Cによるネイティブアプリケーション開発に焦点をあてますが、初回はこれらの開発手法の特徴を確認しておきましょう。 XcodeとInterface Builderを使った開発 XcodeとInterface Builderを使った開発は、iPhone/iPad向けのアプリケーション開発手法とし
DataMapperのコンポーネントは、基本的にクラスではなくモジュールとして提供されているため、アプリケーションで利用するモデルクラスにインクルードして使います。 Resourceモジュールをインクルードすると、自動的にModelモジュールがextendされ、PersonクラスはModelクラスとして振る舞うようになります。これは図1のPersonに相当します。 図1のPerson Mapperに相当する仕組みはRepositoryです。Repositoryは、create, update, delete, read_one, read_manyなどの、データストアに対する基本的な操作のインターフェイスを規定します。Modelクラスは、Repositoryへの参照を持っていて、 Modelクラスによるデータストアへのアクセスは、全てRepositoryを介して行われます。この際、データス
この前の記事で、LLMを新人と扱って積極的に質問させることで、LLMをドライバーとしたペアプログラミングでも、仕様を適切に実現した良質なコードを得ることができるかもね、という話を書いた。 なんでこんな話を書いたかというと、私がLLMに作って欲しいのは主にゲームで、ゲームにおいては仕様と実装の乖離、というか仕組み的にはよさそうだったんだけど実際に作ってみたらそんなに面白くない、ということがまま起こるので、それを何とかできないかという試みをしていたからだ。 まだ懲りずに続けているLLMにワンボタンミニゲームを作らせる取り組み、前回はもうLLMにちゃんとしたゲームを作らせるのはあきらめて、いろんなトイを作ってもらってそれを人間がゲームに仕立てるという方法を取った。でもこの方法だと、使えそうなトイが出てくるまでの打率が低いとか、トイからなんとかゲームっぽさを見出してそれを頑張ってゲームにするのが大
今日は天皇誕生日ですが、以前「あと何回天皇が交代すれば毎日が天皇誕生日になるか(不謹慎)」の期待値を求める記事を書きました 毎日が天皇誕生日になるには何回天皇が交代する必要があるか - 唯物是真 @Scaled_Wurm 祝日と祝日の間に挟まれた日が、国民の休日で休みになるのを考慮していないという指摘を受けたので、今回はその場合の平均回数を求めます さらに、挟まれた日が国民の休日になるというのを考えると、もっとずっと複雑になるな。(考える気はない)http://t.co/AuibRNF969— Hiroshi Manabe (@takeda25) 2014, 4月 30 厳密解をどうやって求めればよいか悩んでいたら「厳密解は諦めてシミュレーションでそれっぽい値を求めればよいのでは?」というアイディアをいただきました。ありがとうございます@Scaled_Wurm ああ、ここでシミュレータと言
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く