タグ

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

  • Big Sky :: 「便利」と「感極まってきました」だけでプログラムが書ける日本語プログラミング言語「うじひさ」を作った。

    誰も作ってくれないので自分で作った。 「便利」と「感極まってきました」だけでプログラム書ける日語プログラミング言語「うじひさ」の登場が待たれる — mattn (@mattn_jp) August 21, 2014 mattn/ujihisa - GitHub https://github.com/mattn/ujihisa golang で書かれています。go get github.com/mattn/ujihisa/ujm でインストール出来ます。使い方は $ ujm [filename] です。ファイル名が無い場合は標準入力から読み取ります。ベースは whitespace です。スペース文字が 便利、タブ文字が 感極まってきました に置き換わります。whitespace に慣れている人ならスイスイと書けるかと思います。例えば 便利便利便利感極まってきました 感極まってきました 便利

    Big Sky :: 「便利」と「感極まってきました」だけでプログラムが書ける日本語プログラミング言語「うじひさ」を作った。
    miya2000
    miya2000 2014/08/22
    そうなんだ、そうなんだ、そうなんだ、じゃあ私生徒会行くね
  • Big Sky :: なんでもシェルで書いちゃう男の人って...。

    « C++ の JSON ライブラリ json11 は initializer_list が綺麗。 | Main | 「便利」と「感極まってきました」だけでプログラムが書ける日語プログラミング言語「うじひさ」を作った。 » ShellScript - jq、xmllintコマンドさようなら。俺はパイプが好きだから - Qiita UNIX哲学の一つとしてよく引用されるマイク・ガンカーズの教義に 1.小さいものは美しい。 2.1つのプログラムには1つのことをうまくやらせよ。 というのがあるが、まずこれができていない http://qiita.com/richmikan@github/items/e051b5d882c3dd2a39c6 昔の UNIX で扱っていたデータはだいたい行指向でした。そして UNIX は行指向データを扱う為の OS と言っても過言ではありませんでした。 しかし J

    Big Sky :: なんでもシェルで書いちゃう男の人って...。
    miya2000
    miya2000 2014/07/31
    「Excelは行列指向」という言葉を思いついた。
  • Big Sky :: ping pong でタスク管理

    よし、卓球をしよう。 ちょっとしたクラサバで何かを動かす時、クライアントが死んだらサーバも死んで欲しい時がある。自分で作ったプログラムならいいけれど、そうじゃないならいちいちサーバで CTRL-C タイプしなきゃならなかったりする。 「そこ自動でしょ!」 と思ったのでツールを作ってみました。 mattn/pingpong - GitHub https://github.com/mattn/pingpong 2つのツールで構成されます。pping は引数で与えられたタスク名で ppong に一定周期で生存通知を行います。ppong は指定されたタスクが起動していなければ起動し、一定期間 ping が来なければそのプロセスを終了します。 pping は引数を取る事ができ、例えばサーバのあるタスクを起動させてからクライアントを起動したい場合には以下の様に実行します。 $ pping -n gam

    Big Sky :: ping pong でタスク管理
    miya2000
    miya2000 2014/04/25
    pping コマンドは「Peeping Tom」的な意味なのかな。
  • Big Sky :: mruby でWebサーバ動いた

    ここ数日、mrubyの拡張を書いてた訳ですが。 mattn/mruby-uv - GitHub interface to libuv for mruby(experimental) https://github.com/mattn/mruby-uv mattn/mruby-http - GitHub interface to http for mruby(experimental) https://github.com/mattn/mruby-http これを使って #include <mruby/proc.h> #include <mruby/data.h> #include <compile.h> #include <mrb_uv.h> #include <mrb_http.h> #define _(...) #__VA_ARGS__ "\n" int main() { int n;

    Big Sky :: mruby でWebサーバ動いた
    miya2000
    miya2000 2012/04/26
    なんて RESTful !
  • Big Sky :: 個々の作業はチームを作る事で効率を上げられる

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

    Big Sky :: 個々の作業はチームを作る事で効率を上げられる
    miya2000
    miya2000 2011/10/01
  • Big Sky :: Uniteプラグイン書いた。

    最近のVim界隈では、バッファセレクタの新しい形の一つであるUniteが注目を浴び始めています。 Shougo's unite.vim at master - GitHub unite all sources https://github.com/Shougo/unite.vim Uniteはバッファセレクタという単純な概念に縛られた物ではなく、候補選択を行うユーザインタフェースとして提供されるライブラリ的な代物です。 Uniteにはバッファやファイル、MRU(Most Recently Used)等、通常候補選択しそうな物がUnite sourceとして既に含まれていますが、プラグインを書く事で自分で定義した候補選択がUI付きで実現出来る事になります。 Uniteはまだ発展途上ではありますが、今日はどれだけ少ないコードでUnite UIが使える様になるかを皆さんに伝えるべくUniteプラ

    Big Sky :: Uniteプラグイン書いた。
    miya2000
    miya2000 2010/11/18
    Unite と聞いて。
  • Big Sky :: favstar.vim書いた。

    « いつまでたっても捨てられないexcitetranslate.vimを改造してgoogletranslate.vimを書いた。 | Main | Uniteプラグイン書いた。 » favstarを見にいくのにいちいちブラウザあげるのが面倒くさいので、なんとかならないかなと思ってた。 普段TwitVimを使ってるんだけど、同じようにvimから見れないかなーと思って勢いで書いた。 function! s:ShowFavStar(...) let user = a:0 > 0 ? a:1 : exists('g:favstar_user') ? g:favstar_user : '' if len(user) == 0 echohl WarningMsg echo "Usage:" echo "  :FavStar [user]" echo "  you can set g:favstar_u

    Big Sky :: favstar.vim書いた。
    miya2000
    miya2000 2010/11/10
  • Big Sky :: VimでSOAP

    Vim英単語の意味を考えると、「Vimでソープ」とかかなりイヤラシイですが、ぜんぜんちがうよ! VimでSOAP通信を実現しました。 Gistの様なサービスでIdeoneというのがあるんですが、これまでPure VimscriptでGist、Codepadと制覇してきたので、よしIdeoneも...と思ってAPIドキュメントに目を通してみたら、なんとSOAP通信ではないですか! でもくじけません!負けません! 頑張ってSOAP通信しました。 mattn's ideone-vim at master - GitHub vimscript for ideone http://github.com/mattn/ideone-vim/ :Ideone -r でideone上で実行し :Ideone -p でprivate投稿となります。Gistと同じ様に使えます。ソースコードのメイン部はこんな感

    Big Sky :: VimでSOAP
    miya2000
    miya2000 2010/10/28
    「wsdlを読み込ませるだけでgetLanguagesという関数が呼び出せます。」
  • Big Sky :: Facebookの今後を勝手に予測してみる。

    人が増える サーバが落ちる サーバが落ちる イルカ昇天画像 グリーンピースから(以下略 Facebook婚 Facebook離婚 改変リンク ネタパクリ疑惑 闇プログラマ(以下略 2000人くらいフォローしないと観測範囲が(以下略 勝手にリンク禁止 勝手にフォロー禁止 勝手に「いいね!」禁止 はま○やという人が「こんにちわ、こんにちわ」(以下略 はせ○わようすけという人が「Facebookの壊し方」をノートに(以下略 ○ぬがわまさとという人がXSS(以下略 Facebookで動くボット登場 ボットと知らずに恋する人現る Facebook版ふぁぼったー登場 ダッシュボードに大量の「なるほど5時じゃねーか」 勝手に「いいね!」(以下略 FacebookをFBって略すな 認証APIの大胆な変更 サポートがユーザに「君らはクライアントの半分を殺した」と言われる

    Big Sky :: Facebookの今後を勝手に予測してみる。
    miya2000
    miya2000 2010/10/17
    『「君らはクライアントの半分を殺した」と言われる』www
  • Big Sky :: JScript.NETでスレッド

    JScript.NETMicrosoftが.NET Framework向けに拡張したJavasSriptで、Common Language Runtime(CLR)上で動作するJavaScript実装です。 CLR上ではC#、VB.NET等が動作しますが、JScript.NETは言語がJavaScriptという事もあって実はC#やVB.NET等と同等に使えない機能がいくらかあります。 JavaScriptは動的言語です。オブジェクトにプロパティを生やしてメソッドにしたり、prototypeを弄ったり、eval()で関数を生成したりも出来ます。つまりコンパイルするとは言えど、型が動的に変えられる言語です。 その為、.NET Frameworkの機能の一つであるDelegateが使えません。.NET FrameworkのThreadはDelegateという関数型拘束によりスレッドを安全に呼び

    Big Sky :: JScript.NETでスレッド
    miya2000
    miya2000 2010/07/14
    ちょwww
  • Big Sky :: JSONをvalidation出来る正規表現。

    追記 os0xさんにjson2.jsで使われている手法である事を教えてもらいました。 正しくはエスケープが必要。 以下フォーラムで議論されている内容から拝借 validating json unnecessarily is killing firefox - jQuery Forum // Try to use the native JSON parser first if (window.JSON && window.JSON.parse) { try { return window.JSON.parse( data ); } catch (err) { jQuery.error( "Invalid JSON: " + data ); } } else { if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-f

    Big Sky :: JSONをvalidation出来る正規表現。
    miya2000
    miya2000 2010/03/24
    もともと eval できない文字列はOKというスタンス。不正なスクリプト除け。
  • Big Sky :: Opera-10.50-6177でJavaScriptからコンテキストメニューが抑制出来る様になった!

    前回はあんましいい感じじゃ無かったが...ちょっと気になる事があって、もう一回試してみた。 Opera 10.5 pre-alpha for Labs We have just released Opera 10.5 pre-alpha for Labs. This pre-alpha is based on the Evenes branch and includes Windows, Mac, and UNIX builds (see below for download link). As you may know, we don’t typically open new versions to user-testing this early in the development cycle. However, we are really excited about what the

    Big Sky :: Opera-10.50-6177でJavaScriptからコンテキストメニューが抑制出来る様になった!
    miya2000
    miya2000 2010/01/22
    「Allow scripts to detect context menu events (opera:config#UserPrefs|Allowscripttoreceiverightclicks)」で出来なくできます。(デフォルト値が変わったんですね)
  • Big Sky :: テーブルにINSERTされたらGrowl

    なんとなくテーブルにデータがINSERTされたらGrowlされる...なんて仕組み作って見ようと思った。それだけ。 sqliteでextensionを作る。growlはWindowsのGNTPにも対応したmattn謹製gntp-sendを使う。 mattn's gntp-send at master - GitHub command line program that send to growl using GNTP protocol. http://github.com/mattn/gntp-send gntp-sendはコマンドラインプログラムだけど、外部からライブラリとしても使える様にしてあります。 #include <stdlib.h> #include <sqlite3ext.h> #include <growl.h> SQLITE_EXTENSION_INIT1 static 

    Big Sky :: テーブルにINSERTされたらGrowl
    miya2000
    miya2000 2010/01/14
    「XXXされたらGrowl」
  • Big Sky :: opera-10.50-6177.linux.i386

    期待出来そうだったので動かしてみた。 Opera 10.5 for Linux/FreeBSD、Gtk対応 | エンタープライズ | マイコミジャーナル Opera Softwareは2009年12月22日(ノルウェー時間)、新しいJavaScriptエンジンやレンダリングエンジン、ベクターグラフィックライブラリを搭載したOpera 10.5 pre-alphaを公開した。Betanewsの計測によればOpera 10.5 pre-alphaの速度はChromeを陵駕しており、アルファ版ながらも大幅な性能改善をアピールしている。 2009年12月22日に公開された段階ではWindows版とMac OS X版が公開されていた。2009年12月31日(ノルウェー時間)、Unix版も公開。FreeBSD/i386版、FreeBSD/amd64版、Linux/i368版、Linux/x86_64版

    Big Sky :: opera-10.50-6177.linux.i386
    miya2000
    miya2000 2010/01/06
    後でみる
  • Big Sky :: TatsumakiとDUI Streamを使って画像ストリーミングサーバ作ってみた。

    Tatsumakiって面白そうとは思ってたけど、触った事なかったので、勉強してみた。 なるほど面白そう。と思ったのとPSGIでも動かせるんだーと感動しました。今日は勉強がてら、以前紹介した事もあるDiggのDUI Streamと混ぜて遊んでみた。 Digg the Blog » Blog Archive » DUI.Stream and MXHR We call this technique MXHR (short for Multipart XMLHttpRequests), and we wrote an addition to our Digg User Interface library called DUI.Stream to implement it. Specifically, DUI.Stream opens and reads multipart HTTP respons

    Big Sky :: TatsumakiとDUI Streamを使って画像ストリーミングサーバ作ってみた。
  • Big Sky :: コマンドラインでC言語をワンライナー出来る「C」をWindowsにポーティングした。

    最近、kazuhoさんが作った「C」で遊んでいるのですが(いまごろかい!)、これWindowsでも使いたいなーなんて思ったのでポーティングしてみた。 C - a pseudo-interpreter of the C programming language PerlRuby では、ワンライナーで処理が書けて便利です。でも、なぜか C では書くことができません。仕事上の都合で、小さな処理を C 言語で書く必要があったので、ワンライナーも書くことのできる C 言語のインタプリタ(?)を作ってみました。 http://labs.cybozu.co.jp/blog/kazuho/archives/2006/01/large_c.php 目指せバイナリアン (C-0.06) C-0.06 をリリースします。 http://labs.cybozu.co.jp/blog/kazuho/archi

    Big Sky :: コマンドラインでC言語をワンライナー出来る「C」をWindowsにポーティングした。
    miya2000
    miya2000 2009/10/28
    「対象範囲せま!」
  • Big Sky :: バッチファイルで簡易Webサーバを起動する。

    ネタ的にはZIGOROuさんかhasegawaさんのネタっぽいが... @if(0)==(0) ECHO OFF CScript.exe //NoLogo //E:JScript "%~f0" %* GOTO :EOF @end function wsock_ConnectionRequest(reqId) { if (socket.State != 0/* closed */) socket.Close(); socket.Accept(reqId); } function wsock_DataArrival(bytesTotal) { var data = script.Run('GetData', socket, bytesTotal); socket.SendData([ "HTTP/1.1 200 OK", "Connection: closed", "Content-Type:

    Big Sky :: バッチファイルで簡易Webサーバを起動する。
    miya2000
    miya2000 2009/08/25
  • Big Sky :: NHKニュースプレーヤ書いた。

    最後までC言語で書き直そうかと迷いましたが、結局Perlのままになりました。 スクリーンショットは以下 しくみは、起動時にオートディスカバリでフィード一覧をコンボボックスに展開、コンボボックスが選ばれたらフィードを取得してエントリ一覧をリストに展開、リストがダブルクリックされたらHTMLスクレイピングしてGtk2::Ex::MPlayerEmbedで再生という単純なもの。プレーヤ部分のツールチップにニュース文が表示されます。 当は、fltk2でmplayer埋め込みプレーヤを2年ほど前に作ってあったのでそれを使っても良かったのですが、いかんせんfltkがマイナー過ぎるのでやめました。 mattn's nhk-news-pl at master - GitHub NHK News Movie Player http://github.com/mattn/nhk-news-pl/tree

    Big Sky :: NHKニュースプレーヤ書いた。
    miya2000
    miya2000 2009/07/06
    お好み焼きライセンス
  • Big Sky :: Google App Engine Oilが素晴らしい

    « 「XSLとjQuery/HTMLだけで作る、amazon最速検索」が動かなくなってたので直した | Main | Publish::MixiDiary書いた » まずは素晴らしい出だしだと思う。 google-app-engine-oil - Google Code Yet another web framework on Google App Engine. Google App Engine Oil (GAEO) is an open-source web framework running on Google App Engine. It enables the web development on App Engine quick and less configurations. http://code.google.com/p/google-app-engine-oil/ r

    Big Sky :: Google App Engine Oilが素晴らしい
  • Big Sky :: pythonでコンソールが扱えるライブラリConsoleを試してみた

    これだけメソッドがあれば大概の事は出来る。 The Console Module The Console module provides a simple console interface, which provides cursor-addressable text output, plus support for keyboard and mouse input. The Console module is currently only available for Windows 95, 98, NT, and 2000. It probably works under Windows XP, but it hasn’t been tested on that platform. 試しに作ってみた。以下ソース Oppai.py #!/usr/bin/python # -*- codi

    Big Sky :: pythonでコンソールが扱えるライブラリConsoleを試してみた
    miya2000
    miya2000 2008/06/11