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

機械学習、iPhoneアプリ、Javascript,Ruby on Railsなどなど。

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ともに触っ…

僕がプログラミングを学ぶときに気をつけていること(検索編)

※この記事は、事実に基づいた定量的なものではなく、あくまで個人的な経験則です 役に立つかはわからないですが、他の人に教える機会があって、気づいたことなどをまとめています。 検索編以外があるかは謎です。何かに躓いたとき、Google先生を使って検索す…

Amazon S3 を使ったログ保存の仕方

多分、Linuxのコマンドに慣れてないと上手く出来ないと思うので、書いておきます。 Log rotation これについては、あまり書くこともないです。logrotate で検索してみて下さい まず、Log rotationは、ログファイルを、1週間なり、1ヶ月なりで、ローテーシ…

simple_form をTable 要素で使う

simple_form は、Rails 用のform_for の拡張みたいなものです。 普通、form_for を使うと、タグ等について自分で書いていかないといけませんが、simple_form を上手く運用すると、view内にはform に関連するタグを書く必要はありません(的な感じ) 逆にいう…

ZMQ(ØMQ)、動いたり動かなかったり

ØMQ のサンプルコードが謎に動かなかったりして、困った。。。 要求としては、PUSHをする側をC++で作ろうとしていて、PULLはnode.jsでします。 https://github.com/imatix/zguide のサンプルコードを使いました。 同じような処理なのに動いたり動かなかった…

RABL が若干わかりつつあるまとめ

RABL(Ruby API Builder Language) は、JSONのView生成用のライブラリです。 RailsなどのフレームワークでAPIサーバーを立てる際、普通JSONで応答したりしますが、 もうちょっと複雑なViewを組めます。チュートリアル的使い方はhttp://railscasts.com/episode…

複数リポジトリを1ドメインのディレクトリ構成にまとめたいとき

ちょっとわかりにくいですが、httpでの接続時に yamitzky.com ├── index.html ├── sub_repo1のpublicディレクトリ │ ├── images │ └── index.html └── sub_repo2のpublicディレクトリ ├── images ├── index.html └── stylesheets └── site.cssみたいな感じに…

QRcode generation plugin without jQuery

https://github.com/yamitzky/render-qrcodeTo use the plugin, first, you have to load javascript like the following; <script type="text/javascript" src="render.qrcode.min.js"></script> then, you have to make an element a QRcode appended to. <div id="qrcode-element"></div> finally, call qrcode() functi…

jQuery を使わずにQRコードを生成するプラグイン作った

作ったんじゃなくてパクったんじゃないかな、っていうね! https://github.com/yamitzky/render-qrcode使い方は簡単で、 <script type="text/javascript" src="render.qrcode.min.js"></script> とかやってプラグインを読み込みます。書き込む要素を <div id="qrcode-element"></div> とかやって作っておきます。 document.getElementById('qrcode-element').qrco…

rbenv を使っている環境で crontab が上手く動いてくれないときは

crontab は、事前に設定されたShellで、設定されたPathを通した上で、実行されます。 つまり、現在使っているShellや、SSHで接続しているShell、もしくは.bash_profileに書かれているようなPathは、全無視されます。上手くいかないときは/etc/crontab を編集…

Rubyにかぎらず標準入力に色をつける

Rubyだけでなく、他の言語でも(多分)使えるやりかたです。 (他にCで試してみましたがオッケーでした。pythonだとprint文で上手く行かないので、他の関数を使うといけるかも?)単純に、文字列中に"\e[数字m"と書いてあげるとオッケーです。数字は color_dict …

CoffeeScriptのクラス定義を、グローバル(別ファイル)にする

http://d.hatena.ne.jp/nantekkotai/20110909/1315582529のようにコンパイルオプションで対応するのでもいいのですが、 Railsやmiddlemanなど、自動でコンパイルするのでコンパイルオプションを与えられない時のために。クラス定義をしているファイルの最後…

Rails3でバリデーションなしで保存する

@model.save :validate => false でオッケーですよhttp://api.rubyonrails.org/classes/ActiveRecord/Validations.html

使ってるvimプラグイン晒し

Vim

よく使う [自作]reload-vim 書き込んでリロードを実現するvimプラグインなんですが、未公開← 書き込んだら自動でリロードするような設定よりも(livereload)小回りが聞くので、気に入ってます。rails.vim rails使うなら必須な感じの。 Rcontroller italic;">c…

Capistrano でRailsアプリを自動deploy

導入や紹介は、このslideshareが非常によくまとまってると思います。 Capistranoで自動デプロイ View more presentations from toyoshi 導入などはhttp://d.hatena.ne.jp/ntaku/20111115/1321358900などにあります。 だいたい設定が必要になるのは config/de…

Railsのfields_forがガン無視された問題

<%= f.fields_for @user.profile || Profile.new do |p| %> <% end %>に、直すといいです。「Model.new」くっつけると。

middlemanを使ったフロントエンド開発

middlemanというものが、静的なサイト(html/css/jsだけのサイト)を作るのに、かなーり便利です (これを使って性的なサイトを作りました) 何が便利かというと 開発用サーバーになる テンプレートエンジン(erb) coffee scriptやscssなどを自動で変換 もちろん…

gl.enchant.jsでCollada(.dae)ファイルが動かないときは

詰まってしまったので。←韻踏んでる原因としては.daeファイルのcontent-typeが間違ってるっぽい?のが原因です。 XHRすると、responseTextにデータが帰ってくるのは当然ですが、XMLファイルの場合は自動でXMLDocumentにparseしてresponseXMLに突っ込んでくれ…

zshっていうのがすごいらしい

zsh

今まで馬鹿正直にbashを使ってたんですが、この際だし変えてみるかーみたいな感じで。まずはMacの標準シェルをzshに。10秒で出来るみたいです。 Mac のログインシェルを bash から zsh に10秒で変更する方法 | ウェブルで、ちょっと遊んでみる cd ~/Desktop …

Photoshopでベクトルマスクを使って描いた画像を、Illustratorでも使う方法

Yummy gumさんによる、かの有名なiconsweetsをIllstratorで使おうと思ったメモ。まずPhotoshopで開き、該当レイヤーのベクトルマスク(というかパス)をコピー(Ctrl+C)します。 次にIllustratorに移動し、ペースト(Ctrl+V)すると、ペーストオプションという…

編集に特化したcss エディター

HTMLを組むのはそんなに時間がかからないのだが、cssの微調整に時間がかかりすぎる。 ということで、ざっくり編集はvimなり好きなエディターで書いて、 移動その他の微調整はブラウザ上でできるような、そんなエディターを作りたいなーで、scssとかちょっと…

Macの「〜のコピー」を「〜のパクリ」に変える方法

Mac

MacのFinderでファイルを複製すると、ファイル名は「〜のコピー」になります。 これを変更したくなっちゃったので、ちょっとやってみました。 以下の作業ではターミナルを起動して使っていますが、同じ事はGUIからもできます。 でも画像貼るのって面倒じゃな…

FacebookのAPIで日本語表記の名前を取得する

いろいろ試したので、まとめておきまっせ。Graph APIでユーザー名を取得しようとすると、英語になります。なので、FQLからprofileテーブルを参照するという裏技がありました。 コーヒーサーバは香炉である » FacebookのAPIの仕様変更 – ユーザ名は、どの言語…

MacでHomebrewからGtk+をインストールしようと思ったら

Mac

brew install gtk+ としてインストールしようとしたら、以下のようなエラーが出ました Error: undefined method `=~' for #<Pathname:/usr/local/Library/Formula/pkg-config.rb> Please report this bug: https://github.com/mxcl/homebrew/wiki/checklist-before-filing-a-new-issue /usr/local/Library/Homebr</pathname:/usr/local/library/formula/pkg-config.rb>…

MacからIPP(CUPS)経由のプリンタを追加する方法

Ubuntuだと簡単だったのですが、手間取ってしまったので。。。 環境 クライアント側・・・Mac OS X Lion サーバー(プリンタ)側・・・Canon MP500をUbuntu serverにつなげてネットワークプリンタにしています。 また、WindowsやLinuxなど、他のOSからは印刷…

FTPの危険性/本当は怖い生パスワードの話

みなさんこんにちは。 最近の学生はウェブサイトやブログ持っている人が多いですね。特に学生団体に入っている人などなど。 で、おそらくその人たちはFTPを使っていると思うのですが、それが実は危ないんだぞという話をさせていただきたいと思います。 章立…

Sencha touchを使ってみた雑感

使ってみました。Xperia acro(Android)で試していて、PhoneGapでネイティブアプリ化しています。 速度の話と、設計の話。ネイティブAPI的な話はしません。まず、速度に関して。 最初に感じたのが、jQuery mobileに比べて明らかに早いです。きびきび動く。 同…

vimでerb(rails)の閉じ括弧 %> を補完

vim大先生は閉じ括弧を自動で補完してくれないので、Vimで括弧/クォートを自動補完 - spiritlooseのはてなダイアリーとかVim で閉じ括弧を自動補完するようにした - LazyLoadLifeとか使って自動で括弧を閉じさせてあげると便利です。 some_function( と書く…

女子高生でもわかるパスワードの話

導入 日本の情報教育ではパスワードについてちゃんと知る機会がないので、語ってみようかと思います。目次は なぜパスワードをつけるのか? 攻撃方法 #1 攻撃方法 #2 安全なパスワードまとめ となってます。攻撃方法を知って安全なパスワードを知る、という…