メインコンテンツまでスキップ

「tech」タグの記事が35件あります

全てのタグを見る

Yamagishi Kazutoshi

最近は仲間内のチャットなどではDiscordをよく使っています。またOSSプロダクトのサポートチャットとしてDiscordを採用している事例もよく目にするようになってきています。

Discordにこの記事で詳しく説明しません。Discordについて気になった方は櫛井さんの書かれたブログ記事がとても良くまとめられているのでご参照ください。

Discordでボットを作るためのライブラリーとしてdiscordrbがあります。discordrbは多機能でさまざまなことができるとても便利なライブラリーなのですが、多機能すぎて少し使い難い側面もありました。そのためRubyでチャットボットを簡単に作ることができるフレームワークであるRubotyのDiscordアダプターを作りました。

Yamagishi Kazutoshi

こんにちは@ykzts@ykzts.technologyです。気付けばMastodonへのコミットの数が100を超えていました。公式にもPull Requestのレビュワーにも任命されて、Mastodon関連で少し忙しくなっています。

さて、技術情報共有サービス「Qiita」を運営するIncrements株式会社が先日Mastodon インスタンス「Qiitadon」を公開しました

Yamagishi Kazutoshi

Mastodonについての話題がここ数週間の内に破竹の勢いでかけめぐっています。ここまでの勢いというのはTwitterができたばかりの2007年のころが思い起こされ、とてもなつかしい気持になっています。

Yamagishi Kazutoshi

この記事はhttp2 Advent Calendar 2016の二十三日目の記事である。

今年……2016年はHTTP/2が大いなる躍進を遂げた年であったと感じる。

Amazon CloudFrontも今年の九月にHTTP/2の対応が追加された (Amazon CloudFront now supports HTTP/2)。またFastlyでも十一月から一般利用が可能となった (HTTP/2 is now in General Availability)。

Yamagishi Kazutoshi

最近、TVを作っています。TVといっても映像を受信して映す機械を作っているわけではありません。TVのように映像を再生して、見ることのできるウェブサービスを開発しています。

そのウェブサービスの名前はBaberuTVです。その名前の通りにbaberu.tvというドメイン名で公開しています。

Yamagishi Kazutoshi

Qiita とQiita:Teamで本文中にdetails要素とsummary要素を使えるようになりました。

両要素についてQiita Blogでは

HTML5から、ユーザが明示的に操作をすることで追加の詳細情報を閲覧することができるようになるdetails要素が加わりました。また、その追加情報の要約を記載するために、summary要素も同時に追加されました。これらの要素を使用すると、ウェブブラウザは要約の文章に加えて、開閉するためのUIを表示します。そしてユーザがそのUIを使って開いた際に、details要素が持つ内容が初めて表示される、という挙動となります。

という説明がされていますが、details要素とsummary要素は2014年十月二十八日に勧告されたHTML 5の仕様には含まれていません。同年の二月に公開された勧告候補まではdetails要素とsummary要素は存在しましたが、四月に公開された勧告候補details要素とsummary要素はなくなりました。

Yamagishi Kazutoshi

これまでわたし、山岸和利 (@ykzts)Tumblrでブログを書いていましたが、今後はWordPress.comでブログを書くようになります。今まで更新していた「人生が二度あれば」はそのまま残しますが、以後更新されることはありません。

Tumblrでは2007年からブログを書き始めました。2014年ごろから更新頻度が停滞してしまっていたとはいえ、九年以上お世話になっていたということになります。

2007年当時のTumblrは日本人による創作物を「引用」の要件を満さない形での無断転載が横行していました。Tumblrのサービスとしての機能は非常に優れているというのに使っている人たちがこうでは悪いものとして認識されてしまうのではないだろうかという義侠心のもと、Tumblrは他者の創作物を転載すること以外もできるということを示したくTumblrでブログを書き始めたのです。

Yamagishi Kazutoshi

一つのサーバーに複数のドメイン名のウェブページを同居させることはよくある話だと思います。負荷のことを思えばドメイン名単位でサーバーを分けたほうが良いのでしょうが、さしたアクセスが見込めないウェブページを集約しても問題は起きないでしょう。

ただ www. つきでアクセスされた際に、www. なしのドメイン名へのリダイレクトをさせる処理をドメイン名単位で一つ一つ書いていくのは無駄です。

nginx の server_name ディレクティブでは正規表現を使えます。nginx が正規表現エンジンとして使っている PCRE では名前付きキャプチャに対応しているので次のように書けます。

Yamagishi Kazutoshi

近年 エンジニアの採用においてGitHubのアカウントの提出を求められる企業が増えつつあります。それに対して採用の場で個人的な活動の結果を求めるのかと憤る人もいます。

たとえばデザイナーの採用でポートフォリオの提出が必須とされていることは多くあります。それと同様にエンジニアの採用でGitHubのアカウントとそこから見ることのできる成果物の提出を求めることに対する違和感はないのではないかと思います。

Yamagishi Kazutoshi

という両者相反する内容の記事がございました。両論もっともな内容であり、また実行速度だけではなく思想も絡んでしまう非常に煩わしい問題であります。

Yamagishi Kazutoshi

モダンな言語でHTML5を開発しよう! 俯瞰して理解するaltJSの比較 (前編 - TypeScript, CoffeeScript, Hexe) と題する記事があった。この記事は見出し中にある「HTML5を開発しよう」という言葉からして意味が通っていない。だが記事の内容から「HTML 5を始めとし、CSSやJavaScriptといったウェブ関連の技術を用いたアプリケーション作りをしよう」という意図であろうと類推することができる。しかしこの記事で問題なのはそのような重箱の隅を突くが如き枝葉末節な部分ではない。この記事の中で薦められているいわゆるaltJSと称される複数の言語たちではない、JavaScriptという言語はモダンな言語ではない、つまり近代的な言語ではないと断言してしまっていることである。

ここ数年のHTML5やCSS3の劇的な進化に比べて、JavaScriptの言語としての進化は緩やかだったのではないでしょうか。HTML5の登場により、リッチなウェブサイト・コンテンツ・アプリケーションが求められる時代になったのに、それを制御する言語が未だレガシーなものであり、ニーズに追いついていないのが現状です。

先に引用した一文は前述した記事の第一段落に記された内容である。この短い一文の中に、事実誤認から来ているのであろう誤りが複数含まれてしまっている。このような記事は非常に度し難く、そして許すことができない。

Yamagishi Kazutoshi

はてなブックマークの人気エントリーをながめていたところJavaScriptでアニメーションを書く初歩の初歩のような記事が目にはいりました。初歩であればこそ、この記事で省かれているrequestAnimationFrameの話をするべきではないのかとも思いますが、それよりもわたしは元の記事に掲載されているコードがJavaScriptを用いて十ミリ秒の間隔を開けて複数の処理を何度もウェブブラウザーにさせてしまっていることが気になりました。また、いくつかの処理を完了させてから、setTimeoutを用いて任意の時間が経過するのを待ち、同様の処理を行うというかたちになっていますので、処理に時間がかかってしまえば、なめらかな描写は到底実現されないものとなってしまっています。

Yamagishi Kazutoshi

HTML.jsというJavaScriptで楽にDOM操作を行えるようにするライブラリーがあります。結論から申しますと、このライブラリーは絶対に使うべきではないライブラリーとなっています。

Yamagishi Kazutoshi

数年前ならいざ知らず、現代のJavaScriptは充分に高速な動作が実現されている。無論C言語で記載されたいわゆるネイティブアプリケーションと比較すれば計算速度等では大きく劣ってしまう。だがしかし複雑な計算等を必要としない通常範囲のアプリケーションであればJavaScript (とHTMLとCSS) で記述がなされたアプリケーションの実行速度はネイティブアプリケーションと遜色ないものになると半ば強い確信を抱いている。ではJavaScriptで記述がなされているアプリケーションの動作が緩慢であるという認識がなぜ多くの場でなされているのか。それは単純な理由である、そのアプリケーションの作者が知識不足でDOM操作が冗長的なものとなっており無駄が多くなってしまっているからだ。

Yamagishi Kazutoshi

ここ最近、俄かにSPDYが流行の兆しを見せているように見える。言及されぬ技術は使われず、そして使われぬ技術は存在しない物であるのと同義であると私は考えるので悪い事ではないのだが、本来SPDYを使う上で注意すべきである点を無視して言及しているように見えるので一度深く熟考する必要があるのではないだろうか。

Yamagishi Kazutoshi

iPhoneとiPadのシステムソフトウェアをiOS 6.0にアップデートしたところ、Safariのデバッグコンソールを表示する方法を見付けられなくなってしまった。Webインスペクタというのが追加され、Mac OS X上で動作するSafariがあれば効率良くデバッグ出来るようになったようなのだが、非常に残念な事に現在の私の手許にはMac OS Xの環境が存在しない。なのでiOSのSafariでのデバッグが出来ないようになってしまった。探せば既存のデバッグコンソールを表示する方法があるのかも知れないが、しばらく探しても見付ける事が出来なかったので、非常にその場凌ぎの解決法で済ませた。

Yamagishi Kazutoshi

内容に関しても思う所は御座いますが、一つだけ。

HTML 5の仕様を現在 書いていらっしゃるGoogle社のIan Hickson氏はアメリカの方ではなくスイスで生まれた方です。現在どちらに住まれているのかは存じませんが少なくとも「アメリカ人」と表現されるような方ではないかと考えます。

Yamagishi Kazutoshi

最近になって気がついたがBlobBuilderインターフェースが非推奨となっていた。Chronium 21.0.1180.75にてnew WebKitBlobBuilder()といった記述のあるスクリプトを実行すると「BlobBuilder is deprecated. Use Blob constructor instead.」といった表示がコンソールに出力されるようになっている。まだ現時点では使えはするようだがいつ使えないようになってしまうのかわからない。なのでつかうようにと表示されているようBlobはどういった仕様でどのようにつかえるものなのかを簡単に調べてみた。

Yamagishi Kazutoshi

XMLHttpRequest Level 2のWorking DraftにはresponseTypeという属性があります。この属性に'json'という値を代入することにより、req.send()を実行したのちに、response属性にあたかもJSON.parse(req.responseText)としたかのようなobjectがいれられるようになります。readyState属性の値がXMLHttpRequest.DONE (4) になった段階でresponseTextをパースするようなコードを書けば良い話ではあるのですが、コードの短縮化簡潔化をはかれて多くの人はしあわせになれるのではないでしょうか。この記事を執筆している段階では当該仕様はWorking Draftであり、実装もまだFirefoxでしかおこなわれていないようです (Opera 12.00以降でも対応しているそうです) が、とても便利につかえそうなものなので今後 多くの環境で実装されることをねがいたいものですね。

Yamagishi Kazutoshi

W3Cによる仕様に沿わせてNodeで動作するXMLHttpRequestを作成してみました。HTTPによる情報のやり取りを行い情報の授受を行う際には多くの場合はNodeに標準で備わっているhttpモジュールだけで事足りてしまいます。また XMLHttpRequestを模倣したNode向けライブラリは他者によって作られた物がnpm上へと既に用意されております。そのため、車輪の再開発も甚しいのですが、私自身のXMLHttpRequestへの理解度を確認するためにあえて作ってみました。途中で妥協してしまっている箇所が幾つか有るのですがそこはつまり私が理解出来ていない部分という事になります。そうした点を重点的に学習して行けば今後の助けになるのでは無いかと期待しています。

Yamagishi Kazutoshi

nginxで任意のHTTPヘッダーを追加したい場合にはadd_headerディレクティブを用いますが、add_headerディレクティブは追加しようとしたフィールド名が重複するHTTPヘッダーが既に用意されていた場合には既にある物に「,」区切りで連結してしまいます。たとえば強制的に出力するContent-Typeを変更するためにadd_header Content-Type text/css;のようにしてもContent-Type: text/html, text/cssといった形の不正なHTTPヘッダーが出力されてしまいます。