programmingに関するphoundのブックマーク (26)

  • 非同期プログラミングの話 - 南よ! 海の見える方!

    時は2005年ごろ、Officeはスレッドを有効に使うべく悪戦苦闘していた。Outlook2007などは外部から見てもその苦闘が見られただろう(不安定、とも言う)。社内にいれば、そのずっと酷いバージョンのアルファやベータもドッグフードする機会があり、なかなかに絶望の淵を覗く思いだった。 その当時のたくさんの失敗の経験とその分析から、社内には割とたくさんの非同期プログラミングのノウハウがあった。 といってもかっこいいテクノロジとかデザインパターンのような華々しい物では無い。もっと地味な、Writing Solid Code非同期版のような感じだった。Avalon以前の地味な、面白くもない世界。 非同期と並列は違う。直交はして無いけれど。 「ブロックしてるコールを非同期コールに差し替えればいいんでしょ?」そう思って作られた大規模アプリは、すぐに動かなくなった。非同期のアプリとしてただ普通に振る

    非同期プログラミングの話 - 南よ! 海の見える方!
  • 自作OSにUSBを実装する - livaの雑記帳

    はじめに この記事は自作OSでUSBキーボードを実装しようとして半年くらい四苦八苦していた経緯の備忘録です。時系列で書いてくので、読みにくかったらごめんなさい。 USB周りの経験値がゼロな状態から実装した結果、遠回りやら勘違いやらいろいろしているのですが、そこら辺の苦労話が少しは伝わると良いなぁ、と思って書いたものです。 あと、上級者向けに伏線となった部分を赤字にしてあります。読んでいくにつれ、この伏線が回収される(=僕の努力が水の泡になる)のですが、是非伏線の段階で「m9(^Д^)プギャーwwwwww」してみてください。 あと、タイトルは若干釣りです。それも最後まで読んでもらえれば分かるかと。 ソースは以下の通り。 github.com 背景&きっかけ 自分でOSを書いていると、キーボードで文字を入力したくなるわけです。C言語の入門でscanfとかやるのと同じですね。 キーボードから

    自作OSにUSBを実装する - livaの雑記帳
    phound
    phound 2017/03/22
    あの面倒臭いUSBスタックをフルスクラッチで書いたんなら大したもんだ
  • 最近よく見かけるバッドエンジニアリング — KaoriYa

    最近よく見かけるバッドエンジニアリングの発生パターン。 イカしたフレームワーク/ライブラリが誕生する あるプロダクトがそのフレームワークを利用する フレームワークのスコープから少し外れたことをやるためにハックする フレームワークがセキュリティ問題などにより更新される 3のハックのせいでアップデートできない どーすんだよ、これ。 もちろんハックがシンプルで規模が小さい or 適切な方法ならば、アップデート時にフレームワークのソース読んでなんとかできるわけだけれど。 とくにフレームワークがカジュアルに使えるほど、3のハックを行う人がド素人で、どうにもならなくなるように感じてる。

    phound
    phound 2014/10/20
    しかもハックした人は退職していて、ろくに引き継ぎもされていないパティーン
  • ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で?

    ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で? c++ - Replacing 32bit loop count variable with 64bit introduces crazy performance deviations - Stack Overflow stackoverflowで、興味深い質問が行われている。 簡単にまとめるとこうだ。std::uint64_t型の配列の各要素にx86-64のpopcnt(1になっているビット数を数える命令)を適用したい。 コードの肝心の部分を書くと、以下のようになる。 for (unsigned i=0;i<size/8;i+=4) { count+=_mm_popcnt_u64(buffer[i]); count+=_mm_popcnt_u64(buffer[i+1]); coun

    phound
    phound 2014/08/04
    『コンパイラーのレジスタ割り当てが変わるためだという。』ううむ。なんかわかるんだけど、なんか納得できん系
  • 「Unity 4.3」リリース。2D専用のツール追加やMecanimの改良などが目玉

    Unity 4.3」リリース。2D専用のツール追加やMecanimの改良などが目玉 Unity 配信元 ユニティ・テクノロジーズ・ジャパン 配信日 2013/11/13 <以下,メーカー発表文の内容をそのまま掲載しています> Unity、2D 開発ツール群を含む 4.3 アップデートをリリース 2D 専用の開発ツールに加え、 Mecanim アニメーションシステムの大幅な機能追加、 Umbra 3 オクルージョンカリングのアップグレードなどを実施 マルチプラットフォーム向けゲーム開発環境「Unity」を提供するユニティ・テクノロジーズ・ジャパン合同会社は、マルチプラットフォームエンジン/開発ツール Unity のバージョン 4.3 をリリースしました。 今回のアップデートには、要望の大きかった 2D 専用の開発ツールに加え、Mecanim アニメーションシステムへの大幅な機能追加、コード

    「Unity 4.3」リリース。2D専用のツール追加やMecanimの改良などが目玉
    phound
    phound 2013/11/14
    でたね
  • Pxem

    スタックをpopする スタックの先頭の値(int)を取り出す。取り出された値は消える。 スタックに積む スタックの先頭に値(int)を追加する。 コマンド以外の文字列の扱い コマンドが現れると、それ以前のコマンドでない部分を文字列と見なし、スタックに逆順に積まれていきます。 つまり、Hello, world!.pxeというファイル名であれば、最初のコマンドは.pなので、それまでの文字列であるところの Hello, world!が逆順に、即ち!dlrow ,olleHの順番で詰まれます。 するとスタックの中は、頭から、Hello, world!という順番になって入っていることになります。 この後、.p(スタックの中身を頭から順番に出力)により、Hello, world!と出力されるわけです。

  • 実装コードゼロでPythonに抽象クラスを導入する方法

    In this story, he loses his boyish innocence and lives fully, even to excess. Googleのサーチ担当ディレクタであり、『エージェントアプローチ 人工知能』の共著者としても知られるPeter Norvig氏のエッセイ「Python IAQ」を翻訳しました。こちらに置いてあります。[参照] で、表題の件なのですが、この中に「Q:Pythonでは、1行もコードを書かずに抽象クラスを実装することができますか?4行以内なら可能ですか?」という問いがあって、そこで実現されているんですよ。これが。 僕も「なんじゃこりゃ?」と思ったのですが、ちゃんと実現しています。果たしてどんな風に? 答えは続きをどうぞ。 class MyAbstractClass: def method1(self): abstract clas

  • ネットワークプログラムのI/O戦略 - sdyuki-devel

    図解求む。 以下「プロトコル処理」と「メッセージ処理」を分けて扱っているが、この差が顕著に出るのは全文検索エンジンや非同期ジョブサーバーなど、小さなメッセージで重い処理をするタイプ。ストリーム指向のプロトコルの場合は「プロトコル処理」を「ストリーム処理」に置き換えるといいかもしれない。 シングルスレッド・イベント駆動 コネクションN:スレッド1。epoll/kqueue/select を1つ使ってイベントループを作る。 マルチコアCPUでスケールしないので、サーバーでは今時このモデルは流行らない。 クライアントで非同期なメッセージングをやりたい場合はこのモデルを使える: サーバーにメッセージを送信 イベントハンドラを登録;このときイベントハンドラのポインタを取っておく イベントハンドラ->フラグ がONになるまでイベントループを回す イベントハンドラ->結果 を返す 1コネクション1スレッ

    ネットワークプログラムのI/O戦略 - sdyuki-devel
  • 最高のHaskell入門書 - あどけない話

    輪講で「Programming in Haskell」をようやく読み終えました。このは、最高のHaskell入門書といって間違いないでしょう。 Programming in Haskell 作者: Professor Graham Hutton出版社/メーカー: Cambridge University Press発売日: 2007/01/18メディア: ペーパーバック購入: 2人 クリック: 67回この商品を含むブログ (22件) を見る 一緒に Haskell のを何か読もうという話が、友達との間で出たとき、最初は「The Craft of Functional Programming」にしようかと思っていました。ただ、出版社の人から「Programming in Haskell」を勧められたことがあったので、二冊を友達に提示したところ、直感で「Programming in Has

    最高のHaskell入門書 - あどけない話
  • lsコマンドをハックしてみよう

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ショッピング事業部開発部の吉野です。 Yahoo!ショッピング開発部では新人エンジニア向けにコマンドのソースコードを読むことを奨励しています。 その初期の題材として、lsコマンドがよく挙げられます。 今回は「lsコマンドをハックしてみよう」と題し、lsコマンドについてお話しさせていただきます。 突然ですがエンジニアの皆さん、lsコマンドのソースコードを読んだことはありますか? 読んだことのない方はぜひ一度、目を通しておくことをおすすめします。 意外と知られていませんが、lsはcd,pwdなどのコマンドと違いシェルの組み込みコマンドではありません。 一口にlsと言っても、複数のソースコードが存在します。 代表的なのはGN

    lsコマンドをハックしてみよう
    phound
    phound 2009/03/24
    リンク先が getopt(1)
  • TEXTdrop|翻訳・オンラインカジノ 日本円のプログラミング

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • 各種チートシートまとめ - goinger的日記

    なんとなく便利そうなのを探してまとめてみた。 リンク切れおそろしい プログラミング関連 C, CPP, C# Cheat Sheets C, CPP, C#のチートシートがたくさんある 249 Prototype Dissected prototype.js チートシート 347 Haskell Cheatsheet Haskell 130 command line ruby cheat sheet ruby commandline チートシート 680 ruby-on-rails-cheat-sheet/ Railsのチートシート 701 google関連 google guide 検索オプションの説明とか 1358 Google Guide Quick Reference Google検索ガイド 9657 google help: cheat sheet google家から提供 40

    各種チートシートまとめ - goinger的日記
  • ニコ動でLisp

    ニコ動で動作するLispインタプリタ作ったよ。わーい \(^o^)/  いわゆるpure lispってやつです。12人の妹は関係ありません。妹より巫女さんの方がいいよね!  謎の作品一覧 mylist/4808991  (追記5)ニコスクリプトの仕様変更のため、lambdaとdefunが動作しなくなりました。それ以外は大体動きます。   Lispが分からない方ともっと長時間いろいろしたい方はこちら→sm3484521

    ニコ動でLisp
  • Programming UNIX Sockets in C - Frequently Asked Questions

    Created by Vic Metcalfe, Andrew Gierth and other contributers (Transrated into Japanese by: Keisuke Mori)May 21, 1998 この文書は、UNIX 上での ソケットインターフェースを用いた TCP/IP アプリケーションプログラミングについて、頻繁に行われる質問とその 解答を集めたものです。 1. 一般的な情報と概念 1.1 更新情報 1.2 この FAQ について 1.3 この FAQ はどのような人向けでしょうか? 1.4 ソケットって何ですか? 1.5 ソケットはどのように動作するのでしょうか? 1.6 [あるの題名] というのソースコードはどこから取得できますか? 1.7 どこでもっと情報を得ることができますか? 2. クライアントとサーバ(TCP/SOCK_STREA

  • テラスケールコンピューティングのための言語「Ct」

    会期:9月18日~20日(現地時間) 会場:San Francisco「Moscone Center West」 Intelは、メニイコア、ヘテロジニアスなど、いわゆるTera-Scale Computingと呼ばれる領域で、大きく3つの研究成果を発表している。1つは、昨年(2006年)春のIDFでラトナー氏が基調講演で語ったTransactonal Memoryである。これは、今回、ソフトウェアでこれを実現するSTM(Software Transactional Memory)対応のコンパイラが公開されている。 残りの2つが、「Accelerator Exoskeleton」と「Ct」である。Accelerator Exoskeletonについては別途レポートしたので、今回は、Ctについてレポートする。 Ctは、Ctで定義したデータタイプに対する演算処理をOpenMP対応C/C++コンパ

  • 電子工作室

    USB通信プログラミングテクニック 最近のパソコンには必須の周辺となったUSB(Universal Serial Bus)をPICで 使うときのプログラミングの仕方について説明します。 USBの基についても少し解説していきます。 ここでの解説は主にUSB Ver1.1の仕様をベースにしています。 1.USBとは、情報源 2.USBの基アーキテクチャ 3.USBの通信プロトコル 4.USBのプラグ&プレイとDescriptor 5.デバイスのハードウェア構成 6.デバイスのソフトウェア構成 7.USBN960xの使い方 8.USBN960x用 基デバイスプログラム(アセンブラ) 9.USBN960x用 基デバイスプログラム(C言語) 10.デバイスドライバ(汎用USBドライバ)の使い方 11.USBの応用例(計測ロガ- アセンブラベース) 12.USBの応用例(計測ロガ- C言語ベー

  • codeなにがし

    世界最高峰のブックメーカーでベットしましょう。オンラインベッティングでお気に入りのスポーツをお楽しみください。

  • ソースコードとプログラミング・ノウハウ共有サイト「code*」オープン,8月中に1万件以上提供

    左からテックスタイル 代表取締役 岡田良太郎氏,オープンタイプ 代表取締役 早川仁氏,テックスタイル 代表取締役 吉田斉氏 オープンタイプはソースコードやプログラミングのノウハウを共有するサイト「code*」(コードなにがし)をオープンした。誰でも無料でコードやノウハウを閲覧,公開できる。オープンタイプが蓄積した,PHPを中心とするコードやノウハウも今月中に1万件以上掲載する。 「長年開発に携わってきたが,感じる大きな疑問は技術情報やソースコード,ノウハウの体系的な共有化,オープン化が全く行われていないこと」(テックスタイルの代表取締役 吉田斉氏)。オープンタイプは情報システムやオープンソースに関するコンサルティングを行うテックスタイルのグループ企業で,ツールの提供やサービスの開発などを行っている。 code*ではユーザーが質問を登録でき,それに対し回答することができる。匿名での投稿も可能

    ソースコードとプログラミング・ノウハウ共有サイト「code*」オープン,8月中に1万件以上提供
  • 2018年10月31日(水) をもって、はてな認証APIの提供を終了します。それに伴い、OAuthへ移行をお願いいたします - はてなの日記 - 機能変更、お知らせなど

    2018年10月31日(水) をもって、はてな認証APIの提供を終了します。それに伴い、OAuthへ移行をお願いいたします いつもはてなをご利用いただきありがとうございます。 下記の告知にて予告させていただきましたが、ご利用状況を鑑み、2018年10月31日(水)をもちまして、はてな認証APIの提供を終了させていただきます。 今後、はてなグラフ、ポケットはてななど、複数のサービスの提供を終了する予定です - はてなの日記 - 機能変更、お知らせなど はてな認証APIは、はてなアカウントによるユーザー認証をサードパーティのアプリケーションでも利用できるようにする開発者向けAPIで、2006年4月24日に公開しました。 なお、代替として、はてなではOAuthサービスプロバイダの機能を提供しておりますので、こちらのへの移行をご検討ください。 http://developer.hatena.ne.

    2018年10月31日(水) をもって、はてな認証APIの提供を終了します。それに伴い、OAuthへ移行をお願いいたします - はてなの日記 - 機能変更、お知らせなど
  • zlib Home Site

    A Massively Spiffy Yet Delicately Unobtrusive Compression Library (Also Free, Not to Mention Unencumbered by Patents) (Not Related to the Linux zlibc Compressing File-I/O Library) Welcome to the zlib home page, web pages originally created by Greg Roelofs and maintained by Mark Adler. If this page seems suspiciously similar to the PNG Home Page, rest assured that the similarity is completely coinc