サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
qiita.com/yuiseki
jsonschema をつかってpostされてきたjsonのバリデーションを行い、エラーのあるフィールドがあったら処理を中断してどこにエラーがあったのかをステータスコード400のjsonでレスポンスする from flask import Flask app = Flask(__name__) import json_schema import json schema = { "name": { "type": "string", "required": True }, "age": { "type": "number", "required": True "maximum": 120, "minimum": 0 } } @app.route("/") @json_schema.validate("POST", schema) def index(): if request.is_post
jade, sass/compass, coffeescript, bowerで静的Webサイトを作るGrunt.js秘伝のタレCoffeeScriptCompassbowergrunt.jsJade 最近のフロントエンド開発、静的サイト開発 HTMLを書くのにJadeを使いたい CSSを書くのにsass/compassを使いたい Javascriptを書くのにCoffeescriptを使いたい Javascriptのライブラリ管理にBowerを使いたい コンパイル処理の自動化などはGrunt.jsを使いたい sass/compassをつかうためにはrubyのcompass gemをインストールしないといけないのでnodeだけで完結できないのがネック。 とはいえ一番つかわれていそうなのがsassで、Stylusは日本語ドキュメントが少なかったり利用事例が少ないのでまだ早い感がある。 ディレ
情報が散乱していたので現状iBeaconを試すために必要となる条件をまとめてみた スマートフォンでBLEアプリが開発したい場合 iBeacon受信するアプリをスマホで動かすための環境はハードルが高いので自分が用意できるか要確認。 iOS開発環境(iOS Developer Program/年間$99 & 最新のOSX+XCode)、BLE対応のiPhone4S以降かつiOS7以降が必要 Android端末 Nexus7(2013)、Nexus4、Nexus5など。Android4.3以降が必要 手元にある端末でibeacon送受信テストしてみたい iOS端末 Apple iPhone4S以降 iOS7以降 https://itunes.apple.com/us/app/estimote-virtual-beacon/id686915066 このアプリで送受信できるのはiPhone同士または
UbuntuマシンでBluetooth4.0+LE(BLE), iBeaconが受信したい: Node.jsのBleaconライブラリを使うNode.jsUbuntubluetoothbleacon bleaconというライブラリをつかうと、Node.jsでBluetooth通信を送受信したりiBeaconで遊んだりできるらしい。 https://github.com/sandeepmistry/node-bleacon 用意する必要があるものと、Bluetoothの準備 root権限のあるUbuntuマシン。 マシン本体内蔵のBluetoothが古い場合、Bluetooth4.0+LEに対応し、かつLinuxに対応したドングルが必要。 適当なiBeacon端末、iPhone4S以降があればEstimoteアプリ入れてもいいし、MacBookでも可 本体に4.0以前の古いBluetooth
Node.jsで実践的なWebアプリ開発をやったメモ ライブラリのドキュメントとリポジトリ express : Node.jsのSinatra風Webアプリケーションフレームワーク 特筆すべきことはないシンプルなやつ http://expressjs.com/ http://expressjs.com/guide.html http://expressjs.com/api.html https://github.com/visionmedia/express passport : Expressのための認証フレームワーク よくある認証のパターンがStorategyとしてまとめられて提供されていて数行でログイン処理が書ける http://passportjs.org/ http://passportjs.org/guide/ https://github.com/jaredhanson/pa
先日つくったfluentdによる簡易ブックマーク結構使ってるんですが、今後細かい分析をしていきたいと考えた時、ドメイン別のブックマークの傾向とか見れるといいなと思いつきました。 {"tag":["tech","ruby"],"title":"hatena-bookmark | RubyGems.org | your community gem host","url":"https://rubygems.org/gems/hatena-bookmark"} {"tag":["tech","ruby"],"title":"hatena-bookmark | RubyGems.org | your community gem host","url":"https://rubygems.org/gems/hatena-bookmark", "domain":"rubygems.org"} というよ
fluentdにはHTTPサーバーを立ててHTTPクライアントからJSONを受け取って処理する機能がある。 ひょっとしてこれとブラウザのbookmarkletを組み合わせると便利なのでは? さらに前述したfluent-plugin-hatena-bookmark ( http://qiita.com/yuiseki/items/ff00b3db0a2c6121f1a3 ) も組み合わせれば、はてブにクロスポストすることもできるのでは? というわけでやってみた <source> type http port 8888 bind 0.0.0.0 body_size_limit 32m keepalive_timeout 3s </source> <match bkmk.kogaidan.**> type copy <store> type stdout </store> <store> typ
いちいちgemにしてリポジトリつくるほどでもない単純なものなのでコピペではっつけておきますが ↑このgemに依存しています。 class Fluent::HatenaBookmarkOutput < Fluent::Output Fluent::Plugin.register_output('hatena_bookmark', self) config_param :consumer_key, :string config_param :consumer_secret, :string config_param :request_token, :string config_param :request_secret, :string def initialize super require 'hatena-bookmark' end def configure(conf) super @h
y-ken さんが公開して下さっている fluent-plugin-twitter を使うと tweetstream gem を使って streaming api でツイートを受信して fluentd で扱うことができるようになる。 tagomoris さんが公開して下さっている fluent-plugin-datacounter を使うと指定した時間内に正規表現にマッチするログが何件あるかを数えてその結果を fluentd で扱うことができるようになる。 ツイート数をリアルタイムにカウントする 今回はこの二つを使って、あるアカウントのホームタイムラインのツイートをカウントして mongodb に保存してみたい。 ## fluentd conf # fluent-plugin-twitter の設定 <source> type twitter consumer_key *** consum
便利ページ 公式 MongoDB Javascript API Docs mondodbのjsの仕様がわかる Read — MongoDB Manual findの基本的な使い方の例 Operator Reference — MongoDB Manual findの範囲指定などのオペレーターの例 SQL to MongoDB Mapping Chart — MongoDB Manual SQLでの操作とmongodbでの操作の対応表 高度なクエリー - Docs-Japanese - 10gen Confluence 使えるオペレーター一覧、データ型一覧、より高度な使い方など日本語ドキュメント mongo/jstests at master · mongodb/mongo · GitHub jsで書かれたmongodbのテスト用スクリプトが大量にある 参考になったページ コンソール画面での
node.jsの削除と再インストール Ubuntuのapt経由で入れていたnode.jsが古くなっていたので sudo aptitude purge nodejs nodejs-dev npm で消して http://nodejs.org/ で最新版を確認 nave経由でインストールする cd repos git clone https://github.com/isaacs/nave.git cd nave ./nave.sh install 0.8.22 ./nave.sh use 0.8.22 node -v 開発支援系パッケージのインストール ついでにyeoman, grunt.js, bowerなどの開発支援系パッケージも入れてみる npm install -g yo grunt-cli bower http://yeoman.io/ http://gruntjs.com/ ht
電車がちゃんと動いてるかをコードでチェックしたい時用 Google検索で「路線名 運行情報」と検索したときの結果をスクレイピングするテスト # -*- encoding: UTF-8 -*- require 'cgi' require 'open-uri' require 'nokogiri' require 'date' require 'json' def get(word) base = "http://www.google.co.jp/search?num=1&lr=lang_ja&oe=utf-8&q=" url = "#{base}#{CGI.escape(word+" 運行情報")}" html = open(url, 'User-Agent' => 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like
sample code of posting (uploading) text and image to Evernote from ios app Evernoteに認証してテキストと画像をアップロードするのに必要な処理。 まだ認証してなかったらモーダルなWebViewの認証画面を呼び出して認証成功後に再試行する。 ここまでを書き下したサンプルコードがなかったので書いてみた。 EvernoteSDKは一応これをコピペするだけでひと通りちゃんと認証して投稿もできる。 別途設定画面を追加したりデリゲートがいくつも必要だったりはしないので、アプリに組み込むのはFacebookSDKよりも楽かもしれない。 でもノートオブジェクトや画像リソースを作ったりなど、データの構築処理するのが面倒すぎるのが残念。。 追記:md5ハッシュ計算するためにはSecurity.frameworkを追加する必要がある
Storyboard上でUIPageControlとUIScrollViewを配置してIBOutletとしてPageViewControl.hファイルに接続しておく また、UIScrollViewのdelegateを配置したUIViewControlに向けておく // ページ数は最大で11までらしい #define kNumberOfPages 11 // pageControlの左右がタップされたときに呼ばれる // scrollViewのスクロール位置をズラして表示を変える - (void)pageControlDidChange:(UIPageControl *)sender { CGRect frame = scrollView.frame; frame.origin.x = frame.size.width * sender.currentPage; frame.origin.y
■Linuxにおけるシリアルポートのトラブルシューティング マニュアルやチュートリアル通りにすんなりいけば問題ないが、ソフトウェアでハードウェアに繋がっているシリアルポートを触っていると、 ちょっとおかしな挙動をしているっぽいなという時などにソフトウェア側とハードウェア側と環境設定のどこで問題が生じているのかわかりにくくなる。 いろいろ試行錯誤した中でこれだけ押さえておけばトラブル時になんとかなるという要点をまとめたので公開しておく。 ■シリアルポートの初期設定 デバイスとして認識されているか確認 ここに出てこない場合もある。。
最初つまづいたのでメモって公開しておく .xcdatamodeldファイルを編集する Add Entityで親になるモデルと子になるモデルをつくる Relationshipsの部分で+ボタンを押して、それぞれのモデルでお互いへの関連をつくる。親から子への関連は複数形にしておくとわかりやすい Inverse(逆関連)にも、お互いを指定しておく インスペクタを開き、親モデルのRelationshipsの行を選択した状態でTo-Many Relationshipにチェックをつける インスペクタを開き、子モデルのRelationshipsの行を選択した状態でCount Minimum, Maximumを両方1にする TODO: Delete Ruleについても書く モデルのクラスを定義する NewFileから、左側の一覧でCoreDataを選び、NSManagedObject subclassを選
rmagick gemをインストールする際、Magick-configがないとかMagicWand.hがないとかで怒られることが多い Can't install RMagick 2.13.1. Can't find Magick-config Can't install RMagick 2.13.1. Can't find MagickWand.h
require 'open-uri' require 'RMagick' include Magick # 現在アクセス可能な雨量画像のファイル名一覧を含むjsを取得 現在時刻から計算することも可能っぽい times_url = "http://tokyo-ame.jwa.or.jp/scripts/mesh_index.js" times_js = open(times_url).read() times = times_js.sub("Amesh.setIndexList([", "").sub(");", "").chomp!.chomp!.split(",").map!{|t| t[1..-2].to_i} # でかいほうのgif画像最新一件を取得 /100/じゃなくて/000/にすると小さくなる gif_url = "http://tokyo-ame.jwa.or.jp/mesh
api.ustream.tvからjsonをwgetしてgrepでchannelIDを入手し cdngw.ustream.tvからamfをwgetしてgrepでrtmpエンドポイントURLを入手し rtmpdumpコマンドを実行する 保存先は、channenName-unixtime.flvになる チャンネル名は日本語でもOK cronなどと組み合わせると定点カメラの映像を定期的に収集するといった事にも使える wget, rtmpdump, ffmpegが無いと動かないです update: 引数の数ふやした rtmpdumpがタイミング次第で壊れたflvを出力してしまうようなので、ffplayで再生に成功するまで再試行するようにしてみた h264配信をrtmpdumpするとどうしてもffplayで再生できないflvになってしまうため何回やっても失敗する。いまのところ対応できていない if [
100KB以下のちいさい画像ならCoreDataのモデルにいきなり入れちゃってもOK UIImageをいい感じに四角く切り取って縮小するメソッドをつくる - (UIImage *)cropImageView:(UIImage *)image { // 切り取る float origin_width = image.size.width; float origin_heigt = image.size.width; CGRect cropRect; if (origin_heigt <= origin_width) { float x = origin_width / 2 - origin_heigt / 2; float y = 0; cropRect = CGRectMake(x, y, origin_heigt, origin_heigt); } else { float x = 0;
このページを最初にブックマークしてみませんか?
『@yuisekiのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く