タグ

programmingに関するR2Mのブックマーク (126)

  • Unit of Workパターンで永続化とトランザクションを制御する

    PHPカンファレンス沖縄2023 Track B での発表資料です。

    Unit of Workパターンで永続化とトランザクションを制御する
  • 「YAMLの本来の使い方」を仕様から読み取ってみる | Wantedly Engineer Blog

    YAMLは「便利なJSON」として使われることが多い一方、その複雑性から落とし穴も多く、しばしば批判の対象になります。 なぜYAMLはそこまで複雑なのでしょうか? その背景のひとつは、来のYAMLがJSONとは大きく異なる目的意識で作られているからです。 稿ではYAML specに従う形でYAMLのコンセプトを解説することを目指します。残念ながら、ここに書かれているYAMLの思想は実際には実用されているとは言い難いですし、これらの背景を理解しても「YAMLは複雑だ」という事実がひっくり返ることはないでしょう。それでも、YAMLの複雑さの源泉を体系的に理解し、YAMLとほどほどの距離感で付き合う助けにはなるのではないかと思います。 この記事ではこういう話をしますYAMLはJSONとは独立に、異なる目的で生まれた野心的な仕様であるアンカーやタグなどの強力な構文は、これらの目的を満たすために

    「YAMLの本来の使い方」を仕様から読み取ってみる | Wantedly Engineer Blog
  • 徐々に高度になるリングバッファの話 - Software Transactional Memo

    リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

    徐々に高度になるリングバッファの話 - Software Transactional Memo
  • 最近 Fitbit つけて散歩してるので CircleCI + Pixela で見えるようにしてみた - Mitsuyuki.Shiiba

    歩数で草を生やしてみたのだー。これで散歩の楽しみが増えたなー やってること やってることはシンプルで、こう↓ FitbitAPI で歩数を取得 Pixela に記録 というスクリプトをつくって CircleCI で定期的に実行 Fitbit? 最近 Fitbit Sense というスマートウォッチをつけて散歩してる www.fitbit.com 会社の福利厚生で健康のための補助があるので、それを利用して手に入れたのだ。散歩やジョギングをしたら勝手に記録されてるので便利。睡眠のログも取られてるので面白い Pixela? Pixela は日々の活動を記録して見えるようにしてくれる API サービス。いちばん最初に貼った画像みたいに GitHub の草を生やすやつみたいにしてくれる。操作が全部 API 経由なのも楽しい pixe.la せっかく散歩してるから せっかく散歩してるから Fit

  • コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み

    Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。植山氏は、制作中のリンカである「mold」について発表しました。全2回。前半は、リンカの概要について話しました。 LLVMのリンカ「lld」オリジナルの作者 植山類氏:植山類です。今僕が作っているmoldというリンカについて発表します。 今回の発表の概要です。リンカが何かを知っている人はそんなにたくさんいないと思うので、まず説明します。次に、「mold」のポイントは速いことなのですが、速いと何がうれしいのかを説明します。そのあと、どれくらい速いのかを説明した上で、どう実現されているのか、概要を紹介します。詳細になると何時間あっても終わらないので、かなりハイレベルな話をします。 自己紹介のスライドを入れていませんが、僕はリンカを何度か作ったことがあって、LLVMのlld

    コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み
    R2M
    R2M 2022/01/06
    「僕はリンカを何度か作ったことがあって」わお
  • 第9章 速習yacc

    概要 パーサとスキャナ プログラム言語のパーサの書きかたは昔からしつこく研究されてきており、 かなりしっかりした定石がある。よほど変な(または曖昧な)文法でない 限り、定石にのっていけば解決できるものだ。 まず最底辺には文字列を単語(トークンとも言う)の列に切り出す部 分がある。これをスキャナ(scanner)とかレクサ(lexer)と言 う。日語で言うと字句解析器だが、言いにくいのでスキャナと呼ぼう。 スキャナというものが出てくる根底にはそもそも「単語の区切りには空白ある でしょ」という常識がある。そして実際にたいていのプログラミング 言語はそういう仕様になっている。そのほうが楽だからだ。 例えば古いFortranでは空白が意味を持たなかった。つまり空白を入れても 単語区切りとは限らないし、変数の途中で何の前触れもなく空白を挿入したり することもできた。ところが解析が恐ろしく面倒なもの

  • 書評:並行プログラミング入門 - Software Transactional Memo

    TL;DR 並行処理を実装する人のこれからのスタンダードになる一冊。買い。 並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ 作者:高野 祐輝 オライリージャパン Amazon 買ったら思いの外早く届いたのでパラパラと読み始めたら一気に読み終えてしまった。 総評 敢えて雑な喩え方をするなら The Art of Multiprocessor Programming (通称TAoMP) の内容を薄めてRustやアセンブラや計算モデルを足したようなだった。 日語の書籍としてはかなり珍しくWait-Free, Lock-Free, Obstruction-Freeの違いなどを適切に論じており、TTAS Lock, MCS Lock, TL2といった日語では希少な情報が書かれているレアなである。これらに付いて論じている日語のは知る限り (TAoMPと昔僕

    書評:並行プログラミング入門 - Software Transactional Memo
    R2M
    R2M 2021/08/22
    細かい事の部分も中々。キャッシュコヒーレントトラフィックまでは意識したことなかったな
  • 860+ Free Online Programming & Computer Science Courses You Can Start This New Year

    Twelve years ago, universities like Stanford and MIT opened up free online courses to the public. Today, over 1,200 schools around the world have created thousands of free online courses. To welcome the new year, I’ve compiled this list of 860+ such free online courses that you can start right now. For this, I leveraged Class Central’s database of over 100,000 online courses. When available, I've

    860+ Free Online Programming & Computer Science Courses You Can Start This New Year
  • Writing a storage engine in Rust: Writing a persistent BTree (Part 1)

    As part of a recent personal journey to better understand databases and better learn Rust, I have recently took on the project of writing a simple key-value storage engine. Crazy, right? Lets get started! B-Trees vs LSM TreesThe first thing one must think of when writing a key-value storage engine is -”How should I store my data so that I can perform reads and writes efficiently?”; The two most co

    Writing a storage engine in Rust: Writing a persistent BTree (Part 1)
  • 明日から使える実践エラーハンドリング

    class: center, middle # 明日から使える<br/><strong>実践</strong><br/>エラーハンドリング Scala関西Summit 2018 11/10 --- class: left, middle ## 自己紹介 * 中村 学(Nakamura Manabu) * [@gakuzzzz](https://twitter.com/gakuzzzz) * Tech to Value 代表取締役 * Opt Technologies 技術顧問 <img src="../images/opt_logo_1.jpg" alt="Opt Technologies" width="450" style="margin-left: 0px" /> * F-CODE CTO <img src="../images/f-code_logo.png" alt="f-cod

  • AST explorer

    An online AST explorer.

  • 4歳娘「パパ、具体的な名前をつけないで?」 - Qiita

    ↓新作もよろしくやで! ジェネリクスをもう少しだけ使いこなす。 コロナウィルス対策でリモートワークしてみたらReduxVuexのメリットが分かった 36歳ザコーダーの休日 ワイ「何やこのコード、全然動かへんやん」 ワイ「怖いな~怖いな~…なんか嫌だなあ~」 よめ太郎「(何で自分が書いたコード見て稲川淳二みたいに怯えとんねん・・・)」 よめ太郎「(そんな鳥肌立つようなクソコード書いてんのかいな・・・)」 娘(4歳)「ねぇ、パパ」 ワイ「なんや、娘ちゃん」 娘「ちょっと、作ってほしい関数があるの」 ワイ「またかいな」 ワイ「娘ちゃんはホンマに関数が大好きやなぁ」 ワイ「しゃあない、パパはプログラミング苦手やけど、頑張って作ったるわ」 娘「ありがとう、パパ」 今回の要件 ワイ「ほんで、今回はどんな関数を作ればええんや?」 娘「えっとね」 娘「'あ'という文字列を渡したら」 娘「['あ', 'あ

    4歳娘「パパ、具体的な名前をつけないで?」 - Qiita
    R2M
    R2M 2020/03/19
    「パパは犬にマイドッグって名前をつけるの?」ドッグミートなのでセーフ!
  • 良いコードの書き方 - Qiita

    概要 チームによる継続的開発を前提としたコーディングのガイドライン。 特定の言語を対象としたものではないが、主に静的型付けのオブジェクト指向言語を想定している。 サンプルコードは別段の定めがなければSwiftで記載。 ガイドラインの目的 生産性を高め、メンテナンスコストを下げる バグが生まれづらくする 開発メンバー(特に新規参加者)がコードを理解しやすくする 初心者プログラマー教育 内容の説明 タイトルの頭についた【数字】は重要度。 高いほどシステムに与える影響が大きいが、低いものの方が影響が小さく改修しやすいものが多い。 【5】変数のスコープを小さくする 変わり得る値は複雑さを生み誤解やバグに繋がるため、プログラムは変数が少ないほど問題が生まれづらい。 プログラミングの大原則として、変数は必要最低限を心がけ、むやみに増やさないようにする。 また、変数はスコープや寿命が大きいほど悪影響が

    良いコードの書き方 - Qiita
  • 【サーバーレス】18,570本のブログの形態素分析をやってみた | DevelopersIO

    こんにちは!コンサルティング部のキムです。 私は韓国で昔から「晴れ男」によく呼ばれましたけど、東京来てからはあまり晴れた日が少なかった気がします。 ですが、直近の天気は良さすぎて毎日ハイパーになっています。さすがに東京の空は綺麗ですね!(韓国の空は微細ホコリのせいで綺麗な日が少ないです) あ、「晴れ男」や「晴れ女」という表現は韓国語ではないものですが、面白いし、とても良い表現だと思います :D さて、今日は先日小規模で試してみた「Developers.IO ブログで日語の辞書を作ってみた」の内容をDevelopersIOブログの全体の規模で実装してみましたので、そのお話をしたいと思いました。 さすがにある程度の規模では小規模とは異なり、考えすべきなことがたくさんありました。こんなに簡単な作業(1つのLambda関数実行)を大規模で実装しながら私がハマったこと・わかったことを記事にて纏め

    【サーバーレス】18,570本のブログの形態素分析をやってみた | DevelopersIO
  • コードの可読性についてのプレゼンテーション紹介 vol. 1: "導入と原則" 編

    はじめに こんにちは。コミュニケーションアプリ「LINE」の Android クライアントチームの石川です。 先日、コードの可読性についてのプレゼンテーション (https://speakerdeck.com/munetoshi/code-readability) を公開しました。 今後、このプレゼンテーションについてのちょっとした解説を、ブログ上で不定期に連載していきます。 今回は、このプレゼンテーションの概要と、最初の章 "導入と原則" についての解説を行います。 このプレゼンテーションについて このプレゼンテーションは、コードの可読性を向上するためのアイディアをまとめたもので、以下の8つの章からなります。 導入と原則: 可読性の高いコードの重要性、プログラミング原則 命名: 名前の示す内容、文法、語の選択 コメント: ドキュメンテーション、インラインコメント 状態: 状態遷移の管理

    コードの可読性についてのプレゼンテーション紹介 vol. 1: "導入と原則" 編
  • コーディング面接対策のために解きたいLeetCode 60問

    自分がコーディング面接対策のために解いてよかった LeetCode の問題をコンセプトごとにまとめました。カバーするコンセプトは LinkedList Stack Heap, PriorityQueue HashMap Graph, BFS, DFS Tree, BT, BST Sort Dynamic Programming Binary search Recursion Sliding window Greedy + Backtracking です。 これらの問題が 30 分以内に実装できれば面接の準備は整ったと言っていいと思います。Easy と Medium で問題は構成されてます。進捗を管理するためにGoogle Spreadsheetを用意しました。コピペしてご自由にお使いください。 これらの問題は、LeetCode のリスト機能でも公開されています。クローンすれば自分がすでにど

    コーディング面接対策のために解きたいLeetCode 60問
  • RFC 2094 (non-lexical lifetime) の非公式訳 | ubnt-intrepid's blog

    記事は Rust Internal Advent Calendar 2017 第1日目の記事です. 今年の 9/30 に採択された non-lexical lifetimes の RFC である RFC 2094 の非公式訳です. Feature Name: (fill me in with a unique ident, my_awesome_feature)Start Date: 2017-08-02RFC PR: https://github.com/rust-lang/rfcs/pull/2094Rust Issue: https://github.com/rust-lang/rust/issues/44928概要Rust の借用システムにおける,ノンレキシカル・ライフタイム (レキシカルスコープではなく制御フローグラフに基づくライフタイム)対応への拡張. RFC では,この新

  • Programming WebAssembly with Rust — The Book!! – Kevin Hoffman – Medium

    Rust and WebAssemblyThose of you who follow my rantings and ravings on Twitter may have noticed a trend lately. I’ve been retweeting and posting a bit about WebAssembly, in addition to my usual programming language posts. I’ve also been hinting at the idea that I may or may not be working on a top secret project beneath my secret island lair in Northern Connecticut. At long last, the Interagency C

    Programming WebAssembly with Rust — The Book!! – Kevin Hoffman – Medium
  • 30代から始めるwebフロントエンド入門 - Speaker Deck

    Transcript 30代から始めるwebフロントエンド入門 コネヒトマルシェ #2〜webフロントエンド市〜 @itosho 1 ▪ 自己紹介 ・伊藤 翔 / @itosho  ・所属:コネヒト株式会社 / Supership株式会社 ・野球とアイドルが好きです。 ・最近のオススメ:sora tob sakana 先日メジャーデビュー ▪ 自己紹介 ・伊藤 翔 / @itosho  ・所属:コネヒト株式会社 / Supership株式会社 ・野球とアイドルが好きです。 ・最近のオススメ:sora tob sakana 先日メジャーデビュー ・主にサーバーサイドエンジニアをやっています。  ・よく書く言語:PHP / Ruby / Golang _人人人人人人人人人人人人人人_ > サーバーサイドエンジニア <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ 4 ▪ 今日話すこと

    30代から始めるwebフロントエンド入門 - Speaker Deck
  • [Unite 2018]誘導ミサイルはどうやって作るのか? 基礎からCompute Shaderによる実装まで

    [Unite 2018]誘導ミサイルはどうやって作るのか? 基礎からCompute Shaderによる実装まで 2018年5月7日から3日間にわたって東京国際フォーラムで「Unite Tokyo 2018」が開催された。初日となる7日は基調講演だけだったが,8日と9日が終日専門セッションとなっていた。ここでは8日のユニティ・テクノロジーズ・ジャパン エンジニアの安原祐二氏の講演を紹介してみよう。 安原氏はかつてPlayStationで3Dスペースシューティング「オメガブースト」を作った人だ。……と聞いて「つまり神プログラマですね」と理解してもらえるかどうかは昨今では微妙だが,初代PlayStationの限界を超えるようなゲームを作った人であり,毎年Uniteでは「非力なマシンで軽々動いてるけどこれ当にUnity?」と言いたくなるようなデモを披露している。 今年の演題は「誘導ミサイル完全マ

    [Unite 2018]誘導ミサイルはどうやって作るのか? 基礎からCompute Shaderによる実装まで