タグ

ブックマーク / mattn.kaoriya.net (19)

  • Big Sky :: Golang の channel の使い所

    golang の特徴と言えば goroutine と channel ですが、その使いどころに悩む人もおられる様です。 goroutine は非同期に実行される処理、channel はその groutine と通信する為の仕組みと考えると分かりやすいです。 package main import ( "fmt" "time" ) func main() { task := make(chan string) taskquit := make(chan bool) workerquit := make(chan bool) go func() { loop: for { select { case <-taskquit: workerquit <- true break loop case job := <-task: fmt.Println(job) } } }() go func() {

    Big Sky :: Golang の channel の使い所
    riywo
    riywo 2013/12/14
  • Big Sky :: SQLite で twitter のタイムラインを select する。

    ちょっと前に PostgreSQL に関する記事を見た。最近 PostgreSQL がアツイらしい。 PostgreSQLに興味がある人向けにまとめてみた。|PostgreSQL|お仕事メモ|Pictnotes Q. FDWってなによ? A. FDW(Foreign Data Wrappe),外部データラッパっていうやつで、SQL/MED(Management of External Data)の規格の一つで簡単にいうと、PostgreSQLにQUERYを発行したら、あら不思議、外部の(たとえばMySQLとかCSV)データが取得できるという変態機能。 twitterAPIに変更あるらしいから今後はわからにけど、twitterのデータを取ってくるとかもできる。というかラッパーが用意されてる。(ちなみに使ってみたら楽しかったw) http://www.pictnotes.jp/memo/arc

    Big Sky :: SQLite で twitter のタイムラインを select する。
    riywo
    riywo 2013/09/13
  • Big Sky :: 分散環境情報サーバ etcd を使った設定共有の活用

    etcd って何と聞かれた場合、一言で言ってしまえば zookeeper なんだけど Documentation · CoreOS etcd etcd is a highly-available key value store for shared configuration and service discovery. http://coreos.com/docs/etcd/ coreos/etcd - GitHub https://github.com/coreos/etcd etcd の良い所は curl で使える様な簡単な API SSL Cert 認証もオプションとして使える ベンチマークで 1000s of writes/s per instance を出せるくらい速い Raft を使って正確に、確実に分散する という感じらしい。作ってるのは CoreOS。 etcd はキーを

    Big Sky :: 分散環境情報サーバ etcd を使った設定共有の活用
    riywo
    riywo 2013/08/22
    うまい
  • Big Sky :: Go言語で動く mobirc、gomirc で携帯からIRCしよう。

    以前から携帯から IRC する手段として mobirc を使ってきたのだけど、使ってるサーバのリソースが少なすぎてちょくちょく困ってました。 「これ、Go言語で書いたらパフォーマンスも出るし、使用リソースも減るし万々歳じゃね?」というアホの一つ覚えみたいな動機で作り始めました。 mattn/gomirc - GitHub https://github.com/mattn/gomirc mobirc とほぼ同等の機能が動きます。 複数ネットワーク クリッカブルリンク 画像インライン表示 新着件数表示 ログイン機能 iPhoneビューも付いてます。 あと、バックログ機能が付いてましてサーバを再起動したい場合は CTRL-C すると backlog.json というファイルに最新100件のバックログが保存されます。 config.json は以下の様に記述します。 { "irc": [ { "n

    Big Sky :: Go言語で動く mobirc、gomirc で携帯からIRCしよう。
    riywo
    riywo 2013/05/29
  • Big Sky :: Github Notification API が出たので通知を Growl するの書いた。

    Github Notification API が出ました。 Notifications API - GitHub Recent posts in this category Notifications API technoweenie on October 26, 2012 Latest commit per d... https://github.com/blog/1306-notifications-api github の通知を取得する場合、これまでは miyagawa さんが github growler でやっていた様に、ダッシュボードのRSSを使って自分のイベントを抽出しなければなりませんでしたが、Notification API を使う事で Github 上と同じ通知メッセージが取れる様になりました。 今日は PerlGithub のメッセージを通知するアプリケーショ

    Big Sky :: Github Notification API が出たので通知を Growl するの書いた。
    riywo
    riywo 2012/10/29
  • Big Sky :: バッチ ジョブを終了しますか (Y/N)?

    Windows を UNIX っぽく使おうとすると、必ずお目にかかるであろうこのメッセージ。 UNIX に慣れている人は、コマンドプロンプトを使いたがる。しかし全ての場合においてコンソールアプリケーションは有能では無いし、異常に長い引数は省略したい。Java VM で動く言語のクラスパス等はスクリプトに書きたいし、オフィシャルから Windows ユーザ向けに用意される物はだいたいバッチファイルだ。しかしながら Cygwin は標準提供物ではないし、嫌いだ。いや、大嫌いだ。 そこで私達は一般的に、バッチファイルという一見便利そげで実は非情なまでに我々に独特の仕様を強要するDSLを頻繁に使う事になる。 例えば Java VM 上で動く clojure を Windows 上で repl として使う場合、僕は以下の様なバッチファイルを「clj.bat」というファイル名にして使っている。 @ec

    Big Sky :: バッチ ジョブを終了しますか (Y/N)?
    riywo
    riywo 2012/09/20
  • Big Sky :: ぼくが知ってる twitter じゃない

    もう僕が知ってる twitter じゃなくなってきてる。 Twitter、開発者向けガイドラインとAPI変更について説明 ユーザー数制限など厳しい内容 - ITmedia ニュース 米Twitterは8月16日(現地時間)、数週間後に予定しているTwitter APIのバージョン1.1へのアップデートと開発者向けガイドライン「Developer Rules of the Road」の改定について説明した。クライアントアプリのユーザー数に上限を設けるなど、サードパーティーにとって厳しい内容になっている。 http://www.itmedia.co.jp/news/articles/1208/17/news037.html Twitter のことと P3:PeraPeraPrv について - とかいろいろ 彼らはこのユーザーの「好みのクライアントアプリを選ぶ自由と権利」を奪うという決定をしまし

    Big Sky :: ぼくが知ってる twitter じゃない
    riywo
    riywo 2012/08/29
  • Big Sky :: C言語から使えるJSONパーサ、JSMNを試してみた。

    上記の様に、トークンは各識別毎に作られます。オブジェクトのキーおよび値もそれぞれのトークンとして格納されます。 jsmn_parse はトークンの量が不足している場合、エラー JSMN_ERROR_NOMEM を返します。例えば、どれだけの量のトークンが JSON 文字列として与えられるか分からない場合、トークンのサイズを広げる必要があります。この場合、jsmn ではパーサを再初期化する事なしに、トークンを広げて再度 jsmn_parse を実行する事でパースを続行出来る様になっています。 ただしどれだけの量が不足していたかは分からないので、適度な増減を考慮する必要があります。 今日は試しに twitter のパブリックタイムラインをパースしてみました。 #include <assert.h> #include <string.h> #include <memory.h> #include

    Big Sky :: C言語から使えるJSONパーサ、JSMNを試してみた。
    riywo
    riywo 2012/08/22
  • Big Sky :: Perl で 逆FizzBuzz

    逆FizzBuzz問題 (Inverse FizzBuzz) - とC#について書くmatarilloの雑記 逆FizzBuzz問題 (Inverse FizzBuzz) General | Inverse Fizzbuzz - just another scala quant を日語にしました。 ちなみに... http://d.hatena.ne.jp/matarillo/20120515/p1 逆FizzBuzzって、オートマトンなので正規表現を使うと楽に出来るはず。 #!perl use strict; use warnings; use Test::More; sub inv_fizzbuzz { my ($fz, $n, $pat) = ('', 1, join ',*?', @_); while (1) { $fz .= $n % 15 > 0 ? $n % 3 > 0 

    Big Sky :: Perl で 逆FizzBuzz
    riywo
    riywo 2012/05/17
  • Big Sky :: Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事

    絶対パスの先頭に/が来る事を期待してはいけない しかしながら絶対パスの先頭にドライブレターが来る事を期待してはいけない UNCパスのホスト名やシェア名はディレクトリではないのでファイルシステムAPIは使えない事を意識しておく unixに比べパス内に空白文字が入る可能性が高い事を意識しておく ホームディレクトリを意味するパスの先頭チルダは自前で展開する必要があり、またパスの途中にチルダが混じる事は日常的にある ソケットディスクリプタに対してもread/writeで送受信できる事を期待してはいけない パイプでない標準入力のselectはやっても意味がない ディレクトリ内にあるファイルを開き、ハンドルを保持したままディレクトリを消せるのは当たり前だと思わない パスのセパレータが/¥である事を期待してANSI APIを使ってはいけない Cランタイム(POSIX互換API)とWindows API

    Big Sky :: Windowsへの移植も視野にいれたプログラムを書くなら読んでおいて欲しい事
    riywo
    riywo 2012/05/09
  • Big Sky :: VimでDBが操作できる vdbi-vim 作った。

    DB操作ツール Emacs DBI を作ってみた - 技術日記@kiwanami このツールの目的は、クロスプラットフォームで便利なDB操作環境を実現することです。 pgAdmin や MySQL Query Browser のようなGUIの良さをCUIで実現してみようとしてみました。すなわち、ぼくのかんがえたさいきょうのDBツールです。ちなみに、このツールにとってEmacsはただの実行環境です。Emacs使わない人でも使うと便利だと思います。 http://d.hatena.ne.jp/kiwanami/20120305/1330939440 VimもーVimもー! って事で作りました。 mattn/vdbi-vim - GitHub Database client for Vim https://github.com/mattn/vdbi-vim Emacs版はepcというRPCプロト

    Big Sky :: VimでDBが操作できる vdbi-vim 作った。
    riywo
    riywo 2012/03/08
    すごいwwww
  • Big Sky :: VimmerなPerl開発環境

    えーっと、IDE使ってません。ごめんなさい。 PerlをIDEで書いてる人、どれくらいいるんだろう。何使ってるんだろ。 私はLinuxでもWindowsでもVimを使ってます。Perlってサーバで使われる事が多いし、サーバだとsshで入る事が多いだろうし、まぁXの転送やVNCやそれっぽいのでグラフィカルに操作しても良いけど、正直PerlのドキュメントもテキストベースだしPerlで入力補完出来るグラフィカルエディタもまず無いと思ってる。 で、私がVim上で使ってるPerlの開発を「200倍便利にするスクリプト」を紹介。 perldoc.vim perldocはPerlのオンラインマニュアルなんだけど、これを一々ターミナルに戻ったりして引いてると時間のロス。screenで分割して開いてもいいんだけどscreenの画面間移動よりもVim内でのウィンドウ間移動の方が操作感が統一出来てて良い。 そこ

    Big Sky :: VimmerなPerl開発環境
    riywo
    riywo 2012/01/19
  • Big Sky :: trie_tree書いてみた。

    trieなんたらが話題になってたのでなんとなく書いてみた。 ベンチとかはやってない。 404 Blog Not Found:Algorithm - 連想配列の実装としてのハッシュはオワコン? そのデータ構造は、君の魂を差し出すに足るものかい? 連想配列( Associative array )がコレクション( Collection )、すなわち数多のデータ構造をまとめるデータ構造としての覇... http://blog.livedoor.jp/dankogai/archives/51765855.html #include <stdio.h> #include <stdlib.h> typedef struct _trie { char c; unsigned int n; struct _trie** next; void* value; } trie; trie* trie_new()

    Big Sky :: trie_tree書いてみた。
    riywo
    riywo 2012/01/17
  • Big Sky :: libuvを使ってみた。

    node.jsのスライドを見てて、プラットフォームの違いを吸収するnode.jsの核でもある非同期通信ライブラリuvを今日知ったので試してみた。 joyent/libuv - GitHub platform layer for node.js https://github.com/joyent/libuv libev/libeventをwindowsでもちゃんと使いたいという所から出てきたライブラリ。 #include <iostream> #include <uv/uv.h> int main() { int r; uv_tcp_t tcp; struct sockaddr_in server_addr; server_addr = uv_ip4_addr("127.0.0.1", 80); r = uv_tcp_init(uv_default_loop(), &tcp); uv_con

    Big Sky :: libuvを使ってみた。
    riywo
    riywo 2011/10/31
  • Big Sky :: githubとjekyllとoctopressで作る簡単でモダンなブログ

    以前、「jekyllで始める簡単ブログ」という記事を書いたのですが Big Sky :: Jekyllで始める簡単ブログ GithubのユーザページでJekyllが使われる様になりました。 GitHub Pages Upgraded to Jekyll 0.5.0 - GitHub I just released Jek... http://mattn.kaoriya.net/software/lang/ruby/20090409185248.htm octopressというのを使うともっと簡単に出来る事が分かった。 Octopress Octopress is a framework designed by Brandon Mathis for Jekyll , the blog aware static site generato... http://octopress.org ima

    Big Sky :: githubとjekyllとoctopressで作る簡単でモダンなブログ
    riywo
    riywo 2011/10/17
    へぇぇぇ
  • Big Sky :: 個々の作業はチームを作る事で効率を上げられる

    先日、vim-jpがオープンした訳だけど、これの真の意味はバラバラだったユーザや開発者を1ヶ所に集めるのが目的。まぁVim-users.jpもあって良いし、各々でやったらいいと思うけど僕が求めていたのは開発側。 vim-jpを作って良かったと思った。 githubのIssueトラッカーを使ってvim_devにパッチを放流するまでのワークフローが出来上がりつつある。 不具合報告 皆で再現確認 修正方法の提案そして議論 修正担当者をアサイン パッチを仮で書いて貼り付ける レビューしてもらって提出 突然、有識者がパッチ書いてvim_dev投げるとツメも甘かったりしますし、第一に新しい開発メンバが増えない。仕事でも同じだな。不具合が出たら修正者にすぐ直させるものいいんだけど、どう直すのかを予めレクチャーさせると不具合の認識が共有出来る。 後からそういう修正じゃなかったんだけど...って事がなくなる

    Big Sky :: 個々の作業はチームを作る事で効率を上げられる
    riywo
    riywo 2011/10/01
    かっこいい!
  • Big Sky :: Re: サブドメインに任意の文字列が入るウェブアプリのローカル開発

    サブドメインに任意の文字列が入るウェブアプリのローカル開発 - 冬通りに消え行く制服ガールは?夢物語にリアルを求めない。 - subtech サブドメインに任意の文字列が入るようなサービスをローカルで開発しようとすると、いろんなホストを /etc/hosts に書かないといけなくてすごく不便なので、なんとかしようと思っていたところ、id:hakobe932 先生に「それアレでできますよ」との御言葉を頂き、簡単なスクリプトを書きました。 http://subtech.g.hatena.ne.jp/cho45/20110804/1312389877 僕ならこうやるかも libcho45.c #define _GNU_SOURCE #include <dlfcn.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #incl

    Big Sky :: Re: サブドメインに任意の文字列が入るウェブアプリのローカル開発
    riywo
    riywo 2011/08/04
    勉強になる
  • Big Sky :: node.jsでtwitter上に流れる画像をパラパラ見せるサーバを作ってみた。

    こんばんわ。node.jsやってないとjavascriptのもぐりだと言われている昨今、いかがお過ごしでしょうか。 個人的には node.js は2回くらい飽きてしまって、3周目くらいです。 よく考えたらこのブログでは一度も node.js に触れてなかったなーと思ったのと、最近触ってないから忘れてそうだな...という思いからエントリにしてみました。 node.js が面白いと言われている理由の一つに非同期処理があります。そして非同期を面白くする題材として websocket があります。今日はその websocket を使って、サンプルを作ります。 物としては、twitter の filter stream から、instagr.am と picplz.com の画像URLを収集し、それをクライアントにブロードキャストします。クライアントはそれを受けて Growl 風にポップアップ表示す

    Big Sky :: node.jsでtwitter上に流れる画像をパラパラ見せるサーバを作ってみた。
    riywo
    riywo 2011/03/16
    3周目www
  • Big Sky :: Google Readerでもgをぺちって全部全文読んじゃおう。

    追記 都合上、キーを「g」から「z」に変更させて頂いています。 以下読み替えて頂く様お願い致します。 LDRで全文取得表示するグリモン便利だなぁ。 LDR Full Feed 0.0.6 gをぺちって押してLDRで全部全文読んじゃおう。 「g」押すだけなんて!!! でもLDR使ってない!!! って事で、Google Readerにサクサクっと移植してみました。 そんなに大きな変更してません。SITEINFOも同じ場所を使っています。 オリジナル作者様、もし同じSITEINFOを見る事に問題があれば、ご連絡下さい。 即効でグリモン毎、削除させて頂きます。 操作は同じく、[G]のアイコンが付いてたら「g」を押下で全文取得。 とりあえず、dankogai氏のサイトでチェックして問題なさげ。 ライセンスはLDR Full Feedに委ねます。 ダウンロード:googlereaderfullfeed

    Big Sky :: Google Readerでもgをぺちって全部全文読んじゃおう。
    riywo
    riywo 2008/03/10
    うぉ、これは便利すぎる!ニュースサイトとかいちいち元ページに飛ぶのめんどくさいから、これはいい!
  • 1