Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

2016-09-01から1ヶ月間の記事一覧

UNIXプロセスを切る方法いくつか

UNIXプロセスを切る方法いくつか 実際のところ Bottleで動いているアプリを止めたいとき pkill $ pkill python kill -9とpidof $ kill -9 $(pidof python) ps、grep、awk $ kill $(ps -ax | grep python | awk '$4 != "grep" {print $1}') 参考もと kill a p…

【イベントレポ】センサエキスポジャパン2016

10月27日~29日に東京ビッグサイトで実施されたセンサエキスポジャパン2016に行ってきました。 食品系や土木系の技術展示も併催されており、今日は中日という事もあってか、客層が混沌としていたのが印象的でした。 実際のところ サーボの異音から交換…

cURLでincludeオプションをつけるとレスポンスヘッダを見ることができる

cURLでレスポンスヘッダを表示する場合、includeオプションを付けてやります。 実際のところ 前回の記事でJSONを吐き出すパートを作りました。 includeオプションをつけて表示すると、この通り $ curl --include http://localhost:8080/api/status HTTP/1.0 …

bottleでJSONを返す

python版sinatraな軽量WEBフレームワークbottle - Bye Bye Mooreの続き。bottleでJSONをゲットしたい場合……何も考えずに辞書型を放り込むと"Content-Type: application/json"で返してくれます。 実際のところ 文字と現在時刻を返したい場合、以下のようにし…

FlashAir内蔵Luaを使ってWEBブラウザからLEDをチカチカさせる

FlashAirにはLuaという軽量言語が内蔵されています。 RubyやPythonのような文字列、配列を軽く操作できる便利関数が揃っています。 それに加えて、極めて高速。 どれほどかと言えば、ゲームエンジンの開発初期段階でパラメータ調整なんかに使われる程。 フッ…

FlashAirの設定ツールを使う

FlashAirにはWIn/OS X用のGUI形式の設定ツールが用意されています。 直接設定ファイル書き換えもできるのですが、楽な方がいいですよね。 実際のところ 導入 下記サイトからツールをダウンロード。 私はMacBookProなので、OS X用のdmgです。 www.toshiba.co.…

pythonで使えるORMapper「peewee」

今回はpythonで使えるORMapperの「peewee」を試してみます。 実際のところ 今回は既存のDBを流用するパターン。 from peewee import * from playhouse.sqlite_ext import SqliteExtData db = SqliteExtDatabase('blogtest.sqlite') db.connect() で、このpee…

【ネタ】"echo f o{,,} b a r"ってやったら、どうなると思います?

$ echo f o{,,} b a r f o o o b a r中括弧の中身を数値に変えると $ echo f o{2} b a r f o{2} b a r 奇妙な事に、man echoしてもこの構文に関する話は一切でてきません。 参考もと ……なんかもうこれでいいような気がしてきた。 echo す も{,,,,,,,} の う …

【読書メモ】とろける鉄工所

とろける鉄工所 コミック 1-10巻セット (イブニングKC)作者: 野村宗弘出版社/メーカー: 講談社発売日: 2013/06/21メディア: コミックこの商品を含むブログを見るたまには漫画を。 「とろける鉄工所」は自身も鉄工所勤務をされていた野村宗弘先生による、緩め…

Rubyのクラスを作る際に可変長の変数をもたせたい場合

久々にRubyのお話です。 クラスを作る際に可変長の変数をもたせたい場合は、空Hashのデフォ値を持った引数を設定しておきます。 こうすれば、Hashを渡してあげれば内容を参照できますし、駄目な値なら弾く事ができます。 実際のところ デバッグ情報なんかを…

bottleとsqlite3を連携させて簡単なメモ表示ツール その4:フロントエンド・フレームワークを使う

前回はJadeを導入しました。今回はCSSやJS、画像やフォントがテンコ盛りのフロントエンド・フレームワークをbottleで使う方法を考えます。 実際のところ 導入 designmodo.github.io 上記サイトから、twitter-bootstrapの拡張版「Flat UI」を頂いてきます。 …

bottleとsqlite3を連携させて簡単なメモ表示ツール その3:テンプレートエンジンJadeを使う

bottleにはデフォでerbっぽいテンプレートエンジンが搭載されています。 ……とはいえ、今更タグ閉じなんてカッたるい事をやる気にもなりません。 ここは一つ先人の叡智をお借りして、jadeをbottleで使ってしまいましょう 実際のところ 導入 まずは導入。 jade…

bottleとsqlite3を連携させて簡単なメモ表示ツール その2:POSTする

前回の続きで、今回はPOST動作です。 実際のところ まず、子パッケージのpostとrequestを突っ込みます。 from bottle import get, post, request, run, template, static_file, error getの後にpostを追記。 @post('/blog') def postBlog(): body = request.…

bottleとsqlite3を連携させて簡単なメモ表示ツール その1:存在するデータの表示

bottleとsqlite3を連携させて簡単なメモ表示ツールをつくる方法です。 第一回目は存在するDBからデータの表示する方法です。 実際のところ あらかじめ、blogpost.sqliteというDBを作った上でtableも用意しておきます。 /blogにアクセスしたら、最新の記事 /b…

bottleのredirectとabort

処理エラーやURLミスなどのときに活用したい一連の処理。 最小構成のbottleはこういうモノも外付けパッケージです。 種類としては、特定のURLに飛ばすredirectと自動生成タイプのabortがあります。 実際のところ abort 特定のエラーコード付きでエラーページ…

SQLiteでFIRSTやLASTみたいな事を実現する

sql

SQLiteには、FIRSTやLASTに相当する構文はありません。 内部的に印加されるrowidというデータをソートして、LIMITで一個だけ採ってきます。 select rowid,body,date from blog order by rowid desc limit 1; /* 5|it is a fine today.|2016-09-15 */ 実際の…

SQLiteの時間型……はないが関数はある。

sql

SQLiteには、明確な時間型というのがありません。 かわりに、文字列やユリウス暦、UNIX時間を数値化できる各種関数をもってサポートしています。 SQLite does not have a storage class set aside for storing dates and/or times. Instead, the built-in Da…

SQLite3の全文検索機能"FTS"をつかってみる その5:一致箇所の強調

sql

SQLite FTSの不思議な機能の一つにThe Snippet Functionというのがあります。 一致した箇所を強調してくれる奴です。 実際のところ デフォではbタグで囲ってくれます。 HTMLやXMLなんかの時には便利? SELECT snippet(eb2) FROM eb2 WHERE body MATCH 'all';…

SQLite3の全文検索機能"FTS"をつかってみる その4:論理条件

sql

この手のもののご多分に漏れず、論理条件を突っ込むことが可能です。 実際のところ eb2に含まれているサンプルは前回の記事と同様 OR SELECT docid,body FROM eb2 WHERE body MATCH 'to OR have'; /* 1|All your base are belong to us. 36|The truck have s…

SQLite3の全文検索機能"FTS"をつかってみる その3:NEAR節

sql

SQLiteのFTSにおけるMATCHでは、NEARという構文があります。 コレを使うと、近くにこの言葉があるものだけマッチという、 実際のところ たとえば、eb2(内容はその1とほぼ同様)にある"to"を含んだ文章を探すのは以下の通り。 SELECT docid,body FROM eb2 W…

SQLite3の全文検索機能"FTS"をつかってみる その2:既存のテーブルとの連携

sql

FTS編その2、既存のテーブルをひも付けする方法です。 実際のところ 導入 まずは元になるtableを捏造。 CREATE TABLE t1(name, value); INSERT INTO t1 VALUES("samplename", 123); INSERT INTO t1 VALUES("shuzo", 456); INSERT INTO t1 VALUES("taro", 78…

SQLite3の全文検索機能"FTS"をつかってみる その1:導入

sql

SQLite3には全文検索用の機能FTS3*1があります。 今回は導入と簡単な使い方。 下準備 全文検索対応カラムを作成します。 フツーのtableではなく、virtual tableていうものを使います。 既存のDBをコレに変換する方法については調査中……。 CREATE VIRTUAL TAB…

pythonでsqlite3を扱う

sqliteはSQL使いたいけど、DB鯖立てるほどで無いようなケースで重宝するRDBMSです。 RasPiで動かすような軽々システムでは大変重宝します。 pythonにはデフォでsqlite3用のライブラリが入っています。 実際のところ 利用開始 import sqlite3 DBの作成/読み込…

bottleでダウンロードリンクをつくる

今回の記事はbottleでダウンロードさせる方法についてです。 ローカルで生成した結果を読み込ませたり、webページに載せるにはちょっと分量が多くなりすぎる内容を掲載できますね。 実際のところ imageディレクトリにgopherくんの画像"gopher.png"を用意して…

bottleで静的な404ページ

bottleで静的な404ページを出す方法です 実際のところ 404ページのポンチ絵 htmlファイルとかでもいいのですが……デザインセンスなど一ビットもないのでポンチ絵で。 これを、imageフォルダにつっこみます。 スクリプト 最小限だとこんな感じ。 from bottle i…

Bottleで静的ファイルを表示する

Bottleで静的ファイルを表示する方法です。 固定のpdfファイルや画像ファイルを表示させる時なんかに使います。 ローカルのImageMagicで生成したファイルをブラウザに渡すときにも重宝しそうですね。 実際のところ imageディレクトリからgopherくんの固定フ…

【イベントレポ】大ゴジラ特撮王国YOKOHAMAに行ってきました

大ゴジラ特撮王国YOKOHAMAに行って来ました。 大都会横浜、そのシンボルたるランドマークタワーでの開催です。 田舎者の僕にとっては移動だけでちょっとした旅行気分。 会場の様子 館内は一部小物以外は基本的に撮影OK。 AR体験があったりと体験型ブースもあ…

python版sinatraな軽量WEBフレームワークbottle

bottleはsinatraな軽量WEBフレームワークです。 getメソッドの取扱いレベルまで小分けされているので、限界域まで軽く作ることができます。 導入 例の如く、pipで。依存パッケージは無いように設計されているみたいです。 $ pip install bottle依存がなく、…

commonprefixは共通部分を引っ張りだす

標準ライブラリosにくっついてるcommonprefixはパスの共通部分を抽出してくれる関数です。 実際のところ import os os.path.commonprefix(["/home/shuzo_kino/python", "/home/shuzo_kino/Downloads"]) #>> '/home/shuzo_kino/' 本来的な要素では無いのでし…

pythonで現在のディレクトリを知る

使い捨て便利アプリを作ってるとき、問題になったりする現在地。 pythonの標準ライブラリosがその辺りをよろしくやる関数を提供してくれます。 実際のところ curdirは現在ディレクトリの相対パスを示す記号……"."を返すだけです。 import os os.path.curdir #…