タグ

ブックマーク / qiita.com/shibukawa (21)

  • encodeURIComponentが世界基準だと誤解してた話

    URLをいじくるプログラムをいじっていて、仕様がよくわからなくて悩んだのでまとめます。 2/23: 追試部分を追記 2018/7/14: JavaScriptのURLSearchParamsと、GoのPathEscapeについて追記 ことの経緯 HTTPとはなんぞやとか、GETとPOSTがどうの、それぞれでパラメータがどういう経緯でウェブアプリケーション(とかCGI)に渡って来るのかぐらいは知っていました。で、ウェブでXHRでGETリクエストを送る場合にはJavaScriptのencodeURIComponent()で各パラメータをエンコードして、&でくっつけて、URLの末尾に?で付与すればいいんだよね?と思っていました。こんな感じに。 var finalUrl = [url, "?", encodeURIComponent("key"), "=", encodeURIComponent(

    encodeURIComponentが世界基準だと誤解してた話
  • 2019年末版:Chromebookを開発に使う - Qiita

    PySpaアドベントカレンダーのエントリーです。昨日はYesterdayでした。今日はTodayです。 ずっと開発や普段使いで使えるChromebookが欲しいと思っていました。勉強会の発表で使ったりするので、きちんと技適が通ったやつで、性能がまとも(以前ATOMベースのマシンにLinux入れたけど遅くて使う気になれなかったので)なやつを待ち望んでいました。 7月ぐらいからHPがChromebookを販売開始してくれました。気づいてから申し込んだものの、予想外に受注があったのか、納期が伸びに伸びて1ヶ月半近くかかりましたが、とても良いものだったので、今ではすっかりメインで使っています。 バージョンによって状況はまた変わってくるかもしれないので、タイトルに日時を入れました。これを書いた時点でのバージョンは78.0.3904.106(Official Build)(64 ビット)でした。 日

    2019年末版:Chromebookを開発に使う - Qiita
  • FacebookのHermesというJSエンジンがエロい - Qiita

    FacebookがHermesという組み込みのJSエンジンを公開したようです。 ReactNative用の組み込み用のJSエンジン(最新版だとオプション切り替えで使えるっぽい) MITライセンス プロプラなものとの組み合わせが発生しうる組み込みにおいては正義しかない ES2015をサポート(予定) 現時点ではクラスとかlet/constのブロックスコープは実装途中 Map/Setとかの組み込みクラス系は実装済み サイズの小ささをうたった処理系はES2015への対応はまだまだなのが多いので(Duktapeとか)良い 事前にJavaScriptのソースコードをパースして中間表現(LLVM IRをそのまま利用?)にしておいてロードする モバイルのCPUやバッテリー、メモリーにも優しい なお、エロいというのは強く感情が揺さぶられた結果が出てきたワードであってセクシャルな内容は一切含まれておりません

    FacebookのHermesというJSエンジンがエロい - Qiita
  • 2019年版: 脱Babel!フロント/JS開発をTypeScriptに移行するための環境整備マニュアル - Qiita

    2019年版: 脱Babel!フロント/JS開発をTypeScriptに移行するための環境整備マニュアル環境構築TypeScriptライブラリReact TL;DR いろいろ書いていますが、一番書きたかったのは最初のライブラリと最後のReact Componentのプロジェクトの作り方ですね。ぱっとnpm installして、最初から型定義ファイルが入っていて、@typesを持っているライブラリを探したり、自分で.d.tsを書いたりしなくてもいい世界がやってきて欲しいな、という気持ちから書いています。 ここで紹介したTypeScript環境構築はすべて、自分用にYeomanのテンプレートとして作成したので、以下のジェネレータをインストールして選択したらそれでおしまいです。 @shibukawa/typescript (npmには公開していないので、checkoutしてビルドしてインストール

    2019年版: 脱Babel!フロント/JS開発をTypeScriptに移行するための環境整備マニュアル - Qiita
  • サーバーサイドレンダリングの代替としてPrerenderを試してみた - Qiita

    9月から入社したフューチャーアーキテクトのアドベントカレンダーのエントリーです。技術的にはウェブフロントエンドGolangあたりです。 シングルページアプリケーションを数年前に試してみて、やりたい表現はこれで十分できるし、過去大変だったことも大分解消されましたのを感じました。一方でSEOとかOGPとかいくつかそのまま実現できないものがあります。とはいえ、それの解消のためにサーバーサイドレンダリングをするのは実装の手間が大変です。そこで、設計時に考えなきゃいけないことが増えます。ウェブアプリケーション側でその手の考慮&実装をいっさいせずに、今時のウェブアプリケーションでやった方がいいことを実現できる方法について考えました ・・・と思って準備しておいたのですが、@R548さんがDMM.comさんのアドベントカレンダーに書かれてしまった内容と一部かぶります。合わせてお読みいただくと、理解が深ま

    サーバーサイドレンダリングの代替としてPrerenderを試してみた - Qiita
  • サーバーサイドレンダリング不要論 - Qiita

    サーバーサイドレンダリング、Isomorphic、Universal JavaScriptなどの言葉をよく見かけます。なるほどね、良さそうだね、外部公開するサービスを書くことがあったら挑戦してみたいね、Mithrilにもisomorphic-mithrilってのをがんばっている人がいるし、みたいなことを漠然と思っていたのですが、最近ASCII.jpのシステムコールプログラミングの連載を書いていて、あらためてHTTPの仕様を見返してみて、逆にサーバーサイドレンダリングをしない方がいいのではないか、と思い始めました。 追記(23:30): サーバーサイドレンダリングと書いていますがUniversal JavaScriptみたいな凝ったビューの更新の意味です。 サーバーサイドレンダリングの欠点 サーバーサイドレンダリングのメリットとしてあげられるのは次の2点です。 検索エンジンのクローラー向け

    サーバーサイドレンダリング不要論 - Qiita
  • 最小のNode.jsのDockerイメージを目指すスレ - Qiita

    フューチャーアーキテクトアドベントカレンダーに投稿したサーバーサイドレンダリングの代替としてPrerenderを試してみたに引き続き、JS系?ウェブ系?なエントリーです。 ECSとかEKSとか出てきて、コンテナを使うと、一つの物理ホストで、複数のコンテナをさばいて効率を上げる、というのが簡単にできるようになってきました。そのため、Node.jsのアプリもDocker化して配りたいですよね? 次のスライドを見ると、サイズが小さいほうが良いとされています。中には静的リンクが云々みたいなトリッキーな技もありますが、そこまでがんばらない&黒魔術にならない程度でがんばる方向でサイズを小さくしてみたいと思います。 お前のDockerイメージはまだ重い💢💢💢 by stormcat24 STEP1: Alpine + 標準ライブラリのみ 小さいというAlpine Linuxを使ってみます。クールな

    最小のNode.jsのDockerイメージを目指すスレ - Qiita
  • GraphQLは90%のウェブサービス開発者にはまだ時期尚早ではないか - Qiita

    PySpa統合思念体です。チャットで話をしたことのまとめです。何人かで雑に話をしたことのまとめで、特定の誰かの発言というわけではなく、一種の怪文書です。 さて、GraphQLが世間を賑わせ始めています。Facebookが開発し、GitHubも機能提供をし始めました。GraphQLはRESTの未来か?みたいな論調もありますが、新しいものが出てくると既存のものをサンドバックにして「まだそんな古いの使ってやがるのかよwwwww」みたいな煽りをするのはもはやウェブ界隈の風物詩になっていますが、そういう信者発言をして「ああ、あいつまた踊らされてるな」「あいつ技術を見る目がないな」みたいに思われないように、少し冷静にGraphQLの立ち位置や、今後予想される流れについて考えてみます。 LSUDsとSSKDs WebAPI The Good Partsでも紹介されていた概念として、Netflix社のAP

    GraphQLは90%のウェブサービス開発者にはまだ時期尚早ではないか - Qiita
  • Amazon Pollyを使って耳で本の推敲をする - Qiita

    自分のブログ「Real World HTTPが出版されます」で紹介したAmazon Pollyを使っての推敲をする、というやつを軽く紹介します。 ささっと2-3日で作ったSphinx拡張を使っています。エントリーではツールの使い方も紹介はしますが、Sphinx以外のツール向けに似たような変換機能を作りたい人の参考のために、ツールが何をしているかも紹介します。今まで使う機会もなかったので実は初AWSでした。 リポジトリはこれです。BSDライセンスです。 https://github.com/shibukawa/sphinxcontrib-ssmlbuilder SSMLというのは、Amazon Pollyの入力に使う音声合成用のデータフォーマットのことです。W3Cの規格になっており、PanasonicとかTOSHIBAの人も規格制定に加わっています。Amazon Pollyはこのうちのい

    Amazon Pollyを使って耳で本の推敲をする - Qiita
  • JavaScriptはなぜトレンドが毎年変わると思われていたのか - Qiita

    JavaScriptはなぜトレンドが毎年変わると思われていたのか JavaScriptのエンジニャーは口を開くたびに出てくるツール名が違う、いつも環境設定をしている、みたいな話をよく聞きます。実際、それを揶揄するようなエントリーが人気だったりします。 とはいえ、JavaScriptを実際に使い込んでいる人は別にそんなに大きな変化だと思っていない節があって、台風は外周部ほど風速が速い、みたいな印象を感じます。 カンブリア紀のJavaScript ウェブサイトをパカパカ動かすための言語でした。DHTMLです。FireBugが出る前のJavaScriptを開発していた人類は、念力デバッグを駆使していました。あるいはalert()。 三畳紀のJavaScript prototype.js、jQuery、Closure Compiler、YUI、mochikit、Ext.jsなどの時代。JavaSc

    JavaScriptはなぜトレンドが毎年変わると思われていたのか - Qiita
  • オブジェクト指向と20年戦ってわかったこと - Qiita

    この記事の内容 オブジェクト指向と10年戦ってわかったこと Twitterやはてブコメントを見たら、「わかりやすかった」というコメントもあったのですが、どちらかというとネガティブ方面なコメントが多く目につきました。マサカリという用語で忌憚なく意見を言う風潮については別にいいんですが、「わかりにくい」「間違っている」「古い」みたいなコメントは何も生み出さないし、みんなでニコニコポエムを投稿しあうやさしいインターネッツになったらいいなって思ったので、僕もオブジェクト指向について投稿しようと思います。 何原則? 3原則じゃなくて4では?みたいなコメントもあったのですが、別に3でも4でも5でも重要ではないかなって思います。この4原則の出どころがどこかは知らないですが、C++かSmalltalkあたり(このあたりの話を見かけたのはJava登場前だった気がする)をターゲットとしている気がします。Jav

    オブジェクト指向と20年戦ってわかったこと - Qiita
  • Mithril、Vue.jsの仮想DOM用のi18nライブラリ作った - Qiita

    いろいろ探してみたり、某node.js会長に聞いてみたりしたんですが、いまいち自分のニーズにあうi18nライブラリが見つからなかったので、一番理想に近い(けど一歩足りなかった)roddeh-i18nをベースに作ってみました。MITライセンスです。 国際化機能をサポート キーで単語を置き換える(元の単語もキーとして使用できます) 複数形 フォーマッティング(変数に値を設定) 文脈からの翻訳の選択(性別など) 小さくてポータブルなランタイム ランタイムは移植性の高いES3で書かれ、gzipで1.8キロバイト ランタイムは他に依存せず common.jsおよびAMDとも利用可能。<script>タグを使用したロードも可能 ブラウザで実行可能 仮想DOM(Mithril, Vue.js)で使用 スタティックなHTMLの翻訳 node.jsで実行可能 オフライン単位テストを簡単にする サーバー側のレ

    Mithril、Vue.jsの仮想DOM用のi18nライブラリ作った - Qiita
    kyo_ago
    kyo_ago 2016/12/22
  • オレの最弱のES6開発環境 - Qiita

    ブラウザのES6サポートが急速に良くなってきています。社内ツールとかElectronとか、ブラウザの普及率を気にしなくていい環境ならそろそろ使えるのではないかと思って調べたり試してみたりしています。 更新 https://caniuse.com/#search=es6 http://kangax.github.io/compat-table/es2016plus/ これを見るともうほぼ実装は完了していますね。Node.jsも対応していますし使えるブラウザが限定できるならもはや変換なんかしなくても大丈夫。注意点としては以下の2つ。 IE11は渋い ES6 modulesはまだまだ ソースをES6で書いて、結果もそのままES6という手抜き開発に使えるツールのメモです。手抜きなので、おそらく経年変化の影響はほとんどないはずです。対象としてはブラウザだったり、ElectronでのSPA開発です。

    オレの最弱のES6開発環境 - Qiita
  • 要注意な技術英語 - Qiita

    発音記号はalc.co.jpの英辞郎 on Webから引用。他にも思い出したら追記するかも? Label [léibl] 日語ではラベルと書かれることが多いけど、それで発音しても通じない。レーベルの方が近い。 Route [rúːt] 日語ではルートと書かれるし、発音記号見てもどう見てもルートなんだけど、ラウトとアメリカでは呼ぶ。イギリスだとルートのままという噂も聞くけど、ルートだとrootと同じになっちゃうので、独自発展した業界発音なのかもしれない。派生語のRouterもルーターじゃなくてラウター。こんなツイートも。 そういえば昨日Routingは米語ではラウティングと読み、ルーティング発音の米語でえっちい意味のスラングがあると聞きました。ルーティングプロトコルは任せてくれとかいうとエロテクマスターみたいな意味になると聞きました。 当かどうかはわかりません。 — さぎにゃん しゅわ

    要注意な技術英語 - Qiita
  • Cache-Controlヘッダは仕様通り実装されていない? - Qiita

    最初に 次のエントリーで追試しました。エントリーの内容は古いです。一応Qiitaは履歴もとってくれるのでこの記事を上書きしちゃってもいいんですが、そうなるとコメントのコンテキストがわからなくなってしまうので、別記事にしました。エントリーも記録のために残します。 Cache-Controlヘッダは仕様通り実装されていない?(2) 編 HTTPのキャッシュの仕組みをいろいろ調べているのですが、よくわからなかったので実験してみました。 HTTP キャッシュの作成 14.9 Cache-Control 上記のサイトの説明によれば、no-cacheとmust-revalidateは非常に近い説明になっています。no-cacheはsubsequent requestと書いてあるので、.htmlから呼ばれる.css、.jsあたりのことまで(subsequent request)書いていると思われま

    Cache-Controlヘッダは仕様通り実装されていない? - Qiita
  • OracleとGoogleの判決文を斜め読む - Qiita

    (7/7追記)僕は斜め読みだったんですが、もっときちんと読んだ上で解釈を書いてくれている方がいます。僕も時間をとって全文を読みたいとは思っていますが、まだ時間がかかりますし、yudaiさんの会社の方が妥当性は高いと思いますので、そちらをご参照ください↓ 朝っぱらから色々衝撃が走った第一四半期の最終日ですが、OracleGoogleの裁判について、どのあたりが問題だったとされるのか気になるので判決文等を読んでみました。 経緯 2010年8月、OracleGoogleを訴える。当初の争点は特許侵害 (publicKey1) 2012年4月、サンフランシスコ連邦地裁の法廷開始 2012年5月、Googleの特許侵害はないとの陪審評決。ただし、フェアユースは意見が別れる。 2012年6月: OracleGoogleJava/Android訴訟、損害賠償金ゼロで合意。今回議論された37件のJ

    OracleとGoogleの判決文を斜め読む - Qiita
  • (翻訳)Mithril.jsの将来の計画 - Qiita

    3月ぐらいにMLでMithril.jsの将来計画を聞かれた時の、作者のLeo Horie氏のコメントが興味深かったので翻訳してみました。ちなみに、回答されていなくて明記もされてないのですが、MLのやりとりを見ているとMithrilにはコアメンバーが4-5人はいそうです。 Andreas Söderlund 私は現在とても大きなWebのプロジェクトを開始しようとしています。少なくとも5年は使われ続けることを考慮して、なるべく将来のことについて考えておきたいと思います。例えば、5年前はタブレットとモバイルデバイスは考慮に入れることはそれほどありませんでしたが、今はそれらのサポートが絶対に必要です。 最初の質問はLeoへの質問です。Mithrilはとてもすばらしいもので、すでにそれを使うことは決定しました。しかし、LeoがMithrilに対して5年後にどのあたりを見ているのかを聞いておきたいと思

    (翻訳)Mithril.jsの将来の計画 - Qiita
  • 最速MVCフレームワークMithril.jsの速度の秘密 - Qiita

    Mithril 0.2が日リリースされました。ちょっとURLが変わったり( http://mithril.js.org/ )、API名が一部(m.moduleがm.mount)変わっていたり、コンポーネント機能がコーディング規約レベルから、専用のサポートAPIが追加されたりしていますが、0.1系と大した差はなさそうです。 某node.js会長とはいろいろ社内で話をしたりしたのですが、各種ベンチマークでもトップクラス、平均的には最速のクライアントサイドMVCフレームワークという称号を持ちながら、国内ではまだまだ知られていないMithril。レンダリング速度は仮想DOMの代名詞となったReact.jsの5倍以上(ベンチマークによります)です。 ↓ホームページから転載 ちなみにこちらのベンチマークで計測すると、MithrilはReact.jsの10倍以上速い結果になるのですが、これはちょっと計

    最速MVCフレームワークMithril.jsの速度の秘密 - Qiita
  • Google Apps Scriptで今どきっぽい社内向けウェブアプリを作る - Qiita

    今どきっぽいというのは、各種JavaScriptライブラリを使うという意味です。ここでは、Bootstrapと、Knockout.jsを使ったサイトを作ってみます。 HTML Serviceの強化 @dz_ さんの記事のCheck! Google Apps Script - UIの実装は HtmlService + Polymer の利用が主流に?に書かれているように、Google Apps ScriptのUI周りに少し手が入ります。 今まではUi Serviceというのを使っていた。JavaとかC++GUIフレームワーク的な仕組みで、サーバサイドでUIのパネルとかボタンとかラベルを作り、コールバックも定義してあげる仕組み。ただし、生成されるHTMLHTML 3.2的なテーブルレイアウトだったりするのはご愛嬌。ただし、6/30で終了。 今後はHTML Serviceというものがメインに

    Google Apps Scriptで今どきっぽい社内向けウェブアプリを作る - Qiita
  • Go用のGoogle製のGUIツールキットgxuiのインストール - Qiita

    GoogleGo用の新しいGUIライブラリのgxuiをリリースしました。 ソースコードを見て分かる特徴 ボタン、テキスト入力、ツリーコンポーネントとかがありそう ツリーアダプタ的なクラスがある。直接ツリーコンポーネントに要素を追加するんじゃなくて、MVC的な作り? テーマが切り替えられる。darkというのが最初から組み込まれている。色を変えるぐらいならすぐできそう。ちなみに、テーマといいつつ画像データはなくてフルソースコード。 ベースはOpenGL。 C拡張を使っているのでクロスコンパイルは簡単ではなさそう。 Macへのインストール MacOSX 10.9+Golang 1.4.2(公式バイナリ)で試しています。 glewというライブラリが必要そうなので、Sourceforgeからtarballをダウンロードしてきてインストールします。

    Go用のGoogle製のGUIツールキットgxuiのインストール - Qiita