タグ

プログラムに関するatm_09_tdのブックマーク (16)

  • 良いコードとは何か - エンジニア新卒研修 スライド公開

    株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 https://note.com/cyberz_cto/n/n26f535d6c575

    良いコードとは何か - エンジニア新卒研修 スライド公開
  • メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog

    κeenです。 今回の話は別にRustに限ったものではないのですが、よくRustを始めたばかりの人がスタックとヒープが分からないと言っているのをみかけるので少しメモリの話をしますね。 厳密な話というよりは雰囲気を掴んで欲しいという感じです。 メモリは配列 プログラム(プロセス)のメモリには実行するプログラム(機械語)やグローバル変数/定数、関数の引数やローカル変数、その他プログラムで使うデータ領域などを置きます。 プロセスに割り当てられるメモリというのは、1つの巨大なのっぺらな配列みたいなものです。サイズも決まってます。64bit OSなら2^64 byteです。 0 2^64 +--------------- ----+ | | | | | ~~ | | +--------------- ----+ これは仮想的なメモリなので実際の物理メモリに2^64 byteの配列がドンと確保される訳

    メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog
  • カーネルモジュールを作ってみる - はわわーっ

    まず簡単なところから。 #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("GPL"); static int __init hello_init(void) { printk(KERN_ALERT "hello, world\n"); return 0; } static void __exit hello_exit(void) { printk(KERN_ALERT "bye\n"); } module_init(hello_init); module_exit(hello_exit); Makefileはこんな感じ。ROOTDIR にはカーネルのソースがあるディレクトリを設定する。 obj-m := hello.o ROOTDIR := /home/yomi/kernel/linux-3.11 defau

    カーネルモジュールを作ってみる - はわわーっ
  • Perfect Code

    The document discusses principles and best practices for writing high-quality code, including keeping code simple, avoiding duplication, using object-oriented design principles like SOLID, giving variables and methods meaningful names, properly structuring classes, methods and variables, and applying principles of encapsulation and inheritance. It emphasizes that code quality is important to reduc

    Perfect Code
  • コマンドラインツールを作るときに参考にしている資料 | SOTA

    コマンドラインツールについて語るときに僕の語ること - YAPC::Asia Tokyo 2014 コマンドラインツールが好きで昔からつくってきた. 今年のYAPCで,そのコマンドラインツールをつくるときにどういうことを意識して作っているのか?どのような流れで開発しているのか?といったことを語る機会をもらえた. 具体的な内容については,是非トークを聴きに来てもらうとして, スライドをつくるにあったって過去に読んだ資料や,よく参考にしている記事を集め直したので,その一部を参考資料としてまとめておく. UNIXという考え方 UNIXという考え方 Mike GancarzによるUNIXの思想や哲学をまとめた.古いが全然色あせてない. コマンドラインツールの作り方を書いたではないが,これらの思想の上で動くツールはこの思想に準拠して作られるべきだと思う.何度も読んで考え方を染み付かせた. 小さい

  • softwaretechnique.jp

    This domain may be for sale!

    softwaretechnique.jp
  • 【訂正あり】他人のコードを「破壊」しながらプログラミングを学ぶ方法:リバース・エンジニアリング

    追記:翻訳に誤って訳された部分がございました。原文における「break」は「破壊する」意ではありません。お詫びして訂正いたします。また、今後はこのような誤りのないよう、最大限の注意をもってサイト運営をしてまいります。(2013.10.21 11:30) コードを学ぶベストな方法のひとつは、既存のコードを「リバース・エンジニアリング」することです。コードトーレニング企業の「Treehouse」が、コードの一部をわざと「破壊」しながら、コードを分析する方法を教えてくれました。Nick Pettit氏はTreehouseブログの中で、プラウザでの3Dプログラミングの学習事例として、Javascript「Three.js」を一行づつテストする方法を解説しています。 var light = new THREE.PointLight(0xffffff); light.position.set(-100

  • ソフトウェアテストの技法 超サマリ(前編) - A Memorandum

    ソフトウェア・テストの技法 第2版 作者: J.マイヤーズ,M.トーマス,T.バジェット,C.サンドラー,Glenford J. Myers,Todd M. Thomas,Tom Badgett,Corey Sandler,長尾真,松尾正信出版社/メーカー: 近代科学社発売日: 2006/08メディア: 単行購入: 7人 クリック: 267回この商品を含むブログ (46件) を見る 初版1979年の古典 ソフトウェア・テストの定義 「ソフトウェア・テストとは、コンピュータ・コードが意図されたように動作し意図されないことは全て実行しないように設計されていることを検証するように設計されたプロセス、あるいは、一連のプロセスである。」 ソフトウェア・テストの心理学 「テストとは、エラーをみつけるつもりでプログラムを実装する過程である。」 テストを実施する時に、プログラムにエラーがないことを証明す

    ソフトウェアテストの技法 超サマリ(前編) - A Memorandum
  • スーパープログラマーへの道

    スーパープログラマーへの道 過去ログリスト ちゅうーって、ReGetしちゃってください(笑) 第一回 DirectXは一夜にしてならず(開発言語探求篇) 第ニ回 DirectXは不毛なのねん(書籍探求篇) 第三回 DirectXはやめとけって(ライブラリ探求篇) 第四回 コモンプラットホーム構想(たんなる夢) 第五回 DirectX5は腐ってるんか?(不満ぶちまけ篇) 第六回 実はC言語ってよー知らんねん(ごめん俺が悪かったの巻) 第七回 バイナリ互換性は必要なのよね~ん(8x86はJavaをも超えるんか?) 第八回 だからC言語オタクって嫌いなのねん(Cマガの記事に横槍を入れるの巻) 上記の過去ログ 第九回 翻訳は金になる(コンパイラ作成のための準備体操) 第A回 ゲーム作成講座はいつんなったら始まるねん!(一読者の不満) 第B回 やねうらおからの挑戦状!(80862C) 第C回 インタ

  • Kinect for Windows SDKプログラミング入門

    この特集では「Kinect for Windows SDK」を使ったプログラミングを紹介します。このSDKを使うと、米MicrosoftのKinectセンサーを介して、人間の様々な関節を容易に認識できるプログラムを開発できます。その最先端の世界を体験しましょう。 目次 この記事はXbox版Kinectセンサーを対象に「Kinect for Windows SDK」ベータ版が提供されていた2011年10月の状況を元に解説しています。その後、2012年2月にWindows版KinectセンサーとKinect for Windows SDKの正式版が提供され、SDKのダウンロード場所、SDKの中身、ライセンス条件、クラスライブラリ構成などが変更されています。正式版の情報については、MSDNの『Microsoft Kinect For Windows SDK - V1.0 リリース ノート』を併せ

    Kinect for Windows SDKプログラミング入門
  • プログラム言語の部屋 - きしだのHatena

    ジョン・サールの「中国語の部屋」という話がある。 http://www.h5.dion.ne.jp/~terun/doc/chugokugo.html 部屋に閉じ込められたイギリス人が、中国語の手紙をうけとる。イギリス人は、手元にある「中国語で返信」手順書にしたがって、手紙にかかれた記号から導き出される記号を紙に書いて送り返す。手順書がよくできていてイギリス人はまじめに膨大な手順を実行しているので、送り返された手紙を見た人は、部屋の中のイギリス人が中国語を理解していると考える。 果たしてそのイギリス人は中国語を理解していると言えるか、と。 さて、「プログラム言語の部屋」というのを考える。 部屋に閉じ込められたサラリーマンが、日語の仕様書をうけとる。 手元によくできた手順書はないが、仕様書はある程度パターン化され、そのパターンに近い過去プログラムからコードをコピペして送り返す。 監視体制が

    プログラム言語の部屋 - きしだのHatena
    atm_09_td
    atm_09_td 2011/10/15
    "果たしてそのサラリーマンはプログラム言語を理解していると言えるか。"
  • 高木浩光@自宅の日記 - ウイルス作成罪創設に向けて国民に迫られる選択

    ■ ウイルス作成罪創設に向けて国民に迫られる選択 先々週、JNSAの時事ワークショップ「ウイルス作成罪を考える」に参加してきた。JPCERT/CCの早貸淳子氏から前回提出法案に沿った解説があり、それに続いて、私から前回提出法案の問題点がどこにあるのかについてお話しした後、会場にお集りの業界の方々からのご意見を頂きながら議論した。(以下はそのとき使用したスライド。) 不正指令電磁的記録作成罪法案の問題構造, 2011年1月24日 私が述べたことは、これまでここに書いてきたこととほぼ同じであるが、早貸氏との議論を通して、以前より問題の見通しがすっきりして、やはりそうだという想いを強くした。今回、新たな説明方法を思いついたので、それを以下に書く。(以前より正確さが増したはず。) 法案が前回のまま提出されると、「(A)解釈」で賛成するのか「(B)解釈」で賛成するのか、国民は選択を迫られる。そして、

  • 2010-11-25 - きしだのはてな - 技術力をあげたいプログラマが読んでおかないと話にならない本10冊

    ここにあげたじゃなくてもいいので、同じ分野でなにか読むとか、に書いてあるほど詳しくなくてもそれなりに知識をもっておくべき。 アルゴリズムクイックリファレンス 作者: George T. Heineman,Gary Pollice,Stanley Selkow,黒川利明,黒川洋出版社/メーカー: オライリージャパン発売日: 2010/04/26メディア: 単行(ソフトカバー)購入: 11人 クリック: 656回この商品を含むブログ (72件) を見る まずはアルゴリズム。クイックって書いてあるけどぜんぜんクイックじゃないw。各言語で書かれた入門書を読んでもいいと思う。 実際のプログラムにアルゴリズムの知識を活かすということを知りたいならプログラミングコンテストチャレンジブックがおすすめ。 プログラミングの基礎 ((Computer Science Library)) 作者: 浅井健一

    2010-11-25 - きしだのはてな - 技術力をあげたいプログラマが読んでおかないと話にならない本10冊
  • インフラエンジニアがSegmentation fault をなんとか治してみる - メモとかそんな感じなやつ

    普段Webサーバを運用していて、めんどくさいトラブルのひとつに「Segmentation fault」があります。 あれー?なんか500エラーがでるなーなんて思ってログを見るとSegmentation faultになってるときは死にたくなります。 そもそもSegmentation faultはメモリ上にあるデータに対して不正が行われたときに起こるもので、 インフラエンジニアにとってはなかなか手がだせないところでもあります。 それでもなんとかして治さないといけないわけなので せめてどのプログラムが悪さしてるかどうかぐらいは調べ上げてみます。 apacheでのログ apache + mod_perl での環境です。 こんな感じでエラーがでます。 #tail error_log [notice] child pid 26028 exit signal Segmentation fault (11

    インフラエンジニアがSegmentation fault をなんとか治してみる - メモとかそんな感じなやつ
  • Assembly Programming Linux

    はじめに. アセンブラを使って Linux のプログラミングで遊んでみます.アセンブラには NASM を使用して,カーネルを直接利用することにします. いまさらアセンブラでプログラムを作成することは,時代錯誤と感じる人も 多いかもしれません.「アセンブラでプログラミングなんて職人芸でしょう」 と思うかもしれません. 20年前では趣味のプログラミングは BASIC か アセンブラしか選択肢がありません でしたが,今ではPerl, Ruby からアセンブラまでの間に非常に多くの言語があって, アセンブラは普通では不要な最下層の知識となっていると思います. 10BaseT のツイストペアケーブルのインピーダンスを気にする人はほとんどいない ようなものでしょうか? アセンブリ言語の学習で最も困難なのは,最近では書籍が見つからないこと かもしれません. …と書いていましたが、また増えてきているようで

  • モダンなプログラミング言語の開発環境の構築方法まとめ - ネットサービス研究室

    随時更新していきます。 モダンなPerlの開発環境の構築方法 モダンなPHPの開発環境の構築方法 モダンなPythonの開発環境の構築方法 モダンなJavaの開発環境の構築方法 モダン(かもしれない)なEclipse環境(Java)の構築方法 モダンなC, C++の開発環境の構築方法 モダンなMySQLの開発環境の構築方法

    モダンなプログラミング言語の開発環境の構築方法まとめ - ネットサービス研究室
  • 1