タグ

programmingに関するsesejunのブックマーク (126)

  • Xeon Phiのプログラミングについての情報(1) 資料のまとめ - それなりにマジメなメモ

    研究室でXeon Phi™ コプロセッサー 5110Pを買ったので試しに使おうとしたときに見た資料等の場所についてのメモです。 練習用にコードも書いて、それの解説は以下のところにあります。 http://d.hatena.ne.jp/ang65/20130404/1365052622 公式の資料 http://software.intel.com/en-us/mic-developer ここにインストールやらチュートリアルやらがいろいろあります。 特によく見るものとして以下のもの micの設定制御のツールの説明 http://www.intel.co.jp/content/dam/www/public/us/en/documents/product-briefs/xeon-phi-software-configuration-users-guide.pdf サンプルプログラム サンプルプロ

    Xeon Phiのプログラミングについての情報(1) 資料のまとめ - それなりにマジメなメモ
  • スクリプト言語の息の根を止めるのは案外 SSD かもな - kwatchの日記

    大変たいへん興味深い記事。全プログラマーにとって。 HDDの代わりにSSDを利用したら、リレーショナルデータベースの性能はどれだけ向上するのでしょうか? オラクルと富士通が共同検証を行い、その結果をホワイトペーパーとして先週発表しました ...(snip)... HDDは200スレッドで性能が頭打ちなのに対し、SSDは200スレッドから300スレッドになってもまだ性能は上昇。ただし、300スレッド時にはCPU利用率が100%に近づいており、先にCPU性能の方がボトルネックとなってしまったようです。 HDDをSSDにしたらデータベースはどれだけ速くなるか? オラクルと富士通が実験 - Publickey 動的なスクリプト言語 (RubyPython など) と静的なコンパイル型言語 (C++Java など) では、だいたい 5 倍から 10 倍ぐらいの速度差がある。それでもスクリ

    スクリプト言語の息の根を止めるのは案外 SSD かもな - kwatchの日記
  • C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?

    ■概要 以前、C#でのデータ処理について解説した。今回は、同様のデータ処理を、C#以外のプログラミング言語ではどうしているのか、(C#も含めて)以下の5つの言語を比較しながら説明していく。 C# Scala Python Ruby F# 結果としてできることは似ているのだが、その内部的な実装方法は言語ごとにさまざまである。 ■データ処理のおさらい 概念的には、「データ処理」というのは、Figure 1に典型例を示すように、条件選択や変換など、小さな処理単位に分けて、それをつないでいく形を取る。

    C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?
  • CS50: Computer Science Courses and Programs from Harvard | edX

    Why take a CS50 course?You don't need prior experience to get started with HarvardX CS50 — in fact, the program is designed for students of all levels. Regardless of your prior computer science knowledge, CS50 courses can help you gain a solid grasp of computer science essentials, including popular programming languages, algorithms, and data structures. Practical learningIntroduction to Computer S

  • プロとしての行為 Act as Proffesional

    1.一般的なコーディング規約に目を通し、エレガントなコードを知る エレガントなコードを書くためには、エレガントなコードを知らなければならい。その土台を築いているコーディング規約について、オープンソースではどのようなものが使われているのか理解しておこう。入社する予定の会社が採用している言語については必ず目を通しておこう。 PHP PEAR 標準コーディング規約 symfony CodingStandards Perl perlstyle Ruby クックパッド株式会社のRubyコーディング規準 Matzスタイル NaClで採用している規約 Python PEP 8 そして、あなたの身近にあるオープンソースのコードを実際に読んでみよう。この時点でコードの仕組みや設計が理解できなくても良い。コードがエレガントかどうか?を感じ取って欲しい。こう書いた方が、良いのではないか?など、考えてみよう。

    プロとしての行為 Act as Proffesional
  • オブジェクト指向について考える - yokkunsの日記

    オブジェクト指向は、人によって理解が違って、それを上手く共有出来ないと凄い認識違いが起きたりするので、ここで自分の考え方をまとめてます。 ここでいうオブジェクト指向は、クラスベースのオブジェクト指向のことです。 制限と拡張 オブジェクト指向は、それまで出来ていたことに対する制限とそれまで出来なかったことという拡張の2つの側面があります。 制限 カプセル化(※1) 言語仕様として、公開範囲を決められる 拡張 ポリモーフィズム 継承やインタフェースを用いる事により、様々なテクニックが使える この2つは、全くの別の概念として説明されることが多いですが、どちらも「相手に必要な情報しか渡さない」と考える事が出来ます。 カプセル化 相手に必要ない「内部構造と実装」を隠蔽する ポリモーフィズム 相手に必要ない「必要としてる型以外の情報」を隠蔽する これを確認するために、オブジェクト指向が出来るまでの流れ

    オブジェクト指向について考える - yokkunsの日記
  • Googleの並列ログ解析向け言語「Sawzall」が公開されたので使ってみた | Preferred Research Blog

    Rapidly Realizing Practical Applications of Cutting-edge Technologies

    Googleの並列ログ解析向け言語「Sawzall」が公開されたので使ってみた | Preferred Research Blog
  • Googleエンジニアから学ぶ、ハッカーになるための勉強法 - 久保清隆のブログ

    Debian Project/Google ソフトウェアエンジニア鵜飼文敏さんの講演動画を見たのでまとめ。 内容は、フリーソフトウェア、オープンソフトウェアのハッカーGoogle内のハッカーがどのようにソフトウェアを作っているか。 少し前の講演だけど、ハッカーを目指す上で非常に参考になった。 ハッカーの特徴 ハッカーとは Hacker ethic ハッカーのソフトウェアの作り方 ハッカーの開発スタイル 手順 要求仕様 設計 実装 テスト デバッグ チューニング ハッカーに近づくには 必要な知識 知識の習得の仕方 ハッカー仕事をするときの問題点 その他に紹介されていた書籍 感想 参考 ハッカーの特徴 普通の人をはるかに上回る高い生産性 高品質のソフトウェアを作りだす ハッカーとは ハッカーズ大辞典によると、 プログラム可能なシステムの細かい部分を探ったり、その機能を拡張する方法を探求した

    Googleエンジニアから学ぶ、ハッカーになるための勉強法 - 久保清隆のブログ
  • 開発メモ: 50行のC++コードでWebサーバを実装する

    「Kyoto Tycoonの設計 その四」改め、50行でWebサーバを書く方法を解説する。前回実装した「多重I/Oマルチスレッド汎用TCPサーバ」の上にHTTPの処理を行う層をつけて、「多重I/Oマルチスレッド汎用HTTPサーバ」を司るクラスを実装してみたので、それを使ってちょちょいとやる。 URLクラス HTTPと言えばURLが使えないと意味がない。URLは単なる文字列として扱ってもよいのだが、様々なシーンで分解や加工が必要になり、その処理はなにげに複雑で面倒なので、予めクラスとして導出しておいた方がよいだろう。 class URL { public: // 文字列のURLを解析して内部構造を作る void set_expression(const std::string& expr); // スキーム要素を設定する void set_scheme(const std::string&

  • プログラミン | 文部科学省

    プログラミンは、2010年8月に開発・公開されたものであり、Adobe FlashPlayer上で動作するものです。 しかし、Adobe Flash Playerは、2020年12月31日をもって提供及びサポートの終了を予定しているため、プログラミンを2020年12月31日をもって閉鎖いたします。長い間ご愛顧いただきましてありがとうございました。 なお、小学校プログラミング教育に活用できるプログラミング言語や教材については、「小学校を中心としたプログラミング教育ポータル」において実践事例とともに掲載しているのでそちらをご参照ください。(2020年7月31日 更新)

    プログラミン | 文部科学省
  • 404 Error - File Not Found

    指定されたファイルは見つかりませんでした。 10秒後に トップページ にジャンプします。

  • Success!

    Success! Your new web server is ready to use.

  • Hadoopを使わずにWikipediaのテキスト処理を400倍高速化 - tsubosakaの日記

    タイトルは釣りです。id:mamorukさんの書いたHadoop で Wikipedia のテキスト処理を900倍高速化 - 武蔵野日記を読んで、そもそも1G程度のデータの単語頻度を数えるのに858分もかかるんだっけと思い、id:nokunoさんの資料を読んでみると単語頻度を求める際に a b a aみたいなデータを a 3 b 1に変形するのにsortしたファイルをuniq -cで処理するということをやっていた。これはあまり効率のよい方法ではなくて行数をNとしたときにO(N log N)の計算時間となる(文字列比較はO(1)でやれることにする)。 これに対して、単語の頻度をハッシュ表で保存すると理想的な条件の元ではO(N)の計算時間で頻度を求めることが出来、より高速に計算することが可能となることが期待される。 また、単語数をWとしたとき、C++mapのような二分探索木を使ってもO(N

    Hadoopを使わずにWikipediaのテキスト処理を400倍高速化 - tsubosakaの日記
  • プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ - kなんとかの日記

    まずは次の表をご覧あれ。これはプログラミング言語のベンチマークとして有名な Computer Language Benchmarks Game のベンチマーク結果。上にいくほど高速で、下に行くほど遅い言語になる。 これを見れば、最速な言語は C/C++ であり、Java や Haskell や OCaml といった静的な言語は軒並み上位に登場する。これに対し、RubyPythonPHP といったスクリプトは全部下のほう (つまり遅い)。その速度差は非常に大きく、このベンチマークで見ると Python3 や Ruby1.9 は C/C++ の約50倍から60倍遅く、Perl は約90倍、PHP にいたっては約130倍遅いことになる。 (ちなみに JIT つきの Lua が驚異的に高速なのが目をひく。この結果が当だとしたら、言語の速度に大きく関係するのは動的か静的かではなく、どれ

    プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ - kなんとかの日記
  • いまからでも間に合う開発者テスト - mixi engineer blog

    はじめまして。開発部じゃない加藤和良です。 最近、mixi では Buildbot をつかった継続的インテグレーションをはじめています。安定版の mixi のソースコードにコミットすると Buildbot がそれを検知し、自動的にテストが走るようになりました。 ここでの「テスト」は Test::Simple や prove(1) をつかった、Perl でかかれた開発者テストを指しています。mixi の開発者テストをとりまく環境は、ここ数年でかなり改善されました。今回はその歩みをふりかえりながら、テストの無いコードベースをどこからどうやって変えていったかという話をしたいと思います。 開発環境 はじめに、前提となる mixi の開発環境について説明します。mixi では複数人の開発者がひとつのマシンで作業を行います。それぞれの開発者は、あらかじめ割り当てられたポートで Apache を起動し、

    いまからでも間に合う開発者テスト - mixi engineer blog
  • プログラマーの力量を見極める--面接官になったら尋ねるべき質問実例集

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます ソフトウェア開発者を採用する面接の場においては、応募者の専門家としての力量を見極めることが最も困難な作業の1つである。彼らの考え方については、面接時に少しやり取りを行えばそれなりに見当が付くだろう。しかし、実際のプログラミング経験を推し量るのは至難の業だ。一部の企業では、さまざまなテストを実施することでこれを行おうとするものの、筆者の経験から言えば、こういったテストは近代的な開発環境では必要性が薄い知識(IDEのオートコンプリート機能や、F1キーの押下で表示されるヘルプ、インターネットといったものがあるため、ライブラリの知識は以前ほど重要ではなくなっている)の丸暗記能力を試すだけに終わることも多い。そこで記事では、開発者を評価するうえ

    プログラマーの力量を見極める--面接官になったら尋ねるべき質問実例集
  • Gallery of Processor Cache Effects

    Most of my readers will understand that cache is a fast but small type of memory that stores recently accessed memory locations.  This description is reasonably accurate, but the “boring” details of how processor caches work can help a lot when trying to understand program performance. In this blog post, I will use code samples to illustrate various aspects of how caches work, and what is the impa

  • 無名関数を使った非同期通信のススメ(JavaScript)

    ここ最近はブラウザーの上で動く思いっきりRIAなアプリケーションを書いている私。こと通信の部分になると JavaScript での開発効率が、C++/Java/Objective Cなどと比べて格段に高いことをつくづく感じている毎日なので、今日は、そのあたりを少し解説してみようかと思う。 サーバーのAPIにアクセスするプログラムを書く方法は色々とあるが、「サーバー上の特定のURLにHTTPでアクセスして結果をXMLやHTMLやJSONで受け取る」というケースに限定すれば、基的に3つのパターンに分けられる。 1. 同期通信 result = urlfetch.fetch("http://www.google.com/") if result.status_code == 200: doSomethingWithResult(result.content) その書きやすさのために、実務経験の

  • 並列処理時代の演算の一意性 - potasiumchの日記

    足し算の答えが一意に決まるなんて昔話になるかも、というお話。 確認した範囲では、MATLAB 7.8 (2009a, 64bit) に足し算をさせる(たとえばサイズが500,000x1の行列の各要素を全部足す)と、その答えは一意に決まらない。全く同一のデータについて同じPC・環境で繰り返し計算させて、ほぼ毎回違う答えが返ってくる。 これについてMathWorks社(の少なくとも一社員)の見解が書かれているページを見つけた。 Comparing Single-threaded vs. Multithreaded Floating Point Calculations Loren on the Art of MATLAB December 4th, 2009 彼女の見解を要約すると、 浮動小数点数を用いた演算において、足し算は結合法則を満たさない( a+(b+c) ≠ (a+b)+c )。 演

    並列処理時代の演算の一意性 - potasiumchの日記
  • IntelliJ IDEAのエディタ周辺機能(Eclipseユーザ向け) - kaisehのブログ

    Scalaプラグインが優秀と聞いて、少し前からIntelliJ IDEA Community Editionを使い始めました。Scalaのサポートは期待通り充実していたんですが、IDE自体も快適で、Eclipseから気で乗り換えたくなってきました。 初めは、Eclipseと比べてエディタの操作感がかなり違うように見えて、とっつきにくく感じたんですが、それは単にEclipseの機能との対応関係が分かっていなかっただけで、少し馴染めば逆にIntelliJのエディタの方が使いやすい気がします。 以下、Eclipseのエディタに慣れた人向けに、IntelliJ IDEAで設定した方が良さそうな項目や機能の対応関係などを書いてみます。 最初にすること Eclipse風キーマップの使用 設定の"Keymap"で"Eclipse"を選択します。キーバインドの大部分がEclipseと共通になります。 フ

    IntelliJ IDEAのエディタ周辺機能(Eclipseユーザ向け) - kaisehのブログ