サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
d.hatena.ne.jp/Syunpei
関数はメモリを占有するオブジェクトなので、そのポインタを取得できるのは誰でも知っている。 戻り値int、引数なしの関数をさすポインタfuncを定義する。 int (*func)(void); // 戻り値 (*名称)(引数リスト) 関数ポインタの配列はこんな感じ。 戻り値int、引数なしの関数をさす関数ポインタの配列funcsを定義する。 int (*funcs[10])(void); // 戻り値 (*名称[配列要素数])(引数リスト) これだけでもよくわからんが、今日「関数ポインタを返す関数」をどう宣言したらよいか、で詰まってしまった。WakhokのMLなどに質問を投げ、得られた答えは次のとおり。返したい関数のプロトタイプはint returned_func(void)とする。 typedefで関数ポインタの型を作成してしまう方法。 typedef int (*returned_fun
http://devcenter.heroku.com/articles/renaming-apps#manually_updating_a_git_remote に載っているのそのままなんだけど。 備忘録としてコピペ。 herokuでアプリケーションの名前を適当につけてしまい、後悔。 後から変えられるかな、まさか変えられないだろうなと思っていたら、割と簡単に出来ました。 アプリケーションの管理画面から「Rename」ボタンを押します。 次のページで、新しい名前を入力して改めて「Rename」を押すだけ。 ただそれだけだと、ローカルのherokuリポジトリをpushするときに、いつものgit push heroku masterが通じなくなってしまう。「heroku」に紐づいたリモートリポジトリの名前が変わってしまったから。また、herokuコマンドもエラーになるようになってしまう。 なの
http://www.camobile.com 昨日オープンしたのですが、こちらでも宣伝しておきます。 この2ヶ月弱というもの、こちらのサイトを開発してました。 ぼくが現在お世話になっている、株式会社シーエー・モバイルさんの企業サイトです。 死にそうなほど忙しかったけど、なかなかインパクトのあるサイトができたんじゃないかと自負してます。 自由にやらせていただき、締め切りの延長にも応じて下さった、シーエー・モバイルさんの懐の深さに感謝。 マウスホイールのない方は、方向キーでもお楽しみいただけます。 もちろんぼく一人で作ったわけではなく、作業のほんの一部をお手伝いしただけです。 一緒に制作したメンバーである稲田真帆さん、金井健一さん、桑田美由喜さん、柴田麻衣さん、ほかシーエー・モバイル デザイン室の皆様には、深く感謝を申し上げます。 今回、かなり自由にやらせていただけたので、技術的なチャレンジ
html5j.orgを盛り上げるために一日一回HTML5関連ニュースを投稿しています。 MLだとどうしてもフロー情報になってしまうので、ストックとしてぼくのブログに貯めておこうかと。 今日は、 https://groups.google.com/forum/?hl=ja#!topic/html5-developers-jp/YNzM7dvWH10 に投稿したものです。 一般 Google Drive発表、SDKも同時に公開 https://drive.google.com/start#home いろんなところでニュースになっています(http://bit.ly/IdQQt9)ので、ご存じの方もたくさんいらっしゃるはず。 いざリリースされてみると気になってしょうがないサービスです。 早速Dropboxからの乗り換えを考えてみたり(安いんですもん・・) SDKが公開されており、Google D
もうJavaもRubyも要らない?–JavaScriptオンリーの未来派WebアプリフレームワークMeteorがデビューという記事で知った、新しいフレームワークMeteor。 ちょっと気になったので、軽く触ってみました。すごすぎるフレームワークの登場です!! 正確に言うと、実行環境&フレームワーク&クラウドPaaS&パッケージマネージャーといったところでしょうか。Node.jsとHerokuとnpmが一緒になったようなもんだと思えば、イメージがわくと思いますが、実態はそれらを上回っています(パッケージ数はnpmの比じゃありませんが・・・使い勝手という意味で)。 インストール ターミナルをたちあげて、以下のコマンドを実行するだけ。 (行頭の$はターミナルであることを表してるだけで、コマンドの一部じゃありません) $ curl install.meteor.com | sh これで /usr/
ちょっと前の話になりますが、jdb.jsをCoffeeScriptで書き直しました。GitHubにも上げてあります。CoffeeScript、純粋に言語として見ると、非常に出来が良くて感心します。当面Javaには戻れそうにない・・・ で、気になったのが「CoffeeScriptを使うと、JavaScriptに比べてどれくらいコーディングが楽になるのか?」です。正直、「function」が「->」になるだけでも嬉しくてたまらないんですが、それを実際にコード量で比較してみよう、と。 もう一つ気になったのが、「CoffeeScriptをコンパイルして得られるJavaScriptコードは、手書きしたJavaScriptに比べてどれくらい肥大化するのか?」という点。自動でJSを吐き出してもらう以上、ある程度の無駄は覚悟しなくてはならないと思いますが、もしそれが許容できないレベルだったらCoffeeS
寡聞につき、rem(root em)なんてフォントサイズの単位があるのを今まで知りませんでした。 ちょっと興味を持って調べてみたところ、結構使えそうなテクニックだったのでご紹介したいと思います。 rem (root em) というのは、「ルート要素(典型的にはhtml要素)に対する相対的なフォントサイズの単位」です。 従来のemは、親要素に対して相対的なフォントサイズの単位でした。そのため、要素の出現位置次第でフォントサイズが変わってしまうことも多く、使いにくい場面も多々ありました。 他にもフォントサイズの指定方法には、ピクセル(px)を用いたものがあります。が、特に今は様々なスクリーンサイズを意識しなくてはならない時代。スクリーンサイズの小さいデバイスでは全体的なフォントサイズを同時に大きくしなければならないこともよくありますが、pxを使用していると、メディアクエリなどを使ってあらゆるフ
最近、GmailやGoogle Calenderにアクセスすると以下のようなダイアログが表示されることに気づいた方も多くいらっしゃるのではないでしょうか。 「Gmailでメールリンクをすべて開くようにしますか?」というこの問いに「はい」と答えると、以降、「mailto:」 で始まるリンクをクリックするとGmailが立ち上がるようになります。 この「mailto:」とGmailの紐付けは、Google Chromeであれば「環境設定→高度な設定→コンテンツの設定→ハンドラを管理」というメニューを開くと確認・管理することができます。一度紐付けたアプリを削除したり、他のアプリに変更することもできます。 こんな面白い仕掛け、どうやって実現しているのでしょう? それは、HTML5から利用可能になったnavigator.registerProtocolHandler() を使うとこういうことができます
jdb.jsというフレームワークを作りました。まだ開発に2日もかけてない(ドキュメント書くほうが大変だった(^^; )ので、荒っぽいところも、機能が不足しているところもありますが、試しに実装してみたらかなり便利なものができたと思っているので、フライング気味に公開します。Indexed Database APIの使いにくさを知っている人なら、結構興味を持っていただけるんじゃないかと。 GitHubのリポジトリはこちらです。 以下、README_ja.mdから引用します。 jdb.jsは、W3C Indexed Database APIをより直感的に扱いやすくすることを目指したライブラリです。 名前の由来は、「IDB」(Indexed DB)をより使いやすく、ということで「JDB」(Jはアルファベット順でIの次の文字です)としました。 Indexed Database APIをそのまま利用する
マイクロソフトさんからの依頼を受けて、WebSocket、IndexedDB、File APIを使用したIE10向けのサンプルを作成し、それを発表&解説するという形でセッションに登壇しました。 登壇予定はもともとなかったものの、予想外の形でお声がけいただき、デブサミでも壇上に立つことが出来ました。ありがたやありがたや。 今回は、チームメンバーのほぼ全員がHTML5未経験という状態で、3週間でデモを3つ作るというなかなかハードなスケジュール。 とはいえ、アジャイルな開発を行ったおかげか、徹夜だとかそういうこともなく、無事当日を迎えることが出来ました。 3週間たってみると、上記の3APIのみならず、Node.js+Socket.IO/video,audio要素/CSS3 Animation/CSS3 Transition/CSS3 2D Transform/Canvas(アニメーション)/Dr
タイトルの通り、縁あって株式会社シーエー・モバイルさんの「Web先端技術フェロー」という肩書きをいただくことになりました。従業員ではありませんので、自分で作った会社も存続し続けますが、当分の間時間的にはほぼフルコミットで働くことになります。 ご存じの方はご存知ですが、ぼくは昨年社会起業そして失敗(この二年間は、貴重な失敗続きでした)という一年でした。 目標を一旦見失い、いろいろ考えた挙句「自由に、人生を謳歌する」ことを次の目標に据えたのが昨年の11月くらい。 ところがそれと同じタイミングで、シーエー・モバイルの寺山会長さんから「うちでやらないか」という打診を受けました。 正直、相当な迷いはありました。 それは、起業・独立に失敗したタイミングでどこかの企業にお世話になるというのは、自分自身「安定」を求めての行動なのではないか、という疑いが拭えなかった為です。 また、もし従業員などになるのだと
この文章は、誰が読むことも意図していない。 自分の人生にとって大きな節目には違いない、この2011年を締めくくるにあたって、今年自分の内面に起こったことを記録しておくための文章である。 この文章は、白石俊平の価値観の変遷についての記録である。今年は、自分の価値観に大きな変化が何度も生じた年であった。 今後もぼくの価値観が変わることは十分に考えられる。だからこの文章は、ひとつのログでしかない。 ぼくの価値観 - ぼくが世界をどう眺めているか - についてなど、関心を持つ人はおそらくいない、いたとしてもごく少数の親しい人間くらいであろうから、文章の質も気にせず、誰からそしりを受けようとも気にすることなく、無駄な文章を綴ってみたいと思う。 今年の大半は、「社会起業」を目標として活動してきた。その顛末はこちらのブログに詳しい。 その活動中は、「善意」「道徳」「利他」「長期的視野」・・・と言ったキー
ワーキングドラフトが公開されたり、IEBlogでも言及されるなど、注目度が一層高まってきた感のあるWeb RTC (Web RealTime Communication)仕様について、改めて調べてみました。 Web RTCは、Webアプリからカメラやマイクでメディアデータを取り込んたり、リモートホストとのP2Pのデータ送受信を行うためのJavaScript APIです。 Web RTCは、以前はWHATWG HTMLの一部として仕様が提案されていましたが、分離して一つの仕様になりました。分離したのはつい最近です。 API自体は単純なので、これまでは仕様書流し読みしてわかった気になっていたのですが、「ローカルからのメディアデータの取り込みとP2Pがなんで同じ仕様にあるんだろう?」とふと疑問に思って、きちんと仕様書を眺めて見ました。同じように疑問に思う方が居らっしゃれば、お役に立つ記事かと思い
そういえば、dd使って外部ドライブにファイルを書き込むって、Macになってから一度もやってなかった・・・。 やり方分からず四苦八苦して、結局こちらのページで解説されてたのを、忘れないようにメモ。 外部デバイスを接続する。 ターミナルを開く。 diskutil listを使って、現在マウントされているデバイスのリストを表示させる。これで、/devディレクトリ以下のなんというファイルに、対象デバイスがマウントされたかがわかる(例:/dev/disk4s1)。 上記のデバイスファイルに対してdiskutil unmount /dev/diskNを実行する。 sudo dd if=/書きこむ/ファイルの/パス.img of=/dev/diskN bs=1mを実行 diskutil eject /dev/diskNを使ってデバイスを完全にマウント解除し、ディスクを取り外す。
この間リリースしたDaVinciPadというWebサービス。 まだまだ認知度は低くて、機能的に残念なところもいっぱいありますが、使っていただいた方から暖かいアドバイスをいくつも頂き、大変感謝しています。 これまでは下請けで開発することばかりの人生でしたが、企画・開発・リリース・運用までに全て携わる(というか、全部自分ひとり(^^;)という貴重な経験を積んでいるところです。 日々新しい発見と、方向性を模索する日々。苦しくて楽しい毎日です。 で、一番残念なことの一つに、クライアントがChrome Extension版しかないというところがありました。 あまりに残念だったので、この間正式公開されたばかりのSafari Extension版を作ってみました。 インストールと利用方法は以下。 インストール 機能拡張(DaVinciPad.safariextz)のファイルをダウンロードして、Safar
この間のHTML5とか勉強会で、先行して発表しましたが、先日DaVinciPadというWebサービスをリリースしました。 3月に起業したということもあって、初の自社製品と言うことになります!(感涙) 自分では、ちょっぴりユニークで、結構便利なサービスじゃないかと思っています。 次のような人たちにオススメです。 TwitterやFacebookと言った複数のWebサービスを使い分けている人 さくっとメモをとるための良いWebサービスがないなー、と感じている人 テキストベースの作業に慣れ親しんでいる開発者 DaVinciPadは、プライベートなメモ機能と、TwitterやFacebookへのマルチポスト機能を統合した、シンプルなWebサービスです。 現在のところGoogle Chrome Extensionによるクライアントのみが公開されています。 拡張機能をインストールしてさえあれば、気が向
最近ブログ書いてないなあ・・・と思いつつ。 この間、DojoとGoogle Closureのどちらかを使おうと悩みまくり、両者の利点・欠点を思いつく限りあげつらったメモがデスクトップに残ってました。 そのままゴミ箱にすてようかと思ったんですが、1日悩みぬいたログなのでさすがにもったいない。 とりあえずここに貼っておきます。 Dojo いいところ 機能が超豊富 バージョン番号がある jQueryの使いやすさを積極的に取り込もうとしている 実績も割とあるに違いない ドキュメントがしっかりしている CDNでホスティングもされている イマイチなところ ビルドシステムを理解するのがめんどくさそう ClosureCompilerとの相性が今ひとつ Closure いいところ Closure Compilerとの相性が良い - minify後のサイズだけではなく、ビルド時のエラーチェックも役に立ちそう
今日、ぼくのHTML5本が出ました! 自分の本を自分で細かく紹介するのも恥ずかしいので、とりあえず貼っておくだけ。 内容は、Web開発者向けにHTML5と関連APIを紹介しまくった、と言う本です。JavaScriptプログラミングの話題が主ですね。 あと、HTML5.jpの羽田野さんから、「徹底解説 HTML5 マークアップ ガイドブック」を献本頂きました。 こちらは、Web制作者向けに、HTML5の全要素(タグ)、全属性を解説した本です。575ページもあるのに、3,000円(税抜)だなんてお得過ぎます。 内容も、HTML5要素を用いてマークアップするために必要な情報を漏れなく、余すところなく紹介していると言う内容。 リンク・リレーション(rel属性の種類)まで言及しているのはさすがの一言です。こちらは店頭での発売は明日(2/26)ですね。 羽田野さんには、普段からGoogle API E
このエントリは完全に自分用の備忘録です。後で設計判断の根拠を思い出すため。 今、GAE/Jを使ってちょこちょこプログラミングをしているのですが、やっぱりDIコンテナを使いたい。 と言う事で無条件に(昔から慣れ親しんでる)Spring Frameworkを使おうかと思ったのですが、JSR-299やJSR-330との兼ね合いもあって、やはり将来的に標準へと移行する事を見据えたプログラミングをしたい。 ってことで、「Google App Engine上でも動く」と言われているDIコンテナであるSpring/Guice/Weldと言う選択肢でいろいろ悩んだんですが、結局Guiceにしました。それぞれのDIコンテナに対するぼくの認識としては Spring Framework・・・利点としては、DIの世界でデファクトを続けてきただけあって、Spring対応を謳うライブラリが星の数ほどある。選び放題。欠
ぼくをご存知の、ほとんど全ての方に取って寝耳に水かと思うのですが、ぼくは株式会社あゆた(http://ayuta.co.jp)から独立し、新たに事業を起こす事にしました。 ご存知の通り、株式会社あゆたは現在までのところたった二人の創業メンバーからなる会社でした。そこから一人が独立する、というのも奇妙な話に聞こえるかと思います。 これは創業メンバー二人で話し合った結果、ぼくが独立することでお互いが別の経営者として、時には協力し、時には競い合うと言う関係が、お互いの力をより発揮できる形として最良ではないかと言う結論に達したためです。決してけんか別れのようなことではなく、今後も密に連携を取りながらお互いを高めていくつもりです。 うまく伝わるかどうかは不安ですが、極めて前向きで明るいニュースなのだと言う事だけは強調しておきたいな、と思っています。 まだあゆたのWebページ上では更新されていませんが
今年も明けましておめでとうございます。 白石です。 正月明けからイッパイイッパイです。 で、いきなり本題。 HTML5用のリセットCSS(どのブラウザでもデフォルトの見た目が同じになるよう、強制的に表示を調整するCSS)と言えば、昔HTML5Doctorで紹介されたやつが有名です。Google Codeでプロジェクトがホスティングされてもいます。 でもこのCSS、ちょっと悩ましいことに中途半端なんですよね。例えば、HTML5ではあらゆる要素にhidden属性を指定することができるのですが、「hidden属性のついた要素は非表示にする」と言ったスタイル指定が行われていなかったり。 で、完全なものはないのかというと、あります。それも仕様書の中に。これは、HTML5仕様が正式に「提案」しているものです。 でもどう見てもHTML5DoctorのCSSのほうが有名ですよね。 で、みんながその中途半端
と、言っても大した発見ではないのですが・・・ Microsoftさんは、IE9でHTML5に本格的に取り組むということらしいのですが、「どれくらい本気?」というのがやっぱり気になるところです。特に、Web WorkersやWeb Socketsと言った先進的なAPIを、IE9がどれくらい実装してくるのかが今後のHTML5の命運を分けると言っても過言ではないわけで。 で、以下のURLがその動向をつかむ多少の助けになるかもしれません。 http://www.w3.org/Search/Mail/Public/advanced_search?keywords=&hdr-1-name=subject&hdr-1-query=&hdr-2-name=from&hdr-2-query=microsoft&hdr-3-name=message-id&hdr-3-query=&period_month=&
昨日(11/27)、渋谷Googleさんのオフィス・・・ではなくて食堂でHTML5 Techtalk#2を開催してきました。 今回はぼくはスピーカではなく単なる一司会者として参加しました。 以下は簡単なまとめ。 プレゼン資料 「HTML5 Forms で healthy living!」by ダニエルさん(Operaウェブエヴァンジェリスト) HTML5で強化されたフォーム要素についての説明。 http://people.opera.com/danield/html5/forms/ (Opera10で開き、フルスクリーン表示するとスライド形式で見る事ができます) 「HTML5 Show Case」 by 羽田野さん(HTML5.jp) HTML5で書かれた各種デモの紹介とソースコード解説。 http://docs.google.com/present/view?id=0ATqZea7ST5
先のエントリを投稿した旨HTML5-developers-jpにポストしたところ、ちかむねさんと言う方から素晴らしい情報を頂きました! Chrome OSを起動した状態でF8を押すと、なんとソフトウェアキーボードが表示されます。 このキーボードはCtrlキーやAltキー、Shiftキーを押した際にどのようなショートカットメニューを使えるか、に関するヘルプになっています。 そして、Ctrl+Alt+Tを同時に押すとBashのターミナルが表示され、コマンドの実行が可能です! 試しにtopコマンドを実行してみたら、上のような表示になりました。 軽く見てみたところ、java/python/perlと言った言語のインタプリタはあらかじめ付属してるみたいです。rubyは今のところ無し。gccもないし、6gもありませんでした:-) あと、一つ前のエントリで「Google Chrome OSにおけるファイ
こちらのページで、先日公開されたばかりのChrome OSのVMイメージが紹介されていたので、早速使ってみました。 で、せっかちな方のために、実際に使ってみた感想をいきなり書いておきます。 起動は確かに速い。VM上にも関わらず、電源ONからログイン画面の表示までにかかる時間が10秒弱。 使用感としては「フルスクリーンでGoogle Chromeを使っている」、これに尽きる。 キーボードレイアウトは英語キーボード用。 日本語や右クリックメニューなども対応済み。 ブラウジングセッションは常に保存されており、再起動しても復元できる。 テーマ・拡張も利用できる。 アプリランチャーは、単なるWebアプリへのショートカット。 割とよく固まる。けど、それがOSのせいかVirtualBoxのせいかは不明。 と言う感じです。 使ってみたまとめとしての雑感は、日記の最後を参照して頂ければ良いかと思います。 で
と言ってもGoogle Chrome拡張の作り方を調査するため、1時間程度で作った習作レベルのものですが・・・ http://ayuta.co.jp/chrome-extensions/index.html インストールすると、アドレスバー(Omnibox)のはじっこに「V」アイコンが追加されます。 そのアイコンをクリックすると、そのWebページがHTML5文書として妥当かどうかがチェックされます。 もちろん、バリデーションの処理はvalidator.nuにおまかせです:-) よければお試しあれ。
http://code.google.com/speed/articles/html5-performance.html JavaScriptの高速化手法を紹介する、Googleのプロジェクト「speed」がリニューアルしたと言うので見てたら、「HTML5でパフォーマンスアップ」てなタイトルがあったので「なぬ?」と思って読んでみました。 HTML5使ってもそんな効力得られないだろう・・・と思って読んでみたら、「HTML5の記法を使えばnバイト節約」みたいなチョコザイな手法が主だったのでちょっと苦笑(^^; とはいえ、script要素に今度から加わるasync属性について等は、日本語で説明されている記事がほとんどないので、全体的に要約しておきます(あくまで翻訳ではなくて要約。時間がないので超適当です。正確なところは原文を読んでください)。 DTD HTML4までは以下のように書かなきゃいけな
次のページ
このページを最初にブックマークしてみませんか?
『d.hatena.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く