クラウドの先の新しい私

実は今年、私にとって大きな決断をしました。

先週末をもって転職し、明日から新しい会社での仕事が始まります。前職では、AIクラウドサービスをイチから作り上げるという仕事に従事しました。その過程で、AWS上でECS-Fargate、Cloudfront、Auroraといったインフラストラクチャを扱い、PythonやTypeScriptといったWeb開発のスタンダードな技術スタックを用いて、様々なプロジェクトを実現しました。さらに、機械学習をKubernetesクラスタで運用したり、ReactやWASMを使ってブラウザ上での画像処理を実現するなど、技術的な挑戦を重ねてきました。

さらにこの1ヶ月の有休消化期間を利用して、プログラミングスキルの向上と新しい技術の調査を兼ねて、約15年前に手掛けた麻雀アプリのプロジェクトをクラウドサービスとしてリニューアルしました。このプロジェクトは、GCPやサーバーレスアーキテクチャ、サービスメッシュといった最新の技術を試すエキサイティングな取り組みでした。しかし、構想を大きく広げすぎた結果、Parquetの読み書き処理、セグメンテーションフォールトのエラーのデバッグといった細かな課題に時間を取られ、現在時点でサービスをお披露目できなかったことは反省点です。1人でゼロから完成させる難しさを痛感しました。しかしこの経験は今後に活かせる有意義な時間だったと思います。

構想や成果物についてはzennに記事を載せているのでこちらをぜひご覧ください。

https://zenn.dev/kacky/articles/a861877327f760

今年は世界にとっても、私にとっても節目を迎える非常に重要な年になりそうです。より一層クラウドや機械学習の力を活かして、世の中に変化を与え人々の幸せに貢献していきたいと考えています。どうぞよろしくお願いいたします。

いいねボタン追加しました

ブログ開設からもう10年以上過ぎて今更感もありますが、いいねボタンを追加してみました。毎月定期的に株式市場や自分の投資状況を発信してますが、どんなことに興味を持ってみていただいているか気になりまして。よかったと思われましたらぜひ下にあるいいねボタン(ハート)を押してください。よろしくお願いします。(以外にプログラミング関連ワードからの流入も多くて驚いています。暇があったら書くかリンクを貼るかもしれません^^)

仮想通貨マイニングを始めたい方へ

あけましておめでとうございます。今年もkackyの投資生活をよろしくお願いします。

さて、2017年は仮想通貨が非常に飛躍した1年でした。今年から、仮想通貨への投資を始めたいという方も多いのではないでしょうか。その中にはただ買うだけでは足りず、マイニングで収益を上げたいという方もいらっしゃるかもしれません。

 

マイニングって何?という人に一応解説をしておくと、マイニングとは仮想通貨にとって取引の承認を手伝う行いで、自分のコンピュータのCPUやGPUのパワーを提供することで実施できます。そしてマイニングの貢献によって仮想通貨を得ることができるという仕組みです。ネットを見ればいろいろとわかりますので探してみてください。

仮想通貨のマイニングとは?

 

ただ、マイニングで収益を上げるためには

  • 自分に適した仮想通貨を選ぶこと
  • マイニングプールを選ぶこと
  • 適切なマイニングソフトを使うこと

の3点が必要になってきます。

 

まず、自分に適した仮想通貨ですが、有名なbitcoinやethereumをマイニングしようとしても今や競合が強すぎて個人ではほとんどマイニング収益が得られないようになってきました。個人でマイニングをするのであれば、Moneroという通貨をマイニングするのがオススメになります。

 

Moneroをマイニングするためにはまず、収益を入金するアカウントを作成する必要があります。

ウォレットサービスMyMoneroの使い方

こちらを参考にアカウントを作ってみてください。

 

マイニングプールの選び方ですが、

  • 手数料がお手頃
  • プールのハッシュレートが高い(ハッシュレートが低いと収益を得られる確率が下がる)

といった観点で選ぶとよいです。手数料は安いに越したことはないですが、無料のサービスですとインフラが脆弱で時々マイニングが途切れてしまうなどの弊害もあるので無料がよいとはいえなかったりします。

現状はコストとハッシュレートのバランスがよいsupportXMRあたりがオススメになります。こちらを参考にすればすぐにマイニングを開始できます

Ryzen7 1700でモネロをマイニングしてみた(supportXMRpool)

 

最後にマイニングソフトに関してですが、サイトで紹介されているxmr-stak-cpuがハッシュレートもよくオススメになります。

が、プログラマーの私はxmr-stak-cpuをベースに少し改良を加えてハッシュレートをよくしたバージョンを公開しました。

https://github.com/kackyt/easy-mining-mac/releases

こちらにwindows、mac、linux版を用意したので、こちらで実行するとハッシュレートが気持ち(10%くらい?)向上します。今後もいろいろと改良を行っていければいいなと思っています。

 

プログラミングの力で仮想通貨の世界に貢献できるって楽しいですね。皆さんも、ご自宅のPCの力を使って仮想通貨の世界へタッチしてみませんか?

投資成績計算プログラムを10年ぶりにアップデート

image

先月の投資成績です。相場的には上がったり下がったりで横ばいです。kackyファンドも6ファンド中2位をがっちりキープしております☆

先月の終わり頃から投資成績を自動で計算するプログラムが動かなくなり、このままではこのブログを更新するネタがなくなってしまうという危機感のもと、プログラムの全面改修に踏み切りました。このプログラムを作ったのはこのブログを開始してほどない2008年に遡ります。なんと10年程前のはなしです!!技術力もお金も大してない中でえっちらほっちら書いていたのでそれはそれは人様に見せられないような糞コードでできあがっておりました。様々な小さな改修を経て今日まで稼働してきましたがついにお役御免となりました。ソースコードを見返すと哀愁すら漂う歴史の遺物でした。

その日の価格などはhttp通信でクロールしてくるのですが、こんな感じの実装でした。

print S "GET $filename HTTP/1.0\r\nAccept: \"/\"\r\nAccept-Language: ja\r\nReferer: http://$hostname$filename\r\nHost: $hostname\r\nConnection: Keep-Alive\r\n\r\n";

http手打ちですかいwww

というのも貧乏サーバーで運営している関係上、実装した当時はhttpモジュールなんて入っているはずもなく、仕方なく手打ちでhttpプロトコルを実装せざるを得ない状況でした。おかげさまで今ではhttp通信モジュールを使ってえいっとURIでアクセスすればよい時代になりました。こんなコードともおさらばです。昔は文字コード変換はjcode.plだったよなぁとか。そういう話をしだすとだめですね。あのころはあのころで試行錯誤をしながら動いたときの感動を味わいましたし、とても勉強になりました。

この恥ずかしいコードは青春とともに捨て去って、ちゃんとオブジェクト指向で設計した最新環境に対応した保守性の高いコードにしていきたいと思います。気が向いたらgitでバージョン管理してgithubにでもあげようかな。ええ、もちろん今もFTPデプロイですとも。

さようならtDiary、こんにちはWordPress

さようなら

どうも、皆様こんにちは。本ブログのスタイルがガラッと変わって驚かれた方も多いかと思います。創設から8年間tDiaryという日記システムで書いてきましたが、思い切ってWordpressに変えることにしました。

この変更を決断したのには以下の理由があります。

  1. WordPressをレンタルサーバーが標準サポートするようになり、簡単にインストールできるようになった。
  2. tDiaryのバージョンアップが大変だったり、更新頻度が遅かったりして、近頃の環境の変化(スマホからのアクセスが増加したなど)に対応できなくなった。
  3. 借りてるレンタルサーバのrubyのパフォーマンスが悪く(fcgi非対応)、ページビューの増大に耐えられないと感じた。

8年前はブログサービスはどっかの融通の効かないサービス(fc2とか、アメブロとか)を利用するか、自力で何かをインストールして(tDiaryとか)始めるしか、方法はなかったのですが、8年あまりでずいぶんと変わりました。ブログシステムのインストールも、Webブラウザの画面をチョイチョイとクリックしていくだけで出来てしまう簡単さです。VALUE-SERVERがサポートしているブログシステムにはWordpressとMovable TypeとXOOPSがありましたが、バージョンが新しいものがサポートされていたのと、一番メジャーでプラグインも豊富だなと思ったのでWordpressにしました。

ただ、これまでのtDiaryのブログ投稿をWordpressに移行するのは結構大変でしたね。

http://www.kenstar.org/~kenstar/computer/program/t2m.html

このへんのページのプログラムを使ってみましたが、いかんせん実装がてきとーだったりして自分のブログではほとんどうまくいきませんでした。また、perlで実装されているのも許せなかったので自分でrubyで実装して書き換えてしまいました。何度もトライ・アンド・エラーを繰り返しながら、ようやく何とか形になった次第です。私の実装も全然完璧ではないですけどね。githubにソースコードを公開してますんで、同じことを考えている人は参考にしてください。(WikiStyleとtDiaryStyleに対応しています)

https://github.com/kackyt/tdiarymtconverter

システムが変わっても中の人は全く変わりませんので、今後ともよろしくお願いいたします。

※下の表はtDiaryのレスポンス(上)とWordpressのレスポンス(下)です。tDiaryの表示には2秒以上かかる場合もあり、激重になっていることがわかります。

tDiarymini

Wordpressmini

Unity5.1とOculus Rift

Unity5.1ではOculus RiftがSDKなしで標準サポートされるということで、喜び勇んでやってみたのですが、

EditorのPlayボタンを押した瞬間にクラッシュしてしまいました。。

アプリをBuild and runしても同様に何も出ないままクラッシュしてしまいますorz

パッチ版の5.1.1p2を使っても改善されず。マシンの相性の問題ですかね。

ちなみに使っているのはMacbookPro 15inch(mid 2014)でWindows8.1 Proをbootcampで使ってます。

もうしばらくUnity 5.1は待ったほうがよさそうですね。

[麻雀] 麻雀AIリリースしました

ほそぼそと続けていたオープンソースプロジェクトのオープン麻雀プロジェクトですが、久々にリリースをしました。

https://sourceforge.jp/projects/openmahjong/releases/

 

今回は『まうじゃん』というWindowsゲームに対応した麻雀AIになります。

まうじゃんはこちらのサイトでダウンロードできます。

http://www.amy.hi-ho.ne.jp/ishihata/maujong/

 

テストはまうじゃんを使ってオートプレイでやってますけど、いくつかやってみた結果はこんなかんじです。

image

 

まあ、見ての通り弱くもなければ強くもない、至って平均的な雀士になりました。

ちゃんと鳴きますし、オリますし、リーチもしますし、チートイも役も狙います。国士だけはまだ実装してません。

 

自分で対戦もしてみましたけど、まあ、結構普通に麻雀してくれます。

印象としては、結構鳴く雀士だな-という感じです。あとテンパイは早いと思います。

今のところ順位計算とかは特に入れてないので4位のオーラスでも平気で南のみで和がったりするのでその辺はムカつきますw

対人対戦でもちょうど良い強さで楽しめるレベルではないかと思います。

自分の息子と対戦してるみたいでなかなか楽しい気分でした。

セリフは皆さんの大好きなアレですw

 

これまでも麻雀AIはいろいろと作ってきたのですが、リリース出来なかったのは

単純に弱かったからです(´・ω・`)

いくつか強いアルゴリズムができたら、多数決とかやらせてみると強くなるかとか試してみたいですけどね。

それは夢のまた夢ですけど。

 

 

麻雀AIに興味がある方はぜひダウンロードしてみてください。

ソースコードも思い切って公開しています。なかなか珍しいコンテンツだと思います。

現状使っているのは、MahjongAI_type1/MahjongAIType4.cppです。

(ただし、著作権は放棄していません)

そのうち気が向いたらアルゴリズムの解説とかもしようかなと考えています。

 

ご意見・ご感想も歓迎します。

ブログの引越、落ち着きました

awsからブログを引っ越しました。xreaに戻すのも悔しいので同じ系列のvalue-serverに変えましたw

xreaの有料版(xrea+)は年間2468円に対してvalue-serverのまるっとプラン(ドメインとのセットプラン)は年間1600円で使えるので、年間868円の経費削減につながります。まあ、みみっちい金額ですけど、貧乏ブログなもので^^費用が軽減されただけでなく、value-serverの方がちょっとだけxreaのサーバーに比べてスペックが向上しています。GMO系列はxrea、value-server、coreserver、ロリポップとか似たようなサービスが乱立しすぎて非常に選択しづらいですね。早くブランドを一本化できないもんでしょうか。まあもともと別の会社だったので難しいんでしょうけど。

コメントスパムですけど、二重三重の対策をとって今のところは落ち着いた状況です。最近はコメント欄を閉じてしまったブログも多いですね。寂しい限りです。私としてはダメブログながらなんとか来ていただいた方への窓口を開いていようと頑張っていきます。引っ越した後でも何百かのアクセスは来てますね。awsにいてた時は1時間に何万アクセスとかでサーバがパンクしてしまうひどい状況でした。コメントフィルタだけでなくて前段でのフィルタリングが大事なんだなと痛感しました。google検索も復活してくれたようで安心しました。今後ともよろしくお願いいたします。

ブログをawsから引き上げようかな…

どうも、こんにちは。ブログをawsに移して1ヶ月くらいがたちますが、早くもawsから撤退しようかなと思い始めた今日このごろです。

awsに移して早々に自分で作ったtDiaryプラグインが動かなくなったり、コメントスパムに見舞われてブログサービスそのものが不能になったりと踏んだり蹴ったりの状況でした。これは自分の能力のなさからくるので、決してawsが悪いわけじゃないんですけど。

今は、海外からのアクセスをまるごと遮断することでなんとかサービスを維持してますけど、この副作用でfacebookで共有できなくなったり、google先生の検索から当ブログが消滅してしまったりという残念な事態になっております。この事態を打開するためにはサーバの前段に賢いスパムフィルターとかを仕掛ければいいのかもしれませんが、もともと趣味程度でやっているブログでそんなことをやれるお金や暇がありません。それなら、まあブログは普通にレンタルサーバー使うのが最高だよねって結論になりそうです。今回の行動を教訓にWebサービスをやろうとか考えた時には世の中には悪いことを考える人がいっぱいいるのでなめてかからないように気をつけたいと思います。

もろもろのプラグインの導入できた

いろいろ悪戦苦闘しましたが、tDiaryの機能をほぼ移植することが出来ました。

 

まずtDiaryのバージョンアップによって文字コードがEUCからutf8に変わったために全部の文字コードをutf8に変更しなければならないところから始まり、

ソースコードを書き換えてpluginが動くようにしたり、xmlrpc.rbが動かなかったりといろいろありました。

 

極めつけはspam投稿の多発で日記データの取り込み直し。。私の設定ミスもありますが、spamアクセスが4000件を超えてほぼ全ての日記にアタックをかけてきたのは誤算でした。本当に挫けそうになりましたが、これでなんとかまたブログ運営を続けられそうです。

 

メールについてもaws上の構築にチャレンジしていますが、サーバー構成やデータベースの設計であったり、セキュリティの確保といったところが非常に難易度が高い割に特にメリットがない(自分で構築したという自己満足くらい)ので止めるかもしれませんヽ(´ー`)ノ