blogudagawaのブックマーク (35)

  • linuxカーネル4.1のプロセススケジューラ(ドラフト) - Qiita

    はじめに 記事は昔書いたlinuxカーネル4.1のプロセススケジューラの実装について途中まで書いたけど諸事情により二年くらい放置していたドラフトです。死蔵するのももったいないので公開しておきます。今現在のカーネルに比べてずいぶんと変わっていること、未稿の部分がかなりあること、誤字脱字や「てにをは」は気にしていないこと、などにご注意ください。 このドキュメントを積極的に更新する予定は(少なくともこの場では)いまのところありません。 ある瞬間にCPU1で動作できる処理は1つだけです。この限りあるCPU資源をシステムに存在する プロセス間で分配するのがプロセススケジューラです。プロセススケジューラは大きく分けて 次のことをします。 全プロセスの間で平等にCPUを分配する スループットの最大化 レイテンシ(応答時間、ターンアラウンドタイム)の最短化 個々のコアのことであり、かつ、ハイパースレッド

    linuxカーネル4.1のプロセススケジューラ(ドラフト) - Qiita
    blogudagawa
    blogudagawa 2019/05/07
    開発者のメモは非常に参考になる
  • 岡田を切る技術 - Qiita

    これはとある回顧録 何度も諦めかけましたが、数年の歳月を経て遂に岡田を切る技術が一旦の完成へと至りました。その技術を巡る奮闘の歴史と成果について、ここに記録を残していきたいと思います。 画像時代 まずは「切る」という動作が何を指すかを明確にしておきます。 厳密な定義というよりは、切った感を得るために必要そうなふるまいとして定義します。 平面上のある領域が、任意の直線を境界として分割されること 分割された領域は物理法則に準じてふるまうこと 要するに気持ちよく岡田を切ることができれば目標は無事達成です。 物理エンジン 切った感を高めるためにはやはり「物理法則」に準じたふるまいが欲しくなります。つまりブラウザ上で動く物理エンジンが必要です。 世の中にはフルスクラッチで物理エンジンを作れる人間と作れない人間が居ると思われますが、残念ながら私は後者でした。勝ち目の薄い勝負は避け、素直に巨人の方にすが

    岡田を切る技術 - Qiita
    blogudagawa
    blogudagawa 2019/05/07
    ここまで内容を煮詰めてアウトプットするのすごい、題材から見るとネタ記事だが技術記事としては立派なもの
  • ワイ「スリープソート? 寝ている間に小人さんがソートしてくれるんでっか?」 - Qiita

    社長「やめ太郎くん」 ワイ「なんでっか社長」 社長「画期的なソートアルゴリズムをJavaScriptで書いたから見てくれや」 ワイ「ソートアルゴリズムちゅうのは配列を数字が小さい順に並べ替えてくれるやつでんな」 ワイ「(どうせバブルソートとかやろ)」 社長「これや」 function sleep(duration) { return new Promise(resolve => setTimeout(resolve, duration)); } function sleepSort(arr) { const result = []; return Promise.all( arr.map(elm => sleep(elm * 100).then(() => result.push(elm))) ).then(() => result); } sleepSort([1, 3, 6, 2, 1

    ワイ「スリープソート? 寝ている間に小人さんがソートしてくれるんでっか?」 - Qiita
    blogudagawa
    blogudagawa 2019/05/07
    時間差による順位ぎめということだから普通の徒競走なんかもある種のスリープソートになるのかな
  • GitHub - attractivechaos/klib: A standalone and lightweight C library

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - attractivechaos/klib: A standalone and lightweight C library
  • DBマイグレーションを行う技術 - 発明のための再発明

    データベースのスキーマを変更するということはデータをいじる行為であり、最悪の場合データが消えます。 最悪の事態にはならなくとも、思わぬ場所に影響が起きたり、データの不整合が発生する恐怖と戦う必要が有ります。 テストや切り戻しを含めて計画し、大きな変更の場合にはダウンタイムまで考慮する必要があります。 そこで、RDBを対象にデータベースの変更を行う方法について書いていきます。 スキーマ変更 まずは、スキーマ変更について、 カラムを追加する 一番簡単で、影響も少ない変更です。 気をつけるのは、 ソースコードの変更よりも前にスキーマ変更を完了させる (長時間)ロックがかからない方法を選ぶ といったところでしょうか。 大抵の場合は、スキーマの変更とソースコードの変更の順番にさえ気をつければ問題は発生しません。 カラム名を変更する 「ALTER」でさくっと変えたくなりますが、ソースコードの変更が同時

    DBマイグレーションを行う技術 - 発明のための再発明
  • 【python・ネタ】exit()ではなくexitで終了できるexitコマンドを作る - 静かなる名辞

    概要 むしゃくしゃして書いた。冷静に考えたら疲れてた。 問題点 >>> exit Use exit() or Ctrl-Z plus Return to exit ウザい! exitで落ちるようにしたい! 実装 簡単に書けます。5行くらい。 import sys class Exit: def __repr__(self): sys.exit() exit = Exit() __repr__を悪用します。あとは、適当な方法で起動時に読み込まれるようにしておきます。 参考: pythonインタプリタ起動時に良く使うmoduleをimportする - Qiita IPython起動時にいつも使うモジュールをimportする設定 - Qiita 【Python学習】Python起動時に自動でスクリプトを実行する方法 – SECAT exitするとそのまま落ちるようになります。 まとめ 実用するな

    【python・ネタ】exit()ではなくexitで終了できるexitコマンドを作る - 静かなる名辞
    blogudagawa
    blogudagawa 2019/05/06
    そしてnode.jsに移ると.exitになっててムキー!となる
  • 競技プログラミングで使う有名グラフアルゴリズムまとめ

    0. はじめに AtCoderなどでは、グラフを扱った問題が多く出るが、その度に一から実装していると時間が掛かりすぎてしまうため、有名なものをあらかじめ持っておく必要がありそう。そこで、Pythonを用いて、ダイクストラ法、ベルマンフォード法、プリム法、クラスカル法、ワーシャルフロイド法を実装した。 コメント、意見等ある方は是非! お待ちしてます! 1. ダイクストラ法 1.1. ダイクストラ法(defaultdictで実装) defaultdictで実装すると、リストで実装するよりも、ノード数$N$が大きい際には高速に動作する。ただし、経路復元の関数は、うまく書けなかった......。 (2019/7/6 追記)結局できました。1.1.1. を参照してください。 import collections import heapq class Dijkstra: def __init__(se

    競技プログラミングで使う有名グラフアルゴリズムまとめ
  • 【HTML5入門】HTMLとは?できることは?事例もご紹介

    はじめに HTMLは普段目にする通販サイトやまとめサイト、企業のウェブサイトなどで欠かせないものですが、どういう意味や役割で使われているか知っていますか?今回はその「HTML」について徹底解説をします。 HTMLCSSJavaScriptといったプログラミング言語と合わせてウェブサイトを作るのに用いられますが、個人の好き勝手に自由に使って良いわけではありません。各プログラミング言語の役割に応じて適切に使い分ける必要があります。 HTMLはWebサイトの骨を作るとても重要なものです。ブラウザを通して「人」に情報を伝えるだけでなく、検索エンジンや音声読み上げソフトのような「コンピュータ」にも同じく情報を伝えることが可能です。 さまざまなルールを知り、ポイントをおさえることで理想的なウェブサイトを作りましょう。CSSJavaScriptとの違いや、見落とされがちな注意点なども解説しますので

    【HTML5入門】HTMLとは?できることは?事例もご紹介
    blogudagawa
    blogudagawa 2019/05/06
    このJAM25っつーサイト、不自然なホッテント入り
  • 新しいWebの双方向通信 "WebTransport" について - ASnoKaze blog

    関連記事 WebTransport over QUICのサンプルサーバを試してみる - ASnoKaze blog WebTransport over HTTP/2 の仕様について - ASnoKaze blog WebTransport over QUIC について - ASnoKaze blog WebTransportという新しい双方向通信フレームワークの議論が始まっている。 GoogleのPeter Thatcher氏らによって、W3C WICGにプロポーザルが投げられています。 discourse.wicg.io WebTransportは、WebSocketのようなAPIをもち、QUICやHTTP/3上で多重化されたストリームを利用し、ヘッドオブラインブロックのない通信を行えるようにするというのがモチベーションのようです。(実際に使用する"トランスポート"はプラガブルな設計にな

    新しいWebの双方向通信 "WebTransport" について - ASnoKaze blog
  • 中学生ハルキのエンジニア体験記 - Money Forward Developers Blog

    こんにちは。ハルキです。 4月から中学二年生になりました。 僕はこの春休み、パパが働いているマネーフォワードに職業体験インターンという形でお世話になりました。 プログラミングを始めたきっかけは、Scratchという子供向けのプログラミング学習サービスです。 小学校3年生の時にどハマりし、そこから6年生まで夢中になってやり込みました。 ただ、やはり子供向けなので最低限のことしかできず卒業。 その頃、マネーフォワードの方が開催してくれたバーベキューで酒井さんと出会い、そこでPythonを教わりました。 (酒井さんはビジネスマンなのにプログラミングもできちゃうすごい人なのです!) そこから、Chatworkで酒井さんとコミュニケーションを取るようになり、プログラミングで悩んだことがあったら酒井さんに報告して、バグがあれば直し方を教わるようになりました。 酒井さんは面白い記事を紹介してくれたり、そ

    中学生ハルキのエンジニア体験記 - Money Forward Developers Blog
    blogudagawa
    blogudagawa 2019/04/26
    うへぇ
  • テクノロジの本質は民主化|深津 貴之 (fladdict)

    よくクライアントや投資先の人から、「未来予想はどうすればいいの?」と聞かれるのでメモ。 まず未来予測の前提として、テクノロジの方向性について。個人的には、「テクノロジの向かう方向は、質的には民主化である」と考えている。 テクノロジの方向性 ・貴族の営みが、庶民でもできるように ・天才しかできないことが、凡人でもできるようにつまり「一部の特権階級に独占されていた何かが、大衆層に解放されること」だ。基的にテクノロジは、この方向に進化をする。 上流階級の権限が、テクノロジによって民主化される未来予測をするときは、VRとかAIとかブロックチェーンとか、そういった表層のトレンドは、いったん忘れよう。まずは「特権的に囲い込まれていたもののなかで、次に庶民に解放されるのは何だろう」と考えるのがよい。 直近でくるテクノロジの特徴 ・現在は特権階級だけがアクセスできる ・庶民は欲しいが手に入らない ・希

    テクノロジの本質は民主化|深津 貴之 (fladdict)
    blogudagawa
    blogudagawa 2019/04/26
    何かをコモディティ化する上での強力な武器ということよね
  • 「自分だけのキャラを作りたい」 AIで美少女を「無限生成」、若きオタクエンジニアの挑戦

    「自分だけのキャラを作りたい」 AIで美少女を「無限生成」、若きオタクエンジニアの挑戦(1/4 ページ) 女の子の瞳、髪形、表情が変化し、何体ものキャラクターが生まれていく――Preferred Networksが深層学習を活用し、アニメキャラクターを自動生成するサービス「Crypko」(クリプコ)を提供している。開発したのは、中国出身の若きエンジニア。「自分の想像通りのキャラクターを形にできるサービスを作りたい」と意気込む2人に開発の舞台裏を聞いた。 女の子の瞳、髪形、表情が万華鏡のように目まぐるしく変化し、何体ものキャラクターが生まれていく――AI人工知能)ベンチャーのPreferred Networks(PFN、東京都千代田区)が、アニメやゲームの制作会社向けにそんな技術の提供を始めた。深層学習(ディープラーニング)を活用してアニメキャラクターを自動生成するサービス「Crypko」

    「自分だけのキャラを作りたい」 AIで美少女を「無限生成」、若きオタクエンジニアの挑戦
  • ruby の開発リポジトリを git にした, Asakusa.rb 第511回 - HsbtDiary(2019-04-23)

    ruby の開発リポジトリを git にした RubyKaigi 2019 の開催中に @k0kubun 君が「発表が終わったら会期中に残りのタスクは全部やりますよ」と勢いのあるやる気をみせていたので、準備は広範囲にちまちま進めていた、という Ruby のリポジトリの Git 以降に必要な自分に割り振られているものをバンバン直していた。 https://www.ruby-lang.org/en/news/2019/04/23/move-to-git-from-svn/ 細かい部分は色々あるんだけど、大体は以下のようなチームプレイで進めていった。 @hsbt が現状をヒヤリングしたり、サーバーにログインして調べつつ、2019年の今風の開発でバンバン開発できるように構成を変更したり github に切り出したり、なんかやりたいという人にバンバン権限を渡していった。具体的にはサーバーにログイ

    ruby の開発リポジトリを git にした, Asakusa.rb 第511回 - HsbtDiary(2019-04-23)
    blogudagawa
    blogudagawa 2019/04/26
    gccのsvnリポジトリのgit化が難航してたけどうまくいったんやろか
  • 無料で“Google 翻訳”より高精度! “みらい翻訳”のお試し翻訳が便利/TOEIC960点レベルのビジネスマンと同等の翻訳精度【やじうまの杜】

    無料で“Google 翻訳”より高精度! “みらい翻訳”のお試し翻訳が便利/TOEIC960点レベルのビジネスマンと同等の翻訳精度【やじうまの杜】
  • Qiitaで記事を公開するときに気を付けるべきマナーについて 〜無断でネットや書籍の内容を丸写しするのはやめよう〜 - Qiita

    はじめに 僕は「プロを目指す人のためのRuby入門」(通称チェリー)というRubyの入門書の著者です。 書は発売以来、非常に多くのみなさんに読んでいただき、筆者として大変喜んでいます。 しかし、その一方でQiitaを見ていると、「これ、明らかにチェリーの説明文やサンプルコードを参考にして書いてますよね?」という記事をよく見かけます。 中にはきちんとマナーを守って記事を公開されている方もおられますが、残念なことに僕から見て「悪意がないのはわかるけど、そのスタイルで公開されるのはちょっと困る」と感じるケースがかなり多いです。 この記事では、書籍やネット上の情報を参考にしてQiitaに記事を公開する際の最低限のマナーについて説明します。 また、この記事の内容はQiitaのみならず、自分のブログに記事を書くときにも意識すべき内容になります。 備考:「そもそもこの記事ってガイドライン違反じゃな

    Qiitaで記事を公開するときに気を付けるべきマナーについて 〜無断でネットや書籍の内容を丸写しするのはやめよう〜 - Qiita
    blogudagawa
    blogudagawa 2019/04/25
    内容が無くてもアウトプットすることをやたらすすめることの弊害だと思う。どんな情報でも自分の中で醸成することが必要
  • ITエンジニア向けのトレンド情報 | Forkwell Press (フォークウェルプレス)

    ITエンジニアの開発トレンドやキャリア情報・技術勉強会のレポート記事を紹介するメディアです。| 株式会社grooves 運営

    ITエンジニア向けのトレンド情報 | Forkwell Press (フォークウェルプレス)
    blogudagawa
    blogudagawa 2019/04/25
    レガシーってか外注で裁量が無い立場だったのが一番つらかったのでは
  • 「死ぬほど辛かったら逃げ回ればいい」イースタンユース吉野寿が示す“尊厳と自由” | 朝日新聞デジタルマガジン&[and]

    電通の過労死問題をきっかけに、個人と社会の関わり方が注目されるようになった。私は前職でうつ病になった。一番ひどいときは毎日死ぬことを考えていた。4~5年間治療を続けたが結局会社を辞めた。どうにか社会復帰はできたが、現在も抗うつ剤を飲んでいるし、夜は睡眠導入剤がないと眠れない。だからこの過労死問題が他人事に思えなかった。時に死を招くほどの労働を求める社会のあり方に疑問を感じていた。 ちょうどその頃だった。2017年9月、イースタンユースがニューアルバム「SONGentoJIYU」を発表した。個人と社会の関わり方について歌ったこの作品を聴いて、私は作詞作曲を担当している吉野寿に話を聞きたくなった。彼の中に、先の疑問を解決するヒントがあるような気がしたからだ。 まずは簡単にイースタンユースの説明をしておこう。1980年代後半に札幌で結成された。最初期はイギリスやアメリカのパンクバンドに影響を受け

    「死ぬほど辛かったら逃げ回ればいい」イースタンユース吉野寿が示す“尊厳と自由” | 朝日新聞デジタルマガジン&[and]
  • eastern youth、新アルバム『SONGentoJIYU』を予約受付開始&新ベーシスト村岡ゆか単独インタヴュー

    eastern youth / SONGentoJIYU 【配信形態】 ALAC、FLAC、WAV(24bit/48kHz) / AAC >>>ハイレゾとは? 【配信価格】 単曲 250円(税込) / アルバム 1,900円(税込) 【収録曲】 1. ソンゲントジユウ 2. 明けない夜はないのだ 3. ちっぽけだって、なんだっていいから、歌を俺にくれ 4. なんでもない 5. 同調回路 6. 黄昏の駅前には何かある 7. 口笛吹いて駆け抜けろ 8. 旅の空 9. おとぎの国 10. おれたち 2017年9月27日(水)より配信スタート! 配信日に先駆けて予約販売もスタート。 予約注文に関してはこちら eastern youthの3人がOTOTOYに!? 2017年9月27日(水)に新アルバム『SONGentoJIYU』をリリースするEastern youthを9月のマンスリー・アーティスト

    eastern youth、新アルバム『SONGentoJIYU』を予約受付開始&新ベーシスト村岡ゆか単独インタヴュー
  • 深夜だから個人的なプログラミング学習方法を書くよ! - Qiita

    現在午前2時。深夜の変なテンションになったので、寝る前にプログラミング学習について思うところを書きます。 現在プログラミング学習をしている方、これからしようかなと思っている方の役にたてば幸いです。 なお、筆者はトレーニング事業でWeb系のコーディングやプログラミングを教えていた経験があります。 プログラミングに必要な能力は理系じゃなくて文系 すいません、見出し長かったので削りました。正しくは「現代において主要な高級言語のプログラミングに必要な能力は高度なコンピューターサイエンス等の理系能力じゃなくて、現実の事象を正しく言語化できる文系能力」です。 もちろん、気象計算とかめっちゃ専門的な処理やCG周りとかだと数学とかの知識も必要になるんですが、共通して必要なのはこの言語化できる能力です。 これは外国語の学習と非常に似たものがあります。おそらく、皆さん基的な英語は理解できると思います。レスト

    深夜だから個人的なプログラミング学習方法を書くよ! - Qiita
    blogudagawa
    blogudagawa 2019/04/24
    コメントから書くのはよくやる
  • 第2章 PostgreSQLの内部構造―プロセスやメモリの流れ、特徴的な機能のしくみ | gihyo.jp

    図1 主なプロセスの流れ PostgreSQLは、ライタがデータファイルやインデックスファイルをディスクに更新しています。ただし、その更新は、コミットに合わせてリアルタイムで行われているわけではありません。性能向上のため、チェックポイントと呼ばれる更新タイミングが発生するまでは、更新があっても共有バッファにデータを貯めておきます。この貯められたデータをダーティページと呼びます。そしてチェックポイントのタイミングで、チェックポインタがダーティページをディスクに書き込みます。 そのため、共有バッファに更新情報を貯めている間に障害が起きると、ダーティーページを失う可能性があります。それを防ぐために、共有バッファ中のデータに対してどのような更新を行ったかの情報を保存しているのがWALです。WALはコミットのタイミングでWALライタが記録しています。クラッシュリカバリが必要になったときは、WALの中

    第2章 PostgreSQLの内部構造―プロセスやメモリの流れ、特徴的な機能のしくみ | gihyo.jp