タグ

programmingとLinuxに関するpongepongeのブックマーク (9)

  • 実践的低レベルプログラミング

    はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「

    pongeponge
    pongeponge 2018/10/13
    ここらへん実際に触りながらじゃないと頭に入っていかない
  • Linuxカーネルのコードを読んで勉強になったこと - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    Linuxカーネルのコードを読んでて、なるほど〜と思うことはよくあるけど、その中でも特に今までの考え方をぶち壊してくれたのはなんだっけと思ったところ、やっぱりリスト構造かなと言うところ。 c言語でリスト構造を作る場合、一般的な教科書方式だと↓のようにデータとnextポインタは密結合になってると思います。これの場合、struct foobarのポインタをnext要素に使っているので、他の構造体(例えば、struct hogehoge)で同じことをしようとすると、その構造体ではstruct hogehoge *nextというメンバ変数を持つ必要があります。 ヘッド要素はstruct foobarです。 struct foobar { int n; char s[64]; struct foobar *next; }; struct foobar head; Linuxカーネルの場合、データとリ

    Linuxカーネルのコードを読んで勉強になったこと - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
  • 2016年、C言語はどう書くべきか (前編) | POSTD

    (訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり

    2016年、C言語はどう書くべきか (前編) | POSTD
    pongeponge
    pongeponge 2016/02/19
    『charはもう使わないので注意してください』本気ですか/_tとかめんどくさくなって、色々変わったなぁ
  • 引っ越し祝いに大きめのエジプト神像を送りつけられたのでラズパイを仕込んで喋れるようにした - Qiita

    プロローグ 恋人と暮らすことにしたので、新しい部屋に引っ越した。 家具やインテリアのテイストも二人で相談して、忙しい日々の中でもくつろげる落ち着いた空間を作ろうとしていた。 そんな幸福な日常が終わりを告げるまで、そう長くはかからなかった。 引っ越しも一段落して、新しい部屋にも慣れ始めたある朝、友人から引っ越し祝いと称して身の丈1mほどの神像が送りつけられた。 古代エジプトで天空神として崇められた、「ホルス神」をしつらえた置き時計だった。 その日からホルス神は、我が家のリビングに鎮座することになった。 準備 というわけで今回は、Raspberry Piを使ってリビングに突如として現れたホルスを喋らせて、さらに目覚まし機能を搭載してみようと思います。 今後エジプト神像を送りつけられた際の参考にしてください。 必要なものはこちら。 Raspberry Pi 2 micro SD スピーカー US

    引っ越し祝いに大きめのエジプト神像を送りつけられたのでラズパイを仕込んで喋れるようにした - Qiita
    pongeponge
    pongeponge 2016/02/14
    『ホルス神なので当然、語尾が「〜でホルス」です』キャラ付けに必死過ぎる太陽の神が誕生。
  • プログラミングの低レベルと高レベル - 超ウィザード級ハッカーのたのしみ

    プログラミングにはレベルの低い・高いがある。ここでいうレベルとはCPUとかストレージデバイスといった生のハードウェアに近いかという意味である。レベルが低いほど生のハードウェアを意識しなければならない。カーネルは低レベルなソフトウェアの代表である。高尚かどうかと混同されることを嫌ってか、低レイヤ・高レイヤという言い方も良くする。私はあえて混同させたくてレベルという単語を使用している。 私は元々低レベルのプログラミングの方が計算機を操ってる感があって好きだった。しかし、しばらく離れてJavaとかPythonとか高レベルなことをやっていたが、ふと低レベルのところを再び触りたくなったので、 ハッカーのたのしみ Binary Hacks Cプログラミング高速化研究班 等を読み返しながら勉強している。低レベルはちょこちょこっとチューニングするだけで演算が高速化していき、ハッカー感が得られるので楽しい。

    プログラミングの低レベルと高レベル - 超ウィザード級ハッカーのたのしみ
    pongeponge
    pongeponge 2015/10/14
    ハードウェアに近いところの人は職人技っていうイメージ/低レベルの凄い人は「あいつはレベルが低すぎる」と言われるんですね
  • Windows 8.1ではじめるイマドキの開発環境 - Qiita

    今までは、メインマシンにはLinuxMacを利用していました。 ただ、最近はVagrantとかが充実してきてLinuxで動くWeb系の開発をするからって、環境をUnix系にする必要もないかな、と思って変化を求めてWindows 8.1 環境をデスクトップにししてみました。 別に紙芝居ゲーム艦これのため変えたわけじゃないですよ? ええ、違うんです。 作業してて結構ハマったり、昔のWindowsの環境構築とは様変わりしてた部分もあるので、その辺をメモります。 はじまりはアカウントから プログラマがWindows 8.1を使うならばまずはじめに考慮することはログインアカウントです。 Windows 8からは認証アカウントをMicrosoftアカウントと連携させることが推奨されます。 利用しているアカウントがローマ字などASCIIだけなら問題はありませんが、私のようについうっかりと日語名にし

    Windows 8.1ではじめるイマドキの開発環境 - Qiita
  • README のファイル名が大文字である理由 - clock-up-blog

    README のファイル名は慣習的にすべて大文字(であることが多い) GitHubプロジェクトを作るときに README を作成するオプションを入れておくと、README.md というファイルができる。それ以外の場所のプロジェクトでも README.txt や README など、ファイル名がすべて大文字になっているものをよく見かける。 なんか気持ち悪いなぁ、って思ってました。 readme でいいじゃん、と。 詳解 Linuxカーネル 第3版 作者: Daniel P. Bovet,Marco Cesati,高橋浩和,杉田由美子,清水正明,高杉昌督,平松雅巳,安井隆宏出版社/メーカー: オライリー・ジャパン発売日: 2007/02/26メディア: 大型購入: 9人 クリック: 269回この商品を含むブログ (71件) を見る 調べてみた README - Wikipedia, th

    README のファイル名が大文字である理由 - clock-up-blog
    pongeponge
    pongeponge 2014/05/09
    そんな理由があったのか/だけど上にあるからってほとんど見ない…
  • 死んで覚える本当のGitの使い方 - mizchi log

    注意: バズってますが、これははてなダイアリーからはてなブログの自動マイグレーションに失敗してたものを復旧させたもので、書かれたのは2012年です。 - 最近流行っているGit初心者向け記事は、「僕らが当に知りたかったこと」が欠けているようにしか思えません。 そこで、当のGitの使い方を僕が皆さんに伝授しようと思いました。 なにはともかく使ってみよう 前提として、皆様のお手元にはすでにGitがインストールされているものとします。 今回はエディタとしてDungeonCrawl StoneSoupを使います。 Downloads « Dungeon Crawl Stone Soup http://crawl.develz.org/wordpress/downloads Dungeon Crwal Stone Soup は今一番ホットなオープンソースのローグライクです。風来のシレンやトルネコ

    死んで覚える本当のGitの使い方 - mizchi log
  • 一番簡単なWEB+DB

    最近,WEB+DB環境で実現するシステム開発が大半を占めるようになり,基技術として技術者の必須項目になってくるなど私のような少し古めの技術者は焦りを感じているところですが,みなさんの中にも書籍は読んでいるんだが実践は,という方もいらっしゃるかと思います. この手のものは習うより慣れろで,とにかく動く環境が身近にあって,思いつくアイディアをこまめに動作確認できることがとても重要であると考えます.そこで,稿では,日常使っているPC上に,ちょいとWebサーバ,データベースを載せて,片手間にPerlプログラミングできる環境を構築してみます. WEB+DB環境と言えば,今やサーブレットの感もあり,CGIやPerlが効率の悪さの代表格のような扱いを受けることもありますが,今回利用するmod_perlモジュールをApacheに組み込めば,レスポンスの遅さやCPU負荷の問題が基的になくなります.また

  • 1