サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
odoruinu.net
the four painters from takuya on Vimeo . 写真をアーティスト風に変換できるneural-style 僕はディープラーニングやニューラルネットワークの専門家ではないのですが、昨今ではそんなミーハーでも簡単に機械学習ができるツールが多く出ています。 ディープラーニングは画像識別能力が高いので、早速 ラーメンの写真からラーメン屋をオススメするアプリ を作ってみたりしました。素人でもこんな簡単に作れるので、本当に将来が楽しみでしょうがありません。(技術的な話は こちら ) 今回は、そんなディープラーニングの技術を使って映像作品を作ってみたという話です。 New Neural Algorithm Can ‘Paint’ Photos In Style Of Any Artist From Van Gogh To Picasso という記事にもあるように、ディ
ローポリCGが大好きで、自分も描いてみたいと思い3Dモデリングツールに手を出しました。 目標は、Monument Valley。下のようなやわらかい何とも言えない世界観のゲームです。 これに似た雰囲気のCGに挑戦! Blenderはフリーで高機能 一昔前なら3DモデリングといえばLightWave3Dでした。 今はというと、いろいろあるみたいですがBlenderが良さそうだと思いました。 特徴は: フリーウェア(無料) 多くの人が使っている 業界標準的なUIを備えている 今も精力的に開発されている Monument Valleyでもモデリングで使用された(!) 最後の一点でキマりです。笑 やったチュートリアル いかんせん初めてなので、とりあえずチュートリアルをやりました。 ここでは、僕がやったチュートリアルの紹介と、それに沿って自分が作ったイメージを掲載します。 Blender Tutor
警告の内容 CasperJSでテストを書いていると、スクリプト終了時にPhantomJSが次のような大量の警告を吐いて止まらなくなります。 Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL ... Domains, protocols and ports must match. これではまともにテスト結果が見られない上、CIも回せません。 PhantomJS v1.9.8はバギーなのでv1.9.7を使う 以下のスレッドにヒントが書かれていました。 Displaying message “Unsafe JavaScript attempt to access frame with URL about:blank …”. ? Issue #1068 ? n1k0/casperjs
Webpackベースのアプリケーションをテストしたい Webpackとは Webpackはモジュールの依存関係を解決するプリプロセッサです。 依存関係の記述には、ES6、CommonJSやAMDのスタイルが使えます。 誤解を恐れずに言えば、node.js感覚で他のモジュールをrequireできるようにしてくれます。 webpackでソースコードをコンパイルすると、*.bundle.jsというような名前のファイルが出力されます。 これをアプリケーション側で事で、同期的・非同期的なモジュールの依存関係の解決が可能となります。 テストしやすい方法の検討 要件としては以下のとおりです: Webpackで書いたアプリケーションの各ユニットあるいは各ふるまいを、出来るだけ簡単にテストしたい 任意のCI(Continuous Integration)でも動かしたい 使用するツール群 前述の要件を
社内へのアクセスにVPNを利用している人は多いと思います。 Mac OSXは標準でPPTPやL2TPなどのプロトコルに対応しています。 しかしながら、設定内容は合っているのに接続直後に切断されてしまったり安定しないケースがしばしばあります。 そんな時の対処方法をまとめました。 以下の方法についてそれぞれ説明します。 MTU値を調整する PPTPマルチパススルー機能のついたルータを買う 自動再接続スクリプトを書く MTU値を調整する 個人的にはこの方法が最も有効です。 MTU(Maximum Transmission Unit)とは、一度にネットワークへ送信できる最大のパケットサイズの事です。 大きいほど一度に沢山のデータを送信できますが、エラー率も上がり再送信コストが大きいというトレードオフがある設定値です。 これを調整する事で、切断の頻度を改善できます。 現在のMTU値を確
出来ないと思い込んでいたらすごく簡単に出来たのでご紹介。 操作としては、 iPhoneのホーム画面でアプリをグループ化するのと全く同じ方法 で出来ます! Evernote公式のビデオがわかりやすかったので、ご覧ください。 キャプチャから方法をかいつまんで説明します。 グループ化したいノートブックをクリックしたままマウスを動かして、別のノートブック上で指を離します(ドラッグ&ドロップ)。 すると、2つのノートブックがグループ化されて一つになります。 グループを2回クリックすると、中身が展開されて、グループ化した2つのノートブックが表示されます。簡単ですね! Evernoteでは、このグループのことを スタック(Stack) と呼んでいます。 Googleなどで検索する際にはStackと打つと情報が見つけやすいと思います。Read more →
DynamoDBがJSONデータをサポートした 今月(2014年10月10日)のことですが、Amazon DynamoDBがいろいろアップデートしました: Amazon DynamoDBのアップデート ? JSON、 拡張された無料試用枠, フレキシブルスケーリング、 より大きなアイテム その中でもJSONデータサポートは注目のアップデートです。 これは具体的にどういうことか説明します。 DynamoDBはスキーマレスのNoSQLです。 これまで、カラム(属性)には単一データまたはセット(重複を許さない配列)が格納できました。 しかしながら、入れ子構造は格納できませんでした。 JSONデータのサポートとは、この入れ子構造が取り扱えるようになったということです。 つまり、MongoDBのように、JSON形式のデータをそのままデータベースに格納できるようになったのです。 既存ODM
Cayleyとは Cayleyは、最近リリースされたばっかりのグラフエンジンです。 グラフエンジンとは、グラフ構造を扱うために特化したNOSQLのDBMSです。グラフデータベースなどと呼ばれたりもします。 Cayleyの他には、neo4jが有名です。 Cayleyの作者のBarak Michener氏はGoogleナレッジチームのエンジニアです。 特徴は以下の通り: Googleナレッジグラフにインスパイアされている Go言語で実装 バックエンドストアはMongoDBとLevelDBに対応、エフェメラルな用途でのインメモリ Gremlinに似たオブジェクトを備えるJavaScript、MQLに対応 Google Open Source Blogによると、Cayleyが作られた経緯には、Freebaseの膨大なグラフデータを素早くフリーで簡単に使えるようにする事が挙げられています。
Programming, Technology fluentd + MongoDB + Elasticsearch + Kibanaでログを可視化する SaaSは利用料が高いのでOSSを使う 要件 独自フォーマットのログを扱いたい アプリケーション特化の情報も一緒に格納したい グラフ設定を簡単に柔軟に変えられるようにしたい システム構成 Chefを使ったセットアップ手順 fluentdの設定 ElasticsearchとKibanaのインストール Elasticsearchの設定 Kibanaの設定 参考リンク SaaSは利用料が高いのでOSSを使う サーバのログを可視化するSaaSは沢山あります。 DataDogとかKeen IOとかlibrato、Logglyなどなど。 とても便利そうですね。でも価格が高い! なんでもかんでもSaaSに頼ってたら毎月数十万とかになりそうです。貧
ハマったのでメモです。 ストリーミング処理の落とし穴 Mongoose(MongoDBのODM)を使って、コレクションからほんの10万ほどのドキュメントを処理するスクリプトを実行した時でした。処理が固まってしまうのです。なぜでしょう? 各ドキュメント処理では、コールバックを伴う非同期的な処理を含みます。 問題のCoffeeScriptのコードは以下のようなイメージです: Foo.find() .sort value:-1 .stream() .on 'data', (d)-> someTask d someTask = (d)-> doAwesomeJob (result)-> console.log "Great!" モデルFooのドキュメントを全て読み込み、各ドキュメントをストリームに流し込んでいます。 メモリを節約するためにストリームの手法を採用しています。 doAwesomeJob
新言語Swiftでは、C++のようにカスタムのオペレータを定義できます。 このオペレータには、Unicodeの文字が使えるとのこと! 下記のツイートのような感じで使えるらしいです。 Undocumented feature of Swift: using math symbols in custom operators, e.g.: let r = ¬(a ∧ b) More examples here: https://t.co/GjNJ8H2Iov — Mattt Thompson (@mattt) July 9, 2014 let r = ¬(a ∧ b) 詳しい例はこちら:Read more →
はじめに Google Drive, Docs, SheetsのiOS版では、アプリ間でGoogleアカウント情報を共有しています。 いずれかのアプリで一度認証すれば、他のアプリでは面倒な認証手順が不要になります。 これはどういう仕組みで行われているのでしょう? アプリはどのようにして、ユーザの入力無しにユーザを識別しているのでしょう。 Keychain:安全に機密情報を取り扱う仕組み 実は、先に述べたGoogleのアプリ達は、KeychainというOSの仕組みを使っています。 Keychainは、もしあなたがMac OSXユーザであればなじみ深いと思います。実はiOSにも備わっています。 これは、パスワードや秘密鍵、証明書などの機密情報を安全に管理するための仕組みです。 Keychainで保管されるデータは暗号化されます。 アカウント情報の取り扱いに最適 Keychainと同
最近、チャットツールをHipChatからSlackに乗り換えました! Slackとは? いわゆるチャットツールです。技術者向け。 SlackはHipChatと違ってUIがリッチで分かりやすいです。オシャレ! HipChatと同じくAPIを備えており、GitHubやAsanaなど様々なサービスと連携させる事ができます。 そして、タイトルにもあるHubotとも連携させる事ができます。 Hubotとは? チャット上で使えるボットです。Node.jsで書かれています。GitHub社が開発しました。 ボットというとTwitterのボットを想像するかもしれませんが、基本は同じです。 ボットに向けて、決まった書式でメッセージを送ると、そのメッセージに応じた処理を行います。 例えば、Jenkinsのビルドを実行したり、アプリケーションをデプロイしたり、ネコ画像を拾ってきたりします。 Hubotを導入するメ
どうも、食あたりで悶絶中のnoradaikoです。 気を紛らすためにブログを書きます。 おサイフケータイを使ってみたい 僕はiPhone 3GSの時代からずっとiPhoneなんですよね。 おサイフケータイやスマート決済というものが日本では普及していてとても便利なのに、全くその恩恵に与れないのは勿体ないと感じたのがきっかけです。 しかし、それだけのためにキャリアを2台分も契約するのはちょっとコストパフォーマンスが悪すぎる。 そこで、キャリア契約無しのAndroidスマホでおサイフケータイを使おうと検討したところ、いろいろ注意点が分かったのでここにまとめたいと思います! おサイフケータイ対応のスマホを選ぼう Androidスマホは実に沢山の種類が出ていますが、中にはおサイフケータイに非対応のものがあるので注意が必要です。 例えば、GoogleのNexusは非対応です。 僕は、HTC J One
みなさん、コードのスニペットとか作業ログの破片ってどう管理してますか? 僕はいままでファイルに保存するという面倒な方式を取っていたんですが、ついに耐えきれなくなりました(笑) 個人的には: iMacとMacbook Airの2台でSnippetをCRUD&共有したい 検索したい タグ付けで分類出来れば尚いい そこでGistを検討してみました。これならプライベートでコードをクラウドに保存出来ます。 バージョン管理まで出来るオマケ付き! ただ、いちいちブラウザでページを開くのは面倒。 ここに手軽に保存できれば便利ですね! 調べてみたところ、Sublime TextにGistへCRUD出来るプラグインがあるとの事。 ショートカットで即アップできるしチョー便利そう! 早速、使ってみましょう。 Gistとは? GitHubが提供する、コードのスニペット保存サービスです。 Sublime Packag
XCConfigは、XCodeのConfiguration Settings Fileの事で、DebugやReleaseで異なるプロジェクト設定を適用する事が出来る優れモノです。 下記のように、ファイルの新規作成画面の項目として出てくるやつですね。 CocoaPodsとか使っていると、自動生成されたXCConfigに手を加えたい時があります。 でも、pod installする度に書き換えるのは面倒ですよね。 実は、XCConfigには#includeディレクティブが用意されているので、この悩みを簡単に解決できます。 includeディレクティブはC言語と全く同じ構文です。 #include "別のxcconfigへのファイルパス" これを使って、以下のような構成にすれば、万事うまく行きます!
概要 AutoLayoutが超手軽に使える、Masonryをご紹介します! AutoLayoutで動的レイアウト、しかし… 不特定なサイズの画像や長さのテキストを取り扱う時、どうしても固定サイズのViewレイアウトでは限界があります。 コンテンツのサイズに合わせて、動的にレイアウトを調整する必要があります。 また、単にText ViewやImage Viewのサイズを変えればいいのではなく、周辺のViewも調整が必要なので結構大変です。 そんな動的レイアウトの要件に対しては、AutoLayoutがよく使用されます。 AutoLayoutは、親Viewのサイズ変更があった時に子View同士の間隔やサイズを自動で調節してくれる技術です。 そのレイアウト方法は、Constraint(制約)と呼ばれるものをViewに与える事で定義します。 AutoLayoutを使うと有効な時とその利点は以下の2つ
コードの整形は手間がかかる 代入文って10行とか20行とかになると、一気に見づらくなりますよね。 特に、Interface Builder使わないでコードでUIを組み立てたりしてると、プロパティの設定処理で平気で100行になります。 例えばこんなコード・・ cell.backgroundView.layer.shadowColor = [UIColor blackColor].CGColor; cell.backgroundView.layer.shadowOffset = CGSizeMake(0, 4); cell.backgroundView.layer.shadowOpacity = 0.8; cell.backgroundView.layer.shadowRadius = 10; cell.backgroundView.layer.masksToBounds = NO; cell
どんな時に必要? CocoaPodsベースのプロジェクトでアプリケーションを開発している時で、特に自前のモジュールもpodでパッケージングしている場合に必要になる事があります。 僕の場合は、pod化した自前モジュールをUnitTestしたい時でした。 ビルド方法によってPreprocessor Macroを切り替えたい サーバサイドのAPIラッパモジュールを例にとって考えてみたいと思います。 サーバサイドには、ステージング環境や本番環境の切り替えが必要な事がよくあります。 また、その切り替え方法にはPreprocessor Macrosを使用するのが一般的だと思います。 達成したい要件は、以下のようにビルド方法によって環境を切り替える事です: UnitTestの時は必ずステージング環境でコンパイル このモジュールを使用するアプリケーションのワーキングスペースorプロジェクトでは、各ターゲッ
概要 tweetbot 3では、モーダルビューの表示方法が下記画像のように凝っている。 ツイートの長押しでアクションメニューが表示される際に、直前の画面が後ろに下がりぼかしがかかる。 メニューは、それにオーバーレイされて表示される。 これ、チョーかっこいいので真似してみた。 こちらが、真似したもの。完全に再現は出来てないけど、満足レベル。 GitHubにてソースを取得できます: NRBlurryStepOutAnimatedTransitioning つかいかた NRBlurryStepOutAnimatedTransitioning.h,mをプロジェクトに追加します。 あなたのViewControllerにUIViewControllerTransitioningDelegateプロトコルを追加: @interface NRPresentedViewController : UIView
紹介の背景(訳者より) ASIHTTPRequestはCocoa Touchで動作する素晴らしいネットワークラッパライブラリだった。しかし、ARC(Auto Reference Counting)に非対応である事と、今後も対応予定は無いとの噂もある事から、最近ではこれに代わる新しいライブラリの登場が期待されている。その候補の一つに、本エントリで紹介するMKNetworkKitが挙げられる。 僕が乗り換えを検討したのは、決定的な出来事が一つあったからだ。ARCで書いたiOSアプリが、Appleの審査員のiOS上でだけ上手くネットワーク通信出来ないという現象が発生したのだ。この現象の裏付けとして、ASIHTTPRequestを使わずNSURLRequestで飛ばしたリクエストは正しくサーバに記録されていた。そこで、ARCに対応しておりメンテナンスも積極的にされていて、乗り換えやすそうなライブラ
こちらのサイトで公開されているPlaggerのプラグイン。 フィードを携帯とかに送りたい時、PlainTextのメールで欲しいとかMIMEがmixedなのは嫌だって時に便利な以下の二つのプラグインだが、上手く動かなかったりスペル間違いがあったりしたので自分なりにがんばって修正してみた。 Filter::FormatText package Plagger::Plugin::Filter::FormatText; use strict; use base qw( Plagger::Plugin ); use HTML::TreeBuilder; use HTML::FormatText; use Encode; sub register { my($self, $context) = @_; $context->register_hook( $self, 'update.entry.fix
CPANによってインストールしたPerlモジュールを簡単に削除する方法。 CPAN Faqから消えててWeb Archiveから掘り出した。 また要るかもしれないのでここにメモ。 #!/usr/local/bin/perl -w use ExtUtils::Packlist; use ExtUtils::Installed; $ARGV[0] or die "Usage: $0 Module::Name\n"; my $mod = $ARGV[0]; my $inst = ExtUtils::Installed->new(); foreach my $item (sort($inst->files($mod))) { print "removing $item\n"; unlink $item; } my $packfile = $inst->packlist($mod)->packl
このページを最初にブックマークしてみませんか?
『Takuya Matsuyama - Homepage』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く