投稿

2013の投稿を表示しています

Startup Session@大阪イノベーションハブに行ってきた話

イメージ
Startup Session@大阪イノベーションハブに行ってきた. 元々のモチベーションは, 起業ノウハウを知りたいとかいうものではなく, 辻野晃一郎さんの仕事観や将来の家電業界をどう見ているのかを知りたかったから. GoogleとSonyで働いた人が,未来に何が必要で今どう行動すべきだと思っているのかが気になっていた. このイベントでのメモをまとめておく. 【大阪発イノベーションは世界を変えられるか?@辻野晃一郎】 - 東日本大震災で考えたこと   様々なdecisionのスピードを上げていかなければならない   コンセンサスを疑わない日本国民の持つ問題が浮き彫りになった - デジタル家電はコモディティ化した        家電新製品も半年程度で半値.        もはや消耗品なので壊れたら修理よりは買い替えになってる.        ⇒ 家電を取り巻く環境も大きく変わり,家電そのものの再定義が進んでいる. - あらゆることの再定義が進んでいる       グローバルインフラとしてのインターネットが考え方を変えた       グローバリゼーションの再定義 - Googleの目線   Googleでは地球規模で物事を考えている   目線の高さを変えると発想が変わる   小手先のノウハウよりもマインドセットの持ち方こそが重要. -  これからの家電   雲を除く窓としての家電機器の再定義   日本が世界に先ん出ていた家電機器の時代は代わった.   => Googleはmotorola買収後,ハードウェアも精力的に作り始めている.   (例) Sony/Googleのウェアラブルデバイス     Sony HMDとGoogle glass     家電屋さんは既存の流れで同じものを作ってしまう 一方で,シリコンバレーの連中が作るものは概念が違うものをつくってしまう. クラウドを    家電の世界はすでに再定義が進んでしまった.    新しいプレイヤーに置き換わった ...

How to download files automatically with python + cygwin

イメージ
There are excellent lectures in coursera. I like startup engineering the most. From the lecture, we can get knowledge about how to utilize IaaS especially AWS. AWS made it easy to get in touch with computing with good hardware without purchasing PC. Then, I want to learn the lesson offline. It is because there's no network infrastructure outside my room. But it takes a lot of time to download all the contents by clicking through browser..... So I implemented a python script to get all the files from the site. The following script is one of the example for achieving that. This script was confirmed to function well under cygwin + python2.5. import subprocess, sys # --------------------- def wgetFunc(destFile, url): cmd = "wget --no-check-certificate -O " + destFile + " " + url print cmd subprocess.call(cmd, shell=True) # --------------------- # Parameters ---------- destDir = "/cygdrive/d/tmp/" searchStr = ...

USBデバイスを単独実装してるペーペー開発者の戯言

某USBデバイス開発をスクラッチから担っているものです。 揺りかごから墓場まで、設計からサポートまで。 一貫して全部やらせてもらっております。大した能力もないのに。 つまづきながら覚えていくことは多かった。 # ちなみにまだ実装は 終 わ っ て い な い。絶賛炎上中。 今日は今までのおさらい。 ========= 回想 ============= ある日、何やらUSBデバイスを急に作れという話が偉い人から降りてくる。 こんな感じの仕様で、こんなことを実現して欲しいと淡々と言われる。 開発の下っ端の自分はNoというチャンスはなかった。 決まってるから実装しろ、ただそれだけ。 コンセプトレベルからこうやったら売れるみたいな話まで提案できないし、 どう考えても魅力的ではないプランを、とにかく実装させられるだけ。 ものすごい違和感が、ざわざわと音を立てて湧き上がった。 って感じでしたが抑える。 その後、評価面談なるクソみたいな形式的なものに付き合わされた際、 どうしても問題提起したくてこの「天から舞い降りてくる素晴らしい全自動奴隷システム」について、 会社のヒエラルキーのなかでのいわゆる偉い人に言ってみた。 端的にいうと、「誰かが決めたことに文句言わずについてけ、ペーペーなんだから」 って返答がもらえた。 この人、この間までこのプロジェクトに反対していませんでしたっけー。 諦めがついた、この会社で偉くなってもこの程度なんだから。 偉くなる人はたぬき。 上に行くために必要なことをするだけの人。 ペーペーは考えるチャンスを奪われる。 能力が育たない。 結果、会社に買い叩かれる。 この違和感は忘れちゃいけないと思った。 一種の洗脳かと思った。 絶対に忘れない。 次の日、自分は考え方を変えた。 「これはビジネスじゃない、おべんきょうだ」 スクラッチからデバイス開発なんてなかなかできない。 ましてやいっぱい数が出るデバイスだ。 まぁいい、やってやろうじゃないか。 おべんきょうでお金貰えるなんてサイコーって気持ちで。 貴重な人生をこんな製品の実装に費やすのは少し残念ではあるが、 金無しスキル無し人間なので、これはいい意味での踏み台だと解釈。 意識が変わった、仕事が面白くなった。 USBにはプロ...

C言語でBluetoothスタックを叩きたい人のBluetooth開発入門その2

Bluetoothを扱うソフトウェアエンジニアにとって必要な知識は段階があると思う。 私は色々と遠回りをしてしまったので、二の足を踏む人が少しでも減ればと思い今回の記事を書く。 私が初めにとった学習方針は「いきなり完璧を目指す」ものだった。 というのも先輩に進められるがままこちらの本を借りて読んでみたのだ。 、、、意味がわからなかった。 というのも、こちらの本は情報の粒度が細かすぎて私の知りたいコトの要点がぼやけてしまうという問題があった。 ただ、先輩がこの本を薦めてくれたのには理由がある。 日本語の本で技術的に正確なことを記載しているものは実質この本だけだったからだ。 著者はBluetoothの仕様を策定したericsson社のエンジニアが書いたからだ。 確かに正しいし必要な知識はすべて書いてある。 だが、必要な知識を効率よく収集することには向いていない。 ブラックボックスをなくすことは徹底すべきだと思うが、 最終的にものづくりを目標としているソフトウェアエンジニアにとっては、 いい学習方法とはいえない。 私が経験的に学んだ学習のステップは 「ソフトウェアスタックを上から下にたどること」 Bluetooth/USBでいうと、 アプリ/テスト開発 => ライブラリ開発 => デバイスドライバ開発 => デバイス開発といった流れだ。 まずはAPIを手順通り呼んだらとりあえず実装できることを体験する。 動作を見つつ自分なりに使えるミドルウェア・ライブラリを書いてみる。 なれたところでデバドラのソースコードを見てみる。 デバイスを作ってみる こんな感じで理解を深めていければいいんじゃなかろうか。 ちなみに私は現在USBのライブラリ開発をして、 USBとはなんぞやを学んでいます。 USBについては日本語で有用な書籍がたくさんあるのでBluetoothより学習し易い環境でしたー

C言語でBluetoothスタックを叩きたい人のBluetooth開発入門その1

会社ではCでデバドラを書いてる私は、密かにBluetooth関連のお仕事をかっさらおうと画策中。 しかしながらスタックの知識、実装面等おぼつかない部分があるので、 スタンダードなことを勉強していこうと思い下記の本を会社の資料室で借りた。 めっちゃいい感じ。 PythonとかCでBluetoothスタックを叩いて実装の雰囲気を感じ取れる教科書。 入門じゃぁ!と思って意気込んでプロトコルとか読み漁るよりも、 はじめはざっくり雰囲気でよくわかんねぇけど実装は出来る状態に持っていく。 その上で深さ優先探索していってお勉強が完了するイメージですすめるほうが、 技術の習得においては手っ取り早い。 この教科書、Linux前提で話が進むので、 とりあえず私はWindowsをホストコンピュータとして、 Virtualbox上にUbuntu入れてお勉強進めます。 この本に載ってるソースコードでは、 しょっぱなから #include <bluetooth/bluetooth.h> やってるんですけど、 usr/include 以下を調べてもヘッダ無いんですよねこれが。 何かインストールしなきゃいけないんだろーと思って調べたところ、 bluezなるものをインストールする必要があるとのことでした。 アプリを実装するためにはヘッダ、バイナリが必要なので、 具体的にはコマンドを実行してヘッダを落としてきましょう。 $ sudo apt-get install libbluetooth-dev # bluezの開発環境をインストール! あとは ここ のサイトを参考にしてsimplescan.c を書いちゃって、 $ gcc -o simplescan simplescan.c -lbluetooth # bluetoothライブラリをリンクしてコンパイル! はい、実行できた。 きょうはここまで。

Webクローラーを自前で実装する戦略を情弱が考えてたところなんか話がそれて頭の良さの変遷ついて考察する事になった

私は仕事ではもっぱらCのコードを書いてて、 デバドラとか簡単なライブラリを実装している程度の技術力の人です。 仕事とは全く関係なく、ウェブ関連に少し興味持ち始めてきたので、 最近ソケットプログラミング覚えて、ちょっとVirtualboxつかってUbuntu使い始めました。 コマンドラインの素晴らしさを少しづつ学びsshでリモートログインしてとかしていくうちに、 慣れ親しんだWindowsの居心地が悪くなってきました。 githubにもsshでpush(?)してみたり、凄くおもろい。 しかもLinuxは暇つぶしにもいい。 ネットワークスタックのソース見て、 ドライバの実装ってこうやるんだーって勉強になったりもするし。 話は変わって、 少し前、pythonのurllib使ってhtmlファイル落としてきてbeautifulsoupでパースする程度の実装たことがあります。 クローラー的なものを実装してデータマイニングしてみよっかなっていう軽いノリでした。 しっかしクソ面倒。 htmlしっかり書いてるサイトだったらいいんだけど、 お粗末なサイトを徘徊するのはエラーハンドリング周りがしっかりした実装でないと、 所望の処理は行えないわけで。。。 ここでくっそ頑張れば最強pythonクローラーができるかもなんだけど、 それは車輪の再発明で世の中になんの新しい価値も生み出さない。 そもそもpython使ってたのは会社で自動化ツール実装するのに必要で、 遊びながら仕事にも応用できればなーってノリなだけだったし。。 1つの言語で全部済ませたいという目標は、 効率が良いように見えて実は遠回り。 道具は適材適所で使わないとアホみたいに時間がかかることに気付く。 Ubuntuのコマンドラインでほげほげコマンド触ってたら wgetとかcurlとかあるじゃないって気付きました(今更)。 wgetでドメイン指定して再帰的にぶっこ抜くっていうのも簡単にコマンド一つでできると知って、 やっぱり無知は罪だなー時間を浪費するなーって気付きました。 $ wget -r http://*****.co.jp ってやれば同一ドメイン上のすべてのファイルを取得可能ですよね。 とりあえず全部ぶっこ抜くのは楽勝。 ぶっこ抜いたデータベースに...

GitHubを始めてみる

手持ちのMac Book Airで何かしらツールを実装して公開してみたくなった. 最初の初期設定についてのメモ. まずは公式サイトを参考に ssh keyの設定 $ git remote add origin git@github.com:user/project.git $ touch makefile $ git add makefile $ git commit makefile -m "Add a makefile" $ git push origin master

【まとめ】イシューからはじめよ

「イシューからはじめよ」のまとめ。 * 脱「犬の道」、「イシューからはじめる」 本書では、「やってみないとわからない」というスタンスで膨大な時間を浪費する「犬の道」ではなく、 重要な問題、本体解くべき課題にフォーカスして取り組む「イシューからはじめる」ワークフローへのパラダイムシフトを推奨している * 「イシューからはじめる」アプローチとは (本書P34) 1. イシュードリブン: 本当に答えを出すべき問題「イシュー」を見極める     イシューを明確にして目的意識のブレを防ぐ     主語・動詞を入れて言語化し、スタンスを取る         ・イシューが見つからない時は?(本書P88)             変数を削る・視覚化する・最終形からたどる・So what?を繰り返す・極端な事例を考える 2. 仮設ドリブン     - イシューを解けるところまで因数分解しサブイシューを割り出す         適切なフレームワークでMECEに分解する     - ストーリーラインを組み立てる         ・典型的なストーリー             必要な問題意識・前提となる知識の共有             カギとなるイシュー・サブイシューの明確化             それぞれのサブイシューについての検討結果             それらを総合した意味合いの整理         ・ストーリーライン      ...

GAEでデプロイできなくなった件について

GoogleAppEngine for Javaな話。 ローカル環境でJSP/Servletの動作確認はできたんだが、 デプロイしようとするとバグが出た。。 出てたログはこんな感じ。 JDKのパスを変更したり実装項目の再検討したりしてたけど解決せず。。。 Unable to update: java.lang.RuntimeException: Cannot get the System Java Compiler. Please use a JDK, not a JRE. at com.google.appengine.tools.admin.Application.compileJavaFiles(Application.java:814) at com.google.appengine.tools.admin.Application.compileJsps(Application.java:801) at com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:615) at com.google.appengine.tools.admin.AppAdminImpl.doUpdate(AppAdminImpl.java:418) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:55) at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:433) at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:155) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclips...

勉強の達成感が得られるボールペン『サラサスタディ』の売り文句が秀逸な件

イメージ
以下引用。 ゼブラ株式会社(本社:東京都新宿区/代表取締役社長:石川 真一)は、インク残量がわかる目盛り付きで、勉強の達成感が得られるボールペン『サラサスタディ』を2013年10月12日(土)より全国の文具取扱店にて発売します。 『サラサスタディ』が学習に適した筆記具だというポイントは3つあります。 ① 目盛り付きの中芯でインク量の減りを確認できるので、勉強量の見える化を実現。勉強量=どれだけ頑張ったか、が分かり、達成感を味わえて日々、継続できます。 ② 消せないボールペンで書くことで、集中力がアップし、ミスを防ぎます。 ③ 筆記の反復練習効果で、解答欄を素早く埋める力を日々、積み重ねることができます。 『サラサスタディ』で採用しているジェルインクは、さらさらとした書き心地で筆が進みやすく、また油性インクに較べると排出量が多いために減りが早いので、使用している実感が得やすくなっています。 また、インク色は基本色の黒に加え、学生の間で集中しやすい色として人気の青や、間違いを正解に変える意識付けのできる赤を揃え、学習意欲の向上をはかります。 大手学習塾であるW早稲田ゼミ、Z会、ベスト学院進学塾、寺子屋グループ、鷗州塾、北九州予備校、練成会グループといった学習のプロにお墨付きをいただいた商品です。

Androidアプリ開発再入門

1. 環境セットアップ Android SDKとeclipseをインストールして設定 パスを通すなど 2. アプリのライフサイクル onCreate, onStart等のアプリの挙動を把握 Log.vをつかってDDMSパースペクティブのLogCatビューに表示すると良い。 そのままだといろんなログが出てしまって見づらいので、 LogCatビューにあるプラスボタンを押下してフィルターを作成するとよい。 3. イベントプログラミング まずは慣れるため、buttonクリック時にログ出してみる。 http://d.hatena.ne.jp/jitsu102/20110831/1314796481 どうやら4パターンの実装方法があるらしい。 自分としては2が一番好ましかった。 activity_main.xmlに追加したボタンに、onClickプロパティを追加するだけ。 関数名は自由で、追加した関数をjavaソース側で実装すればOK。 ちなみに1はクラス内に変数定義してるので、いっぱいオブジェクト出てきた時管理が面倒だなーっていう発想で却下。 4. ページ遷移 複数のアクティビティ遷移を実装する。 Intentクラスを利用して、      Intent it = new Intent( いまのアクティビティ, 遷移先.class );     this.startActivity(it); って感じに実装すればOK。 ここまでくれば紙芝居レベルなら実装できる。 5. センサー機能の利用 SensorEventListenerのインタフェースを利用して加速度機能を利用。 加速度センサーを使ってこんな感じで実装。     public void getAcc(View v){     manager = (SensorManager)this.getSystemService(SENSOR_SERVICE);     List<Sensor> sensors = manager.getSensorList(Sensor.TYPE_ACCELEROMETER);   ...

ウェブサイト構築について再考したところ重要だと思ったことのまとめ

父の仕事の都合でウェブサイトをスクラッチから書くことになった。 制約としてはお金をびた一文も使わないこと。 当時の私は「HTMLなにそれおいしいの?」状態でした。 三段階で私の成長過程をまとめてみる。 1. HTMLとCSSで紙芝居 とりあえずググりまくる。 「HTML 入門」とか、「CSS 入門」とか。 dotinstallに出会えたのは嬉しかった。 とりあえずテキストエディタという原始的な手法でhtmlファイルやらcssファイルを作成してお勉強。 クソみたいなサイトを量産するのです。 結果、HTMLとCSSで紙芝居ができればおk。 2. エディタを見直す 少し経つと腹立ってきます。 テキストエディタがまじクソなので。 いちいちタグ名とか覚えてらんねーし 複数行を選択しつつTabキー押してインデントとかできねぇし。 ここでeclipseというものに出会う。 コードの予測とかしてくれてすご~く助かりました。 ただ一見よく見えたのですが実はクソでして、、、、 重たすぎるんです。。。 もっさりもっさり動くから自分の思考スピードももっさりしてきて。。。 最近見つけたのはsublime text2です。 これ、デフォルトだと日本語扱えないので、 UTF8をShift-JISに変更して云々っていうプラグインを入れると実用に堪えるようになります。 色付けがそのまんまできれいなのでマジおすすめ。 3. ウェブデザイン&マッシュアップ 今までゼロからスクラッチでコードを書いてきた人ならわかると思うけど、 毎回毎回コード書くのまじだりぃんだけどぉおおおおおおおって気持ちになります。 車輪の再発明という言葉があります。 賢い人なら自然と避けてるんでしょうね。 今まではとにかくどうやって実装するかを考えぬいてきた。 思考の始点がダサいんだよね。 本当に大切なのは最初っからどうやって楽するかを考えることだと思います。 楽するために脳味噌使うといろんなことが見えてきます。 例えばウェブデザイン。 ゼロから作るのだるいし、そもそも大したものにならない。 これが車輪の再発明。 そこでマシな方法としては「テンプレート」とかでググりまくること。 ある程度いいなーって思えるものがあれ...

Rarejobがもたらしているポジティブな社会的影響について

Rarejobは世の中にとって凄くいいことをしている。 だれもが幸せになれるビジネスだと思う。 こう思うようになったのは今日の授業を受けてからだ。 最近は英会話にも慣れてきて、 講師の方と割とプライベートな話までするようになった。 仕事がどうだとか、将来どんなことを考えているとか。 よく授業してもらっている人は、すっごく人間性も良くて英語も喋れて、 将来は法律家になりたいので、いまはロースクールに通ってると話してくれる大学二年生。 なんで講師をやっているのかっていう話になったとき、 彼女は「Rarejobは退屈にならないためにやってる」って言ってたけど、よく聞いてみると違った。 本当は親にお金を借りることなく本を買うためにやってるとのことだった。 雇用機会が少なくて給料もそんなにもらえないフィリピンでは、 Rarejobの仕事は割がいいということだった。 それでも30分100円のビジネスだから一授業あたりのfeeは、 face to faceでやる日本の英会話教室に比べたら凄く安いはず。 授業を受ける側の自分としては、 かなり安い値段でしっかり英語を教えてもらえるので助かるし、 講師側からすると大学生をしながらも、 ウェブ経由でバイトできるから幸せなんだろう。 働く側、利用者側の双方のメリットがしっかり成り立ってる。 インターネットを利用した国際的な教育ビジネスに携わりたい気持ちになった!

Startup Engineering Lecture 4b: Linux Development Environment (Week 2/3)

Linux Development Environment 開発環境を整えようの巻。 リモートで複数タブを出力するために、 Githubからwgetでscreenファイルを取ってくる。 Ctrl + T, Ctrl + C : タブ作成 Ctrl + T, Ctrl + U : タブ移動 シェルスクリプトで一気に開発環境を整える https://github.com/startup-class/setup/blob/master/setup.sh ドットファイルもgithubにて公開されてる。 https://github.com/startup-class/dotfiles リモートからでもcommitできるように、 リモート側で生成したrsaキーをgithub側に登録しておく必要あり。 登録したら、 git add hoge.txt git commit -m "commit!!" git push -u origin master で、マスターのリポジトリにコミットできる。

Startup Engineering Lecture 4a: The Linux Command Line (Week 2/3)

CourseraのStartup Engineering、Lecture4が追加で公開されてるー!! とのことで、聴講してみました。 今回はLinuxコマンドについてつらつらと説明してくれる感じ。 STDIN, STDOUT, STDERRの説明をグラフィカルに説明した後、 各種Linuxコマンドの解説に入る。 wgetとcurl curlとかwgetとかしれっと使ってるけど、 知識皆無で挙動だけみてる私にとってそれらの違いが明確に見えて来なかった。 ぐぐってみるとこんな記事があった! wgetとcurlの根本的な違い 素晴らしくよく纏めてもらっていた。 wgetは再帰的な動作、拡張子を指定しつつダウンロードできる機能があり、 curlは多数のプロトコルに対応している点が違うとのこと。 なるほど。 後々見返してみると、 講義資料にも下記のような違いが説明されていた。 It doesn’t have the spidering/recursive properties that wget has, but it supports 6a much wider array of protocols. It is very commonly used as the building block for API calls. その他コマンド - rsync 講義資料には、"Transfer files between two machines."って書いてあった。 ローカルとリモートのファイル転送に使う感じね。 - コマンドライン上でのショートカットキーで使えそうなもの抜粋 Ctrl + A: コマンドラインの先頭に飛ぶ Ctrl + E: コマンドラインの末尾に飛ぶ Meta + F: カーソルを一単語分進める Meta + F: カーソルを一単語分戻す - backticks `` ←これ使うと変数展開してくれるみたい。 キーボード的にはShift+@で出力されます。 (例)  $ echo `date` | sed "s/2013/foo/g"   foo年 7月 6日...

Syntax Highlighterの導入

Bloggerにソースコードそのまんま貼ってると汚いし読みづらいことに気づく。 そういえばほかのウェブサイトとか、しれっと綺麗に整形されてる。。。。 色々ググったら Syntax Highlighter なるものがいいという記事を沢山見たので、 私も導入してみる。 仕組みとしてはBloggerのテンプレートHTMLに、 javascriptのライブラリをロードするコードを埋め込んで、 ソースコードをscriptタグ内部に記述すればいいだけ。 こちらに手順が載っていたので、 この通りにやってみました。 http://toldalie.blogspot.jp/2012/01/blogger_31.html できた。。。 // サンプル int main(void){ return 0; }

HW1 Programming: Basic Server-Side Javascript with node.js@Startup Engineering

イメージ
I've just done  the homework assigned at the lecture "Startup Engineering". What is "Startup Engineering" ? => There's a description like this... Overview Welcome to Startup Engineering! This is the course we wish we'd had before beginning our careers. It's a summarization of what we know about starting technology companies/labs and scaling them up, taken from our experiences building  Counsyl and  Folding@Home . There's a lot of things to learn. First, it is necessary to create an account of Amazon Web Service (AWS). In addition to this, we need to learn how to use Amazon Elastic Compute Cloud (Amazon EC2). Do you think it's difficult? No, it is very easy to understand. It is because Balaji S. Srinivasan , who is a lecturer of Stanford Univ , teaches us through streaming video. I'm very appreciated to him. What I learned is as follows. - How to use Amazon EC2 - How to operate Ubuntu with Linux commands. - ...

自分が欲しい物を作る

イメージ
今日、カンブリア宮殿で、モンテールの特集をやっていました。 新人さんが新商品の提案をするシーンをちょうど見たのですが、 社長さんがおっしゃっていたことがほんとにそのとおりだと思ったのでメモ。 自分が本当に食べたいものを提案してる? 奇をてらってない?会社にとって良いじゃなくて、消費者にとっていいと思ってやってる? 本当にそのとおりだと思いました。 業界は違えど、自分がこれまで部署に投げた提案も、 一旦自分が本当にほしいものかどうか自問自答すべきでした。 自分が作りたいものを提案してしまっていたことに気付きました。 自分の技術が活きるから、自分の仕事が目立つから、そういった視点で提案してしまっていました。 そういった自分起点の視点では売れるものはできないし、 つまらないって思われるに違いないでしょう。 もう一つ印象に残った言葉があった。 2年目はお客様に近い目線でものを見ることができる。 会社に染まっていないから新鮮なアイディアが聞けるんですよ。 どんどん提案してきてほしい。聞いているのが楽しい。 こういったこと言ってくれる社長の元だったら社員がイキイキしてどんどんアイディア出てくるだろうな。 企業の低迷期(まさに今のウチなんだけど)はアイディアが枯渇して、 制約ばっかりが見えてきて、 視野が狭まって良い意見が出ない。 空気の悪い会議からはイノベーティブなアイディアなんて出てこない。 だからこそ、アイディアを奨励する仕組みが欲しい。 それでいて率直に面白いつまらないを言い合える環境が必要。 アイディア稼業の業界にいるのに、 アイディア出さずに社員してるのとかマジでぶら下がりと同じだよね。 頑張ろう。

Octaveを用いた信号処理

http://www.kkaneko.com/rinkou/octave/octaveyuminstall.html このサイトを参考にしてUbuntu環境でoctaveのセットアップ。 修士時代は、生粋のMATLABユーザーで数値解析プログラムをぶん回してた関係で、 解析系のコード書くのはすごく得意なのです。 Octaveは互換性があるおかげでキャッチアップが簡単でした。 > x = [ 0.0:0.01:2*pi]; > plot(sin(x)); 修士以来書く機会のなかった久々のsinカーブ。

CourseraのStartup Engineeringが半端無く勉強になる件について。

ウェブ系の技術に疎い私ですが、 AWSのクラウド環境で作業して、コマンドラインでホスティングサービスにウェブサイトをデプロイするまでをたったの一時間で習得した。 短時間でそれを可能にしたのは Coursera オンラインで有名大学の授業をタダで聴講できるサービス。 そこでやってるStartup Engineeringを受講してます。 Stanford大学の先生が教えてくれるんだが、 物凄くわかりやすい。 Startup Engineering  by Balaji S. Srinivasan, Vijay S. Pande やることとしては、 - AWSでアカウント作ってEC2のubuntuインスタンスを作成 - Githubからクローン - インスタンスにsshで入ってherokuにデプロイ。 この環境があればモバイルPCだけで開発できちゃうよね。 クラウドで入ってその中で全部完結してしまうんだから。 ついでに英語の聴きとり能力も向上した気がして一石二鳥。 Homeworkも設定されてて、 やんないとcreditがもらえなくて修了できないという仕組み。 落ちるのは嫌なので。 どんどん身に着けていくぞー 今日の成果はこれ。 http://cryptic-sierra-4988.herokuapp.com/ つぎはNode.jsをやってみます。 ふと思ったんだが、Stanfordではこんなに実学寄りなことを大学で出来るんだよね。。 マジで学術的なことなんて事後で学べばいいと思うんだよ最近。 スタートアップが日本から生まれてこないのは教育システムにもあるんじゃないかな。。 技術は学ぶもんじゃなくて使うものだってCourseraの講義聴いてるとひしひしと感じられるよ。

AWS & 仮想化の入門

イメージ
MacBook Airにてamazon EC2, S3を試してみた. 数時間使った感じかなり使いやすいので, ウェブホスティングサービスとして確定した気がする. 1年間は無料のまま使えるけど,その後お金払ってもいいや. ブラウザからOS選んで立ちあげてsshで入るっていう仕組みの便利さが半端ないな,今更だけど. 強固なインフラもいらないし,これからはすべてモバイルPCで生きていけそう. コンテンツの実装もデータをS3に置きつつ仕事すれば別にストレージもいらんし. 入門にあたってはdotinstallの AWS入門 が半端無く役に立ちます. ついでにインフラ回りの技術に興味が湧いたので, MACにVirtualbox入れてUbuntuたちあげてみたー. やっぱUnix系はコマンドラインでサクッとインストールできちゃうのがすっげぇ楽. 仕事ではWindows使わなきゃなので仕方なく使っているが, Max使う仕事場に行きたいわ..

メモ@統計科学

オンラインコンテンツ: Coursera: coursera-downloaderで講義データダウンロードしてタブレットで見ると便利               Computing for data analysis edx: Stat2.1x, Stat2.2x, Stat2.3x pyvideo:  http://pyvideo.org/              http://pyvideo.org/video/1724/bayesian-statistics-made-simple 統計の基礎を学ぶ: 統計学自習ノート   http://aoki2.si.gunma-u.ac.jp/lecture/

アイディアノート: 学びのソーシャル化・ビッグデータ化

イメージ
すららを見てみた。 ウェブ上で教育コンテンツを流してる会社。 コンテンツ制作に最低限必要そうなものピックアップしてみると、 - ユーザー一人一人のログ採取のためのインフラ - 自動音声合成(いちいち声優使いたくない、テキストデータでパっと作りたい) - 良質なコンテンツ作成のためのノウハウ iKnowも見てみた。 これ単語帳が自動生成できるんじゃねって思ったらとっくにやってた。 情報を最適な形で抽出することなんてログ取ってりゃ簡単だよなぁ。 podcastで復習もできる。 でもまー新しさは無い。 次はアダプティブラーニング。 WIREDでの記事が少しピンときたのでメモ。 http://wired.jp/2013/04/27/adaptive-learning/

Lytroの事後ピント合わせカメラはいわゆるビッグデータ思考に似ている

イメージ
コンデジ市場がスマホのカメラに侵食されている昨今ですが、 最近いろんなカメラが出てきてますね。 今日は2つめぼしいものをまとめます。 一つは前回も記事を書いたGoPro。 小さくて堅牢なウェアラブルカメラです。 アメトーークで宣伝されてから日本でもバカ売れしてる商品。 機能的にはなんにも新しくないんだけど、 訴求する価値が新しい。 車載カメラにしてみたり、ダイビング中に撮ってみたり。 撮影者の視点が変わっただけで、 ビデオってこんなに変わるんだと感じさせてくれる。 オフィシャルサイト( http://jp.gopro.com/ ) のトップページでは、 アクセスするとすぐyoutubeの動画がドンと出てくる。 一回動画を見てもらうことが訴求価値を理解させる最高の手段だといった マーケティング判断なのかな。 簡単なTV撮影とかにも向いていて、 資金力のなくなってきたテレビ局が使い捨てカメラとして大量購入とかありそう。 テレ朝さんはアメトーークで宣伝してやっから便宜を図れ的なやり取りしたんだろうか。。 次が本題のLytroのカメラ。 こっちは写真を撮ってからピントを合わせるカメラです。 意味わからないですね、聞いた当初は。 普通のカメラって、一時点の光だけを採光して、 データに焼きこむけど、 Lytroのは、入ってくる様々な光を全部取り込んでしまって、 それらすべてをデータに焼きこんでるイメージ。 全部のデータがストレージされてるから取った後でピントが変えられるんです。 なんでこの件で記事書いてるかといいますと、 ビッグデータの正体っていう本でこのデバイスの話がちょろっと出てきて気になったので調べたのがきっかけです。 この本のまとめは後日書くとして(絶賛読書中)、 Lytroはいわゆるビッグデータ的な考えの一例の文脈で登場してました。 いままでのカメラは、一時点の光を標本として取り出すことで写真を撮ってきた。 それに対してLytroは撮像時の光すべてを採光してストレージしてます。 これは標本空間全体を対象として、 全部をストレージした上で分析をかけるビッグデータの考えに似ているとのことでした。 なるほどなーって思うし、本文中に頻繁に出てくるフレーズ、 「量が質を変える」 ...

情弱でもできたPython3.2でMatplotlibをWindows環境にインストールする方法

イメージ
Matplotlib動かしたくてもなかなか環境設定難しくて 動かなくって諦めてた私。 scilabならインストール簡単だしFFTとか簡単にできていいんだけど、 文字列処理とかwebのスクレイピングとか入ってくるとやっぱpythonだと思います。 なので、本読みつつMatplotlibをWindows環境に入れてみたよ。 やっと成功して嬉しいです。 1. Python3.2 32bit版のインストール Windowsではライブラリ提供者が予めコンパイル済みのバイナリを配布するのが望ましいとされている。 NumPy等は32bit用のもののみ用意されていたりするので、32bit版をインストールするのが安定。 加えて、Matplotlibは現在3.2系のものしか用意されていないので3.2系をインストール。 下記リンクの"Windows x86 MSI Installer (3.2)   (sig)   and   Visual Studio debug information files   (sig)" を落としてウィザードで言われるがままインストール。 http://www.python.org/download/releases/3.2/ 2. PATHを通す 環境変数PATHの先頭にPython3.2のインストールディレクトリを追加 デフォルトでは C:\Python32\; を追記すればOK 確認:コマンドプロンプトから"python"と打ち込むとPython3.2が起動すればOK 3. 仮想環境の準備 せっかくなのでコマンドプロンプトからpythonのコマンドを実行してみる。 >>> python >>> import os >>> os.system("pwd")  # ユーザーのホームディレクトリ >>> os.system("mkdir projects") # cygwin入ってるから実行できる >>> os.system("cd projects") >>> os.system("mkdi...

AndroidでBluetooth, NFCをさわってみたよ

最近仕事を早く終えてAndroid開発をしている。 開発環境割と古かったせいか、 ADTの更新を求められたりして若干面倒なことがあるけれど、 実装しやすさは抜群。 しかしながら開発環境頻繁にアップデートされるとまじでオーバーヘッドでかい。 クラウド側で開発とかできないのかな将来的に。 個人的にワイヤレス系技術に興味持ってるので、 NFC, Bluetooth周りを触ってる。 現状、NFC機能を使って、 Suica,nanaco,edyは読めるようになった。 しかしながらバイナリのままなので、これらのタグフォーマットを理解して、 意味のある形に変換する必要あり。 特にSuicaのバイナリデータは、 乗り降りした駅、時間をゲットできるので 人の行動履歴のトラッキングができる。 edyからは決済データがぶっこ抜けるし、 割とNFCからのマーケティングデータ応用はあっさり確立していきそう。 Bluetoothは、はっきり言って仕事のため。 技術の理解と、AndroidのBluetoothスタックを参考に 何か仕事にプラスの効果を出したいっていうノリ。 コントローラとタブレットの近距離通信出来れば、 タブレットをテレビ代わりにしていわゆる据え置きゲーが カフェでもできる!みたいな未来が見える。 ゲームって軽い方から順に、 スマホ ネトゲ 据え置き って感じだけど、 そこに、「ヘッドセット+コントローラ+タブレット」 っていう新しい領域ができていけばなーって妄想中。 友達のタブレット複数枚持ち寄ってマルチディスプレイ環境とかもできたりして。

androidアプリの公開にチャレンジ

androidアプリ公開時に必要な手順メモ。 ・ keystore:  http://www.andr0o0id.com/?p=3867    Windows7 => C:\Users\ユーザー名\.android\debug.keystore ・  https://sites.google.com/site/technoute/android/publish/apk   もろもろの手続き。 ・注意 - com.exampleのパッケージは許されない - パッケージ名の重複は許されない - キャプチャ画像は最小でも二枚必要  エミュレータからキャプチャ画像を取得するやり方   http://www.adakoda.com/android/000243.html ・ ビルドエラーがでて、AndroidManifest.out.xmlが生成されるけど、 コードを元に戻してもビルドエラー。Why? ってときは AndroidManifest.out.xmlを削除して、 プロジェクト右クリックしてRefreshして再実行すると行ける! ================================================================ 普段の仕事でも各種センサー類を触っているが、 androidではこんなに簡単にアプリ実装ができるのかと感動した。 また、洗練されたフレームワークがあるっていうのに感動。 アプリ開発者側には、   決まった手順でアプリが量産できるSDKを提供すること がとてつもなく重要であると感じた。 アプリ屋さんの気持ちをしる上でのandroid開発は意外と仕事に良い影響を及ぼしそう。

レアジョブから学んだこと

イメージ
レアジョブやってます。 Skype経由で、フィリピン人と英会話できるサービスで、 一回あたり100円ちょいで30分レッスン。 それを毎日できるというすごいサービス。 このサービス、 フィリピン人が安く雇えることと強い円のお陰で、 凄く恩恵を受けていると思われる。 フィリピン人の学生や主婦が多く講師として在籍していて、 雇用が増えているようだしみんなが幸せになるサービスだと思う。 そこで今日はこんなニュースを見た! 先日 TechAcademyマガジンのインタビュー記事でも紹介したレアジョブ が新たに 資金調達したことを発表 しました。 YJキャピタル、KDDI Open Innovation Fund、サイバーエージェント、サイバーエージェント・ベンチャーズ、グローバル・ブレイン、三菱UFJキャピタルの6社を割当先とした総額約3億3000万円の第三者割当増資とのことです。 いいねぇ~こういうサービスが成長するの! Win-Winとかよくいうけど、本当に関係者全員が幸せになれるアイディアって素晴らしいと思う。

インフォグラフィックスなるもの

技術的な議論をしていると、 話しの様子を可視化・絵にできる人がすげぇ優秀だということに気付いた。 図解することが重要だー!って叫ぶビジネス書とか腐るほどあるけど、 インフォグラフィックスってキーワードでざっと読書してみるといいかもしれないと思ったので、 色々検索。 visual thinking ってサイトが自分的にすっごくヒットしたので、 ネットサーフィンしました。 リンクだけ貼っておく。 完全に自分向け! インフォグラフィック作成するために読む本 10冊 「たのしいインフォグラフィック入門」Amazon予約開始のご案内

因果関係を短絡に捉えるとアホにみえる。

イメージ
自分が見た事象だけで時期尚早な判断してることないですか? 私はしょっちゅうです。 今日は面白い事例があったので紹介します。 昨日、あのMicrosoft先生がXbox oneなる新製品を発表しました。 こんなやつ↓ あんまりコンセプトとか驚きは見えなかった。 Aさんから見ても同じように写ったみたいです。 Aさんは自称スマートビジネスマン。 ロジカルとか、マネージメントとか、カタカナの賢そうに聞こえる言葉を並べる先輩なんです。 そいつが実際賢いかどうかは別にして、今日はこんなこと言ってました。 「MSさんの新製品大したことないからソニーの株価バク上げしてますよ!!」 ですって。 彼らにとって興味深いことといえば、 投資(主に表面的な株価の上げ下げ+為替)、ゲーム産業。 MSの製品は確かにそんなに良さが見えなかったんだけど、 そこからソニーの株価バク上げを導き出しちゃう俺すげぇ。 って感じ。 結果からそれっぽく理由を並べるのって無責任に誰でもできる行為なんだけど、 それが筋が通ってるかどうかは別の問題。 一因にはなるかもしれないけど、 「赤字気味のゲーム事業の分離を考えてるんじゃないか?」っていう憶測が広まったことのほうが 要因としては大きいんじゃないかなーと漠然と思った。 見たことだけから判断することもできるけど、 調べられる範囲でもう少し深い考察をしてから断定的な発言をした方がいい。 良い事例でした、勉強になった。

Qualcomm iZatのモバイル位置推定技術が凄い件

イメージ
Qualcommの技術が凄い件!! ということでこちらを御覧ください(英語だけど) 要するに、 屋内に設置された複数の無線APからとれる情報から モバイル端末の位置を 数m以内の誤差で 推定する技術なんです。 既存GPSの「数百m半径内に多分いるんじゃない?」っていうクソみたいなレベルとは大違い。 事前にAPの位置は登録する必要があったり、 得られたデータがQualcommのサーバーに送られるなどのリスクはあるものの、 屋内のどのへんにいるかが数m程度の誤差で推定できるとのことです! こんな経験ありませんか? 「新宿駅南口どこだ?あ、ここ行き止まりかぁ。。。あー待ち合わせ遅れたわ・・」みたいな。 大都会の複雑な駅に行くと行きたいところに行くのにすご~く時間かかりますよね。 最近よく見ますよ。 リクルートスーツに見を包んでスマートフォン片手に道に迷っている人。 道に迷うとともに人生にも迷ってるんじゃないかと思うくらい不安な顔で。 自身の経験とこういう人見てると、スマートフォンのGPS程度では不十分ってことです。 モバイル端末を持った位置推定が求めることは、 数km半径でこのへんにいるのかーっていう大雑把な位置推定ではなく、 数mレベルで、この店舗の真ん前にいるのか、 じゃぁ目的地は逆だな。 みたいなレベルまで精度を上げなきゃいけないんです。 技術的に今どういう状況かというと、 IEEE802.11uのワーキンググループが関連する規格を決めてる段階で、 上述した話が実現するのはまだまだ未来のことです。 でも、この技術が普及してくれれば人が道に迷うことがなくなるんじゃないでしょうか。 ・・・それだけではないと思うんです。 この技術が実現した場合の未来を妄想してみる。 ・黎明期は、各社がプレゼンスを上げるために公共施設等に赤字覚悟でぶっ込んでく。大企業に対して売り込む・競合他社を駆逐するには口だけ野郎よりも何よりも「確固たる実例」が最高の説得力になるからだ。 ・ Qualcommみたいな技術を持った会社は、不動産ディベロッパーに技術を売りに行く。 当該技術導入による「資産価値の向上」を唄って。 ・副産物として、広告プラットフォームのインフラになる。...

パスタソースの話

イメージ
つけパスタって知ってます? つけ麺のタレをパスタソースに、 つけ麺をパスタに置き換えただけのやつ。 転用がNewnessを生むいい例かもしれません(棒) つけパスタとかどうでもいいから、 むしろ面の一本一本を風車みたいな形にして、 茹で上がりやすくしたって言う点をゴリ押ししてくれれば買うんだけどなー。 パスタ茹でる時間超長いし、 食べるの一瞬だから一人暮らしの私としては、 すんごくめんどくさい もう食べるの面倒なくらいに!! だけど保存力半端無いからついつい買いだめしてしまうんよなぁ。 とりあえず日清さん、 湯で時間の短さを売りにした麺を製造していただきたい。 形状を攻めればある程度はいけると思われる。 日清のつけパスタ

ウェアラブルカメラがバカ売れ

イメージ
ウェアラブルカメラでyoutube等のストリーミングサービスにアップロードするひとが増えているらしい! ウェアラブルカメラはテレ朝の アメトーーク! でも紹介されててました。 体に装着できるくらい小さくて耐水性もあって便利そう。 小さいし視点が一人称の景色になるからNewnessも担保できる! ウェアラブルカメラで売れているのは GoPro GoPro部なるものもできていて市橋博明さんが発起人。 また、GoPro + Facebook/ Youtubeとの相性は抜群。 Facebookページに実際のユーザーの動画を載せることでさらなる販促につながっているもよう。 タジマモーターコーポレーション さんではスポーツカーに車載カメラで使っているようです。 迫力ある映像が取れそう。例えば こんなの 。 今までスマホとかで一つのデバイスがすべてのものを集約する方向に進んできた。 これからは集中から分散へ。 口元にマイク、目元にウェアラブルカメラみたいな感じで。 そこからクラウドに飛ばしてライフログを取る。 こんな将来の使い方が想像できそう。

関西ソーシャルゲーム勉強会メモ

* 乙女ゲーム ====================== [文化] プラットフォーマーのガイドラインに従いギリギリを攻める [技術] Amazon AWS(EC2, RDS, S3) - scala, mysql - FlashからHTML5へ - HTML + Javascriptで画像合成し,シナリオ再生している [push通信にご用心] - 一斉送信だとユーザーが同時アクセスしサーバーの負荷が高くなる - 順番に時間をずらして送信 * ビジネスインテリジェンス@ Klab ====================== KPIを見るためのウェブサイト KPIの速報値 Pythonで実装: 可読性・保守性・ライブラリが豊富 Rは部分的に活用;速度の観点で使いものにならない? - AWSを使用 - 競争激化/市場の成熟により広告マーケティングの手段が増えてきた.  => 効果測定が求められる * 直置きアプリのマーケティング施策 @ ダンクハーツ ====================== - Google Play & iOSのマーケット上位を狙う => コーポレートサイトから直パスでインストールしてもらう方法だとランキングに依存しない気が - ファミ通・アップバンクに乗せてもらう => blog等で記事を書いてもらえる副次的効果もある - 白ロム販売会社にプリインストールしてもらう => GooglePlayのランキングに反映されない * 世界市場で勝つその為にDeNAが行なっていること ====================== 川上睦夫 - 農園ホッコリーナのプランナー - 海外でのMobageの状況 - personalized - 大量のサービスとユーザー・ネットワーク =>   ユーザーを知る・スピードアップ - DeNAが行なっていること   開発体制:ジャッジは現場・少人数・少ない階層構造   -- ゲームデザイン:分かりやすさ・事象の分かりやすさ・課金ポイントは1つ   -- イベントによりユーザーの離脱ポイントをなくす     期間限定ダンジョン,プレイヤ...

パズドラにハマる

イメージ
パズドラが面白い。 私の理解では、 パズドラ = ドラクエ + ぷよぷよ + ポケモン 既存のものを組み合わせて新規性を創る点に加え、 中毒性の高い独自のパズルができている。 ドラクエ要素としては、 手持ちのモンスターを使ってダンジョンをクリアするオーソドックスなゲーム。 プレイヤー自身にもランクがあって、 それに応じて強いモンスターを扱えるようになる。 強化合成や進化合成でモンスターを強くさせたりレアカードに進化させることもできる。 ぷよぷよ要素としては、 単純なアルゴリズムで実装されたパズルにある。 赤緑黄などの色がついたパズルのコマ(キャンディというらしい)をくるくる回して、 3つ以上並べると、その色属性を持ったモンスターが的に攻撃できるというシステム。 当然、キャンディが揃うと消えて、また上からキャンディが補充される。 中毒性を上げる要素としては、 連鎖要素も当然実装されている。 連鎖の仕方のノウハウもありこれが中毒性を上げている。 単純さと爽快感、そして奥深さが入り交じっていて、 個人的にはテトリス・ぷよぷよのような今後のスタンダードになるパズルだと捉えている。 ポケモン要素としては 属性があるということ、 ダンジョンでモンスターを仲間にできるということ。 最後に気付いたのはソーシャルなめられないなってこと。 3G回線につながっているからこそ 簡単なネットワークアップデートができたり、 クラウド側にデータを同期したりするのが簡単で、 ユーザーの一挙手一投足がデータ化できる。 またフレンドとしてユーザー同士をくっつけることで、 ゲームを楽しく、やめにくく、そして宣伝効果も狙っている。 デバイスが変わればやり方も変わるいい例だと思えた。 モバイルでネットワークにつながっていることが前提という状況が、 できることをものすごく増やしていて、 かなりの強みであるように思う。 スマホのGPUが進化していけば、 「スマホでゲーム」という市場が拡大していくことは火を見るより明らかだろう。

pythonスクリプトでtweetする簡単なサンプルを3分で実装する

cygwinコンソールからtweetするサンプルスクリプトの実装をしてみる。 まずはtwitter developersサイトに行きます。 1. Applicationを新規作成 2. OAuth settingsでAccess levelを [Read and Write] にする 3. 以下4つの情報を参照 CONSUMER_KEY     CONSUMER_SECRET ACCESS_KEY       ACCESS_SECRET # -*- coding: utf-8 -*- #!/usr/bin/env python import sys import tweepy CONSUMER_KEY = '**************' CONSUMER_SECRET = '**************' ACCESS_KEY = '**************' ACCESS_SECRET = '**************' mypost = sys.stdin.readline().strip() if 0==len(mypost): exit() auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) api = tweepy.API(auth) api.update_status(mypost) 実行時に以下のように怒られたら2をチェック。 ”tweepy.error.TweepError: Invalid / expired Token”

事業提案よりもやってからの事後提案がセンスいい

「こんなのやったらどうですか?」 っていう事業案を投げた。 今の時代、平社員1年目の私でも部長に意見ができる。 そう、メールならね。 1年目だし「うざってぇメール投げてんじゃねぇよ氏ね」って言われるの覚悟で投げたった。 何も知らん部長だから、 背景、問題点、改善策 といった段落分けで、 「ロジカルかつ簡潔に」 を目標に文章化した。 相手が偉い人だし、長い話をじっくり読むのが想定しづらいのでね。 これが意外と部内の審査をあっさり通り抜けたんです、しかも2日で。 うちの会社、一応大企業なんだけどかなりフラットで、 二段階くらい上にあがるともう社長にぶち当たれる良い組織なのです。 あとこの組織、かなりアイディアで動いてるわけです。 論理よりも感性だとか新しいとかが尊重される世界なのです。 そーゆーのやりたい人は腐るほどいて、 そこで戦うよりも、もっと業務改善とかに目を向けて、 改善できる点をロジカルに詰める方が戦略上賢いし自分の価値が出せるはずと思ってる。 そこで思い立った今回の提案。 1年目のアイディアを直近の先輩に投げてもないがしろにされて無いもの扱いになるだろうから、 どうせならやけくそになって、いきなり偉い人に投げてみたのが功を奏したようです。 部長に直接事前説明の根回しをしたのと、 部長宛にメール投げて、併せて先輩に投げるというプロセスを取ったので、 上に展開せざるを得なかったのでしょうね。 他部署の室長まで話が流れている今の状況。 頑張るしかないわけです。 でも ここでふと思う。 口先だけでいいのかと。 口 が 先 にでるだけでいいのかと。 「お前エンジニアだろ?」 「プランナーじゃないだろ?」 やっぱり自分である程度創りあげてから投げるべきだった。 「こんなの作ってて、すげぇ良い評判もらってるんすよ~」 って言ったほうが、現実味あるし「俺がやる」っていう本気度も伝えられる。 これからは事後提案にしようと思いました。 ていうか今の提案を水面下で一刻も早く実装しなきゃいけないんじゃないだろうか。 頑張ろう、やっぱうんこだわ俺。

PythonでWebページを取得しURLの抽出する

利用ツール&モジュール - Python2.6以上 - HTMLParser - urllib2,urllib 試しに当ブログのトップページに含まれるリンクを抽出するスクリプトを作成しました。 # -*- coding: utf-8 -*- # http://ymotongpoo.hatenablog.com/entry/20081211/1228985067 # http://nihitok.blogspot.jp/2011/07/pythonhtml.html # Modules ------------------------ from HTMLParser import HTMLParser import urllib, urllib2 import fnmatch # Classes ------------------------ class My_parser(HTMLParser): # My_parserインスタンスが生成された際に呼び出されるコンストラクタ def __init__(self): HTMLParser.__init__(self) self.is_data = False self.href = None self.val = None self.data = [] # 開始タグにぶつかったらhandle_starttag()を呼ぶ def handle_starttag(self,tagname,attribute): if tagname.lower() == "a": for i in attribute: if i[0].lower() == "href" and fnmatch.fnmatch(i[1], "http*"): self.is_data = True self.href = i[1] # 終了タグにぶつかったらha...

家電芸人で紹介された最高な家電まとめ

イメージ
テレビ朝日でやってた アメトーーク今こそ !! 家電芸人 2013春スペシャル(3月22日金曜日放送) 非常に楽しく見させてもらいました! その中ですっげーなーって思った製品を紹介。 ふとん専用クリーナー  raycop のSMART 掃除機って括りから飛び出して、 「布団専用」というカテゴリー付けはブルーオーシャンだと思うし、 それ専用に機能を特化してるので先行利益を得てるんじゃないですかね! 喋る自動掃除機 SHARP 「COCOROBO」 こっちは喋る自動掃除機。 iROBOTのルンバの二番煎じにしか見えない。。 「喋る機能」がついてるとかいってバッテリーが少なくなったら関西弁で喋るとかそーゆーレベル。 センサーで状態をチェックして予め用意された音声ファイル流すってレベルなのかな。 既に先行者がいる市場にわざわざ製品出すんだけど、 特に消費者に対して魅力的ではない機能をつけてる。 さらにはプラズマクラスター。。。 足し算の論理って日本メーカーの十八番ですよね。 これ売れてるんだろうか。。 究極の手ぶれ補正ビデオカメラ、 SONY HDR PJ-790v これはまじで欲しいと思った! 手ぶれ補正もすごいんだけど、 取った動画をそのまま付属のプロジェクターで投影して、 周りの人と鑑賞できちゃうスグレモノ! カカクコムで11万くらいで買えちゃいます! 超小型ビデオカメラ! GoPro 「GoPro HERO3」 ここまで小さかったらいろいろカジュアルな使い方ができそう。 でも将来的には、スマホに組み込まれるレベルの機能になっていく気も。 プロジェクションマッピングiPadアプリ「 DynaMapper 」 いまや東京駅とかのイベントですっかり馴染みのワードになってるプロジェクションマッピング。 これはプロジェクションマッピングがiPadだけでできてしまうアプリです。 これはすっげーと思った! 自分の部屋に合わせて画像の位置を設定する機能がありましたー たった450円です。

楽天カードよさようなら、これからはRecruit Card?

MarkeZine: リクルート、業界最高水準のポイント付与率のカード「Recruit Card」を展開 楽天カード今まで使ってた。 100円で1ポイント。ポイントは楽天市場とかで使えるよ! ってルールが単純だったし、edyも使えたので。 ポイント溜まったら楽天市場とかで買い物してる。 カード決済時の1ポイントと、楽天市場のポイントが1ポイントで 100円で2ポイントつくし。 5月30日からRecruitCardが出るようですね。 こっちは年会費無料で100円で1.2ポイントRecruit Card。 RecruitCardPlusは年2100円で100円で2ポイント貰える仕組み。 なんか良さげに聞こえるじゃん。 でも待て待て。 ポイントはリクルートのサービスで使える模様。 リクルートにはECのショッピングモールが無いからあんま使えねー。 還元率はちょっとだけマシだけどぶっちゃけ微妙。 あとEdyも使えないだろーなー。 うーん、、、まだ楽天カードが安定かなー。

1分でPythonでスクレイピングツールを作る

# -*- coding: utf-8 -*- import urllib #proxies={'http': 'http://192.168.0.1:8080'} url = "http://www.goldmansachs.com/" #filehandle = urllib.urlopen(url, proxies=proxies) filehandle = urllib.urlopen(url) data = filehandle.read() print data まずはコード! urllibをインポートしてurlopenするだけ。 コメントアウトしてる部分はプロキシ経由でアクセスするときに使います。 これでGoldman Sachsのサイトをぶっこ抜けました。 将来的にはタグ解析の後、データベース化つくってC++で解析とかしようかなと! スクリプト使って各サイトにアクセスするわけだけど、 データぶっこ抜くためにサーバー立てて自動化できたら素晴らしいなぁ。 分散処理とかできたらなー。 <a href ***ってところをぶっこぬいてグラフネットワーク的に解析したら 人気サイトとかわかるよね。 こーゆーのがGoogle先生のやってることなのでしょうか。 めっちゃ興味ある。。。 今興味持ってるのは pythonに通常装備されてる sqlite3 と、 pythonでスクレイピングツールつくろうぜ ってサイトで言及されてるBeautifulSoupです。

つけまつげ

本名:きゃろらいん ちゃ ろんぷろっぷきゃりーぱみゅぱみゅ (Caroline Charonplop Kyarypamyupamyu) きゃりーぱみゅぱみゅにハマっている。 かわいい+グロい+不思議 な世界がこの世でOnly Oneだと思うので好き。 つけまつげの歌詞に、 「同じ空がどう見えるかは心の角度次第だから。」 というフレーズがある。 なんか心の持ちようで、 明るくも暗くもなる人生。 どうせなら明るく行きたいよねっていうのを、 ポップな曲調から感じ取った。 ぱみゅぱみゅらしく「Only Oneなこと」を目指そうと思った。 昔からなんか似通ったものがあるものに興味が無い。 何かの真似とか既存のもののパクリとか。 それが仕事だったりすると嫌になるだろうな。 自分がやるべきことなのかなとか思っちゃう。 支離滅裂ですね、おしまい。

SDK開発者として

GoogleMapsのリファレンスが素晴らしい。 https://developers.google.com/maps/documentation/javascript/?hl=ja 文章でダラダラ書くのではなく、 まず最優先でコードありきで、少しの補足がおまけ程度に付けてまとめてある。 言葉がたくさん必要なSDKってそもそも設計が良くないわけで、 SDK提供者側は、コード見たら一発で分るレベルのAPIを用意すべき。 その点でGoogleMapsAPIは洗練されてる。 世界中のアプリ開発者の人の目に晒されてるからかも。 あと、リファレンス内のコードが見やすく整形されてるってのも良い。 細かいことだけどアプリ開発者から見た時の印象が違う。 現状、HTML,CSS,Javascript関連に疎いエンジニアが、 副産物としてドキュメンテーションしてるんだけど、 この環境は非常に良くない。 ドキュメンテーションに対する意識を高めて、 もっとフレームワークを洗練させて、 SDKを使う人の立場にたった洗練されたものを提供すべきだと思った。 さすがにsdkのデモとかはしっかり作ってるけど、 リファレンスではHTMLコードベタ張りとかが横行してる世界、ヨクナイ。 改善しよう!

アメリカ出張

新卒1年目にしてアメリカ出張の機会があった。 ディベロッパーとして一つのプロジェクトのプログラマとして働いてきた。 カナダ人、メキシコ人、インド人、アメリカ人といった多国籍メンバー。 向こうのエンジニアが素晴らしいと思った点をまとめる。 ■Whyを突き詰める ある設計を提案するとして、 確実に「なぜそうなんだ」という問いを、 明らかに真というレベルまで掘り下げて質問してくる。 設計に関する技術要素や背景を構造化して整理することで、 全く知らないことであっても同じレベルで議論できるようになる。 ■Debateする 納得行かないことはひたすら意見をぶつける。 日本人的などっちかが折れる「意見のすり合わせ」ではなく、 おもいっきりぶつけて、その結果秀でた意見が採用される。 喧嘩に近いレベルで白熱するが終わったあとは仲良くランチする。 自他共に成長するので凄くいいカルチャー。 ■最高を求める 複数解があったとき、 時間的制約は度外視で技術的に最高のものを採用する。 間に合わせられないのはエンジニアの責任って感じで。 特にソフトウェアの場合はじめの設計が将来のメンテナンスコストを左右するのもあるので、 遠い先の将来も見据える必要がある。 自分に足りていないものも同時に見えてきたのでまとめる。 ■技術を教えてもらう 自分で学ぶ部分は最低限やった上で、 高度なこと・実践でしか学べないことは積極的に教わる。 ■ オンタイムで問答ができるようにする step1. 相手が喋ったことを理解すること step2. 聴解力 step3. 文章構成力

ライブラリの設計思想

ライブラリの設計思想をまとめた資料は、 後世の保守・開発プログラマにとってとても有益になるので、 極力実装者が残しておくべき。 「このAPIはこういった処理をするものだ」という規定があれば、 新たなフィーチャーを実装するにあたり、 複数の実装方法が考えられるときは、 まず回帰すべきは設計思想だと強く思う。 今携わっている仕事はこういったものが皆無であり、 実装者も退職or他部署で働いてたりする。 ソースコードを熟読して感じ取ること、 コミットログから何らかの思想を感じ取ることで、 最適な実装方法を見つけようと努力している。 加えて、 ライブラリの初期の開発者は、 拡張性しやすいソースコードにすべきである。 複数のデバイスを同時にハンドリングするデバイスドライバ等を書くにあたっては、 決め打ちでデバイスタイプをハードコーディングすることは避けたい。 IS_SAMPLE_DEVICE( devType )のようなマクロを用意し、 マクロに追記するだけで拡張できるような仕様にすべきだ。 将来を見通してSDK、ライブラリを用意することは、 熟練した、経験豊富なエンジニアにならできることだと思う。 私のようなへっぽこエンジニアがそういった達人プログラマーに近づくにはどうしたら良いんだろう。

開発者である前にユーザーであれ。

今日は必死こいてある機能を実装しようと、 すごく間違った方向に頭を使った。 「機能を実装しろ」という司令に対し、 そのまま実装するだけの人は単なるコーダー。 淘汰されるに違いない。 今日の俺はまさにコーダー。 機能実装云々以前に、 この機能はOS側で提供すべきなのか、 アプリ側でAPIを呼んでもらうことで実装すべき機能なのか。 と同時に実際にユーザーがどうその機能を使うのか? 一歩立ち止まってそういったことを考える必要が有ることを知った。 考えてみるとシステム側で提供すべき機能ではなく、 アプリ開発者が実装すべき機能だったなんてオチ。 OS側の人間がサポートすべきことは、 どんなアプリでも共通な処理をAPIで、 使いやすい形で柔軟にカスタマイズできるような形態で提供すること。 ちょっと学んだな。

ネットワークエンジニアとして学ぶべき要素

会社が自分に求めているものって何だろう. おそらくそれはネットワーク技術のプロフェッショナルとして, 無線関連の開発業務に従事すること. また,米国の開発部隊との連携を円滑にするために, ときには現地に出向き直接やり取りする必要もあると思う. 上記業務を遂行するにあたり必要な要素と, 現状の自分との差分をとり, 足りていないものをリストアップし, その差分が最小になるような戦略を練ることにする. 考えられるものは以下のものである. 1. Wifi(TCP/IP)      : 俗にいうインターネット接続 2. Bluetooth           : ワイヤレスコントローラの入力 3. プログラミング    : 見通しの良い効率的な実装 ( C/C++, Python, Shell ) 4. Fandamental      : エディタ(Emacs, Eclipse), 英語, ハードウェア(電気電子的な内容) 5. 経営的判断          : VA案件会議等でのアイディア出し 1-3は開発資料の読み込みや実際の仕事で学習する. 教材としては, - マスタリングTCP/IP 入門編 第5版 -  Bluetooth技術解説ガイド -  C++のためのAPIデザイン - 新版 明解C++ 4-5は意識的にやって行かないと身につかない. エディタは常にEmacsを使う勢いで,自宅ではCocoaEmacs,会社ではNTEmacs. 英語は従来通りRarejob使う.また,ことあるごとに積極的に米国の開発部隊にコンタクトをとる. ハードウェア的な知識は,どういった部分が必要かが不明確であるため, 問題に出くわした時に調べるスタンスで学習する. 経営関連は,業界のこと,技術のことを浅く広く知るようにする. 技術については自分の業務範囲的に狭く深くなりがちなので幅広いことに興味をもつこと. 現状では,スマートフォン周りのグラフィクス(OpenGL等)をGPUと絡めて知識を得ていきたい. ...

シェルスクリプト学習帳

シェルスクリプト入門 してみる. MacBookAirのターミナルで複数ターミナルシェルを立ち上げる. emacsでソースを書いて,もう一つのシェルで実行する仕組み command+"}" でウィンドウの切り替え 変数,if,case,forの文法事項のおさらい. ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ソースコード: #!/bin/sh echo "veriables ------------------" PARA1="sample1"    # no space should be inserted around "=" PARA2=sample echo ${PARA1} echo ${PARA2} echo $$            # process ID echo $@            # list of all the arguments echo "arg1 = $1"   # designated argumment echo "if ---------------------------" if [ $1 -gt $2 ] then     echo "$1 is grater than $2" elif [ $1 -eq $2 ] then     echo "$1 is equal to $2" else     echo "$1 is smaller than $2" fi echo "case --------------------------" case "$1" in     "1") echo "$1 is one";;     *)   echo "default";; esac echo "for ---------------------------...