Just another Ruby porter,

〜2015年6月中旬〜


<Older(,) | Newer(.)> | Recent(/)>> | RDF

2015-06-11 (Thu)

awscliがdata must be a byte stringと吐いて終了する

Debian baseのSolydXでLambdaをawscliから起動すると、
なぜかdata must be a byte stringと言われて起動しない。
ぐぐってみたらどうも pyopensslのせいらしい。というわけでawscliが抱えているpyopensslの名前を変えてみた。

% aws lambda invoke --function-name foo --payload file://event.json out.json

data must be a byte string
% locate pyopenssl
/usr/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.py
/usr/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.pyc
/usr/local/lib/python2.7/dist-packages/botocore/vendored/requests/packages/urllib3/contrib/pyopenssl.py
/usr/local/lib/python2.7/dist-packages/botocore/vendored/requests/packages/urllib3/contrib/pyopenssl.pyc
% cd /usr/local/lib/python2.7/dist-packages/botocore/vendored/requests/packages/urllib3/contrib/            
% sudo mv pyopenssl.py{,.orig}
% sudo mv pyopenssl.pyc{,.orig}
% cd ~/git/cit_avail_measure/foo
% aws lambda invoke --function-name foo --payload file://event.json out.json
{
    "StatusCode": 200
}

よさげだ。


2015-06-12 (Fri)

nasneの調子がまた悪い

デジタルノイズが乗ってる感じ。アンテナレベルを調べてみるとやはりかなり低い。
またMXだな。周波数が低いところがだめっぽい。
そういえばブースターの調整してなかったんでいじったらまだ上げられた。
しかしレベル低すぎるな。


2015-06-13 (Sat)

awscliでLambda functionをアップロードする

helpを見るとbase64でencodeしろと出てくるが嘘。

% aws lambda update-function-code help | col -b | grep -A1 -e '--zip-file (' --zip-file (blob) Based64-encoded .zip file containing your packaged source code. % base64 upload.zip > upload.zip.b64 % aws lambda update-function-code --function-name test --zip-file fileb://upload.zip.b64 --zip-file must be a file with the fileb:// prefix. Example usage: --zip-file fileb://path/to/file.zip

このエラーメッセージが正しくて、zipファイルをそのまま指定すればok。


2015-06-14 (Sun)

Open Graph Protocolに対応しようとして

SlackにURL貼るとぴろっと出てくる仕組みを調べてたら、
そんなprotocolがあると知った。
1記事1ページなら静的HTMLも再生成すればいけるが、
複数の記事があると全然だめだと気づいた。
JavaScriptでやったとしても、普通は単にGETしてるだけなので意味がない。
静的HTMLじゃ無理があるか。というか分割すればいいんだよな。


2015-06-15 (Mon)

この日記

日記といいつつ後から書くことが多い。
なら日付とっぱらってblog形式にすればいい気もするが、
15年も続けてるとそれもなんだしな。

それはそれとして、日記という形態を取っているので書くときは日付を指定することになる。
日曜まで書いたから月曜分を指定したいときは、日付じゃなくて'last mon'と書ける。
昨日ならyesterdayだ。
このあたりはdate -dでparseしてるだけなんだけど意外に柔軟で結構気に入っている。
去年の日記だったら'last year'で見れるし。


2015-06-16 (Tue)

VimでCoffeeScript

月曜から急にCoffeeScriptを使い始めているが、
やはりインデントでブロックというのは慣れない。
vim-coffee-scriptを入れて=で整形しても全然変化がないことが多くて戸惑う。
地味に困るのは%押しても対応するものがないので飛べないことだ。
というわけでvim-indent-guidesが必須とも言える。
これがないとreturnをどこに置いていいやら狙いが定まらない。


2015-06-17 (Wed)

CoffeeScriptでFizzBuzz

お約束なのでとりあえずやっとく。

% coffee -e 'console.log [["Fizz"][i%3]]+[["Buzz"][i%5]]||i for i in [1..15]' 
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

なんかいろいろやってるうちに見つけたんだけど、[undefined]+""は""になる。

% coffee -e 'console.log undefined' 
undefined
% coffee -e 'console.log [undefined]'
[ undefined ]
% coffee -e 'console.log undefined+""'
undefined
% coffee -e 'console.log [undefined]+""'

これはCoffeeScriptというよりJavaScriptの仕様なのかも。


2015-06-18 (Thu)

「【問題のみ】第17回ジュンク堂はシェル芸が乗っ取った勉強会」を解いてみた

Q1のjson形式にするほうをjqで。twitterに上げたやつはtonumberを忘れてた。

% jq -csrR './"\n"|map(./" ")|group_by(.[0])|map({"key":.[0][0],"value":map(.[1]|tonumber)})|from_entries' Q1.txt 
{"a":[1,2,3],"b":[4,5]}

group_byが肝。

% jq -srR './"\n"|map(./" ")|group_by(.[0])' Q1.txt                                                
[
  [
    [
      "a",
      "1"
    ],
    [
      "a",
      "2"
    ],
    [
      "a",
      "3"
    ]
  ],
  [
    [
      "b",
      "4"
    ],
    [
      "b",
      "5"
    ]
  ]
]

あとはfrom_entriesが食える形式に合わせるだけ。

% jq -srR './"\n"|map(./" ")|group_by(.[0])|map({"key":.[0][0],"value":map(.[1]|tonumber)})' Q1.txt
[
  {
    "key": "a",
    "value": [
      1,
      2,
      3
    ]
  },
  {
    "key": "b",
    "value": [
      4,
      5
    ]
  }
]

2015-06-19 (Fri)

CoffeeScript 小ネタ

調べればどこかに書いてあるかと思うけど、お手軽に試せるので確認してみた。

% coffee -pe '[1..21]'
(function() {
  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21];

}).call(this);
% coffee -pe '[1..22]'
(function() {
  var i, results;

  (function() {
    results = [];
    for (i = 1; i <= 22; i++){ results.push(i); }
    return results;
  }).apply(this);

}).call(this);

なぜ21なのか。


2015-06-20 (Sat)

Smart J:COM Boxのディスプレイ

Pioneerのセットトップボックスのチャンネル表示が、
再生中は再生時間を意味するとこに初めて気づいた。
なんか変化はしていたが、チャンネルのスキャンでもしてるのかと思った。
3桁じゃなくて4桁だったらまだ想像できたかもしれないが。


<Older(,) | Newer(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!