サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
TGS2023
matsu-chara.hatenablog.com
これは何 証券Fintechに入るぞ・入ったぞ!という人がドメインについて学べるような本・ページを集めてみました。 会社特有の業務知識ではなく業界で広く使える知識を学べる物を集めようとしていますが、筆者の守備範囲依存による分野の偏りは否めません。 こういう分野があってこういうことが議論されてるんだなーといった形で興味を持つきっかけとしての本を挙げています。(自分で金融商品を考えるぞ!という人向けではなく、ETF扱うサービスの開発するならETFって何かくらいはうっすら知っておきたいよねーくらいのモチベーションの人向き) 最初に何読めばいい? せっかくだからなにか勉強したいなーという人は資格系の欄にある証券外務員についての本を買っておくと広めに勉強できます。 ただし、個別の金融商品(ETF, 投資信託,…)の解説が詳しく載っているわけではないので、そういったことを知りたい場合はETFや投資信託
FOLIOアドベントカレンダー2021 12日目です。 FOLIOではrefinedというライブラリを採用しているので、活用事例とその目的について考えていこうと思います。 お品書きは以下です。 refinedとは ドメイン知識の形式知化 契約を型で表すことによる認知漏れリスクへの対策 プラットフォームとしてのrefined まとめ refinedとは refined はScalaでrefinement typeを表現するためのライブラリで、Haskellの 同名ライブラリ のScala版として開発されました。 refinement type(篩型, ふるい型) はざっくりいうと、「値が0以上である」とか「長さが1以上である」といった制約を型で表現し、静的に保証するための概念で、1991年にFreemanらによってRefinement Types for MLで提案されました。 利用方法 r
2020/2にbefore 600点台(正確な値は紛失)から始めて2020/9に目標(900点以上)を達成しました₍₍ (ง´・_・`)ว ⁾⁾ うれC ₍₍ (ง´・_・`)ว ⁾⁾ ₍₍ (ง´・_・`)ว ⁾⁾ ₍₍ (ง´・_・`)ว ⁾⁾ pic.twitter.com/pKDX2mPmW6— まっちゃら (@matsu_chara) 2020年9月28日 英語学習は最初の入門のところが割と難しいなと思ったので、やったことをまとめておきます。(なお、この記事は頑張ったから自慢したい気持ちが90%、他の人に参考になったらなという気持ちが10%で提供されています。) ちなみに英語指導経験があるとか、すごいペラペラになったとかそういう感じではないので、近くに英語に詳しい人がいる場合はそちらの人の言うことに従うのがおすすめです。(あくまで素人がやったことが書いてあるだけ) 基本的にリスニ
最近思ったことを書いておく備忘録的なものです。 特に1on1経験が豊富なわけではなく、むしろ経験が浅いので、何を学びながら進めばいいのやらという段階でのものです。 1on1と困りごと 1on1に何を求めるのか?というのはベースになる考え方はありつつも、個人・チーム・組織の状況によって異なると思います。 将来のキャリアパスについての相談やポジティブなことの共有などもあると思いますが、それと同じくらい困ったことを聞くことが多いと思います。 「困ったことを聞いて、(個人が解決できるように or マネージャーが or ...)解決に導く。」これが、チームの生産性向上に寄与するというのはある程度自明に思えますし、 困ったことを話して、解決してくれるマネージャー*1は頼りがいがあり、まさに信頼できる優秀なマネージャー像にピッタリではないでしょうか。 理想と現実 一方で組織の全権を持っているわけでもない
FOLIOアドベントカレンダー2018 17日目です。 昨日はyasuharu519さんのDocker stop 時に別のコマンドを実行して Graceful shutdown を実現するでした。 NewSQLを調べつつ最近はストレージ周りにも手を出してみたいバックエンドエンジニアの @matsu_chara です。 今回はFAST '18のBest PaperであるProtocol-Aware Recovery for Consensus-Based Storage を読んだので紹介や感想を書きたいと思います。 自分が面白いと思ったところを中心にしたり、個人的に調べた内容が入っていたりするので正確かつ完全な情報は上記論文や関連文献等を直接読んでいただければと思います。 ざっくり プロトコル特有の知識を利用した分散システムにおけるストレージ障害からの回復方法(PAR=protocol-aw
世の中に大量にペアプロ記事があるのに新たに追加してしまうシリーズ。 自分の考えのまとめ置き場が欲しかったんだ(´;ω;`) 背景 ペアプロのメリットについて、詳しい人からの知識移転ができる。先輩から後輩へのスキル移転ができてチームが成長するといったメリットが挙がることが多いと思います。 これはこれで分かるし必要だと思うんですが、一方で二人で一つの作業をやったら効率は半分になるのでは?といったもやもやがあるときに上記のような長期的なメリット*1を挙げられると頭ではわかるけど腹は膨れないなというか、実践につなげるのが難しいことってないでしょうか? 特にペアプロは一人では完結しないので草の根的に行うのには大きな熱量を必要とします。 「長期的なメリットがあるからやろうぜ」といって人を巻き込んで、それを布教して、長期的なメリットが得られるまでやり続けられるって結構大変じゃないかなと思ってます。 この
見積もりについて思ってることとかをまとめてみました。 マネージメントの実戦経験というよりソフトウェア開発手法について学んだ結果のアウトプットみたいなノリでみていただければ幸いです。 社内勉強会で話したので会社のスライド使ってますが、会社が今こうというわけではなく一般的な話にとどめています。(あとstudy_lean_agileっていう名前の勉強会なんですが、このスライドはリーンもアジャイルもあまり意識していません) 前半は自分なりの考え方、後半は具体的にはこうしたらいいんじゃないかと思っていることという風に分けています。 誰のための見積もり・何のための見積もり part1 from matsu_chara Matsubayashi www.slideshare.net 誰のための見積もり・何のための見積もり part2 from matsu_chara Matsubayashi www.s
HACKER TACKLE というイベントでPonyについて発表してきました。 Ponylangとこれからの並行プログラミング from matsu_chara Matsubayashi www.slideshare.net タイトルの主張がやや強めになってしまった感がありますが、僕としてはPony自体というよりPonyがチャレンジしていること、それによって到来する未来に注目してもらえたらなーみたいな素朴な気持ちでつけました。 そんな感じの内容だったのでPony入門と見せかけてPonyのコードは少ししか出てきませんでした。 (でもスライド発表で文法の話しても文字が小さくて見えなかったりするしまあいいかみたいな気持ち・・(( ◜◡‾)) 既に発表したことのある内容と被りすぎず、でもそらし過ぎて上級者向きにならないように・・など色々考えました。が!入門的な内容を改定を重ねつつ発表するのはやっぱ
第二のドワンゴアドベントカレンダー10日目です。 昨日は @yyuさんのブロックチェーンを利用した公平なガチャでした。 公平なガチャシリーズは全部おもしろいのでおすすめです。 今回はCombiningTreeによる高速なカウンターを紹介したいと思います。 ベースはThe Art of Multiprocessor ProgrammingとScalable Concurrent Counting. 1994にある内容です。 高速なカウンター 1,2,3,...と数を数えることはよくあると思いますが、マルチコア環境で高速に数えたいケースについて考えてみます。 javaなどでは AtomicIntegerなどがよく利用されると思いますが、ここでは更にスケールするカウンターを考えてみたいと思います。 ComibiningTree スケールすると言っても、一つのアドレスを書き換えあうアプローチでは、
FOLIOアドベントカレンダー 9日目です。 昨日は quantroさんの バリュー投資とかグロース投資とかの整理 でした。 NewSQLを調べつつ最近はストレージ周りにも手を出してみたいバックエンドエンジニアの @matsu_chara です。 今回はFAST '17のBest PaperであるApplication Crash Consistency and Performance with CCFS を読んだので紹介や感想を書きたいと思います。 自分が面白いと思ったところを中心にしたり、個人的に調べた内容が入っていたりするので正確かつ完全な情報は上記論文や関連文献等を直接読んでいただければと思います。 ざっくり アプリケーションレベルでのCrash Consistencyの正確性を向上させるための仕組みを持ったファイルシステム CCFS(Crash-Consistent File S
基本的に以下からそのまま取ってきています。 ドキュメント Futures — Util 21.5.0 documentation コメント util/Future.scala at util-6.45.0 · twitter/util · GitHub 説明用のざっくりポインタとしてまとめる予定だったのに、あれもこれもと欲張ってしまった代物。(その割に全部あるわけではない。) playからfinagleに移行してきたりするとメソッド名が細かく違ったりするのに最初は戸惑いますが、Scala標準Futureとakkaのschedulerを使ったことがあれば、すぐ慣れつつ便利さを感じられると思います。 例ではThread.sleepを呼びまくっていますが、そのへんの事情はScala標準のFutureと同じなのでちゃんとやるときはFuture.sleepやtimer.doLaterなどを使ったほう
この辺の事柄です。 IO monad · Issue #21 · getquill/quill · GitHub io free monad by fwbrasil · Pull Request #881 · getquill/quill · GitHub quillにだいぶ前からIO monad入れようというissueが立っていたのですが、先日めでたくマージされたようです。 まだリリースされてないのでSNAPSHOTをビルドして試してみました。 環境などはこちら: https://github.com/matsu-chara/quill-free-example 機能とか 現状のquillだとqueryをrunした時点で副作用が発生してしまうので、うまく切り離したいというのが目的のようです。 また、クエリをtransaction内で実行させる機能やRead/Writeなどの副作用の種類を
Reladomoはゴールドマン・サックスが公開しているJava向けORMです。 https://github.com/goldmansachs/reladomo-kata にチュートリアルが公開されていたので触ってみました。 ちなみにReladomoもReladomo-KataもApache License 2.0です。 Chaining JavaのORMにも色々種類があると思いますが、Reladomoの特徴的な機能としてChainingが挙げられます。 Chainingという単語自体には色々意味があるようですが、Reladomoが持つChainingは監査のためにオブジェクトに対する変更履歴を全て保存し後から履歴を追跡出来るようにするための機能です。 監査用履歴は基本的には通常のアプリケーションから利用されることはあまりありませんが、履歴の保存や定期的な参照が必要になるようなユースケース
BiTemporal Modelingについてちょっとだけ調べたりしたのでメモ。 基本的に Temporal Data Models(ppt注意)とTemporal Databasesを大幅に端折ったものに他の資料を少しだけ入れた感じの内容です。 Temporal Data Models BiTemporal ModelingはTemporal Data Modelsという分野で研究されているモデリングの一種です。 Temporal Data Modelでは時間によって変わっていくデータを扱います。 ちなみにここでいうData ModelはData Structure+Query Languageを意味します。 データが時間によって変わるということは何らかのUpdate操作が必要です。一番単純な方法を考えるとDBのレコードを直接更新(無効になったデータは削除)することでUpdate操作を実
前々からほしかったので時短で雑に作った。 https://github.com/matsu-chara/slack_user_avatar_emojis matsu_chara ユーザーだったら :m_atsu_chara: のような絵文字になる。(名前そのままだとメンションになってしまうため回避するためにアンダーバーを入れている。) 既に登録済みでも上書きとかされないので新規ユーザーが入ってくる度に流してもOK。ただしアイコンの更新は未対応。 追記: 誰かがアイコンを更新する度に手動で削除するのが大変だったので一旦emojiを削除してから登録するようにした。
2017年2月28日付けで株式会社ドワンゴを退職しました。 新卒入社から二年弱、Scalaを書いたり、ScalaTextの作成に参加したり、Kafkaを運用したりしていました。 短い期間でしたがscalazコントリビューター1位&2位の人*1を含め、色々な側面ですごい人達と同じチームで仕事が出来たのはとてもいい経験になりました。 チラシの裏になりますが、せっかくの節目なのでドワンゴの思い出を書いていきます。個人ブログだしね₍₍ (ง´・_・`)ว ⁾⁾ Slackと分報チャンネル ドワンゴはSlackが異様に発展していてチャンネルが2700以上あり、自分自身もjoin数が社内2位(700チャンネル)になるほどハマっていました。 最近では分報も急速に発展しています。#times_matsu_charaはジョイン者数55人で、こちらも社内2位でした。 割りと長いこと1位だったのですが人事部長に
ここに書くことによって途中でやめられなくするメソッドです。 ハッカーニュースを眺めていたら以下のようなCS系講義動画のまとめリポジトリが流れていました。 GitHub - Developer-Y/cs-video-courses: List of Computer Science courses with video lectures. へーっと思いながら何個かポチってみたところ以下に出くわしました。 15721.courses.cs.cmu.edu 英語が(自分にとって)聞き取りやすく、動画の品質(画質やスライドがちゃんと見えるかどうかといった部分)も良いものでかつ興味のある内容で出来ればスライドもおしゃれで・・・となるとなかなか少ないですが、これはかなり見やすいです。 スライドも概念図が頻繁に登場したりして、これだけでも聞き取れなかった部分などをかなり補完できます。 スケジュールページ
結論 wrappers.protoが便利 背景 protobufでは値を省略したときに、その型で定められたデフォルト値が代入されます。 例えばstringを省略すると自動的に""を指定したことになり、「値が指定されなかった」のか「空文字列を明示的に入れた」のかを区別しないように書くことが求められます。 この仕様は便利なのですが、時には区別したいケースもあります。 このとき下の方式2, 3のようなテクニックを用いて未指定とデフォルト値を区別することができます。 message Example { // 1. ダイレクトに定義(デフォルト値と未指定を区別できない) string foo = 1; // 2. 専用のmessageを定義 message Bar { string value = 1; } Bar bar = 2; // 3. oneofで定義 oneof baz_option {
dockerコンテナ上で何故かcurlが上手くつながらない問題にハマったのでメモするシリーズ。 環境 Ubuntu 14.04.5 LTS ( on OpenStack) Docker version 1.11.2, build b9f10c9 症状 ホストで curl https://github.com は正常にレスポンスを受け取れるのにもかかわらず、コンテナ上で同じことを行うとレスポンスが帰ってこない(ハングする)。また極稀にレスポンスが中途半端に返ってくることがある。 原因 コンテナのMTUの値がホストのeth0と合っていなかった。( ip addr などで確認) (暫定的な)対処法 DOCKER_OPTSに --mtu 1400 など(数字はeth0のMTUと合わせる)を加えてdockerを再起動する。 背景とか 調べてみると何個かこういう報告がありました。 docker 1.1
はろぽに〜₍₍ (ง´・_・`)ว ⁾⁾ Pony 0.3リリース 🎉 2016年8月26日にPony 0.3がリリースされました。 チュートリアルについてのブログを書いたときから大分経ったような気がするので、 最近のPony事情についてちょっとまとめようかなーと思います。 (ついでにチュートリアルについての記事はdeprecated的な文言を先頭に付けました。試してないですが多分色々動かないところがあると思います。( ◜◡‾)) Pony を取り巻く環境の変化 Main君爆誕 今年の5月ごろPonyのマスコットキャラクターであるMain君が生まれました。goで言うところのgopherポジションだと思います。 Introducing Main, the Pony Mascot. 最初は( ◜◡‾)???となったんですが、しばらく眺めていると謎の良さみが深まります。slackのemojiに
Apache Kafka Meetup Japan #1 at Yahoo! JAPAN - connpass Kafkaを使った マイクロサービス基盤 part2 +運用して起きたトラブル集 from matsu_chara www.slideshare.net ザクザクとした発表になりましたが、これからKafkaを導入しようとか今導入してますという人たちにとって役立つ情報になると良いなと思っています。 RAIDについては、カーネルパニックにしちゃえば良いのではという意見も頂き色々進捗しそうです。 Brokerのヘルスチェックと組み合わせてやりたい・・メトリクスの可視化もしたい・・。 Scala研修テキストも公開されているので、 今回のも含めて、お仕事でやっていることが大体外部に公開できていることになりました。 こういう感じでオープンに仕事できるというのは良いことですね₍₍ (ง´・_・
www.amazon.co.jp を読みました。(2015/12/24発売) 全体を通してJava8とScala版のコードが併記されているので賞味としてはもう少し短くなりそうです。 この本では、akkaを使った並行処理だけでなくakka-remoteを使った分散システムの作成にも取り組みます。 ただ分散システムの難しいところに触れるというよりは、さらっとakka-remote, akka-clusterの使い方を触れるという感じになるので 初めてakka使う人でも楽に読めるはずです。 簡単な所からはじめつつ、 リアクティブマニフェストで言われている4つの性質(Responsive, Elastic, Resilient, Message Driven)が大事ですよとか 分散コンピューティングの8つの嘘(ネットワークの信頼性、レイテンシの存在、帯域の有限性、...)を胸に刻みましょうとか ム
ScalaにはHaskellのようなShowやEqをderivingしてくれる機能は無いんですか?と質問をしたところ Typelevel.scala | Deriving Type Class Instancesを紹介してもらったのでものは試しとやってみることにしました。 本題に入る前に、このページ中のコードで使っているbuild.sbtを貼っておきます。 name := "deriving" version := "1.0" scalaVersion := "2.11.6" resolvers ++= Seq( Resolver.sonatypeRepo("releases") ) libraryDependencies ++= Seq( "com.chuusai" %% "shapeless" % "2.0.0" ) HListについて とつとつと進めていたのですが、 唐突にHList
歌舞伎座.tech#9「異種プログラミング言語格闘勉強会」 - connpass で発表しました。 オープンな勉強会で発表したのは初めてだったので胃に穴が空きそうでしたが、なんとか乗り越えられました・・死にそう・・・(◞‸◟) ponyの知名度がちょっとでも上がれば幸いです。 Pony concurrency built into the type system from matsu_chara www.slideshare.net erlangのメッセージパッシングは全てデータコピーが発生すると表現したところがありましたが、誤りでした。 http://www.ponylang.org/papers/fast-cheap.pdfのイントロから引用したのですが、もう少し調べたほうが良かったですね。(論文に書いてあるからといって安心してはいけない的な教訓・・)*1 erlangでは特定のバイト
この記事の結論 globalなExecutionContextではブロックする処理をblockingで包むとスレッド数が勝手に増えるから空きスレッドが無くて実行できないといったことを防げる。 ExecutionContext.fromExecutorService(new ForkJoinPool(100)) で生成されるThreadはBlockContextトレイトを継承してないのでblockingを使ってもスレッド数を増やした方が良いという情報がスケジューラに伝わらない。 akkaのdispatcherをExecutionContextとして使うとBlockContext付きのForkJoinPoolを簡単に作れる。 ExecutionContext.fromExecutorServiceでもForkJoinPoolのコンストラクタに自前定義したThreadFactoryを渡すようにす
某会社の某アカウントシステムで使われているという継続モナドコントローラーですが、 今までいまいちよくわかっていなかったのですが友達に教えてもらってなるほど!と思ったので書き記します。 ActionCont 継続モナドコントローラー(ActionCont)については以下の記事で解説されています。 なぜPlayのコントローラで継続モナドを使うと便利なのか? PlayFramework - 継続モナドを使ってWebアプリケーションのコントローラーを自由自在に組み立てる - Qiita 本記事では「継続 = 何か残りの処理が呼べるやつ」という雑かつ不正確な認識でもActionCont便利じゃん!使ってみよ!と感じられることを目指すので、なんとなくの概要が頭に入っていればよい(はず)です。(なので、ActionContのメリットなどがもうわかってる人にとっては当たり前じゃん?みたいな内容です) Sc
前回Javaのマルチスレッドについて勉強して、辛すぎる(∩´﹏`∩)となったので、akkaを勉強するぞ―!と思っていたのですが、気になる資料を見つけました。 並行処理の統一モデルへの動向 コンピュータ業界はオブジェクト指向を基に関数型言語に移行する動きにあります。 更に並行処理はマルチスレッドから、Actorモデルに移行しようとしています。 Actorの利点だけがクローズアップされて、全て解決のような風潮があります。 そこで、Actor, Agent, CSPについて調べてみました。 _人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人_ > Actorの利点だけがクローズアップされて、全て解決のような風潮があります。 <  ̄YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY ̄ Actorだけで満足し
本の感想を書くことによりいい感じにブログネタを切らさないようにする生活(´・_・`) だいぶ前から読んでいた本をついに読み終わりました。 https://www.amazon.co.jp/Java%E4%B8%A6%E8%A1%8C%E5%87%A6%E7%90%86%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E2%80%95%E3%81%9D%E3%81%AE%E3%80%8C%E5%9F%BA%E7%9B%A4%E3%80%8D%E3%81%A8%E3%80%8C%E6%9C%80%E6%96%B0API%E3%80%8D%E3%82%92%E7%A9%B6%E3%82%81%E3%82%8B%E2%80%95-Brian-Goetz/dp/4797337206 Scalaだとakkaとかあって、アク
Freeモナド、難しいですよね(´・ω・`) ということで今回は、Freeモナドの「Freeの部分だけを味わっちゃう」コースを用意しました。 つまりFreeモナドではなくてFreeマグマ(マグマについては後述)とかFreeモノイドとかを見て、何となくFreeなんちゃかがどういう物なのか感じてみようということです。 全編、Free, but not as in beer or speech - Dan Piponiをフルにパク参考にしています。 もとはHaskellですが分かりやすい図が一杯載っているので、ぜひそちらも一緒に見てみてください。 マグマ マグマというのは、ざっくり言うと、「群から逆元を取り去った「モノイドから単位元を取り去った「半群から結合法則を取り去った「もの」」」」がマグマです。 もはや何も残っていないんじゃないかと思いますが、「とりあえず何か一つ足し算的な演算が定義されて
次のページ
このページを最初にブックマークしてみませんか?
『だいたいよくわからないブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く