タグ

ブックマーク / shokai.org (26)

  • 橋本商会 » Node.jsでYahooから天気予報とリアルタイム降雨データを取得する

    Node.jsでYahooから天気を取得するnpmを作った。 https://www.npmjs.com/package/weather-yahoo-jp YOLP(Yahoo Open Local Platform)のリアルタイム降雨情報のAPIと、Yahoo天気の予報の取得ができる。 Nodeに日の天気関係のnpmが無かったのと、今まで使っていたRubyのお天気系Rubygemが全て動かなくなっていたので自作した。 天気をスクレイピングして取ってくる部分がHTMLの変更により動かなくなってしまう事が多いみたいなので、CircleCIで毎日テストを走らせる事により異常にすぐ気づけるようにしてある。 現時点でv0.2.0 forecastの方はまだ多少項目追加する予定なので(気温の前日との差や降水確率など)最新情報はREADMEを見ると良い エラーや要望はissueかtwitterにどう

    橋本商会 » Node.jsでYahooから天気予報とリアルタイム降雨データを取得する
    ishiduca
    ishiduca 2016/01/21
  • 橋本商会 » 新横浜Twitter botをAWS Lambdaとcoで作った

    横浜は新幹線が止まるしイベント施設が複数あるので、土日はなんらかの目的をもって訪れる人が多いみたいでニコニコ笑顔の人が多くて良い。そのかわりイベントの入場前・退場後の時間帯は強烈に混雑して駅に入れなくなる事がまれによくある。 そこでtwitter botにイベント情報を喋らせることにした。毎朝ツイートするので危険を察知できる。 そのうち混雑度を算出する機能も追加したい。あと開場時間も。 新横浜 12月23日のイベントは 横浜アリーナ : 平井 堅 日産スタジアム : 日産スタジアム歳時記イベント 「もちつき&しめ縄飾りづくり」 — neoyokohama (@neoyokohama) December 22, 2015 ソースコード https://github.com/shokai/neoyokohama-bot coを使うと、非同期処理を同期的に書いて順番に実行したり、あるいはasy

    橋本商会 » 新横浜Twitter botをAWS Lambdaとcoで作った
    ishiduca
    ishiduca 2016/01/04
  • 橋本商会 » Node.jsのfeedparserにドイツ語等を読ませる

    ドイツ語などのヨーロッパの言語ではたまにåとかöみたいな文字が使われていて、UTF-8とかじゃなくISO-8859-1などの文字コードが使われている事があるらしい。 ドイツのspiegelという雑誌のRSSがちょうどISO-8859-1で、hubot-rss-readerで読むとところどころ文字化けするようになっていた。 こんな感じ Node.jsでfeedを読む feedの取得にはrequest、parseにfeedparserを使うのが多分普通なのだが、この2つはpipeでつないで使うようになっている。 で、最初は Node.jsで文字コードの自動判別と自動変換 – Qiita のようにjschardetで文字コードを判別して、iconvで変換してみた。でもrequest→feedparserがstreamなので少しずつchunkで送られてきて、日語のマルチバイト文字の途中で区切りが

    橋本商会 » Node.jsのfeedparserにドイツ語等を読ませる
    ishiduca
    ishiduca 2015/11/20
  • 橋本商会 » JavaScript情報の収集

    LDRでazuさんのはてブを見たりもしているんだけど、自分JavaScriptガチ勢ではないのと流れが速いのとで追い切れなかったりする。 最近はお風呂で湯船につかっている時にタブレットでmenthasを見てる。 http://menthas.com/javascript どういうアルゴリズムなのか詳細はよくわからないけど、わりと面白い記事が流れてきてしかもノイズが少ない。内容面白いのに3,4人しかbookmarkしてない記事も流れてきて掘り出し物感もある。 LDRをタブレットで快適に見る方法があればまた違う気もするけど、良い方法が無い あとmenthasにはRSSもあるのでそっちもLDRに登録して見てる http://menthas.com/javascript/rss

    ishiduca
    ishiduca 2015/07/10
  • 橋本商会 » chokidar-cliのファイル更新監視が速い

    1年ぐらいgulpを使おうとがんばったけど理解できなかったので、先月からこちらを参考にpackage.jsonのnpm run scriptにshell script書いてタスク実行する方式をやっている 参考:Grunt/Gulpで憔悴したおっさんの話 – MOL あらためて最近使ってるコマンドの周辺ツールを調べると、ファイル更新検知して差分だけタスク実行してくれる機能があるのが多い。 babel → –watchオプションが最初から付いてる ESLint → eslint-watchで入るeswコマンド browserify → watchifyコマンドにbrowserifyのオプションそのまま渡すだけでok あとは上の記事にも書いてあるんだけどparallelshellで複数のwatchしてくれる系コマンドを同時に実行できるので 例えばこんな感じでpackage.jsonのscript

    ishiduca
    ishiduca 2015/07/03
  • 橋本商会 » MacをYosemiteにアップデートした

    ようやくYosemiteにアップデートした。 homebrewをよけておく /usr/local があるとアップデートに6時間ぐらいかかるらしいので、どこか別の場所によけておいてOSアップデートが終わったら元に戻す % mv /usr/local ~/usr_local そのまま戻して、今のところコンパイルしなおしたりしないでも動いてる。 Yosemiteインストール App Store.appからアップデートした。 ダウンロード終わってからはわりとすぐだったと思う。 ファンが爆音で回り続け、SSD容量がファイル消しても消しても減り続ける アップデート後、起動した瞬間からファンが回りまくって凄く重い。SSDの容量も10GB空いてたのにいきなり「残り1GBです」という警告がでておどろく。ファイル削除してもまたみるみる減って1GBになる。 Yosemiteにアップデートしなきゃよかったと思った

    ishiduca
    ishiduca 2015/06/29
  • 橋本商会 » flux.DispatcherのwaitForの実装

    Promiseもコールバックも使ってないのにDispatcherのwaitForで順番の制御ができる。どういう事なのか気になったので調べた。 Reactはなんとなく使えるようになった気がしたので、fluxでやろう、StoreとかActionとかどう書くんだと調べてて、とりあえずflux npmというFacebookの中の人によるfluxアーキテクチャの説明とDispatcherが一つだけ入っているnpmを見ていた。 Dispatcherは使ってみた感じ、イベント名が無いEventEmitterみたいな感じで、登録順に実行される。 flux = require 'flux' Dispatcher = new flux.Dispatcher Dispatcher.register (action) -> console.log "1 - #{JSON.stringify action}" Di

  • 橋本商会 » Web+DB Press vol.85でRICOH THETAについて書いた

    菅原 元気 磯辺 和彦 山口 与力 澤登 亨彦 濱田 章吾 宮田 淳平 松 亮介 海野 弘成 佐藤 歩 泉水 翔吾 佐藤 太一 hide_o_55 青木 良樹 武 将英 道井 俊介 伊藤 直也 橋 翔 渡邊 恵太 舘野 祐一 中島 聡 はまちや2 竹原 牧 大輔 工藤 春奈 技術評論社 売り上げランキング: 806 1週間前に発売のWeb+DB Press 85号で全天球カメラ RICOH THETAのAPIについて書きました。 THETAのAPIをNode.jsのricoh-theta npmから使う 全天球画像をブラウザで見れるビューアをWebGL(Three.js)で作った 応用例:全天球Webカメラを作る という話を書いた。 全天球Webカメラ リモートから1分毎に撮影してその画像をPCに取り込み、Socket.IOでクライアント(webブラウザ)に配信して表示させるというも

    橋本商会 » Web+DB Press vol.85でRICOH THETAについて書いた
    ishiduca
    ishiduca 2015/03/07
  • 橋本商会 » テストがあるとプルリクしやすい

    印象としてそんな感じがする。 だいたいプルリクする時って、バグを見つけて直すのはすぐできるんだけど、自分の修正が何か別のところで副作用を起こしているかもしれない、という不安があってグダグダ色々検証したり他の部分のコードも一応読んだりする時間の方が長いと思う。 そういう時にとりあえずテスト通っていれば、テスト書いたリポジトリ主がokしているような気になってくるから、すぐプルリク出せる。 なるべくrake testとかnpm testとかコマンド一発実行すればテストが走るようにしておいてくれるとプルリクしやすくてうれしい。 プルリク受け入れる側も、Travis CIとかでプルリク自体にテスト通過しましたバッジがついていると安心感がある。 テストの書き方色々ある 去年からnode.js使い始めて、色々作ってるんだけどテストの書き方色々ある気がするのでメモしておく。 具体的な書き方は各リポジトリの

    ishiduca
    ishiduca 2015/02/06
  • 橋本商会 » debug npmが有効じゃない時、他のロガーに切り替える

    debug npm とは debug npmはexpressやsocket.ioにも使われているログ出力用のライブラリで、ログがカラフルに表示できるし環境変数DEBUGによって出力をフィルタできる。 debug = require('debug')('myapp:main') debug 'hello' debug2 = require('debug')('hoge') debug2 'hi' % DEBUG=myapp* node app.js ワイルドカードでも指定できる。この例だとmyapp:mainは表示されるけどhogeは表示されない。 ライブラリの中の細かいログを種類分けれるので便利。 debug使えなかったらconsole.logする 基的にdebugのカラフルな表示で全部出力したいんだけど、どうしても見てほしい情報とかはdebug有効じゃなくても出力したい。 (if de

  • 橋本商会 » Node.jsで実世界UI

    先週のReal.UIで発表してきたスライドです。ハードウェアとかNode.jsでやったほうが安定するしいいよという話をした。 会場のスマートニュース社は勉強会とかできる場所とオフィスとその真ん中にビールとか置いてあるカウンターがあってフロアがスコーンと抜けるように全部見えてて広々していた。ビール何種類もあってよかった。おいしかったです。

    ishiduca
    ishiduca 2014/07/01
  • 橋本商会 » express+socket.io+mongooseのテンプレ作った

    作った https://github.com/shokai/express-template 簡単なチャット。チャットログはMongoDBに保存する。 https://express-chat-template.herokuapp.com/ ガチwebサービスではなくゆるふわプロトタイピング用のテンプレになっている。expressあんまりよくわかってないから変な所あったらissueとか建てて盛大にdisって欲しい。 基的にgeta6/coahを参考にしてるんだけど、ブラウザの為にcoffeeをコンパイルしてjsにするとか諸々の強烈なasset pipelineを取り外した。 構成はこんな感じ express 4.4 socket.io 1.0 mongoose 3.8 coffee-script ブラウザもcoffee-script.js herokuにデプロイ mocha + supe

    橋本商会 » express+socket.io+mongooseのテンプレ作った
    ishiduca
    ishiduca 2014/07/01
  • 橋本商会 » Perl環境とApp::mookviewインストールした

    App::mookviewが原稿書くのに便利そうだったのでインストールしてみた。 markdownで書いた文章を2段組のムックみたいにしてくれる。 ブラウザで見れる。ブラウザリロードすると最新の内容になるので、文章書いている間はずっと起動しておくといいと思う。 perlがよくわからないんだけど、Macperl環境にcpanmとcarton入れればとりあえずアプリを動かすぐらいなら問題なさそうだったのでセットアップした。 最近はcpanじゃなくcpanmを使うらしいので、cpanでcpanmを入れた。 % sudo cpan App::cpanminus % sudo cpanm Carton % sudo cpanm App::mookview /usr/local/bin/mookview が使えるようになった。 cartonはrubybundlerみたいな、プロジェクト毎に依存ラ

    橋本商会 » Perl環境とApp::mookviewインストールした
    ishiduca
    ishiduca 2014/02/25
  • 橋本商会 » Node用rocketio-clientを作ったのと、npmの作り方

    Sinatra::RocketIOのNode.js用クライアントを作った、という事を書くのを忘れていた。 自作Nodeモジュールをnpmjs.orgへ登録する方法もまとめる。 https://github.com/shokai/node-rocketio-client https://npmjs.org/package/rocketio-client 感想 npmに初めて登録したけど、rubygems.orgの良い所はそのままにより洗練されてる感じがした。 あとcoffee-script、昔触った時は何これすっげえキモイと思って無理だったんだけど、その頃よりも構文が充実してたし、 Scalaを少し勉強したお陰で目が慣れてて普通に書けるようになってた。 Rubyscala書ける人はcoffee-scriptすんなり入れると思う。 インストール npm install rocketio-cl

    ishiduca
    ishiduca 2013/12/05
  • 橋本商会 » Lindaによるブラウザ上での分散処理の例

    いわゆる分散処理の例を作ってあってsinatra-rocketio-lindaのsampleの中に入れてあったんだけど、blogに書くのを忘れていたので書きます。 センサーのデータを流して受け取る、いわゆる「pub-sub」的な使い方の他にも、Hadoopがやっているようなタスク分散が簡単に書けるよという例です。 実行環境 http://hello-linda.shokai.org ソースコード https://github.com/shokai/linda-hello-world というのも昨日wise9さんに取り上げていただいて、そういえば全然サンプルコードとか整備・整理してない事を思い出したので書こうと思った。 wise9 › 30分で試せる分散並列プログラミング Linda (起動編) wise9 › 30分で試せる分散並列プログラミング Linda (PC遠隔操作編) PC遠隔操

    橋本商会 » Lindaによるブラウザ上での分散処理の例
    ishiduca
    ishiduca 2013/11/27
  • 橋本商会 » 大人のYAPCでスクリプト言語の勉強方法についてLTした

    大人のYAPC – YAPC for Grown-ups | PeaTiX 大人のYAPC、参加募集はじめます – ゆーすけべー日記 公序良俗に反する話が求められていたんだけど、ビビってあまり激しい話しなかった。でもおかげでスライドそのまま公開できる。 朝にスライド作って、LTするまですごい自信なかったから1日中ビール飲みまくってたんだけど、ウケてたからよかった。 内容は、俺がよく言ってる「ぶっこ抜き系ツールの自作はモチベーション保ちやすいし技術的にも色々な要素あるから新しい言語の勉強にいいよ」という話。

    ishiduca
    ishiduca 2013/09/21
  • 橋本商会 » 艦これをフルスクリーンでやる

    ブックマークレット。safariとchromeで動作確認。 解像度の高い画面しか持ってないので、画面が小さくてつらかったから作った。 (ノウハウは艦これ専用ブラウザー Teitoku.app引き継がれた) ゲーム画面でこれをブラウザのURL欄に貼り付けて実行 (chromeは貼り付けるとjavascript:が消えるので注意) javascript:(function(){location.href=$("iframe").attr("src")})(); するとページ移動するので、さらにこれを実行 javascript:(function(){location.href=$("embed").attr("src")})(); ブラウザのウィンドウいっぱいで表示できる swfにURL引数でセッションIDなど全部渡しているから可能 最後に開いたページのURLは誰にも見せてはならない。api_

    橋本商会 » 艦これをフルスクリーンでやる
    ishiduca
    ishiduca 2013/08/21
  • 橋本商会 » Macにnginx入れてwebsocket proxyした

    これが参考になった nginxを1.3.14にしたらWebSocketがProxyできた config-com.favorymous.www.conf おかげで家のMacでRocketIOのcomet/websocketチャットが動いた http://chat.shookai.org/ サブドメインで判別してアプリにproxyしている。 経緯 ほぼ同時に研究室のサーバーが壊れたり、家のファイルサーバーが壊れたりしたのでMacとか色々環境を再構築することになった。 昔研究室のマシンをセットアップした時はみんなRubyしか使ってなかったので、Apache+Passengerにしておいたけど 最近はNodeとかWebSocketとかアプリプロセス内に小さなworker持ったりとかするようになって、Apache+Passengerでは無理になったので nginxを前に置いて、後ろのアプリ(たくさん

    ishiduca
    ishiduca 2013/04/15
  • 橋本商会 » Rubyのワンライナーでプレゼンタイマー(2)

    エスケープシーケンスを使った ruby -e 'max=60; max.downto(0) do |i| puts "#{i} "+"|"*i+" "*(max-i); sleep 1; print "\x1b[1A" end; `say 終了`'

    ishiduca
    ishiduca 2013/04/11
    $ with-sound perl -e '$| = 1;$b = $c = shift || 10; printf "%3d: %s\r", $c, "|" x $c . " " x ($b - $c) and sleep 1 while(--$c); print "終了\n"' 60
  • 橋本商会 » websocket-client-simple 作った

    eventmachineに依存していないruby用websocketクライアントでまともなのが無いので作った。 shokai/websocket-client-simple · GitHub 既にwebsocket-clientというgemがあるけど、ドラフト0しか実装されていないしpull requestできるリポジトリが無かったので作った。 名前はwebsocket-client2というnode臭がするのと後ろにliteとかsimpleとか付けるperl臭がするのと、わけわからない名前付けるruby臭で迷った。 インストール gem install websocket-client-simple 使い方 JavaScriptのWebSocketと同じように使える require 'rubygems' require 'websocket-client-simple' ws = WebS

    橋本商会 » websocket-client-simple 作った
    ishiduca
    ishiduca 2013/03/24