投稿

2018の投稿を表示しています

カナダの二郎系ラーメンGOJIRO / JIro inspired ramen, GOJIRO in Vancouver, Canada

イメージ
バンクーバーには陣屋をはじめ日本人の経営するおいしいラーメン屋がいくつかあるが、その中に二郎インスパイアのラーメン屋がある。GOJIROという店だ。

不定期発行 最近の取り組み

Airbnbを開発した天才的なプログラマー、ブレーチャージクが、Airbnbの開発当初、自身の不定期メールマガジンで、取り組んでいるプロジェクトを書いていたらしい。おもに、友人や家族が購読していたとのこと。その中で、Airbnbは、瑣末なプロジェクトの中に申し訳なさそうに記入されていて、それを見たAIrbnb創業者のチェスターは微妙な気持ちになったとのことだった。

そのブレチャージクの発信に関する態度を真似してみようと思い、ブログに書いてみることにした。この時勢、メールマガジンよりもブログでしょ[1]。


仕事
恵比寿のスタートアップのプロマネとあるスタートアップのアプリ作成のプロマネ検品 AIの研究旅館システムの開発およびマネジメント

Project

友人のパーソナルトレーニングジムの予約管理LINE BOTバイアー向けトレンド商品サイトの開発 (nodejs + react)顔の置換に関する研究epubをkindle Study
SpanishFrench「Vue.js + Go言語 + Firebase 」で始める! Frontend & Backend API 両方で認証するセキュアなSPA開発ハンズオン!How to Build a RESTful API with Authentication in 5 minutes — all from your command lineAtCoderでアルゴリズムの勉強

参考 [1] 記事 永江一石2017年10月06日 16:12メルマガ時代の終わり・・・LINEのBLOGOSメルマガサービスが終了です

キャッシュレス先進国スウェーデンで何が変わるのか

キャッシュレス社会
http://www.news24.jp/articles/2018/08/02/10400417.html

スウェーデンの現金普及率は1.7%だそうです。手の中に長さ1cmほどのICチップを埋め込むので、財布を持ち歩く必要もない。銀行でも現金を扱わない。

この報道を聞いたとき、ジョージ・オーウェルの「1984年」を思い出した。この小説の舞台は、誰がどこで何をしていても、全て監視カメラにおさめられ、政府の思想に反するものは処罰の対象になる

現金ではなく、電子情報のみで決済がすすむようになると、何が起きるのか。個人的なお金の貸し借りも、すべてデジタルの決済手段を使わなければならなくなる。現金のもつ匿名性が失われ、「誰がどこで何に誰に払ったか」がつねに把握できるようになる。つまり、政府、ひいては税務署はすべての取引を知ることができ、すべてを課税対象とすることができる。

ブロックチェーンの導入により匿名性を担保できるか
現金の匿名性については着目している人も多いらしい。
https://jp.techcrunch.com/2017/03/01/20170226cash-is-no-longer-king/

上記の記事を読むと、
個人の自由を脅かすことなくキャッシュレス社会を実現するため、各国の中央銀行の中には、ブロックチェーン・分散型台帳技術を電子マネーの発行に使えないか研究を進めているところもある。ともあるが、非現実的な感じがいなめない。政府のコントロールがおよばないものを政府が導入するとは考えづらいし、中央銀行が存在するという考えに真っ向から反対するからだ。


メディアさらに、機能面やセキュリティの観点だけではなく、メディアの観点からも懸念がある。

McLuhanは、「メディアとは人体の拡張であり、さらに、メディアという環境が我々をも規定する」といった旨を言った。たとえば、無文字社会には「正しい文法」がないし、言葉はリズムや音韻、聴覚がよりも大事だった。演劇を観ても、無文字社会の人は役者が舞台から姿を消すことがわからない。「あの男はどこへ行った?」と考えてしまう。ストーリーが彼を必要としなくなったから彼がいなくなったということがわからない。目の前で起きている現場が全てであり、全ての人は参加者であるから、「角を曲がって見えなくなった」とでもいうような演出を加…

試みにbitFlyerのビットコイン現金自動取引コードを書いた

イメージ
現物のビットコインの自動売買を動かしてた。利益が出るかはまだ不明。
ソースコードhttps://github.com/asterisk37n/bitflyer-trader
pybitflyerというwrapperがあったので使わせていただいた。

取引ロジック 3秒ごとにbitFlyerからbid, askを取得。買い時であれば成り行きで購入、そして売り時を待つ。売り時が来たら成り行きで売る。

売り時、買い時の判定方法は、次の通りであり、オシレーターを計算している。
3秒おきに、直近100件の取引を取得する。取引には、それぞれ

side (BUY もしくはSELL)
price

が入っている。そして、次のside_variable (サイド変数)といったものを導入し、次のbarometerを定義する。

side_variable := 1 if side is BUY, -1 if side is SELL
barometer := Σ side_variable[i] * price[i]

単純に、買いと売りの金額のどちらが多かったのか比較している。


さらにここで、現在に近い取引を重要視するため、過去の取引については(1-alpha)**nを掛けて、次のように割り引くことにした。

barometer := Σ side_variable[i] * price[i] * (1 - alpha) ** i

現在、alphaは0.001を試して運用中である。(1-0.001) ** 100 ~ 0.9であり、100件前の取引(およそ3分前)を、およそ、0.9倍している。


このbarometerが0.1を超えたら、買いが始まったとして買い、-0.1を下回ったら、売りが始まったと見て売っている。ただし、売りの条件には、買値より高いという条件も与えている。

このロジックを採用した理由は、京都大学にいる後輩が、
「直近100件のうち、買いが多かったら買って、売りが多かったら売るだけのロジックで100万円を12月に稼ぎましたよ」
と言っていたので、試してみたくなったからだ。ただし、それはbitFlyerの提供するFXであり、今ではその戦略は通用しなくなったとも言っていた。

現在の試験運用 試験的に、1万円を元手に、0.01ビットコイン単位で売買している(現在のビットコインは73…

エストニアの電子居住権(e-residency)の申請をした

イメージ
電子居住権について
エストニアには電子居住権を申請しました。自分で会社を持つことを考えたことと、電子居住権という先進的な取り組みに興味をもったのがきっかけです。
e-residencyがあると、投票権はないし、実際に住むことはできないものの、オフィスを持たず、現地に人もいなくてよい、会社を作ることができます。銀行口座も持つことができます。ホームページでも、そのことを推しています。


参考: e-residency | 10つのメリット

必要なもの e-residencyの申請に必要なものは、

パスポートのコピーまたは写真自分自身の鮮明な証明写真100EUROの申請料金(さらに1.9EUROの手数料でかかる)
です。VISAかMASTERで支払いができます。楽天カードの場合、paymentがfialedになることがありますが、その場合は、e-naviで本人認証を済ませ、(オンライン上で1分間で完了できる)、支払いをリトライすると、successします。

LinkedInやfacebookのリンクをadditionalで記入求められました。かりに日本がe-residencyを始めたとしても、そういったSNSの記入箇所があることは想像つかないです。



申請後 申請が終わると、30日間、審査や手続きを待つようです。日本では、渋谷にあるエストニア大使館でdigi-IDを受け取ります。


e-residencyは、こちらのページから申請できます。
https://e-resident.gov.ee/

エンジニアリングブログをどこで書くかについて、どう書くかについて

ブログを書くと、自分の知識のストックになり、文章もうまくなり、自分のアピールにもなる。

問題になるのは、
日本語で日本向けに展開するか vs 英語で書いて世界向けに展開していくか
エンジニアリングだけ書くのか vs 個人的な記事も書いていくブログにするのか

だろうか。それは個人の生き方や英語への習熟度にもよって決めたらよいのだと思う。

日本語でエンジニアリングに集中して書く場合は、Qiitaに書くのがよいのかもしれない。ただ、個人的な記事をまとめるには、ふさわしくないかもしれない。

英語で書く場合や、個人的な記事もまとめたい場合は、BloggerやMediumやNoteなどにまとめるのがいいのかもしれない。ソースコードを載せる場合は、SyntaxHighLighterなどを使うのがよいだろう。

https://qiita.com/piro_erdes/items/f133e170a8cf6c10b449
https://qiita.com/piro_erdes/items/f133e170a8cf6c10b449

追記
Qiita(キータ)海野弘成社長に聞く、日本でもっともプログラマーに愛されている理由
という記事を読んで、Qiitaを見直した。むむむ、悩む。エンジニアリングの問題解決はQiitaにも二重投稿するべきか、Qiitaにだけ書くべきか。

ここの人もQiitaと技術系ブログを使い分けているらしい。整理された技術的な記事はQiitaに書くことにしたらしい。
https://blog.eiel.info/blog/2014/12/24/reason-for-written-qiita/

mysqlが起動できなくなって試行錯誤の末に再インストールした話

MySQLが起動できなくなってから、再インストールして起動するまで。
MySQLが起動しない。 mysql.server startをしても、
ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXX.local.pid). と表示され、起動しなかった。
brewを使った再インストールでは直らない。 brew uninstall mysql && brew install mysqlや、再インストール前にMacOSの再起動を試みてもダメだった。




ログファイルは

$ tail -f /usr/local/var/mysql/WatanabeNaokis-MacBook-Pro.local.err
で確認。ファイル名はパソコン名.local.errになっていた。

.errを見ると、

2018-06-06T03:32:09.971759Z 0 [Warning] Failed to open optimizer cost constant tables
2018-06-06T03:32:09.971974Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
2018-06-06T03:32:09.972239Z 0 [ERROR] Aborting
調べると、mysqld --initializeが動くようになるらしい。しかし、

[ERROR]--initialize specified but the data directory has files in it. Aborting. 
data directoryが空ではないからmysqlが初期化できないらしい。以前、.sqlファイルでrestoreしたときの記録が残っているようだ。
socketファイルを作っても解決せず。 最初に、調べたら、空のmysql.sockファイルを作って解決した記事があったが、試しても解決しなかった。
https://qiita.com/PoohSunny/items/4df890dde4879c2cd29b

権限問題では解決…

気難しいマスターのいるコーヒーショップ「満満堂」

コピルアックを飲めるお店と聞いて、初めて、谷中銀座の満満堂を訪問した。店に入ると、一緒に来た人はまずお手洗いに向かったが、私がマスターにコピルアックのことを聞くと、「今は入荷待ちだし、たとえあっても、注文もせずトイレに行くやつには出さねえよ」と平然とマスター。初対面でなぜそのようなことを言われるのか、また、なぜ注文のためにトイレを我慢しなければならないのか、私にはよくわからなかった。

マスターがコーヒーにこだわりを持っているらしく、様々な国のコーヒーが一杯800円以上で提供されていた。マスターいわく、他の店で飲んだら1.5倍の値をはるらしい。コピルアックも飲めず悔しかったので、その中から、フルーティーやコーヒーを注文した。

運ばれてきたコーヒーは、説明にあった通り、フルーティーでおもしろいものだった。しかし、フレーバーコーヒーではないらしい。ただし、若干ぬるかった。
店内は撮影や携帯電話の使用が禁止されていると、張り紙などされてあったので、写真を撮ることはできなかった。

私は店にいたところ、鼻炎がひどくなり、テーブルにあったお手拭き用の紙で鼻を何度かかんでいたところ、マスター、「それは口をふくためのものだから、そんなに使ってもらっては困るよ。」と。私が「それなら、お金払いますよ」と言うと、「そういう問題ではない。非常識でしょ。常識で考えてごらんよ。」と、文句を言い終わると、踵を返していった。会話はついに再開されなかった。私は、最後まで店主の常識がわからず、ぬるいコーヒーを飲み終わると、さっさと店を出た。

マスターの風采や、店内の装飾から察するに、若いころは非常にやんちゃしていたのだと感じられた。それが反省して、コーヒーショップを営んでいるのだが、いまだヤンキー根性は抜けず、客に対しても殿様商売を続けている様子である。

QBハウス待ち時間メール通知サービスを作った

Google App Scriptにjavascriptを書きました。
一定時間おきにQBハウスのホームページ上にある、待ち人数n人の項目をスクレイピングし、もし0人だったら、メール通知するサービスです。ついでに、スクレイピングしたデータはgoogle spread sheetに追記していき、そのデータを取り出すAPIも実装しました。

gistにコードあげました。
https://gist.github.com/asterisk37n/55fc0ed07656692bfd025d14acd85010

Pythonの画像ダウンロードはasync/awaitを使うと3倍速くなった。

sync vs async

家具を揃えたら15万円かかった

ニトリポリエステル ヌード背当てクッション462 2924 クッションカバー(ダマスカス)1,380 22,760 ホテルスタイル枕 プレミアム4,621 29,242 マルチすっぽりシーツ セミダブル(パレット3IV SD)2,306 24,612 <シーリー社製>セミダブルマットレス(6930)55,463 155,463 ホワイトダックダウン93%羽毛布団セミダブル 1.2kg(ムーンシャンテンWDD93% SDL1.2kg)16,574 116,574 吸水速乾ベッドパッド セミダブル(NT3SD)2,306 12,306 デスク(N トリシア 120 BK)9,250 19,250 ワークチェア(ベイシス D DGY)2,848 12,848 採光・遮像・315サイズレースカーテン(Nナチュレドット 100X176X2)

Cebu島でスキューバダイビングのライセンスを取得した。5日目 (1月20日) マリンスポーツ

イメージ

Cebu島でスキューバダイビングのライセンスを取得した。4日目 (1月19日) Cebuの観光

イメージ

Cebu島でスキューバダイビングのライセンスを取得した。3日目(1月18日) - ライセンス取得

イメージ

Cebu島でスキューバダイビングのライセンスを取得した。1日目 (1月16日) Cebuへ渡航

イメージ
セブ島へSSIスキューバダイビングライセンスの取得へ飛び発った。

Cebu島でスキューバダイビングのライセンスを取得した。2日目(1月17日) ダイビングスクールへ行った。

イメージ
セブ島二日目。ダイビングスクールの1日目だ。

ローソンの商品の1円あたりのカロリーランキング

イメージ
ローソンの商品を、価格 vs kcalでグラフにした。kcal/値段=3, 1, 1/3の等高線も合わせて示した。


PermissionError for git ssh on Mac OS Sierra 10.13.3

Properly setting chmod fixed my problems

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -C comment -f my_key
mv my_key* ~/.ssh
chmod 600 ~/.ssh/*
ssh-add -K ~/.ssh/my_key

### register my_key.pub to GitHub or BitBucket, then test ssh

ssh -T git@bitbucket.org (or git@github.com)

https://superuser.com/questions/642972/why-am-i-getting-permission-denied-when-running-ssh-add

SQLのuniqueはDjangoではunique_together

以下DBはすべてPostgreSQLを使い、 SQLとORMでの挙動の比較をしました


SQLの unique制約はdjangoではunique_togetherに対応するらしい。たとえば、SQLの

CREATE TABLE contacts (
    id integer primary key,
    name text,
    phone_number integer,
    UNIQUE(name, phone)
) と、Djangoのmodel

class Contacts:
    name=models.CharField(max_length=128)
    phone_number=models.IntegerFIeld()

    Meta:
        unique_together=(name, phone)
は同じこと。上記2つの例では、Uniqueの制約は、ペアの組み合わせに対してかかる。なので、
 ('Alice', 00000000000)
 ('Alice', 00000000001)
の2つは、データベースへの追加が可能である。また、Djangoでは primary_key=True は null=Fals, unique=True を意味する[1]。

primary_key=True implies null=False and unique=True. Only one primary key is allowed on an object.
ちなみに、カラムごとにunique制約をかけた場合、SQLもDjango ORMも同じように、カラムそれぞれについての重複を許さない、上記より、さらに厳しい制約となる。たとえば、次のmodelでは、nameもphone_numberもそれぞれで、uniqueであることを求められている。(name, phone_number)のペアでuniqueであることよりも厳しい制約がかかる。

class Contacts:
    name=models.CharField(max_length=128, unique=True)
    phone_number=models.IntegerFIeld(unique=True) 次のSQLの挙動も同…

CSS for PCCS

CSS containing PCCS and HEX pairs.
 .text-v1 {
  color: #b91f57;
}

.text-v2 {
  color: #d02f48;
}

.text-v3 {
  color: #dd443b;
}

.text-v4 {
  color: #e95b23;
}

.text-v5 {
  color: #e67800;
}

.text-v6 {
  color: #f49d00;
}

.text-v7 {
  color: #f1b500;
}

.text-v8 {
  color: #eec900;
}

.text-v9 {
  color: #d2c100;
}

.text-v10 {
  color: #a8bb00;
}

.text-v11 {
  color: #58a91d;
}

.text-v12 {
  color: #00a15a;
}

.text-v13 {
  color: #00926e;
}

.text-v14 {
  color: #00857f;
}

.text-v15 {
  color: #007488;
}

.text-v16 {
  color: #00709b;
}

.text-v17 {
  color: #00609c;
}

.text-v18 {
  color: #005ba5;
}

.text-v19 {
  color: #1a54a5;
}

.text-v20 {
  color: #534aa0;
}

.text-v21 {
  color: #703f96;
}

.text-v22 {
  color: #81378a;
}

.text-v23 {
  color: #8f2e7c;
}

.text-v24 {
  color: #ad2e6c;
}

.text-b2 {
  color: #ef6c70;
}

.text-b4 {
  color: #fa8155;
}

.text-b6 {
  color: #ffad36;
}

.text-b8 {
  color: #fad831;
}

.text-b10 {
  color: #b7c82b;
}

.text-b12 {
  color: #41b879;
}

.text-b14 {
  c…

docker login failes Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:

Environment On Ubuntu 16.04 LTS

外資系IT大企業を辞めてスタートアップへ転職し、そして無職になったこと

思いきって仕事をやめたが何とかなっている。

臨済宗の宝泉寺で三泊四日の修行した

イメージ
寺の朝は早い。 夜明け前の5時すぎに起きる。生活は全て規則正しく、規律守って行われる。  修行と聞いて、火の上を歩くとか、飢餓状態を過ごすとか想像したら、それは違う。修行というのは、日々の生活の一瞬一瞬、全ての瞬間のことを指している。人生に対する態度とか、生き方そのものだと思った方が正しい。