並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 12991件

新着順 人気順

Writeの検索結果41 - 80 件 / 12991件

  • git gc の仕組みを原理から理解してサイズを 136MB → 7.2MB(95%減)まで削減した時の勉強メモ

    個人用メモです。 「git gcってあんまし容量減らないよなぁ」 と思ったのが動機です。調べたけどパッと腑に落ちる記事がなかったので「自分で git のソースコード見た方がいいな」と急にモチベ発動してグワっと勉強しました。またついでに歴史改変の方法も調べたのですが、公式で既に WARNING が出てるほど非推奨化されてるfilter-branchを使用してる記事が多かったので、2021 年現在で多分一番推奨されてるfilter-repoを使ってやる方法もまとめました。 ちなみに容量減らしても高速化するかというとそこまで単純ではないです。そもそも減らさなくても partial clone で blob オブジェクトを必要最低限に指定して昔の blob をデフォルトで持ってこないようにしたり(--no-checkoutと併用するとより効果有る)、その後本当に自分が必要なやつだけ sparse-

      git gc の仕組みを原理から理解してサイズを 136MB → 7.2MB(95%減)まで削減した時の勉強メモ
    • 「マネージャーは1時間単位でタスクにあたるが、エンジニアはまとまった半日単位の時間がある方が良い」話について - SaaSベンチャーで働くエンタープライズ部長のブログ

      タイトルは、ポール・グレアム氏(Yコンビネーター)の「メイカー(作り手)のスケジュールとマネージャーのスケジュール」(Maker's Schedule, Manager's Schedule) からの引用です。 マネージャーは多くのミーティングをこなすなど、1時間単位でタスクにあたりますが、エンジニア(プログラマ)は最低でもまとまった半日単位の時間を作業に必要とする、と書かれています。 paulgraham.com 日本語訳 note.com エンジニア上がりのプロダクトマネージャーとして開発もプロダクトマネジメントも並行してこなしてきたのですが、意思決定のためのミーティングスケジュール、自身が開発を行うためのスケジュールをやりくりするバランスに腐心していました。 自身のタイムマネジメントで特に感じた点として、ミーティングとミーティングの間に1時間が3コマある時の開発生産性と、3時間まとま

        「マネージャーは1時間単位でタスクにあたるが、エンジニアはまとまった半日単位の時間がある方が良い」話について - SaaSベンチャーで働くエンタープライズ部長のブログ
      • 無料でIFTTTやZapierっぽく全自動連携できる「n8n」を自サーバー上に構築してみた

        複数のウェブサービスを連携し、定型作業を自動化してくれるサービスはIFTTTやZapierが有名ですが、特定のサービス以外は使えなかったり、有料プランでしか使用できない機能があったりします。オープンソースで使える自動化サービス「n8n」は無料で利用でき、自社製ソフトのような他の自動化サービスでは未対応のサービスも自動化できるとのことなので、実際に使ってみました。 n8n.io - Workflow Automation https://n8n.io/ まずはn8nのホームページにアクセスします。 ホームページ下部へと進むとインストール方法が記載されていました。今回はWindows 10の機能の一つであるWSL上のUbuntuにn8nをインストールします。 n8nを動作させるにはNode.jsが必要なので、記事作成時点で最新の推奨バージョンのNode.jsをインストールしておきます。 Nod

          無料でIFTTTやZapierっぽく全自動連携できる「n8n」を自サーバー上に構築してみた
        • Kindle蔵書一覧を取得する方法 - Qiita

          Kindleの蔵書が1万冊を超えてきて、そろそろ蔵書管理したくなり、 蔵書一覧を取得する方法を調べたので、まとめておく。 概要 蔵書一覧の取得方法としては大きく2つあり、 コンテンツと端末の管理ページからスクレイピングする方法と、 Kindle Cloud Readerが使っているWeb SQL Databaseのクライアント側のDBからそのまま取得する方法がある。 後者のほうが簡単なため、ここでは後者の方法について記載する。 (前者の方法が知りたい方は、https://qiita.com/yshr1982/items/072e8b44d456f6d9358bなどを参考にしてください。) // 追記 上記の2つの方法以外のやり方を情報共有してもらったので追記。 @error_401さんから頂いた情報によると Kindle for PCを利用している場合、本の情報が入ったXMLが生成されるた

            Kindle蔵書一覧を取得する方法 - Qiita
          • スナック「jQuery」 - Qiita

            ……あら、いらっしゃい。 若いお客さんなんて珍しいわねえ。昔は、この街一番の人気店でね、若いお客さんもたくさんいたんだけどさ。最近はめっきり減っちゃってね。 何飲む? ……水割り? わかったわ。 じゃあさ、ちょっとだけ、あたしの昔話に付き合ってもらってもいいかしら。 What is jQuery? この店――『jQuery』がオープンしたのって、2006年なんだけどさ。その頃の、この街の様子って覚えてる? ……知らないか。あなた、まだ若いもんね。その頃って、そりゃあヒドイもんだったのよ。 その頃、シェア率トップだったブラウザって、もちろんInternet Explorerだったんだけど。当時はバージョン7が登場したばかりで、あの悪名高きIE6もまだまだ主流だったの。 他のブラウザは、Safariがバージョン3がMacとWindowsに公開されていた頃で、Firefoxはまだバージョン2.0

              スナック「jQuery」 - Qiita
            • ChatGPT便利すぎる!!

              Appleがゴミみたいなレビューで会社のアプリをリジェクトしてきた。 「Specifically, your description includes Android references.」 だって。 アプリの説明にはAndroidなんて単語は全くでてこないのに! 念の為アプリの中身も調べたが、確かにAndroidという単語は文字列としてアプリに含まれるが、それはユーザーには見えないところにあるので問題ないはずだった。 この野郎Apple、適当な審査しやがって。 そう思って返信してやろうと思ったけどうまく書けない。 直接的な物言いは出来るけど、ちゃんとビジネスマナーに沿って書かないとリジェクトいじめされそうだし。 そこでChatGPTで聞いてみた。 「Please write a reply to Apple, who wrongly rejected my company's iOS

                ChatGPT便利すぎる!!
              • すべてのプログラマーが試すべき挑戦的なプロジェクト

                Austin Z. Henleyのブログより。 更新12/14: この投稿は、Hacker NewsとRedditに関する多くの議論に拍車をかけました。 提案されたプロジェクトのいくつかを収集し、この投稿の最後にリストに入れました。 私はよくサイドプロジェクトを始めたいが、何を作るべきか分からない多くの学生やプロの開発者と話します。以下は、私に多くを教えてくれたいくつかのソフトウェアプロジェクトです。実際、それらは何度も作ることができ、毎回新しいことを学ぶことができるので素晴らしいです。従って、何を作るのか分からない場合、または新しいプログラミング言語またはフレームワークを学びたい場合は、私は次のいずれかから始めます。 テキストエディタ 2Dゲーム - スペースインベーダー コンパイラ - Tiny BASIC ミニ・オペレーティング・システム スプレッドシート (難しい!) ビデオゲーム

                  すべてのプログラマーが試すべき挑戦的なプロジェクト
                • メルカリを退職してロンドンのMetaに転職します 〜 外資Big Tech転職活動体験記|松岡玲音|note

                  この度、3年半に渡って勤めたメルカリを2022年5月に退職し、この夏からロンドンのMetaにSenior Machine Learning Engineerとして転職することが決まりました!わいわい✌('ω')。その過程で、東京およびロンドンのBig Tech合計5社を数ヶ月かけて対策をし面接に臨んだので、そこで得たノウハウをここで共有できたらと思います。面接を受ける際にNDA(Non Disclosure Agreement)にサインするので具体的な面接の詳細には触れられませんが、伝えられる範囲でできる限り記述しています。 また、Metaから最終的に提示されたオファー条件を最後に記載してあります。なにぶん日本においては給与の話は燃えやすいということもあり、その部分だけ某日本の有名エンジニアに倣って有料にしてあるのですが、ご興味のある方は是非ご購入いただければと思います(1コイン分の金額で

                    メルカリを退職してロンドンのMetaに転職します 〜 外資Big Tech転職活動体験記|松岡玲音|note
                  • BIOS更新で文鎮化してしまったThinkPad X13 Gen2を自力で直したメモ

                    ThinkPadユーザならお馴染みのLenovo Vantageから、「BIOSとIntel MEの更新があるので、今すぐ適用してね!」とポップアップが出たため実行したところ、フラッシュが終わったと思しき後から起動しなくなりました。 それを直した時のメモ。 環境メモ 修理方法 EEPROMの特定とROM Programmerの選定 CH341Aについて チップへの接続方法 2023/1/1 14:00 ICパッケージについての追記 オリジナルのバックアップ ファームウェアの解析 ダウンロードデータとの比較 What's next? Write時の罠 本当に正しく書けたのか? 再書き込み しかし…まだ罠はあった 成功か?……ん…? 晴れて成功! 固有データの復元は? 参考文献 環境メモ マシンThinkPad X13 Gen2 Type Number20WK-CTO1WW 2021/06製

                      BIOS更新で文鎮化してしまったThinkPad X13 Gen2を自力で直したメモ
                    • この個人サイトは自作OSで動いています

                      追記 (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)

                        この個人サイトは自作OSで動いています
                      • Command Line Interface Guidelines

                        Contents Command Line Interface Guidelines An open-source guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day. Authors Aanand Prasad Engineer at Squarespace, co-creator of Docker Compose. @aanandprasad Ben Firshman Co-creator Replicate, co-creator of Docker Compose. @bfirsh Carl Tashian Offroad Engineer at Smallstep, first e

                          Command Line Interface Guidelines
                        • Linux ファイルシステムを理解したい - Qiita

                          ]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-1062.1.2.el7.x86_64 #1 SMP Mon Sep 30 14:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ファイルシステムとは何か? データを管理/操作するための仕組み。 ファイルとディレクトリで構成されていて、/ を基点とした木構造になっている。 # ls -l / 合計 56 lrwxrwxrwx. 1 root root 7 8月 25 01:17 bin -> usr/bin dr-xr-xr-x. 6 root root 4096 9月 29 15:51 boot drwxr-xr-x. 19

                            Linux ファイルシステムを理解したい - Qiita
                          • Linux システムコール 徹底入門

                            Linux システムコールについて調べたことをまとめる。システムコールの仕組みを理解すると、 OS とアプリケーションがどのように連携して動いているのかを理解できるようになります。 システムコールは CPU に依存する処理が多いため、 x86_64 に絞ります。 検証環境]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) ]# uname -a Linux localhost.localdomain 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ]# cat /proc/cpuinfo | head processor : 0 vendor_id : GenuineInte

                              Linux システムコール 徹底入門
                            • 【Tips】Macを快適に使いこなすために、最初に設定すべき33の項目 - iPhone Mania

                              Macを買ったら最初に設定すべき33の項目を、米メディア9to5Macが動画にまとめているので、ご紹介します。普段からMacを使っている方も、知っておくと便利です。 簡単な設定でMacを便利に使おう 9to5Macが取り上げた、新しいMacを便利に使うためのテクニックは、簡単な設定の変更で実現できるものが中心です。 操作関連 ▼1. トラックパッドのスピードを調整する ▼2. 「タップでクリック」を有効にする ▼3. 3本指のドラッグ ▼4. マウスカーソルの移動速度を変える ▼5. 右クリックに相当する副ボタンを設定する ▼6. 指1本でSafariのページ間を移動 ▼7. Apple Watchでロック解除 ▼8. 画面の四隅にカーソルを合わせて機能を呼び出す「ホットコーナー」 ▼9. コントロール間のフォーカス移動をキーボードで操作 システム設定 ▼10. Macの名前を変える ▼1

                                【Tips】Macを快適に使いこなすために、最初に設定すべき33の項目 - iPhone Mania
                              • 復習効果がすごい。メモ術「ツェッテルカステン」×「付箋ノート」が勉強内容の整理に最適だった - STUDY HACKER(スタディーハッカー)|社会人の勉強法&英語学習

                                もしも、社会人のあなたが勉強に対して苦手意識があり、それでいて学び直しの必要性を強く感じているならば、少しでも楽しく、少しでも効率よく、そして、できるだけ負担の少ない勉強法を求めるのではないでしょうか。 そこで、大人になっても “勉強” という言葉に拒否感を覚える筆者が、すごいメモ術「ツェッテルカステン」と「付箋ノート」を合体させ、スキマ時間で楽しく勉強する方法を探ってみました。 【ライタープロフィール】 STUDY HACKER 編集部 「STUDY HACKER」は、これからの学びを考える、勉強法のハッキングメディアです。「STUDY SMART」をコンセプトに、2014年のサイトオープン以後、効率的な勉強法 / 記憶に残るノート術 / 脳科学に基づく学習テクニック / 身になる読書術 / 文章術 / 思考法など、勉強・仕事に必要な知識やスキルをより合理的に身につけるためのヒントを、多

                                  復習効果がすごい。メモ術「ツェッテルカステン」×「付箋ノート」が勉強内容の整理に最適だった - STUDY HACKER(スタディーハッカー)|社会人の勉強法&英語学習
                                • 無職に飽きたので人工衛星のソフトウェアをRustで作っています - Write and Run

                                  KOBA789 です。 今年2月末に前職を退職してからここ半年ほど無職をしていたのですが、いよいよもって無職に飽きてきたので人工衛星を作ることにしました。 実は9月頭から働いています。 株式会社アークエッジ・スペース 次の職場は株式会社アークエッジ・スペースです。東大の研究室発のスタートアップで、衛星バス開発を得意としている会社です。 衛星バスというのは、言ってしまえば人工衛星の OS に相当するものです。 OS に喩えましたが、もちろんそれは単なるソフトウェアではなく物理的な実体を伴うハードウェアとその中で動作するソフトウェアの集合体です。 ちなみにユーザーランドに相当する部分はミッション機器と呼ばれます。 まだまだ人数の少ない会社ですが、業界の土地勘や人脈に富んだ CEO や、人工衛星開発の経験があるエンジニアが揃っており、スタートアップとしては超実力派です。 ArkEdge Spac

                                    無職に飽きたので人工衛星のソフトウェアをRustで作っています - Write and Run
                                  • 30分で完全理解するTransformerの世界

                                    はじめに 初めまして。ZENKIGENデータサイエンスチームのはまなすです。正式な所属はDeNAデータ本部AI技術開発部なのですが[1]、業務委託という形で今年度から深層学習系の開発等に携わっています。 深層学習界隈では、2017年に衝撃的なタイトル(Attention Is All You Need)の論文が発表されてから早5年半、元出自の機械翻訳タスクを大きく越えて、Transformer関連の技術が様々な領域で用いられる汎用アーキテクチャとして目覚ましく発展し続けています。 今回はそんなTransformerが現時点までにどのように活用されてきたか、また、どのように工夫されてきたかをざっくりと俯瞰し、流れをおさらいする目的の記事になります。本記事の大枠は、2021年時点でのサーベイ論文である A Survey of Transformers に倣いつつ、適宜、2023年2月上旬現在ま

                                      30分で完全理解するTransformerの世界
                                    • プログラマーがドキュメントを書かない理由

                                      この記事は、著者の許可を得て配信しています。 Why programmers don’t write documentation 最近ではずっとコードのドキュメンテーションに関連した記事を書いていたので、当然、私のMediumのおすすめ記事には「開発者がドキュメントを書かない本当の理由」という記事が表示されるようになりました。この記事では、ドキュメントを書くための優れたツールがないことが、ソフトウェアエンジニアが自分の作業や判断をドキュメンテーションする意欲を失わせる最大の原因について書いています。 私は普段、特定の記事を批判したりはしませんが、この記事には怒りを覚えました。このライターは図解ツールについていくつかメリットに関して述べてはいますが、全体的に誤解を招くような内容になっており、この重要な問題をより分かりにくくさせています。2つの図解ツールを比較して、どちらも不十分なツールである

                                        プログラマーがドキュメントを書かない理由
                                      • 徐々に高度になるリングバッファの話 - Software Transactional Memo

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

                                          徐々に高度になるリングバッファの話 - Software Transactional Memo
                                        • 令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io

                                          Intro CSRF という古の攻撃がある。この攻撃を「古(いにしえ)」のものにすることができたプラットフォームの進化の背景を、「Cookie が SameSite Lax by Default になったからだ」という解説を見ることがある。 確かに、現実的にそれによって攻撃の成立は難しくなり、救われているサービスもある。しかし、それはプラットフォームが用意した対策の本質から言うと、解釈が少しずれていると言えるだろう。 今回は、「CSRF がどうして成立していたのか」を振り返ることで、本当にプラットフォームに足りていなかったものと、それを補っていった経緯、本当にすべき対策は何であるかを解説していく。 結果として見えてくるのは、今サービスを実装する上での「ベース」(not ベスト)となるプラクティスだと筆者は考えている。 CSRF 成立の条件 例えば、攻撃者が用意した attack.examp

                                            令和時代の API 実装のベースプラクティスと CSRF 対策 | blog.jxck.io
                                          • ヤフー全社横断「Webパフォーマンス改善」の取り組み (Core Web Vitalsスコアの向上)

                                            ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、第11代黒帯(ヤフー内のスキル任命制度/Webフロントエンド領域)の浜田(@narirow)です。今回はヤフー全社で実施してきた、「Webパフォーマンス改善プロジェクト」についてお話ししたいと思います。 長期に渡る活動の結果、多くのサービスのWebパフォーマンスが徐々に向上しています。この記事では、取り組みの経緯や、多くのサービス分析を通してわかったコスパの良い施策(比較的簡単に実施できてスコアも上がりやすい施策)などをご紹介します。 全社横断でWebパフォーマンス改善を実施する経緯 さかのぼること2021年、Googleから以下のような案内がありました。 「Core Web VitalsがGoogle検索の検索順位に

                                              ヤフー全社横断「Webパフォーマンス改善」の取り組み (Core Web Vitalsスコアの向上)
                                            • GAFAコーディング面接こんな感じでした(システムデザイン編) - yambe2002’s diary

                                              前回の続きです。今回はシステムデザイン編。 実体験にもとづいて、なるべく雰囲気を再現しようとしてますが ・問題はすべて自作 ・人物、会話等はすべてフィクション なのでよろしくお願いします。実際の会話はNDAにより公開できません。 同じくらいの難易度の問題を、こんなレベルでやり取りして、最終的にはお祈りされました。 ~前回までのあらすじ~ GAFAのコーディング面接1回目を何とか乗り切ったyambe2002だが、休む間もなく次の面接が始まって辛い。 出題 ぼく「………」 面接官「あれ?yambe2002?大丈夫?」 ぼ「…はっ!ごめんちょっとボーっとしちゃった。大丈夫大丈夫。えーと、何だっけ?」 面「あー、分かる分かる!面接の連続で疲れるよねー!ぼくの時もそうだったよ」 ぼ「ははは…」 面「じゃもう一回言うね。ぼくからの問題はね、ミュージシャン名で検索すると、関係するコンサートの情報を表示す

                                                GAFAコーディング面接こんな感じでした(システムデザイン編) - yambe2002’s diary
                                              • ChatGPTに自社データを組み込んで新しい検索体験を模索してみました|masa_kazama

                                                イントロChatGPTやBing、NotionAIなどの大規模自然言語モデル(LLM)を活用したサービスが注目を集めています。対話、要約、翻訳、アイデア生成などの多様なタスクにおいて、とても性能が高いです。ただ、ChatGPTでは、ときどき嘘が混じっていたり、文献が捏造されたりすることがあります。 ChatGPTとの対話画面(結果の書籍は存在しない)それを防ぐために、BingやPerplexityでは、文献を引用した上で、なるべく嘘が紛れ込まない形で回答してくれます。 Perplexityでは引用もつけてくれるしかし、これらのAIは、Web上の公開されている一部のデータを元に学習しているので、公開されてないデータに対しては当然ながら、正しく回答できません。 そこで、この記事では、自社が保有しているデータをChatGPTに組み込んで、自社オリジナルのPerplexityのようなシステムを作る

                                                  ChatGPTに自社データを組み込んで新しい検索体験を模索してみました|masa_kazama
                                                • 最近のフロントエンドフレームワークに対する認識とお気持ちの整理 - console.lealog();

                                                  久しぶりに、いわゆるポエムを。 新規・運用ヘルプを問わず、受託や副業でよくフロントエンドをやってるWeb屋の見解、そして手札のお悩み。 この先、また技術選定する際なんかにも参考になるかと思ったので。 React 「いまフロントエンドやるなら最初に覚えるべき!」は、もう過去の話かなーと個人的には思ってる。 Reactは`UI = fn(state)`なのが良い!とか言われるけど、あなたが必要としてるのは`UI = Component(props)`かもよって。 一昔前までは、たしかにあらゆる面で頭一つ抜けてる印象はあったけど、今はそうでもないか、その差はだいぶ埋まってきてると思ってる。(もちろん先行者利益みたいなところで、エコシステムはまだまだ優位な差があるかもしれんけど、それもあまり実感できたことはないし、いまからはじめる人はそんなんで困らんやろうし) 原初の時代からReactな案件をそれ

                                                    最近のフロントエンドフレームワークに対する認識とお気持ちの整理 - console.lealog();
                                                  • Design Docs at Google

                                                    One of the key elements of Google's software engineering culture is the use of design docs for defining software designs. These are relatively informal documents that the primary author or authors of a software system or application create before they embark on the coding project. The design doc documents the high level implementation strategy and key design decisions with emphasis on the trade-of

                                                      Design Docs at Google
                                                    • 社内slackにVIPチャンネルを作った話 - Qiita

                                                      ABEJA Advent Calendarの1日目です。 はじめに 昨年はABEJA Platformに関するAdvent Calendarでしたが、今年はプラットフォームに限らず幅広い技術を扱おう、ということで縛りを作らずに様々な技術を紹介していきます。 さて、皆さん、社内でのコミュニケーションツールは何をお使いでしょうか。色々なツールがあると思いますが、Slackを使っている所が多いのではないかと思います。Slackはとても良いツールなのですが、使いこなす会社側にその運用ルールが委ねられています。中でも、DMやプライベートチャンネルでの秘密の会話による情報格差などが発生することが問題になり、オープンチャンネルに限定している会社も多いのではないでしょうか。しかしながら、オープンに会話をすれば、皆が平等かつ平和に会話ができるか?というと、全くそんなことはありません。オープンにすると下記のよ

                                                        社内slackにVIPチャンネルを作った話 - Qiita
                                                      • ゼロから作る時系列データベースエンジン

                                                        軽量な時系列データベースエンジンをスクラッチで開発する機会があったので、どのように実装したのかを必要知識の解説を交えながらまとめていきます。 実装はGo言語によるものですが、本記事のほとんどは言語非依存な内容となっています。 モチベーション 筆者は時系列データを扱うツールをいくつか開発しています。その中の一つであるAliは負荷テスト用のcliツールで、メトリクスをクライアント側でリアルタイム描画できるのが特徴です。リクエスト毎にレイテンシーなどの計測結果が際限なく書き込まれてくる中、同時に一定のクエリパフォーマンスが求められます。 これは言ってしまえば、簡易クエリ機能付きのpush型モニタリングシステムを単一ホストで実現するようなものです。 以前までの実装ではヒープ上の可変長配列にデータポイントを追加していくだけだったので、当然ながら時間の経過とともにメモリ使用量が増加していく問題を抱えて

                                                          ゼロから作る時系列データベースエンジン
                                                        • Linuxにおけるデバイスファイルの仕組み

                                                          Linuxにおけるデバイスファイルはデバイスをファイルという概念を通して扱えるようにしたものです。デバイスファイルは通常のファイルと同様に読み書きを行うことができます。しかし実際には、その読み書きはデバイスドライバを通じてデバイスの制御に変換されます。 この記事では、デバイスファイルへの読み書きがどのようにデバイスの制御に変換されるのかを説明します。デバイスファイルはデバイスドライバとファイルの2つのコンポーネントに依存したものであるので、最初にデバイスドライバ、次にファイルについて説明し、最後にデバイスファイルがどのようにデバイスドライバと結び付けられるかを解説します。 この記事の内容は主に詳解 Linuxカーネル 第3版及びhttps://github.com/torvalds/linux/tree/v6.1によります。 目次 デバイスドライバ デバイスドライバの実例 read_wri

                                                            Linuxにおけるデバイスファイルの仕組み
                                                          • The History of the URL | The Cloudflare Blog

                                                            On the 11th of January 1982 twenty-two computer scientists met to discuss an issue with ‘computer mail’ (now known as email). Attendees included the guy who would create Sun Microsystems, the guy who made Zork, the NTP guy, and the guy who convinced the government to pay for Unix. The problem was simple: there were 455 hosts on the ARPANET and the situation was getting out of control. This issue w

                                                              The History of the URL | The Cloudflare Blog
                                                            • きれいなコードを書けという話について - Software Transactional Memo

                                                              前回のブログから90日以上経ってしまったので広告が載ってしまったから短文でもアウトプットしておく。 プログラマとして仕事をしているとコードと向き合っている時間の9割以上は既存のコードを読んでいる、だから読みやすさは重要である、という言説は耳にタコができるほど誰もが言っている。 仕事で書かれるコードが誰のレビューも通ること無くマージされている現場は凄惨だが、自分より明らかに経験を積んだ人たちが何度もレビューを重ねたコードが読みやすいかというとそうとは限らない。良いコードが守るべきルールをすべて守っていても不可解なコードはあるし、どんなに読みやすいコードでも数千行の規模になってくるとやはり脳内からこぼれて一度に覚えておける範囲からはみ出る。 変数名や関数名をわかりやすくするとか不必要な技巧を凝らさないとかわかりやすい設計にするとか主観的な事を偉そうに語る本は山ほどあり、それらの本を崇める事は悪

                                                                きれいなコードを書けという話について - Software Transactional Memo
                                                              • ChatGPT4 本格RPG「チャット転生 〜 死んだはずの幼馴染が異世界で勇者になっていた件」(体験版)|深津 貴之 (fladdict)

                                                                Chat GPT用、チャットで異世界の幼馴染に現代知識を送りつけて無双させるゲームです。 以下ストーリーとプロンプトです。 ストーリー 突然、あなたのもとに数年前に死んだ幼馴染からメッセが届きました。なんと彼女は、異世界に転生して魔王と戦っていたのです。彼女はチート能力として、幼馴染の貴方とチャットする力を授かりました。 貴方はチャットで、現代の知識や技術を幼馴染に伝え、彼女を無双させ異世界を救ってください。貴方がどんな知識や技術を伝えるかで、異世界の運命が決まります。 ChatGPTのサイトからGPT-4を起動して、チャット欄に以下のプロンプトをコピペすると遊べます。 ver 0.4 As an AI Game Master, you'll guide "Chat Reincarnation: My Childhood Friend, Who Should Have Died, Beca

                                                                  ChatGPT4 本格RPG「チャット転生 〜 死んだはずの幼馴染が異世界で勇者になっていた件」(体験版)|深津 貴之 (fladdict)
                                                                • 【メモ】良いDesign Docs(Software Design Document)を書くためのリソース集

                                                                  自分が良い Design Docs(Software Design Document)を書くために、読んだ/参考になったリソース集 一覧 Design Docs とは Design Docs at Google デザインドック(Design Doc)について デザインドックで学ぶデザインドック 残業も減らせる!? 上級エンジニアになるための Design Doc 超入門 「Design Doc」って何なのか? What Is A Design Doc In Software Engineering? (full example) What is a Design Doc: Software Engineering Best Practice #1 https://github.com/kaiinui/note/blob/master/Design--Designdoc.md Googleの

                                                                    【メモ】良いDesign Docs(Software Design Document)を書くためのリソース集
                                                                  • IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場

                                                                    IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場 テキストから高度なイラストを生成するAIや、人間と自然な対話を可能にするAIが最近話題になっています。 この人間と自然な会話をするAIチャットの代表的なサービスであるChatGPTの派生サービス(Variant of ChatGPT)をVisual Studio CodeなどのIDEに統合し、開発中のコードについて「この関数のテストコードはどこ?」などと対話できる「qqbot」が登場しました。 開発したのはDan Robinson氏。 Introducing qqbot, a variant of ChatGPT that lives in your IDE. The cool thing about qqbot is that it k

                                                                      IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場
                                                                    • ユニットテストをGitHub CopilotとChatGPT使って書いてみたらやばかったです | DevelopersIO

                                                                      GitHub Copilotとの単体テストがやばい。ChatGPTが書いてくれるテストもすごい。もうこれらがない時代には戻れないような気がします。 こんにちは。AWS事業本部コンサルティング部に所属している今泉(@bun76235104)です。 みなさんユニットテスト書いてますか? 昨今AIがダミーデータを書いてくれたり、ユニットテストそのものを書いてくれたりと技術の進歩がすごいですね。 私はリファクタリングが好きですが、リファクタリングをする前に絶対に必要なもの。 そうテストですね。 今回私がテストを後回しにしてしまった以下のOSSについてGitHub CopilotとChatGPTのそれぞれの力を借りながら、テストを書いてみました ※ これは以前私が始めたプロジェクトであり、OSSとして公開されているので学習に使われても問題のないコードです。 なお、GitHub Copilotの料金や

                                                                        ユニットテストをGitHub CopilotとChatGPT使って書いてみたらやばかったです | DevelopersIO
                                                                      • pdfからtextを抜き出す試行錯誤のメモ|Kan Hatakeyama

                                                                        これは二段構えの構成を持っています。この二段構えを正確に検出し、テキストを理解することが望ましいです。 Unstructuredを使うPythonのライブラリであるUnstructuredを試してみましょう。 参考記事 導入は非常に簡単です。 pip install 'unstructured[pdf]' 実装も簡単です。 解析コード: from unstructured.partition.pdf import partition_pdf pdf_elements = partition_pdf("pdf/7_71_5.pdf") 表示コード: for structure in pdf_elements: print(structure) 結果: 残念ながら、2段組のカラムを正確に検出することはできませんでした。 Grobidを使うGrobidは、peS2oというオープンアクセス論文のコ

                                                                          pdfからtextを抜き出す試行錯誤のメモ|Kan Hatakeyama
                                                                        • リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得ら

                                                                          リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得られるということなのだと思うので、可能であればMVCCを採用したいのですが、あまり初学者向けの実装例も見当たらず、どうしたものかと悩んでおります。 SS2PL/S2PLとMVCCの実装の難易度・工数はどの程度違うものなのでしょうか? また、初めてリレーショナルデータベースシステムを開発する者

                                                                            リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得ら
                                                                          • 「いつかGitHubで働きたい」10年来の空想を現実にしたソフトウェアエンジニアの紆余曲折な人生 - Findy Engineer Lab

                                                                            長永健介(@kyanny)と申します。現在はGitHubで働いています。10年前、「いつかここで働きたい」と夢見た会社です。 私は子供の頃から「考えること」が好きでした。難しいこともくだらないことも、真面目に考えて自分なりの意見をまとめる癖がありました。成長するにつれて私の思考様式は洗練され、Webとブログに出会ったことで「書く」という手段に昇華されました。書くことで考えていることを言語化し、言語化した自分の考えを読みながらさらに考えを深める ── この活動を繰り返すことで、起こりうる問題に備えたり、問題を多角的に見つめて活路を見出してきました。 とりわけキャリアの選択において「(思考|志向)を言語化する」習慣が大いに役立ちました。この記事では私のキャリアにおけるいくつかの選択と、その時々で考えていたことについて紹介します。 望んでなかった「けものみち」を変えた日記の言葉 Shut the

                                                                              「いつかGitHubで働きたい」10年来の空想を現実にしたソフトウェアエンジニアの紆余曲折な人生 - Findy Engineer Lab
                                                                            • This is The Entire Computer Science Curriculum in 1000 YouTube Videos

                                                                              This is The Entire Computer Science Curriculum in 1000 YouTube Videos In this article, we are going to create an entire Computer Science curriculum using only YouTube videos. The Computer Science curriculum is going to cover every skill essential for a Computer Science Engineer that has expertise in Artificial Intelligence and its subfields, like: Machine Learning, Deep Learning, Computer Vision,

                                                                                This is The Entire Computer Science Curriculum in 1000 YouTube Videos
                                                                              • GitHubに日々の人生を記録(管理)する - 日記、じぶんリリースノート、簡易的な個人スクラムによるふりかえりなど - このすみノート

                                                                                年末年始に購入した手帳はうまく馴染めなかったので、しばらくの間Slackで日記を書いてました。 www.konosumi.net ただ、Slackで日記を書くのもしっくりこず、長続きしませんでした。 そこでやり方を変え、GitHubを使ってみることにしました。 実際に試してみたところ、思いの外感触が良かったです。 せっかくなので、ブログで概要を共有することにしました。 ベースとなる考え方 じぶんリリースノート よしたくさんの「じぶんRelease Notes」 てぃーびーさんの「冒険記録」 GaaTS (GitHub as a Text Storage) 個人スクラム GitHubに書いていること やりたいことと実績を記録する日記ファイル(日付.md) 大きな変化と出来事を記録する(CHANGELOG.md) 読書記録(READING.md) やりたいことのメモ(TODO.md) 注意事項

                                                                                  GitHubに日々の人生を記録(管理)する - 日記、じぶんリリースノート、簡易的な個人スクラムによるふりかえりなど - このすみノート
                                                                                • まだ使ってる?今は非推奨となったJavaScriptの書き方

                                                                                  2021年11月18日 JavaScript いつも何気なく使っていたコードをふと調べ直してみると、知らないうちに「Deprecated(非推奨)」と書かれている…なんてこともありますよね。今回はJavaScriptを書いていて出くわした非推奨となったものをいくつか紹介します。 ↑私が10年以上利用している会計ソフト! document.write 画面にテキストを表示する document.write 。JavaScriptの勉強を始めて最初に書いたコードがこれだったという方もいるのではないでしょうか?これはブラウザーのレンダリングに悪影響が出たり、DOMへの影響などを考慮して「強く非推奨」とされています。 これまでの記述例: document.write('やっほーい'); 解決策1:textContent や innerHTML を使う 代わりに文字列を書き換える textConte

                                                                                    まだ使ってる?今は非推奨となったJavaScriptの書き方