シングルスレッドやマルチプロセスなどの並行処理の話について、 すぐに忘れてしまいます。 どうしたらもっと知識が定着すると思いますか? 色んなライブラリーでAPIサーバーを立ててパフォーマンスの差などを見てみたりするのですが、結局よくわかりませんでした。 フレームワークに頼って実装していると、そのフレームワークが内部でどの様な仕組みで並列または並行処理しているのかが理解できず、ただ使っているだけの状態になり得ます。 フレームワークの設計者からすると、プログラマがそれらを気にしなくても利用できるというのがプロジェクトのゴールでもあるので、それはそれで正しいのですが「並列処理」や「並行処理」を理解したいというモチベーションでは逆にそれが邪魔をしてしまうかもしれません。 並行処理や並列処理を学ぶのであれば、API サーバ等といった物ではなく、コード片で学び始めるのが良いと思います。 例えば Rub
本書では、小さなOSをゼロから少しずつ作っていきます。 OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基本機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 本書では素朴なコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。 「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要がありま
Swiss Army knife for developers A desktop app that helps developers in daily tasks Open source and cross-platform DevToys is free, open source and is privacy-focused on Windows, macOS and Linux! No need to use many untruthful websites to do simple tasks with your data. It comes with a set of 30 default offline tools, including: Json to Yaml and Yaml to Json converter Base64 Text & Image converter
$300/month for the first 12 months$360/month for the next 12 months$420/month for the next 12 months$480/month for the next 12 months$540/month for the next 12 months5% annual increase onward
インメモリデータストアを現代風に再実装したら? 高速なデータアクセスのためのインメモリデータストアとしては、RedisやMemcachedが有名です。ただし、これらは10年以上前に設計されており、Memcachedに至っては、2003年と約20年前です。 長い年月を経て、機能追加や最適化が進む一方で、どうしても設計の古さも目立ってきます。 その課題を解決すべく開発されたのがDragonfly です。 全ての操作がアトミック 高スループットでもミリ秒未満のスループット を目指し、Redis/Memcached互換なAPIを提供します。 Redisの25倍のスループットを誇り、1インスタンスで百万オーダーのQPSをさばけます。 開発者が実施したAWS EC2上のベンチマークによると、Dragonflyは本家RedisやRedisのマルチスレッドforkであるKeyDBよりも圧倒的なスループット
2018年6月1日に株式会社メルペイに入社して、4年が過ぎました。入社当時は、定年が60歳と聞いていたので、1年半の勤務だと思っていましたが、実際の定年は65歳であり定年まであと2年半です。 ソフトウェアエンジニアにとって重要な能力と(私は考えるが)、身に付けるのが難しいのが現実だと、この4年間で再認識したのは次の三つです。 開発の最初にAPI仕様をきちんと書けるソフトウェアエンジニアは少ない テストファースト開発を行っているソフトウェアエンジニアは少ないか、いない Tech Blogなどの執筆で、読み手を意識して、分かりやすい文章を書く、ソフトウェアエンジニアは少ない API仕様については、このブログでも何度か書いています(「API仕様を書く」)。テストファースト開発についても、「テストファースト開発」を書いています。分かりやすい文章については何も書いていないですが、「伝わる技術文書の書
はじめに お世話になった方々への謝辞 参考にしたブログ・その作者の方への謝辞 私のスペック なぜ米国大学院を志したのか まとまった時間でCS、エンジニアリングの勉強をしたかった 英語で学ぶという経験をしたかった アメリカで働いてみたかった ソフトウェア工学修士とは何か 計算機科学修士とソフトウェア工学修士の違い 大学院の選び方 専攻 何を専攻するか 研究するか?しないか? 授業料 おわりに Appendix: そのほか参考になる記事 はじめに こんにちは、一昨年からアメリカの大学院への入学を目指し勉強してきました。 結果、アメリカのピッツバーグにあるカーネギーメロン大学のソフトウェア工学修士課程(Master of Software Engineering)から合格通知をいただき、今年の8月からアメリカに行くことになりました。 合格通知をいただいたのは昨年の3月なのですが、仕事や家庭の事情
4年前に会社の福利厚生を使ってスタンフォードの授業を取ってみたら面白く、 働きながらでも続けられそうだなという実感を得たので、 2年後、受験を経てジョージア工科大学にリモートで通い始めた。 そして先日、ジョージア工科大学からコンピュータサイエンス修士号をいただくことができた。 画像の学位記は卒業式イベント用の非公式のもので、1~2か月すると Masterとちゃんと書いてある本物が来るらしい *1 。 After 1 year and 9 months, I graduated from Georgia Tech and got a master's degree in computer science. It was intense to be a student while working full-time, but I learned a lot. pic.twitter.com/J
はじめに# データビジュアライゼーションとは,数値や文章などのデータに基づいた情報を,人間が理解しやすい形に視覚化する技術を指します. このサイトは,文化庁のメディア芸術データベース・ラボ(MADB Lab)で公開されている四大少年誌( 週刊少年サンデー, 週刊少年ジャンプ, 週刊少年チャンピオン, 週刊少年マガジン )のデータを用いて,データビジュアライゼーションの学習を手助けすることを目指しています. データビジュアライゼーション(に限らずデータ分析全般)の学習において重要なのは,分析対象のデータに興味を持てるかどうかです. 本書では約47年の四大少年誌のマンガ作品データを採用しているため,モチベーションを保ちつつ学習を進めることが可能です.
追記 (2022 5/29): サーバ代をケチるべくVercelに移行しました。動いていたソースコードは ココ に置いてあります。 あなたの予想に反して、このページが見えているでしょうか?このWebサイトは自作OSのKerlaが提供しています。 これは自作OS Advent Calendar 2021の23日目の記事です。 自作OS「Kerla」の紹介 Kerla(かーら)はRustで書かれたLinux ABI互換モノリシックカーネルです。今年の春頃から作り始め、DropbearというSSHサーバが動作する程度には基本的なUNIXの機能が実装されています。具体的には、ファイルの読み書きやUDP/TCPソケット、fork/exec、シグナル、擬似端末といったものです。 カーネル実装の雰囲気を軽く紹介すると、Kerlaでは以下のようにシステムコールが実装されています。 /// write(2)
この記事は何? タイトルの通り、2021年の統計検定1級試験を受験し統計数理に合格してきたので、記憶が鮮明なうちに勉強してきた内容をメモしておこうと思います。ちなみに、統計検定は私にとって今回が(級によらず)初めての受験でした。 対策・勉強した内容以外の、当日の受験体験記は以前に公開していますので、そちらもご興味あればぜひ併せてご覧ください。 taro-masuda.hatenablog.com 免責 あくまで個人的な方法論であるため、本記事の情報が必ずしも今後の試験においてそのまま有効であるとは限りませんのでご注意ください。損失等をこうむられた場合であっても、筆者は一切の責任を負いかねます。 TL;DR 久保川先生の教科書『現代数理統計学の基礎』の2~8章の章末問題((*)印は飛ばす) + 統計数理は過去問を仕上げました。過去問は1ヶ月以上前からやるのがお勧めです。 現代数理統計学の基礎
ゲームエンジンや3Dソフトウェアを利用して高度な表現ができるこの時代でも、プリミティブな描画や動き、アルゴリズムから学べることは多い。それらをJavaScriptで書くクリエイティブコーディングという形で学べる手引書が本書となる。
"Locality is efficiency, Efficiency is power, Power is performance, Performance is King", Bill Dally マルチスレッディングとは? CPUとGPUのマルチスレッディングの違いをブログにまとめていたけど例によって誰も興味なさそう— arutema47 (@arutema47) 2021年8月16日 つぶやいたら読みたい方が多そうだったので完成させました。 マルチスレッディングとはメモリ遅延を隠蔽しスループットを上げるハードウェアのテクニックです。 ただCPUとGPUで使われ方がかなり異なるため、その違いについて考えてみる記事です。 (SIMDについて並列プログラミングの観点から触れるべきでしたが、時間無いマルチスレッディングに注目するため初版では省きました。) 本記事について 本記事はCPUとG
10年以上前の昔話であり、そんなこともあったのねという話。あるいはエンタープライズサポートってそんなことやってるのねという話。 カーネルメモリダンプLinuxカーネルをエンタープライズに使おうとした企業、富士通やIBM、日立といった企業がこぞってカーネルに入れようとした機能がカーネルがパニックした時に「なぜコケたのか」調べるための機能であった。その最たるものがメモリダンプだった。この機能はカーネルパニックが起きた後のメモリをディスクに吐き出す。この吐き出されたメモリイメージをダンプと呼び、これをデバッガに食わせて原因調査をする。 カーネルデベロッパはパニックが起きたら再現条件を探して理詰めでバグを探すのが得意だが、顧客先でパニックが起きたら「再現させてくれ」とは中々言えないのでこの機能はサポートには重要だった。そして、ダンプ調査の技を持つエンジニアも居た。 地雷型メモリ破壊パニック色々と調
僕はコードを読むのは得意な方だけど、それが過ぎてコードを書かなくてもシニアソフトウェア開発者になってしまった。実はコードをちゃんと読めるソフトウェア開発者って希少価値が高いのではないか、と思ったので自分がどんな感じでシニアになったのかをまとめてみた。似た様な人の参考になれば幸いだ。 同意。僕は未だ書く方はほとんど機会なく成果もないけど、コードを読み尽くして、負荷試験や本番で挙動を把握し続け、メトリクスでとことん確かめていった結果、Sr. Engineer になれた。 https://t.co/KXtMdEaRr8 — Ryosuke Iwanaga (@riywo) April 16, 2021 コードを書かなくてもシニアソフトウェア開発者になれた 僕は今 Amazon の Sr. Systems Development Engineer という職種で働いている。いわゆるソフトウェア開発職
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く