病みつきエンジニアブログ

機械学習、Python、Scala、JavaScript、などなど

もっともっと良いコーディングをするための勘所8つ

先日とあるコードレビューを拝見することがあったのですが、それにインスパイアされて記事を書いてみます。レビュワーの方が言ったことも含んでいますが、それと必ずしも一致するものでもありません。 Objective-Cのコードで書いていることが多いですが、わ…

Pythonでお手軽デバッグ

Pythonには pdb というデバッガーがついています。名前からてっきり gdb みたいな、化石みたいなインターフェースしか持ってないのかと思ったら、コード中に貼り付けて止めることもできるみたい(ちょうどrubyの debugger みたいな)。 そのためには pdb.set_t…

OSX MavericksにアップデートしたらCのヘッダーが見つからなくなった

Lion -> OS X Mavericksにアップデートしたら test.c:1:10: fatal error: 'stdio.h' file not found #include <stdio.h> ^ 1 error generated. ということで、Command Line Toolsをデブセンからインストールする必要がありました。多分。 Download for Apple Develope</stdio.h>…

データを自由に使えるWikipedia系サービス調べてみたよ

実験等に使うWikipediaのデータセットを調べていたら、データを自由に使えるWikipedia系サービスをいくつか発見したので、簡単に紹介します。 Wikipediaのデータベースについて Wikipedia系サービスの文書等は主にクリエイティブ・コモンズライセンスでライ…

毎月読んだIT系ニュースをまとめることにした+9月に気になったニュースまとめ

photo by CPOA 自分にできる貢献ってなんだろう、と考えて、「自分の知識を分配しよう」ということに至った。詳細はFacebookに書いたけれども。 実際には全部Twitter(@yamitzky)に書いているんだけど、まあそうそうチェックできるわけでもないだろうし、まと…

気がついたら22歳になっていたので、JX通信社の1年を振り返ってみた

羽田空港からこんにちは! 先日、8月30日をもちまして、気がついたら22歳になっていました。なんだか、18歳のときとか、20歳のときとかと違って、なった瞬間に、特別な感慨などもなく、本当に「気がついたら」という感じの22歳でした。 私にとって21歳の1年…

アプリをパクって何が悪いんですか?

っていうタイトルにすると炎上すると聞いたので・・・(震え声) 最近、アプリのパクリについていろいろ起きているようです。 スマホアプリ市場でパクリが横行していて凄いことになっています 「違法パクリアプリ」製造元を追う 似たような問題は前にもあった…

農業のリアルな問題をちょっと感じてみたよ

お盆で、祖母の家に帰省しています。 祖母の家は、山梨県南アルプス市にあります。山梨県と言えば、ぶどうと桃の産地ですが、祖母の家では、桃とかさくらんぼ等を主に栽培しています。 個人的には、日本の農業は衰退していくだろうーとか、TPPが来ても市場原…

プライバシーに関する意識は歪み過ぎてる

最近、個人情報に関する事案が結構多くて、ネット全体で見ると結構歪んでいるなーと感じるので、整理がてら書いてみます。 まず、ここで上げる「個人情報に関する事案」というのは、ネット上での「個人情報」についての話で、例をあげると下の2つみたいな問…

情報系実験をやりやすくするアイディア

※先に言っておくと、がーーーーーーーーーっとアイデアを書いて、「あ、いけそう」と自己完結するエントリーである。しかし、皆様のアイデアを頂きたく、とりあえず考えながら書いた。 情報系実験の常なのか、それとも僕が悪いのかわからないが、情報系実験…

mixiのアプリの設計がよくわからない

よくわからないんだけど、誰に聞けばいいのかもわからなかったので、ブログに書いてみる(issueに書くのも違うような…)。助けてください、mixiの社員の方>< 先日、mixiが「Android Training」と「iOS Training」という、アプリ開発初心者向けのドキュメント…

Qixilで紹介されてた「業務利用しているサービス」まとめてみた

DeployGateの開発者の方がQixilで お金を出してでも価値があるから使っている!という業務利用しているサービス(SaaSやPaaS、BaaS)を教えて下さい ということを質問されてた。 中で回答されているサービスで知らないものも多かったので、まとめてみた。内容…

iOSアプリデザイナーに身につけてほしい「ライブラリを探して試す能力」

私の考える最強のデザイナーは、ビジュアル的・UX的に良いデザインができるデザイナーですが、最強の“プロ”デザイナーは、そのデザインの実装コストが見積もれて、それに応じて段階的な実装の指示が出せるデザイナーだと思っています。 アプリ開発の現場では…

シェル上で日時をISO-8601形式で出力

「2013-04-16T23:02:30+0900」みたいなやつ。 $ date +"%FT%T%z"

MacでLaTeXを爆速インストールして使う方法

Mac

大好きな皆さん、こんにちは。今日は、LaTeXほとんど使えないマカーのために、爆速でLaTeXをインストールして、さらにはLaTeX式を入力するための方法をお教えします。 LaTeXのインストール LaTeXに必要なアプリケーションは、全部で2つです(空のMacにインス…

Pythonでコード書く時にはちゃんと時間を計測するといいかも、という話

大変狭い見識に基づいた話なので恐縮なのですが。。。 今、研究室でテキスト系の機械学習の勉強をしています。その過程で、LDAという生成モデルの実装をしています。 LDAの話は一旦無視して、テキストマイニング(に限らないかもしれませんが)の特徴として、…

iPhoneアプリ開発者がgitを使うべき3つの理由

こんばんは。JX通信社でiPhoneアプリ「vingow」を開発しています。 それとは全く関係ないのですが、Xcodeにはgitとの連携機能が備わっているのに、未だ使ってない人がいます。本当に勿体ない! gitを使うべき3つの理由を書いたので、iPhoneアプリ開発者の方…

【追記あり】iPhoneのネイティブアプリのデザインにCSSを使う方法の比較

iOS

ウェブサイトのCSSによるデザインの実装は、デザイナーの方が行うことが増えてきていますが、 iPhoneのネイティブアプリはエンジニアが行うことが多いのではないでしょうか。「デザインの実装」というフェーズはデザイナーの方がしたほうが良いと僕は思って…

「LINEで送るボタン」をObjective-Cで実装してみた

iOS

この記事は古いです※ごめんなさい、本当に簡単なんです・・・設置方法|LINEで送るボタン にて、公式の「LINEで送る」が公開されたので、Objective-Cで実装してみました。 といっても別に難しくなくて、上記記事のURLをSafariで開くように、Objective-Cで指…

株式会社サイバーエージェントの「TECHNOLOGY CAMP」行って来ました

『テクノロジーキャンプ』開催|株式会社サイバーエージェント | 株式会社サイバーエージェント「tech camp」「テクノロジーキャンプ」まあいろいろ表記のゆらぎがありますが、株式会社CyberAgent主催のインターン(?)に8月に行って来ましたので、その感想を…

gcc 4.2 でC++11のSTLを使う

C++11(C++0x)が発表されてから一年経ちますが、いかがお過ごしでしょうか。 言語のコアが拡張されていますが、多くの方にはあまり関係ないことでしょう。 しかし、標準ライブラリは別です。新しい標準ライブラリ(Technical Report 1)では、メルセンヌ・ツイ…

Core Animationでバウンド表現

iOS

バウンド表現は、簡単なものなら簡単にできます。どちらかと言うとバネ表現と言ったほうが適切かもしれませんが。基本的なアニメーションの仕組みなどの説明は省きます。「Core Animation」でおググりください。 下記コードで再現できます。 // _label is th…

就職するのか、大学院に進学するのか

このブログは誰に伝えるのか、誰が見るのか、というのを考え、 あまり個人的で面白くない内容は書かないようにしておりますが、 まあ、たまにはいいだろうということで、プライベートなメモ帳に記すと同時に ブログの方にも書きます。前提として、私自身はあ…

iOSのアプリケーションをどう設計するか

iOS

いくつかソースを見てきたのですが、 時と場合による としか言いようがない感がすごいですね。ただ、当たり前ですが、 基本的にはMVCに則って作っていくのが良いです。 そして、Modelをちゃんと切り分けるというのが、テストをする上で非常に大事になってく…

PhantomJS のオーバービューーーーーーー

PhantomJS なるものがあるので、使って見ることにします。 PhantomJS が何なのかを説明する前に、インストールから入ります。 インストール PhantomJS: Download and Installから、最新のものをダウンロードします brew install phantomjs Quick start 適当…

Adobe Edge Animate で任意のタイミングで再生する

Adobe Edge Animate には、「自動再生」という項目があり、自動で再生したり、しなかったりができます。 で、自動再生しない場合に、自分の好きなタイミングで再生出来ないか? ということで、その方法です。概念的に、Edge Animate では、ステージに対して…

シェルでブックマーク的なことをする

僕はzshを使っていますが、どのシェルでも共通な、ブックマークシステムを紹介します。といっても、ディレクトリとシンボリックリンクを使うだけです。まず、ブックマークを突っ込むためのディレクトリを作ります。 mkdir ~/b そして、~/bのディレクトリには…

Nexus7を1日使ってみた感想

完全イメージで語ってる感否めません。 かすかな記憶を頼りに書いてる感も否めません。 UIや滑らかさがだいぶ変わった 店頭などでホットモックを触った方はわかるかも知れませんが、ぬめぬめ動きます。 Project Butterなるプロジェクト名だそうで。 滑らかさ…

Capistranoでdeploy前にpushする

なんかもうどうしようもないぐらいにgit-pushを忘れてしまうので。config/deploy.rb を before "deploy:update" do system "git push origin #{branch}" end です。やってることとしては、 deploy:updateの前に処理をする(2.x DSL Configuration Tasks Befor…

Objective-C でWebSocketの通信をする(SocketRocket)

iOS

今流行(?)のWebSocketちゃんですが、Objective-Cで触るための日本語のサイトがあまりなかったので。 手順としては、node.js でWebSocket のサーバーを作り(not Socket.IO)、SocketRocketを使ってそのサーバーに接続します。 node.js、Objective-Cともに触っ…