Linuxデバイスドライバを書く練習。/dev/fizzbuzzにしようかと思ったけど、 なんかあれだったので。まあ中身は fizzbuzzなんですが・・・。 ソース C言語をスクラッチから書くのは慣れない・・・. #include <linux/init.h> #include <linux/module.h> #include <linux/types.h> #include <linux/kernel.h> #include <linux/fs.h> #include <linux/cdev.h> #include <linux/device.h> #include <asm/uaccess.h> #include <asm/string.h> MODULE_LICENSE("Dual BSD/GPL"); static int keikyu_open(struct inode *i
先日 GREEを支える大規模インフラテクノロジー」-GREE Platform Summer Conference 2012 という記事が公開され、GREEのCTOの藤本さんが、 javascriptをサーバーサイドでも使うケースが多くなってきていて、必然的にnode.jsを使うことになるが、大きく3つの問題がある。 ひたすらすごい勢いでバージョンアップしているので安定しない。コストを払ってついていく覚悟を持って取り組んでいる。 メモリリークがあるので、サーバを起動しっぱなしにするとメモリが食いつぶされる。 コードをデプロイしても再起動しないと読み込まれない。 (中略) これで絶対大丈夫という解決策がなくて、node.jsで一番悩んでいる。これでバッチリ解決するというものがあれば、是非教えて欲しい。 といった話が掲載されていました。 GREEさんに限らず一般的に Node に対して同じ問題
The BetterZip Quick Look Generator and Quick Look extension extend macOS's Quick Look functionality to let you inspect the contents of compressed archives. It depends on your version of macOS whether the extension (macOS 10.15 Catalina and newer) or the generator (older macOS versions) will be used. The extension is universal and will run on Apple Silicon Macs natively. Both, the old Quick Look ge
さて、サイボウズラボの立ち上げプレスリリースが出たこの瞬間、とりあえずこのブログを見に来る人も多いと思われる。そんなチャンスに、このブログを読んだ人、特に日本のソフトウェア技術者に一番訴えたいことってなんだろう? と考え […] さて、サイボウズラボの立ち上げプレスリリースが出たこの瞬間、とりあえずこのブログを見に来る人も多いと思われる。そんなチャンスに、このブログを読んだ人、特に日本のソフトウェア技術者に一番訴えたいことってなんだろう? と考えた。 それは、日本人プログラマーだけが使う謎の動詞 registについてである。そんな単語は存在しないから、ちゃんと “register” を使おう。 Google.com で regist.cgi を検索 Google.com で regist.php を検索 出てくるのは日本語のサイトばっかりである。拡張子を”.jsp” や “.asp” にし
この記事は、Rubyを書くにあたって「いかにブロックを書かずにすませるか」を追求した、誰得な連載である。 だって、ブロックって汚いじゃん?仮引数の|x|とかキモイ。 Symbol#to_proc 基本中の基本。 instance method Symbol#to_proc 以下のようなArrayがあって、 irb(main):003:0> arr = [:user, :entry, :article, :comment, :category] => [:user, :entry, :article, :comment, :category] 各要素をto_sしたかったら、 irb(main):004:0> arr.map{|s| s.to_s} => ["user", "entry", "article", "comment", "category"] と書くかわりに、 irb(main)
GeeknoteはCUIで使えるEvernoteクライアントです。 やぁ、きみはギークかい?そしてEvernoteを使っている?どっちかがNoなら用はないので別な記事をどうぞ。両方Yesの人にはぴったりでお勧めなソフトウェアがある。それがGeeknoteだ! ログインしました。 エディターを登録します。 新規メモの登録です。 ちゃんと登録されました。 検索もできます。まず検索結果が表示されます。 結果の中から選ぶとノートの詳細が確認できます。 Geeknoteはメモの作成時にタイトル、本文そしてタグとノートブックを指定して送信する仕組みです。さらにメモの編集や削除、ディレクトリにあるメモを全てEvernoteに転送させることもできます。検索などの結果表示が遅いのが気になりますが、手元のメモを登録したりするのには便利そうです。 GeeknoteはPython製のソフトウェア(ソースコードは公
昨日の「iCloudハック事件の手口がガード不能すぎてヤバイ」を読み直して、自分なりに色々シミュレートしてみた。結論として、わりと他人事じゃないかもしれない。 例えばドラクエXとかマリオの新作発売日にさ、電話がくるんすよ。 「すいません、佐川急便ですけども・・・ Amazonさんからお荷物なんですが、ちょっと宛先の欄が濡れてて住所が読めないんですよ・・・」 みたいな電話がかかってきたら、たぶん俺は住所教えちゃう。 こういう電話をTwitterで「ドラクエの到着を全裸で待機なう」とか呟いちゃってる人に絨毯爆撃したら、3人に1人ぐらいは引っ掛かるんじゃないかと。電話番号とTwitterアカウントの結びつけは、勉強会とかカンファレンスで名刺集めてやがるの。 で住所教えちゃうじゃない? そうすると偽配達員がいうわけよ「あー、その地域はもう通り過ぎちゃいましたねぇ。あとでまたお届けしますが15:00
前回の続き。実際に軽く試してみたときのメモ。タイトルにもあるようにRuby側はSinatra。 (Chromeの)EventSourceがCORSに対応してないのでsame origin policyに引っかかってしまう問題 意外だった。XHRが対応してるくらいだし仕様にもあるしEventSourceの実装自体結構前からあるのでAllow-Control-Allow-Originで問題ないと思ってたけど実際にはChromeでSECURITY_ERR: DOM Exception 18が出る。SharedWorker内から接続しにいってたので発見が遅れてちょっとハマった。 幸いにもXHRを使ってpolyfillしてくれるやつがあったのでそれを使うことにしたけど、しかしそれならLast-Event-IDを使う予定もないし生のXHRでもいいのではという疑問が湧いてくる。websocketについて
Rails 4でSinatra::Streaming相当のストリーミング機構が入るとのことですが、そもそもRackやEventMachineに寄り添ったストリーミングは筋悪というか強引すぎると考えていて(Phusionの人の懸念に近い)、それなら最初から向いてるテクノロジーを使ったほうがいいよねと思いNode.jsを触ることにしました。 といってもストリーミングのためだけにすべてをNodeで書く気はなくて、メイン部分をSinatraやRailsで処理し、ストリーミング部分(EventSourceやWebSocket、あるいはSocket.IOに丸投げ)をNodeで処理し、この2つがZeroMQかなんかでプロセス間通信するのが理想かなと思っています。つまりクライアント(ブラウザ)はまずRailsに接続し、そこでnew EventSource('http://host:8080/sse')みた
GCD便利ですね。手軽にネストした非同期処理を書けるので、使いまくっています。しかし一直線にコードを書いていると見過ごしがちなのが、キャンセル処理です。時間のかかる処理を途中で止める場合や、別のUIViewControllerに遷移するから処理そのものが必要なくなった場合に、処理を止めたい場合があります。具体的には以下の様なケースがあると思います。 大きなファイルのアップロード中にキャンセルボタンを出したい 画面遷移をしたら、前の画面で進行中の画像ダウンロードはキャンセルしたい このような場合にGCDライクに使えて、しかもキャンセル処理ができのが組み込みクラスのNSBlockOperationです。早速使い方を見て行きましょう。weakのおかげでややこしいメモリ管理を考えなくて楽です。 -(void)heavyTask { if (!_queue) _queue = [[NSOperati
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く