LuaをGo言語のみで実装した GopherLua を公開しました。 詳しくはGithubのREADMEを見ていただくとして、特徴としては以下になります。 Lua5.1ベース 5.1の機能はほぼ実装済み Compiler, VMともに完全にGo言語のみで実装 引数の受け渡し以外でのスタック操作が不要で使いやすいAPI なぜ作ろうと思ったか もともとC言語でものを作るときにはLuaを設定ファイルの代わりとして取り入れていました。Goではあまり拡張言語実装がないので、jsonだったりiniだったりを設定ファイルとして使っていましたが、やっぱり微妙にめんどくさい。変数くらい欲しいなあ・・・とか。 結局、固い言語だけでモノを作るのは難しく、やわらかさが必要になるポイントがあります。そういうところはまず、「設定ファイル」として外だしされます。そしてその設定ファイルがどんどん肥大化したり複雑化したりし
大平です。今回はさだまさしネタは特に無しです。 先日、サービスのクローラーで使用しているID生成器について置き換えを行いました。非常に地味な話になりますが、本記事ではその辺の内幕の話をしたいと思います。 ID生成にまつわる苦悩 弊社ゴクロの提供しているSmartNewsは表向きはニュースアプリですが、裏側の仕組みは検索エンジンに近似しています。ユーザーの方々の興味関心や、アクセス傾向をクエリーとし、その内容に応じた話題のニュースを検索結果として返却する、という風に捉えていただくと、なんとなく私が言わんとしている事を想像していただけるかと思います。 SmartNewsはTwitterのつぶやき情報を用いたトレンド分析をベースとしており、話題になっているニュースを選定するためには、大量のTwitter上のtweet、ならびにその中に含まれているURLに対してクロールを行う必要があります。日々
Familiar API Luvit implements the same APIs as Node.js, but in Lua! This helps teams migrate without having to learn a new way of programming. Async Choice Choose your async model; we don’t mind; we encourage experimentation. If you don’t like callbacks and event emitters, use coroutines and write blocking style code without actually blocking your event loop! Modular Core The various projects in t
ピコピココード g=ppgraph B=ppscreen:size() Bw=B.width Bh=B.height tex=pptex:load("main.png") function set(p,d) local r r=ppsprite.new(tex) r:pos(p) r.d=d r.t=100 r:tile(2) r.idle=function(s) s:loopAnime(0.1,{2,3,4}) s:move(s.d) if not s.tane then s.d=s.d*0.98 end s.t=s.t-1 if s.t<0 then if s.tane then for j=1,5 do for i=1,360,15 do local x,y x=math.sin(i/180*math.pi) y=math.cos(i/180*math.pi) set(s,pppoi
それRedisでできるよ、期でしょうか。 最近Redisでレコメンド機能をつくってみたのでご紹介です。 ここで”レコメンド機能”というのは、 Amazonでいう”この商品を見たお客様はこれも見ています”や、ブログの関連記事を出す機能のこと。 user:1がproduct:Aをみたときに、product:Aに似ているproduct:Bをレコメンドしたい。 product:Aとproduct:Bがどれくらい似ているか:類似度 を算出した後は、 Redis得意のSorted Setを使って類似度のランキングをつくれば 似ているproductを出すことができます。 類似度の算出にはいろいろ方法があるようですが、 Redisのデータ構造と相性のよい Jaccard [wikipedia]という方法を使いました。 この例に適用すれば、 product:Aを見たユーザー群(RedisのSet)と、pro
人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 といいつつも、そこまで大したことはしていない。 luaという高速に動作する組み込み系のスクリプト言語で遊んでみたかったのと、それだったmod_luaで遊んでみればいいなと思っただけである。で、実際にmod_luaをコンパイルして遊んでみた。コンパイルオプションは以下。 ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --enable-modules=all --enable-mods-shared=all --enable-mpms-shared='prefork worker event' -
さきほどTwitterで流れてきたのでたまたま見つけたのですが、LuadnsというDNSホスティングサービスがかなり凄いです。Luaスクリプトでゾーン設定を書いてGitHubにpushするだけで即座にDNS設定ができてしまいます。 DNSホスティングサービスというと、多くの場合ブラウザを開いてログインしてコントロールパネルからポチポチと入力して送信して、、、という手順を踏まないと設定が更新できないわけですが、Luadnsは違います。example.com.lua ファイルをEmacsやVim(やその他エディタ)で開いてLuaスクリプトを書き、git commit & git push で設定が完了してしまいます。push にフックして Luadns の設定が自動的に更新されます。 マウスまで手を動かすのが無限に遠く感じられるプログラマにとっては、これほど素早く簡単にDNSが設定できるのはか
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く