並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 7410件

新着順 人気順

コンパイラの検索結果241 - 280 件 / 7410件

  • C言語より高速なJavaScriptによるバイナリ操作が話題

    JavaScriptなどのスクリプト言語は動作が遅く、最適なパフォーマンスを得るにはC/C++で実装しなければならないという常識に挑んだ先進的な講演が話題になっています。この話題の発端は2012年10月7日から10月8日までベルリンで開催されたJSConf.euでFelix Geisendörfer氏が行った講演です。 彼の講演の題材はnode.jsからMySQLに接続する為のバインディングのパフォーマンスに着目しています。2010年当時、node.jsにはMySQLのバインディングが存在しておらず、増井さん作のnode-mysqlモジュールが開発中の状態でした。このモジュールはJavaScriptでバイナリを解析しておりJavaScriptのみで開発されていました。この状況を受けてFelix氏が新たにnode-mysqlモジュールを新規に開発を始めました。このモジュールもJavaScri

      C言語より高速なJavaScriptによるバイナリ操作が話題
    • この10年間のプログラミングの変化|山本一成🚗TURING

      はじめましてnoteの皆さん、名人を倒した将棋プログラムPonanzaというものを作っていた山本一成と言います。この度ははてなから引っ越してきました。2018年になったので新しくブログ書いてみようかなぁ〜ってはじめました。 私がプログラミングをはじめたのは大学生だった時ちょうど10年前でした。そして今2018年になって、同じプログラミングにしても色々変わったなぁという印象です。今日はそのへんを皆さんと共有できたらなぁ〜と書きました。 あくまで私の観測範囲内での話をすればですけど、10年前のプログラミングの世界は速く動くことがかっこよかったです。実際にかっこいいだけでなく、必要とされる場面も多かったような気がします。私が愛用しているプログラミング言語はC++(シープラスプラス)と言って、まあそれは高速に動作することだけを意識して作られた言語でした。 加えて、今から考えれば一体なんでそんなトリ

        この10年間のプログラミングの変化|山本一成🚗TURING
      • スーパーファミコンのプログラムを書きたい - ポルノアニメ

        2016/04/06追記 はてなブックマークの「一年前の話題」だとかでやたら人が来てたので、一年前の一年後(つまり今)の状況を記しておきます。 ↓ http://gyuque.hatenablog.com/entry/2016/03/28/215253 今年はSFC 25周年である。大学ではなくスーパーファミコンのことである。 @pornanime いいからスーファミでピコピコしてろよな。— カザオカマリ (@ykzts) March 16, 2015 スーパーファミコンを買ってもらったのは小学校に上がった頃か、日焼けして真っ茶色になってはいるが未だに動作し、手元に置いてある。共に育ったマシンなので美しい思い出を語っては上のように若造に馬鹿にされているのだが、よく考えるとこれだけ思い入れの深いスーパーファミコンで動くプログラムを書いたことはなかった。プログラマーとしてこれは誠実ではない、と

          スーパーファミコンのプログラムを書きたい - ポルノアニメ
        • へ、変態っ!!読めないからやめてっ!bit使ったデータ構造・アルゴリズム実装集 - Negative/Positive Thinking

          この記事はCompetitive Programming Advent Calendar Div2012の2日目の記事です。 12月20日追記: Darseinさんが20日目の記事で、ビット演算についての詳しい説明を紹介してくださっています!必読ですね!!!!:) はじめに Y^´       ∨// /,∠ ,. ' /l/// /, ' , '/ ! | l }´     〈 〉    変  〈/ , ' // ̄`>< /// /// _,.=‐|'"´l l〈  変  / 〈    態.   ∨, '/l|   ,.'-‐、`//`7/  /''"´__ | ハ l丿  態   { 人)   ! !   (/!  |ヽ〈_ ・.ノ〃  〃 /  '/⌒ヾ.! ,' !く   ! !  (_ ト、__/   ヽ、_,.イ    /l l |:::::::```/:::::/...´..

            へ、変態っ!!読めないからやめてっ!bit使ったデータ構造・アルゴリズム実装集 - Negative/Positive Thinking
          • アセンブリに触れてみよう - Qiita

            .LC0: .string "%d\n" main: push rbp mov rbp, rsp sub rsp, 16 mov DWORD PTR [rbp-4], 1 mov DWORD PTR [rbp-8], 2 mov edx, DWORD PTR [rbp-4] mov eax, DWORD PTR [rbp-8] add eax, edx mov esi, eax mov edi, OFFSET FLAT:.LC0 mov eax, 0 call printf mov eax, 0 leave ret …何が書かれているか分かりませんね。 というわけで、今回は最終的に、このアセンブリがなんとなく読めるようになることを目標にします。 それでは前提知識を説明していきます。はじめに、アセンブリなどの用語の説明をしていきます。 2. 前提知識 用語説明 まず、それぞれの言葉を説明しま

              アセンブリに触れてみよう - Qiita
            • Nand2Tetris(コンピュータシステムの理論と実装)でCPUからOSまで一気通貫で作るのが最高に楽しかった話 - ( ꒪⌓꒪) ゆるよろ日記

              どうも、しいたけです。 去年あたりからローレイヤー周りの知識を充実させようと思い、 低レイヤを知りたい人のためのCコンパイラ作成入門 を読んでCコンパイラを書いてみたりx86_64の勉強をしたりしていました。 今年に入ってから、よりローなレイヤー、具体的にはハードウェアやOSについてもう少し知りたいと思い始め、手頃な書籍を探していました。 CPUなどのハードウェア周りについては概要しか知らなくて手を動かしたことがないので、実際に何か作りながら学べるものとして、 O'Reilly Japan - コンピュータシステムの理論と実装 に挑戦することにしました。 O'Reilly Japan - コンピュータシステムの理論と実装 成果物は以下のリポジトリに置いてあります。 yuroyoro/nand2tetris 結論から言うと、やってみて大変楽しめました! 特にハードウェア周りは今まで挑戦したこ

                Nand2Tetris(コンピュータシステムの理論と実装)でCPUからOSまで一気通貫で作るのが最高に楽しかった話 - ( ꒪⌓꒪) ゆるよろ日記
              • Efficient data transfer through zero copy

                IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

                  Efficient data transfer through zero copy
                • Cプログラミングの秘訣

                  特集 Cプログラミングの秘訣 最終更新: 2006-03-28 このテキストはC MAGAZINE 1992年4月号に掲載された原稿のオリジナルテキストを元にしてHTMLに変換したものです。掲載文章と細部が異なっていると思われます。また、気付いた個所をいくつか修正してあります。 当時はまだWindows 95もないような時代で、現在の状況から見ると違和感のある内容も結構あるかもしれませんが、時代背景を想像しながら補正しつつ読んでいただければ幸いです。 ※2006年3月28日追記: 何が原因か知りませんがこのページのアクセスが増えているそうなので、 HTML のおかしなところを修正しました。 文章の変更はありません。 なお、このサイト(表ページ)は現在休眠状態ですが、 裏ページ や 裏の裏ページ の方を、細々と更新していたりします。 目次 Part1 よいプログラムを書く条件 Part2 明

                  • WisdomSoft

                    WisdomSoft(旧) このサイトはすでに運用を停止しています。 新しいコンテンツはこちらをご覧ください ■Products■ 書籍 ソフトウェア 読本C 読本Java Javaアプリケーション作成講座 Windowsゲームプログラミング ゲームエンジン プログラミング C#ゲームプログラミング Cisqua Developers Network プログラミング システムとAPI C言語入門 C++入門 C#入門 D言語入門 Java言語入門 Objective-C入門 Lisp入門 Perl入門 PHP入門 アセンブリ言語入門 Win32 API入門 標準 Windows API コモンコントロール マルチメディア API Windows ソケット JavaAPI入門 AWT入門 Swing入門 ネットワーク入門 Microsoft .NET入門 DirectX入門 OpenGL入門

                    • 母ちゃんがプログラミングでプラレールを動かせるようになるには(1) - Mana Blog Next

                      目次 目次 今日から電子工作を始めました! そのとき息子が放った一言に、少し悲しくなってしまった まずは1日1時間 母ちゃんArduino始めました はじめてArduinoに触ってみた感想 今日から電子工作を始めました! 先日から夫が海外出張のため不在です。 そんな中、長男(もうすぐ4才)から「パパが居ないと寂しい」と泣かれてしまいました。 その上、一昨日はプラレールをリモコンで操作できる無線コントローラーが壊れてしまい、私が状況を確認することに。 ミスターモーターマン 運転じょうずエコ2 出版社/メーカー: ブレイブ 発売日: 2014/11/02 メディア: おもちゃ&ホビー この商品を含むブログを見る そのとき息子が放った一言に、少し悲しくなってしまった 「ママは直せないよね。パパじゃないと直せないよね…パパが居なくて、寂しい…」 私は「そんなこと無いよ。大丈夫!ママだって直せるよ。

                        母ちゃんがプログラミングでプラレールを動かせるようになるには(1) - Mana Blog Next
                      • アルゴリズムとデータ構造演習

                        本演習の目的は、プログラミング言語C及びSchemeの基礎を習得し、 それらの言語を通じて、講義「アルゴリズムとデータ構造」の理解を深めることにあります。 重要なお知らせ 特に重要な連絡事項はここに掲載されます。 課題について 課題には、A課題とB課題があります。(課題番号の末尾が種類を表します。) B課題が基礎的な課題で、A課題が発展的な課題となっています。 B課題を全問解くことが、単位取得の目安です。 C入門第1回(10月10日) C入門第2回(10月17日) C入門第3回(10月24日) C入門第4回(10月31日) C第1回(11月7日) C第2回(11月14日) C第3回(11月21日) C第4回(11月28日) C第5回(12月5日) Scheme第1回(12月12日) Scheme第2回(12月19日) Scheme第3回(1月9日) Scheme第4回(1月16日) C補講

                        • 善意のひどい訳について - アスペ日記

                          2014/10/14 追記: 補足記事を書きました。なぜ誤訳指摘をしたか ぼくは、ずっと昔から「ひどい翻訳」というものに憤りを感じてきた。 以前、別の記事に書いたこともある。 統計学を拓いた異才たちのようなひどい翻訳を見るたびに、どうして世の中からはこの手の悲劇がなくならないのかとため息が出る。 この前、またひどい翻訳を目にする機会があった。 C言語でプログラミングする際の覚書 ちょっと原文と比較すると致命的な誤訳がいくつも見つかる、最低クラスの翻訳だ。 やれやれと思いながら、翻訳のひどさを嘆くコメントをはてブに残して、ツイッターに流した。 pretty printers を優秀なプリンターと訳しているのを見て、これはちょっと手のつけようのない何かだと悟った / “C言語でプログラミングする際の覚書(Notes on Programming in C) - YAMAG…” URL 2014

                            善意のひどい訳について - アスペ日記
                          • UNIX/Linux/C言語 サンプル多く説明少なく -PG's PocketArms

                            当サイトは、UNIX/Linuxにてよく使用されるコマンド/ツールの使用例や言語の入門やコード事例を掲載しております。 深い理解は求めずに、手っ取り早く使えるように、使用例(サンプル)を中心にしています。 情報の正確さには注意を払っておりますが、誤りや適切でない記述を掲載してしまうかもしれません。 当サイトの情報をご利用いただく際は、どうか、ご自身で十分検証を行ってください。 なお、当サイトのをご利用になられて発生した損害については、当方は一切責任を負いかねますので、あらかじめご了承願います。 また、掲載内容についてのご質問はご遠慮願います。

                            • [開発][C言語]超テキトー図解ポインタ - chocolate holic

                              まだ途中。書き次第随時追記していきまする。間違いとか分かりにくい表現があったら遠慮無く指摘してくだしあ。

                              • 論文紹介: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 - みずぴー日記

                                ICSE 2016勉強会に参加するために論文リストを確認していたら、40年間のC言語のプラクティスの変遷を追った論文がおもしろかったので紹介する。 対象の論文 論文: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 論文中で使われれたデータ: https://github.com/dspinellis/unix-history-repo 要約 過去40年間のUnixのソースコードを分析し、コーディングスタイルの変化を調査した。その結果、以下のことが分かった。 新しい言語機能は価値のあるものならば採用される レジスタ割り当てをコンパイラに任せるようになる スペースをどこにいれるかなどのコードの書き方が統一されていく 分析対象 1972年以降にリリースされた計66個

                                  論文紹介: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 - みずぴー日記
                                • 「もっと自由につながりたい」――iPhoneテザリング「t.free」開発者・クリストファーの思い

                                  話題のiPhoneテザリングサービス「t.free」を開発したのは、米国出身のクリストファー・テイトさん(24)だ。17歳で著名なネットサービスを作り、その後来日して5年。「技術の力でもっと自由につながりたい」と、サービスを作り続ける。 この夏、期間限定で公開された「t.free」が大きな反響を呼んだ。iPhoneを利用し、Mac OS X搭載機をインターネットに接続できる無料のテザリングサービスで、ITベンチャーのコネクトフリーが開発。iPhoneに専用アプリをダウンロードしたり、“脱獄”させる必要のない画期的なサービスとして人気を集めた。 「便利すぎておそろしい」「助かってます!」「神ツール」――Twitterにはユーザーの喜びの声があふれ、開発したクリストファー・テイトさんに届く。テイトさんはコネクトフリーの社長兼開発責任者で、1988年生まれの24歳。京都に住み、日本向けサービスを

                                    「もっと自由につながりたい」――iPhoneテザリング「t.free」開発者・クリストファーの思い
                                  • メモリリークとは何か - kuenishi's blog

                                    メモリリークに悩まされている技術者は多いだろう。メモリリークが嫌でGCという技術が開発されたといっても過言ではないし、歴史的にはC++からJavaへシフトが起きた大きな理由のひとつといっていい。Unix系の簡単な定義でいえば、ヒープ領域を指すポインタ(アドレス)をロストしてしまえばそのメモリはもう漏れたといってよい。たとえばこういったコードだ。 struct { int i; char c; } spam; int main(){ void* p; int i; for(i=0; i<1024; ++i){ p = malloc(sizeof(struct spam)); } pause(); } このコードではpause(3)の時点で約5KBのメモリが漏れている。free(3)を使えばメモリをOSに返却できるが、アドレスが分からないので返却できない。 ところが、ここでいいたいのは、メモリ

                                      メモリリークとは何か - kuenishi's blog
                                    • 表紙 - 本物のC

                                      このサイトは「本物の C 言語」について学習する機会の提供を目的としています。 「本物の」とはつまり、 標準規格(仕様)が C 言語をどういうものとして定めているか C プログラムが実際に CPU をどう動かすか という二つの意味合いに於いてです。 どうも巷間にはその辺りを気にせず何となくで書かれた資料が多い様なので、このサイトにより少しでも世界が最適化される事を期待します。 権利について 当然ですがこのサイト全体は著作権法により保護されています。法と良心に則って御利用下さい。 連絡はcontact<アット>real-c.infoまで。

                                      • Archived MSDN and TechNet Blogs | Microsoft Learn

                                        If you were looking for MSDN or TechNet blogs, please know that MSDN and TechNet blog sites have been retired, and blog content has been migrated and archived here. How to use this site Archived blogs are grouped alphabetically by the initial letter of the blog name. Select the initial letter from the TOC to see the full list of the blogs. You can also type the name of the blog or the title of the

                                          Archived MSDN and TechNet Blogs | Microsoft Learn
                                        • softwaretechnique.jp

                                          This domain may be for sale!

                                            softwaretechnique.jp
                                          • Javaでコンパイラの基礎を理解する

                                            そもそもコンパイラの中ってどうなっているの? Javaでコンパイラの基礎を理解する(1) 普段、なにげなく使っているコンパイラ。中身を理解すると、プログラミングへの意識が変わり、技術力もつきます! 開発者必見です

                                            • Goを学ぶときにつまずきやすいポイントFAQ | フューチャー技術ブログ

                                              他の言語になれた人が、初めてGoを書いた時にわかりにくいな、と思った部分はどういうところがあるのか、難しいポイントはどこか、という情報を自分の経験や、会社の内外の人に聞いたりしてまとめてみました。まだまだたくさんあるのですが、多すぎるのでまずはこんなところで。コンテナで開発することがこれからますます増えていくと思われますし、その時にコンテナとの相性が抜群なGoをこれから使い始める人もどんどん増えていくと思います。 Goは特に言語のコアをシンプルに、何かを実現するときはそのシンプルな機能を組み合わせて実現しよう、というコンセプトです。つまり、他の言語で実現したいこと・できていることに比べて、Goは組み合わせ(イディオム)でカバーする領域が広くなります。そのあたりのとっかかりになる情報を提供することが、これからGoを触る人にとってつまずきを減らすことになると思います。 Go Conferenc

                                                Goを学ぶときにつまずきやすいポイントFAQ | フューチャー技術ブログ
                                              • fork()は失敗するんだぜ、覚えときな

                                                fork() can fail: this is important あー、fork()のことね。プロセスがもっとプロセス作るためのやつな。いや、他にもプロセス作る方法はあるけどな。ま、面白い話がもうひとつあるから聞かせてやるよ。 forkは失敗するんだぜ。分かってるか? マジで分かってるか? マジだぜ。forkは失敗するもんだ。mallocと同じさ。失敗することもある。そんなに頻繁にってわけじゃないけどさ、でも失敗したら、無視できっこないぜ。ちっとは脳みそ働かせなきゃならん。 forkが0を返したら、そいつは子プロセスで、親なら正数を返すってことは、みんな知ってるよな。その値は子のpidだ。こいつを保存しといて、あとで使うってわけだ。 失敗を確認しない場合どうなるか知ってるか? そうだよ。お前多分、"-1"(forkのエラー通知)をpidとして扱ってるんだろ。 さて、問題の始まりだ。本当

                                                • モダンプログラマになれない組込みプログラマの苦悩 - Qiita

                                                  はじめに 10年以上組込みエンジニアをしている@yagisawaです。 Qiitaのトップ記事では新しいフレームワークの使い方とかモダン言語の新しい言語仕様の解説とかが流れてきて、いつも羨ましいなーと思いながら読んでいます。 本記事は組込みシステム開発をしていて経験したこと・感じたことを自虐ネタとして書き連ねていこうと思います。他ITエンジニアの人に「うわっ、可愛そう」って思ってもらうのが目標です(ぇ 各業界それぞれに悩みはあると思うので、自分たちが一番不幸とかは思っていません。おそらく隣の芝が青く見えているだけです。それよりあまり組込みの記事は見かけないので、「組込みエンジニアの仕事ってこんな感じ」というのを知ってもらう意図があったりします。 内容によっては「それはあなたの設計が悪いからです」と言われてしまうようなところもあるとは思いますが、建設的なご意見は大歓迎ですが基本は温かい目で見

                                                    モダンプログラマになれない組込みプログラマの苦悩 - Qiita
                                                  • Engadget | Technology News & Reviews

                                                    Research indicates that carbon dioxide removal plans will not be enough to meet Paris treaty goals

                                                      Engadget | Technology News & Reviews
                                                    • バカにC言語は難しい~プログラミングの機会損失~

                                                      プログラミングは難しい 注意: この記事は「プログラミング学習とはかくあるべき」、「こうやって学習するのが一番」ということを言いたいのではなく、プログラムを勉強したいが右も左もわからない人に少しでも勇気と情報を与えることを目的としています。過去の挫折経験からか、なかば愚痴っぽくなっていますがご勘弁を はじめに自分のプログラミング歴を軽く紹介して起きます。 年 言語 学習目的 2010 C言語 学校の実習 2011 C++ 組み込み系 2012~2017 None None 2018 Go,Js,Scala,Python 研究、Web開発 といった感じです。2012~2017年がNoneになっているのには原因が「C言語に挫折し、とにかくプログラミングがしたくなかった」からです。そう思ってしまった原因と、そこから立ち直ったことがこの記事を書いた理由です。 「おいおい、C言語ごときで挫折とは情け

                                                        バカにC言語は難しい~プログラミングの機会損失~
                                                      • 正規表現に見切りをつけるとき

                                                        Perl, Rubyなど手軽に使えるプログラミング言語に慣れてくると、あらゆるテキストデータの処理に正規表現(regular expression)を使ってしまいがちです。 けれど実は、正規表現の処理能力を超えるフォーマットというのが存在します。その典型的な例が、XMLやJSONのように、入れ子になったデータフォーマットです。

                                                        • プログラミング言語同士がどう影響を与え合っているのかを示した相関図

                                                          世の中には数千種類のプログラミング言語がありますが、その多くは何らかのプログラミング言語から影響を受けてできており、また、自身も他のプログラミング言語に影響を与えています。その関係を1つのマップ上に落とし込んだ相関図が「Programming Languages Influence Network」です。 Programming Languages Influence Network | Exploring Data https://exploring-data.com/vis/programming-languages-influence-network/ まるで星のように見えている点がそれぞれ1つのプログラミング言語を表しています。たとえば「Lisp」にマウスオーバーすると、このように関連する言語までのラインが表示されます。このうち、オレンジ色は「影響を受けた言語」、青色は「影響を与え

                                                            プログラミング言語同士がどう影響を与え合っているのかを示した相関図
                                                          • C# と VB.NET の入門サイト

                                                            当サイトは、Visual C# .NET と Visual Basic .NET (VB.NET) を中心とした .NET プログラミング初心者用の入門サイトです。C# と VB.NET だけでなく、Visual C++ .NET (C++/CLI)、Visual J# .NET (Java) などについてもサポートしています。初心者・入門者向きのサンプルコードが主な内容となっております。Visual Basic 6.0 (VB6) 以前のプログラマのために Visual Basic 6.0 (VB6) についても提供しておりますので、ステップアップにご利用ください。

                                                            • 5分でわかるガベージコレクションの仕組み

                                                                5分でわかるガベージコレクションの仕組み
                                                              • Cocoaの素、Objective-Cを知ろう - @IT

                                                                Objective-C初心者のための入門連載です。Objective-Cとは何かの基礎知識から、さまざまな基本構文/文法(変数、データ型、nil、配列、プロパティ、アクセサ、クラス、スーパークラス、ルートクラス、サブクラス、ポインター、メソッド、インスタンス、リンク、ラッパークラス、コンパイラディレクティブ、id、メッセージ式、文字列操作、forなどの繰り返し(ループ)、列挙子、ディクショナリ(連想配列)、高速列挙、オブジェクト指向、継承、プロトコル、多重採用、セレクター、クラスクラスター、カテゴライズ、カテゴリ、メモリ管理、ガベージコレクション、参照カウンターなど)を、書き方が分かる豊富なサンプルコードとともに解説します。

                                                                • はじめてのカーネル・ソース 第1回 どうしたら読めるようになるのか:ITpro

                                                                  なかなかハードルが高く,多くの人が踏み出せないでいるカーネルのソース・コードの読解。本連載では,今までカーネル・ソースなんて見たことがないという人に,読みこなすコツをお教えします。今回は,どうしたらカーネル・ソースを読みこなせるようになるのか,筆者の経験をお話します。 Linuxユーザーなら誰しもカーネルのソース・コード(カーネル・ソース)を読んで,どのような処理を行っているのかを確認したり,自分なりの変更を加えたりしたくなるのではないでしょうか。しかし,カーネル・ソースの量は膨大な上,C言語で書かれているので,コンピュータ内部やOS(オペレーティング・システム)の仕組みを理解したプログラマでないとなかなか読みこなせません。そのため,カーネルを読むための第一歩を踏み出せない人が数多くいることは事実です。 本講座では,プログラマではないごく普通のLinuxユーザーが,カーネルをある程度自力で

                                                                    はじめてのカーネル・ソース 第1回 どうしたら読めるようになるのか:ITpro
                                                                  • 今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog

                                                                    ソフトウェアを正しく理解する唯一の方法はコードを読むことです。 ドキュメントを読めばそのソフトウェアが何を実装しているか分かりますが、どのように実装されているかまでは分かりません。 開発中に何らかのトラブルに悩まされたときや、効率的なコーディングをしたいと思ったとき、下位レイヤのソフトウェアを理解しておけば素早く対処できるシーンが多くあります。 ただ、コードを読むことは簡単なタスクではありません。 現代的なソフトウェアはそれなりの規模のコードを含んでいることがほとんどです。アーキテクチャ間の差異を吸収するためのコードなど、本質的な機能を理解する上ではあまり重要ではないコードも含まれています。 何らかの問題が発生してからコードを読もうと思っても、準備なしでは関連する箇所を探すだけでかなりの労力が必要な作業となります。 従って、普段からコードを読んでおくことが重要です。 また、コードを読むにあ

                                                                      今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog
                                                                    • [結] 結城浩の日記「購入より購読・プログラムよりサポート・完成より進化」という傾向に対するネーミング

                                                                      目次 2005年10月31日 - まだ名前のない実験ページ / 2005年10月30日 - 「再帰的な木を描くJavaのソースコード」を公開 / 「さまざまな方のための祈り」を更新 / 2005年10月29日 - 「ミルカさんとフィボナッチ数列」のLaTeXファイル公開 / 2005年10月28日 - わたっていく言葉 / ながれていく時間 / 仕事 / みなさんからのメッセージを読む / 『改訂第2版Java言語プログラミングレッスン』無料プレゼント抽選 / 2005年10月27日 - 夜 / 本 / 朝 / 2005年10月26日 - 夜 / 自分の理解を確かめて学習するということ / 朝 / 2005年10月25日 - 日記ダイジェストを更新 / 必要条件と十分条件 / 仕事 / おはようございます / 2005年10月24日 - コクヨのSlimB5ノートを使った感想 / 2005

                                                                      • 2で割ることと3で割ること - Qiita

                                                                        この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

                                                                          2で割ることと3で割ること - Qiita
                                                                        • コールセンターで人を殺した思い出 - はてな村定点観測所

                                                                          2014-05-10 コールセンターで人を殺した思い出 債権回収システムの開発 職務経歴には書いていないですが、まだIT業界の駆け出しだった頃、勤めていた会社の都合で商社系のシステム部門に派遣されました。 その商社は誰もが名前を知っている有名なクレジットカードのシステムを受注していて、僕が担当したのはそのクレジットカードの債権回収システムの構築でした。債権回収システムというと聞こえはいいけれど、要は「借金かえしてね!」とお金のない人にお金を返させる仕組みです。僕がやっていたのはカード会社のコールセンターから自動的に債務者に大量に電話を発信する架電ハードウェアの制御でした。 クレジットカードの未払いが貯まるとカード会社のコールセンターのオペレーターから督促電話がかかってくるかと思いますが、大手クレジットカード会社のコールセンターになると、電話は人間が手で掛けているのではなくて、大量の対象者リ

                                                                            コールセンターで人を殺した思い出 - はてな村定点観測所
                                                                          • C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ

                                                                            サイボウズ・ラボの光成です。 先日、社内で主にLinux上でC/C++を用いている開発者向けの講義をしました。 「こんなことができる」と知ってもらい、興味を持てば各自で勉強してもらおうと広く浅くツールを紹介しました。 gtags, ASan, Valgrind, addr2line, cppcheck, SystemTap, perfなどです。 興味があれば講義資料「C/C++プログラマのための開発ツール」をごらんください。 コンパイラオプション 受講者には新人やサイボウズ・ラボユースの学生もいたので基本的なところから紹介しました。 C/C++コンパイラを使うときはできるだけ警告オプションをつけるのが望ましいです。 警告が出るのは自分のコードの書き方に不備があることが多いからです。 gccやclangでは-Wall -Wextraは基本としてそれ以外にも有用なオプションがあります(C++用

                                                                              C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ
                                                                            • sprintf を最大10倍以上高速化するプリプロセッサ「qrintf」を作った

                                                                              最近H2OというHTTPサーバを書いているのですが、プロファイルを取ってみるとsprintfが結構な時間を食っていて不満に感じていました。実際、sprintfは数値や文字列をフォーマットするのに十徳ナイフ的に便利なので、HTTPサーバに限らず良く使われる(そしてCPU時間を消費しがちな)関数です。 では、sprintfを最適化すれば、様々なプログラムが より高速に動作するようになるのではないでしょうか。ということで作ったのが、qrintfです。 qrintfは、Cプリプロセッサのラッパーとしてソースコードに含まれるsprintfの呼出フォーマットを解析し、フォーマットにあわせたコードに書き換えることで、sprintfを高速化します。 たとえば、以下のようなIPv4アドレスを文字列化するコード片を sprintf( buf, "%d.%d.%d.%d", (addr >> 24) & 0xf

                                                                              • 【保存版】プログラミングで使うやたら難しい英単語のかんたん解説15選

                                                                                プログラミングでコードを書くときは、99.9%英語を使いますよね。 クラス名やメソッド名をつけるのにも、欠かせません。 ですが、他人が書いたプログラムを見たとき、あなたはそこに書かれている英単語の意味を本当に理解していますか? 知らない単語が混じっていて、困惑したことはありませんか? fetch、acquire、retrieve…。 「よく分からないけど、まあいいや」ではすまされない! コードの破綻を防ぐためにも、ここでばっちり、知らなかった英単語の意味をマスターしていきましょう! 機種変更では、このような失敗をする方がとても多いです。 有料オプションを契約させられ料金が高くなった。。 待ち時間や契約時間が長くて、半日かかってしまった。。 キャンペーンや割引がきちんと適用されていなかった。。 スマホを乗り換えるときには、 → おとくケータイで乗り換えキャッシュバックをもらう で乗り換えをす

                                                                                  【保存版】プログラミングで使うやたら難しい英単語のかんたん解説15選
                                                                                • 漸進的型付け言語の時代に必要なもの - mizchi's blog

                                                                                  最近では、Gradual Typing、漸進的型付けと呼ばれる型システムを備えた言語(拡張)が増えてきています。 次のようなもの JavaScript: TypeScript / Flowtype Python: mypy / pyre-checker PHP: hack / php-storm flow/pyre-checker/hack と facebook 製が多いですね。 この記事は、それらを使う動機と運用について書きます。この記事の出発点として、 おそらく TypeScript/Flow で発生した問題が後発の言語で発生すると思っており、それらを使う方や、設計する人への提言でもあります。 自分は昔 https://github.com/mizchi/TypedCoffeeScript というAltJS作ろうとして、実装のツラミはなんとなく知ってるつもりです。ホビーレベルで作るもの

                                                                                    漸進的型付け言語の時代に必要なもの - mizchi's blog