タグ

programmingに関するene0kcalのブックマーク (19)

  • TypeScript 本体のコードを読んでみよう

    みんなお世話になっている TypeScript のコードを読みたいと思ったことはないだろうか。読んだ。 一週間ぐらいかかった。完全に読み切ったとは言えないが、概要は掴んだ。 なかなかに複雑でドメイン知識を得るのが難しかったので、これから読む人向けに、登場人物や概念を整理して紹介したい。 読んだのは 2023/6/8 時点で git clone したコード。 最初に: 自分のゴール設定 複数ファイルにまたがった参照を、 TypeScript の Language Service が提供する findReferences() や findRenameLocations(), goToDefinitions() を使って、インクリメンタルに書き換えたかった。 Terser を使うと、今触ってるオブジェクトが何で、何のメンバを書き換えたかの情報が残らない。これを TypeScript のレイヤーで

    TypeScript 本体のコードを読んでみよう
  • JavaScript で CPU が Intel かどうかを判定する(ついでに JIT を検知する)

    先日、次のような Tweet を見かけました TIL I discovered that TensorFlow.js uses an interesting trick to sniff your CPU architecture in WebAssembly. pic.twitter.com/LVyywIM48I — Robert Knight (@robknight_) January 4, 2023 面白かったので、なぜこうなるのかの解説と、ついでにこのテクニックを使った JIT 検知方法などについて紹介します。 JavaScript における低レイヤーの扱い JavaScript においては、挙動が比較的しっかりと仕様に定められているために、環境による振る舞いの違いはあまり発生しません。しかし、低レイヤーに降りるほど振る舞いは実装依存になり、環境差が発生する余地が出てきます。 一番

  • 「1Byteが8bitに決まったワケ」についての長い話 まずは「バベッジの階差機関」から

    いつものようにヘロヘロと仕事をしていると、突如担当編集の松尾氏からMessengerで「これに対するちゃんとした回答を書けるのは大原さんだなということで、また歴史物をお願いしたく」という依頼が飛び込んできた。 いやちゃんとした回答も何も、上のTreeで出題されたSEライダー氏が正解を出されているわけですが、歴史的経緯というか、ここに至るまでの話というのが長い訳で、その辺りを少し説明してみたいと思う。 ちなみに出題に少しだけ違和感がある(なぜ10bitがキリがいいと思うのか?)のは、筆者もこっち側の人間だからかもしれない。 回答の前に、その根底にある2進数採用の経緯 そもそも非コンピュータ業界の方からすれば、2進数がベースという辺りから違和感を覚えるのではないかと思う。実際、世界最初の計算機(≠電子計算機)とされる「バベッジの階差機関」(写真1)にしても、世界最初の電子計算機(※1)であるE

    「1Byteが8bitに決まったワケ」についての長い話 まずは「バベッジの階差機関」から
    ene0kcal
    ene0kcal 2022/02/04
    つまり纏めると、歴史的に8bit以外も1Byteで扱うことはよくあったが、公的にISO/IEC_80000-13:2008にて定義された為、ということかな。
  • O'Reilly Online Learningで日本語の本を読む方法 - oinume journal

    O'ReillyのOnline Learning(旧O'Reilly Safari Books Online)は月額$49でオライリーのや動画などが見放題になるエンジニア向けのサブスクを提供している。以前は英語しか読めなかったが、いつからか日語のも読めるようになっていたのでメモ。 www.oreilly.com Sign Inして、左のメニューのSettingsをクリックするとLanguage Preferencesがあるので、ここでJapaneseにチェックを入れて下のUpdate Preferencesをクリックして保存する。 これでHomeに行き、例えばGraphQLで検索すると検索結果の画面でBooksのタブがあるのでこれを選択する。そうするとLanguageの選択ができるので、ここでJapaneseを選ぶと日語のだけに絞ることができる。(手っ取り早く検索結果を表示し

    O'Reilly Online Learningで日本語の本を読む方法 - oinume journal
  • こうすればプログラミング覚えられるよ【随時追記】

    プログラマじゃないけどプログラミング完全に理解した()おばさんが理解してる基礎知識書くよ。 (追記 この文章はプログラミングの勉強をしたいけどその周辺にある基礎知識になかなか触れる機会がない人向けに書きました。これらの基礎知識があると、困ったときに調べ方すら分からないという状況は回避しやすくなるはず) まずLinuxやUnix系OSの使い方。 ターミナル、いわゆる黒い窓からCUI(コマンドユーザーインターフェース)でコンピュータを使う方法を覚えよう。これは大学のコンピュータリテラシーで習った。MacOSXで復習すると捗った。(追記 すごく間が抜けてたけどMacOSXはUnix系OSです) まずはファイル操作。Macでターミナルを使って、cd Desktopって打ってからecho ohayou > aisatsu.txtって打ってみて、cat aisatsu.txtってやる。そうすると何が表

    こうすればプログラミング覚えられるよ【随時追記】
    ene0kcal
    ene0kcal 2019/04/04
    YouTubeでパラパラ炒飯動画をうたってベチャベチャの炒飯を見せられた時の感情が蘇った。
  • ふつうのJavaコーディング #ccc_e1

    JJUG CCC 2017 Spring E1 2017-05-20 10:00-10:45

    ふつうのJavaコーディング #ccc_e1
    ene0kcal
    ene0kcal 2017/05/21
    個人的な意見・趣味だが、不等号は「<」、「<=」をなるべく使う。数学のx軸をイメージするといい。言葉にしなくても関係が分かるので。
  • How to C (as of 2016)

    How to C in 2016 This is a draft I wrote in early 2015 and never got around to publishing. Here’s the mostly unpolished version because it wasn’t doing anybody any good sitting in my drafts folder. The simplest change was updating year 2015 to 2016 at publication time. (Update: Many people have submitted revisions, notes, and improvements. All contributions have been incorporated throughout the pa

  • 科学者が書いた質の低いコードが、ベストプラクティスに則ったコードに勝る理由 | POSTD

    今ちょうど、 科学者の手によるコードは質が低い という投稿を読み終えたところです。科学者の書いたコードは”ソフトウェア・エンジニア”が関与したコードと比べて質が劣るという内容でした。 私は10年以上同じ職場に勤めていますが、同僚の多くは数学や物理学が専門で、”ソフトウェア・エンジニアリング”の知識はほとんど持っていません。 そこでは、大惨事は必ずと言っていいほど、自分のことをいっぱしのプログラマだと思っている少数派によって引き起こされます。かくいう私も、少なくとも数件、いまだ解決を見ていない大きな不具合の原因を作ったことがあります。他にも大きめのバグをいくつか出しましたが、幸いその時のコードはお蔵入りしたため、私に無駄な給料を払わされた雇い主が被害をうけたくらいで、同僚の生産性を大きく損なうことはありませんでした。 その度(少なくともほとんどの場合)私は反省し、それまでにも増して退屈なくら

    科学者が書いた質の低いコードが、ベストプラクティスに則ったコードに勝る理由 | POSTD
  • TechCrunch

    [A version of this piece first appeared in TechCrunch’s robotics newsletter, Actuator. Subscribe here.] Earlier this month, Google’s DeepMind team debuted Open X-Embodiment, a database of robotic

    TechCrunch
    ene0kcal
    ene0kcal 2014/05/27
    なんでもそうだが、安易に"簡単"とか言う人を信じてはいけない。本当に簡単なものは、"簡単"とは形容すらしないし。
  • 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 - Qiita

    あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 「オブジェクト指向プログラミング」と「関数型プログラミング」のたった一つのシンプルな違い あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 この記事について この記事は新人向けの研修内容を再編集してお送りいたします。 ここで述べる内容はどのようにして現在のプログラミングスタイルが生まれてきたかを理解することで、よりよいプログラムを書くためのもので、正確なソフトウェア工学の歴史を学ぶためのものではありません。正確な歴史を把握したい場合は、原典をあたるようにしてください。 また、想定している読者は「よくあるオブジェクト指向プログラミングの学習」を既にし

    新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 - Qiita
    ene0kcal
    ene0kcal 2014/05/14
    すばらしい!だが手に入れた人は皆(天才を除く)、これを螺旋的軌跡で学んでいる。上級者になるまでスルメのように何度も読んでほしい。
  • スライド資料「地方IT企業が成功していくための3つのポイント」を公開しました|広報ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

    スライド資料「地方IT企業が成功していくための3つのポイント」を公開しました matsuiです。 先日2013/11/24(日)に青森で情報アカデミックサポートセミナーが開催されました。 ご参加いただいた皆様、関係者の皆様、ありがとうございました。 その中で使用したスライド「地方IT企業が成功していくための3つのポイント」を公開しました。 地方のIT企業は、仕事量やスキル・人員面などで苦しい立場に立つことが多いです。 それらのマイナス点をどういった工夫で補っていったかを、弊社を事例としてまとめてみました。 どうやったら青森のIT企業が元気になれるかを、自分なりに一生懸命考え作った資料ですので、興味のある方はぜひ目を通していただけると幸いです。

    スライド資料「地方IT企業が成功していくための3つのポイント」を公開しました|広報ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
  • あなたもできる!C言語でテトリスを40分で作る方法 · DQNEO日記

    デモ ニコニコ動画の伝説の動画 「テトリスを1時間強で作ってみた【実況解説】」という動画をご存知でしょうか? 2009年にニコニコ動画で公開されて話題になった動画です。 インタビュー記事:「テトリスを1時間強で作ってみた」動画の投稿者にインタビュー──「プログラミングの楽しさ伝えたい」 この動画ではテトリスをいちから作ってわずか62分で完成させています。 しかし実はスタート直後はMinGWのインストール、EmEditorのインストールに続いてブロック画像の作成などをしており、プログラミングが始まるのは開始13分のところからです。 さらに次の10分は「空のウィンドウ」を作るために時間を使っており、実質的にテトリスのプログラミングが始まるのは動画23分のところからです。 つまり、実質的に40分のプログラミングでテトリスを完成させています。 で、動画を見ながら同じようにやれば誰でもテトリスを作れ

    あなたもできる!C言語でテトリスを40分で作る方法 · DQNEO日記
    ene0kcal
    ene0kcal 2012/11/12
    一言いいたい。元の人にも言いたかったが、テトリス風であって、テトリスではない。テトリスには厳密な定義がある。一般人にはいいが、詳しい人には言わないほうがいい。「おれ、テトリスつくれるってばよ」
  • OBB vs AABB - Radium Software Development

    iPhoneの一般修理店は予約なしでも来店できる? 基的には飛び込みで修理に行ってもOK iPhoneを置いていたソファにうっかりと腰かけてしまい、パネルを割ってしまった、こんな時はスマホの一般修理店へ行きましょう。画面割れは、スマホやタブレットの故障原因として非常に多いものです。予約なしで突然お店に行っても平気かしらと、不安に思う方々もいらっしゃるかもしれません。結論としては特に問題はなく、予約なしで訪問しても画面割れの修理はお願いできます。 ただし他のサービス業のお店同様、予約なしの場合、お店が混雑していると順番待ちをしなければいけないです。特に繁盛しているスマホ修理のお店だと、行列が店内で出来ており、予約なしだと、自分の順番が巡ってくるまで長時間待たされる可能性があります。平日の朝、昼なら利用客が少ない場合が多く、飛び込みでも比較スムーズに修理が頼めます。 予約は入れた方が時短に、

    ene0kcal
    ene0kcal 2012/10/27
    古いけど参考になる。一時期考えていたGame Object Systemについて。
  • IBM Developer

    IBM Developer
  • 各種ゲームのプログラム解析

    目次 はじめに 解析結果についての解説 ファイナルファンタジーIV ファイナルファンタジーV ファイナルファンタジーVI ドラゴンクエストV ドラゴンクエストVI ドラゴンクエストI・II ドラゴンクエストIII ロマンシング サ・ガ2 ロマンシング サ・ガ3 技術資料 ファイナルファンタジーIV ファイナルファンタジーV ファイナルファンタジーVI ドラゴンクエストV ドラゴンクエストVI ドラゴンクエストI・II ドラゴンクエストIII ロマンシング サ・ガ2 ロマンシング サ・ガ3 今後の予定 おわりに はじめに ゲームの内部で起こっている処理を推測するのはなかなか難しいものです。ユーザーサイドから見れば、ゲームの内部処理はほとんど「ブラックボックス」のようなものです。ユーザーサイドでは「(内部で複雑な処理が行われた末の)最終結果」しかわかりませんし、ゲーム中の様々な要素(各種パラメ

    ene0kcal
    ene0kcal 2012/03/22
    各種ゲームのプログラム解析
  • 良いネーミングをするために覚えておきたい英語のルール5つ - プログラマー幸福論

    Photo by muraterturk こういった記事って、ネーミング規則や慣習の視点から書かれていることが多いんですけど、この記事では、英文法に視点を置いて、参考になりそうなことをいくつかピックアップしてみたいと思います。 「省略形は使わない」などの規約的なものは、各プロジェクトのルールに従えばいいので、ここでは書きません。あくまで英語という視点から書いているということを、ご理解ください。 Rule 1 : “検索”は名詞 一般的な英語辞書のルールでは「検索」は、動詞ではなく「検索する」が動詞になります。「検索」は、検索することの名称 だと考えられるため、動詞ではなく名詞として扱います。 英語辞書には、日語の品詞ごとに表記のルールがあります。これが理解できていると、和英辞書などで品詞を意識して検索できるようになります。以下に、一般的な英語辞書の表記ルールをまとめてみました。 <各品詞

    良いネーミングをするために覚えておきたい英語のルール5つ - プログラマー幸福論
    ene0kcal
    ene0kcal 2012/03/15
    当たり前過ぎると思うのだけど、どうやらブクマ数を見るとニーズがあるのね。あとは、ネーミングパターンですよ!カタログ化。
  • 関数型言語の技術マップ

    要求開発アライアンスの定例会で『Object-Functional Analysis and Design: 次世代モデリングパラダイムへの道標』というタイトルでセッションを行うことになりました。 セッション時間が50分なので、かなり俯瞰した形での全体像の説明になりそうですが、関連する要素技術の数が多いのと、内容が込み入っているので、ブログで補足説明をすることにしました。 今回はその第一弾です。 「関数型言語の関連技術」として用意した以下の図を説明します。関数型プログラミング言語レベルの説明はScalaを対象にします。 Disclaimer2008年にScalaをはじめて足掛け4年、関数型プログラミングとは、どうも数学を使ってプログラミングしていくことらしい、ということが分かってきました。 ScalaをBetter Javaとして使うのであれば、そこまで頑張らなくてもよいのですが、関数型言

    関数型言語の技術マップ
  • Googleブックスで読めるソフトウェア開発に関する本たち - 俺がぐったり部だ!

    Googleブックスの騒ぎを知って約1年。気づくと今そこには「読んでみたかった!」というが数多く載せられていることを知りました。 さて、そこでゲーム開発にも応用できる知識を中心に私がチョイスしたのが以下のたちです。もちろんGoogleブックスではこれら以外にもまだまだ多くのを閲覧することができます。これらを読めば、には当に知識と情報がまとめられているということ、著者たちの努力を発見できると思います。 ゲームデザイン 「おもしろい」のゲームデザイン: 楽しいゲームを作る理論 シリアスゲーム デジタルゲーム学習: シリアスゲーム導入・実践ガイド ユーザビリティエンジニアリング原論: ユーザーのためのインタフェースデザイン 人はなぜ形のないものを買うのか: 仮想世界のビジネスモデル ゲーム理論の基と考え方がよ〜くわかる ノベルゲームのシナリオ作成奥義 ライトノベル創作教室 すごい人

    Googleブックスで読めるソフトウェア開発に関する本たち - 俺がぐったり部だ!
  • プログラミングに関するあまり知られていない7つの真実

  • 1