タグ

Programmingに関するuk-arのブックマーク (21)

  • 簡単なWebサーチエンジンの作り方 - Imagine with 加藤和彦

    筑波大学は3学期制で,12月1日から3学期が始まりました.3学期には私が担当している学類生(普通の大学の学部生)3年生向けの実験があります.約3ヶ月を掛けて,ほどほどの規模のプログラム作成を行います.私が作り,担当しているプログラム実験は「Webサーチエンジン」といいまして,テキストはこちらに公開しています. この実験,結構,自信作なんです.Javaの基的なプログラミングができることだけを仮定して,漏れのない全文検索を行うWebサーエンジンを作ります.Webデータ収集を自動的に行うクローラー付き.Googleのようなページランキング機能はありませんが,一応,サーチエンジンの基機能を備えます.自慢は,このテキストが実質A4で印刷して2ページくらいであること.数学の小問を解いていくように,順番に小問を解いていくと,最後にはWebサーチエンジンができます. ミソはサフィックス・アレイ(suf

    簡単なWebサーチエンジンの作り方 - Imagine with 加藤和彦
    uk-ar
    uk-ar 2009/12/08
    筑波大学は3学期制で,12月1日から3学期が始まりました.3学期には私が担当している学類生(普通の大学の学部生)3年生向けの実験があります.約3ヶ月を掛けて,ほどほどの規模のプログラム作成を行います.私が作り,
  • 子どもたちがOSS活動、プログラミング言語「Scratch」が開く未来 - @IT

    2008/01/17 当の意味でコンピュータリテラシーがあるというのは、つまりプログラミングができるということだ――。“パーソナル・コンピュータ”という概念の生みの親で、先進的なプログラミング言語「Smalltalk」やGUIというインターフェイスの開発者としても知られるコンピュータ科学者のアラン・ケイ博士は、そう言い切る。コンピュータに囲まれて育ったわれわれの子どもたちは、コンピュータリテラシーを持つ初めての世代になるだろう、と。 ケイ博士の議論は、“リテラシー”という言葉がもともと指していた文字の読み書き能力の歴史を振り返れば説得力を持つ。今では小中学生でもケータイで文字を書き送っているが、文字の歴史のほとんどの期間、非専門家が文字を読み書きする時代が来るとは、誰も想像すらできなかった。文字は、一部の特別な訓練を受けた人々だけが扱いうるものだった。グーテンベルクの活版印刷技術の発明か

  • ヒビノアワ: 小学生にプログラミングの楽しさを伝えてみた

    以前から、小学生や中学生にプログラミングの楽しさを伝えることはできないかなーと、ずっと思ってました。 PCや、インターネットが当たり前にあって、ゲームもちょっとお小遣いとかお年玉を貯めれば買えてしまう時代だからこそ、「自分でなにかを作り出す」とか「コンピュータを操ってみる」って感じを、早いうちに知っておくのは損ではないのではないか、と。 そんなことを、あちこちで言っていたら、一緒にやりましょうという方があらわれ、その方の企画のもと、そんなイベントが実現しました。 今回は、某小学校のコンピュータ室を使って、小学3年生から、6年生までの子供たちに、 Scratch を使って、プラグラミングプログラミングの楽しさを伝えてきました。 小学生とはいえ、彼ら彼女らは、普通にマウスも使えるし、PCの電源の切り方もしっかり知っています。PCを道具として使うことはすでに分かっている子供たちばかりです。 とり

  • エンジニアがミーティングを嫌う理由 – バイリンガルの独り言

    エンジニアがミーティングを入れられる事を好まない事や、不機嫌になる事は英語圏や日を問わず知られているかと思います。実質、私の周りにもこういった傾向がありますし、職人的に秀でてる方ほどこの傾向が強いと感じています。さて、これはなぜでしょうか? 友人のtweetにPaul Grahamというプログラマ兼ベンチャーキャピタリスが書いた、Maker’s Schedule, Manager’s Scheduleという面白い記事へのリンクが貼られていたので、私なりに要約して紹介します。 二種類のスケジュール プログラマやライターがミーティングを嫌う理由は彼らが他の人間とは違う種類のスケジュールで働いているからであるとGraham氏は語っています。氏いわく、スケジュールには二種類あります。 Maker’s Schedule(物を作る者のスケジュール) Manager’s Schedule(管理する者の

  • はてなブログ | 無料ブログを作成しよう

    来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…

    はてなブログ | 無料ブログを作成しよう
  • プロ・アマ・プログラミング言語を問わずに今までの4倍のスピードで学習する方法 - Craftworks Tech Blog - Branch

    私が実践して、とても効果が上がった学習方法を紹介します。 どんなプログラミング言語でも関係なく通用するやり方だと思います。 この学習方法に切り替えてからの 1 年の学習量は、それ以前の 4 年分に匹敵すると感じています。 以下にその方法を紹介します。 ソーシャルブックマークのホッテントリのフィードを購読する 特に気になったサイトの人気エントリにざっと目を通す 特に気になったブログを個別に購読する 流行のライブラリ、フレームワーク、アプリケーションのソースコードを読む カンファレンスなどのスライドに目を通す 特に気になった人のブックマークをお気に入り登録する 得た情報を元に実際にコードを書いてみる 評判の書籍を読む ソーシャルブックマークのホッテントリのフィードを購読する ホッテントリとは人気の記事のことを言います。沢山ブックマークされ、それだけ注目度が高いということです。 特定分野の人気記

    プロ・アマ・プログラミング言語を問わずに今までの4倍のスピードで学習する方法 - Craftworks Tech Blog - Branch
  • Teach Yourself Programming in Ten Years 日本語訳

    以下の文章は、Peter Norvig による Teach Yourself Programming in Ten Years の日語訳である。 翻訳文書については、以下の方々にご教示を頂きました。ありがとうございました。 Shiro Kawai さん:誤訳の訂正 三好博之さん:誤訳の訂正 竹中明夫さん:2001年7月改版分の訳、誤訳の訂正(共訳者にクレジット) Toshihiko Ono さん:誤訳の訂正 アクビさん:訳注3に関する情報 どうしてみんなそんなに急ぐの? どの屋に足を運んでも、『7日で学ぶ Java』といったハウツーを見かけるし、そのそばには Visual Basic や Windows やインターネットなどについて、同じように数日や数時間で学べると売りこむが無限のバリエーションで並んでいる。Amazon.com で以下の条件で検索してみたところ、 pubdate

    Teach Yourself Programming in Ten Years 日本語訳
  • プログラミングできる人とできない人との間の深い溝 - masatoi’s blog

    どうしてプログラマに・・・プログラムが書けないのか?を読んでいて出てきたので出展の一つを訳してみた。Separating Programming Sheep from Non-Programming Goatsの和訳。 プログラミングというものには向き不向きが強く出るということはわりと知られていると思うが、このエントリではプログラミングができるかできないかは比較的簡単なテストによって、プログラミングの訓練を始める前の段階で分かると主張している。どうしてプログラマに・・・プログラムが書けないのか?では、そもそもこの事前テストをパスしていないような人達までプログラマとして応募してくると言っており、その判定法として有名なFizzBuzz問題を挙げている。 追記(2019/2/28) 注意: なおこの論文はしばらく前に著者の一人によって撤回されたようです Camels and humps: a r

    プログラミングできる人とできない人との間の深い溝 - masatoi’s blog
  • 間違ったコードは間違って見えるようにする - The Joel on Software Translation Project

    Joel Spolsky / 青木靖 訳 2005年5月11日 水曜 私が最初の当の仕事をはじめたのは1983年9月に遡る。それはオラニムというイスラエルの大きな製パン工場で、16台の飛行機ほどもある巨大なオーブンで、毎晩10万個のパンが作られていた。 はじめて工場に入った時、そのあまりの汚さに信じられない思いだった。オーブンの側面は黄ばんでいるし、機械は錆びていて、そこらじゅうが油だらけだった。 「いつもこんなに汚いの?」と私は聞いてみた。 「なんだって? なんの話をしてるんだ?」とマネージャが答えた。「掃除したばかりだから、今が一番きれいな状態なんだ」 なんてこった。 毎朝の工場の清掃を何ヶ月か続けて、ようやく彼らの言っていたことが理解できるようになった。パン工場では、きれいというのは機械にパン生地が付いてないことを言うのだ。きれいというのは、ゴミ箱に発酵したパン生地が入ってないこと

  • 5年後に後悔しないJavaプログラムの書き方 - L'eclat des jours(2009-07-02)

    _ 5年後に後悔しないJavaプログラムの書き方 ここ数日、死ぬほど後悔しまくっているので、あらためて(というのは、数年前にも一度後悔しまくって、そのときの知見はあらかた処方箋とかコーディングの掟に書いているからだが)後悔しないための書き方をいくつか紹介する。 とにかく、ファクトリメソッドパターンを使うこと。 これは当に重要。しかも簡単でありながら効果は絶大。 だめな例。 public class FooBar { private Connection conn; ... protected void setup() { ... conn = DriverManager.getConnection(url); ... } urlを指定することや、DriverManagerの実装を交換すれば良いだろうと想定していても(というか、Connectionならそういう方法もあり得るが、そうはいかな

  • ストリーム・プロセッシング - Wikipedia

    この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2016年10月) 脚注による出典や参考文献の参照が不十分です。脚注を追加してください。(2016年10月) 大言壮語的な記述になっています。(2016年10月) 独自研究が含まれているおそれがあります。(2016年10月) 言葉を濁した曖昧な記述になっています。(2016年10月) 出典検索?: "ストリーム・プロセッシング" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL ストリーム・プロセッシング (英: stream processing) は、並列処理を実現するプログラミング手法の一つである。ストリームプロセッシングを用いることにより

  • 「Yahoo!ニュース」の表示速度が3~5倍に、そのからくりは……:記事の芽

    夏休みスペシャル 2024 iPhoneで3Dモデルを手軽に作成、無料の純正アプリ「Reality Composer」を試す 2024.08.09

    「Yahoo!ニュース」の表示速度が3~5倍に、そのからくりは……:記事の芽
  • 感動するチーム(前編)=「絆」が呼び覚ますやる気

    いま、システム開発の現場に「感動」を持ち込もうという動きが始まっている。チームのコミュニケーション力の改善、一体感や仲間意識の醸成、仕事の意味や意義を再確認できる仕組みの整備などなど。方策は至って地味だが、仕事の達成感と、そのチームで働く喜びという代え難い感動を生んでいる。 もちろん感動などなくとも、仕事はできる。だが感動する機会が多ければ多いほど、人はより主体的に働き、大きな物事を成す。 そもそも、小さなものから大きなものまで、ソフト開発の必ずどこかには「感動」があったはずだ。自らかかわったシステムが稼働し始め、経営や組織が変わってきたときに感じる達成感やチームに貢献し、メンバーが互いにその能力と成果を認め合う喜びである。 チームの絆は品質に通ず=フェリカネットワークス= 「私はあなたの話を聞いていますよ」。言葉や態度で表現したり、要所要所で話の内容を確認したりする「傾聴」の練習。相手の

    感動するチーム(前編)=「絆」が呼び覚ますやる気
  • ユメのチカラ: 闘うプログラマ

    わたしが紹介するまでもなく、「 闘うプログラマー〈上〉」、「 闘うプログラマー〈下〉」はビル・ゲイツの野望を実現すべく雇われた「伝説のプログラマ」デイブ・カトラーのNT開発物語である。 わたしはデイブ・カトラーに会ったことはないがDEC時代にいろいろ伝説は聞いていた。一番、有名な都市伝説は、Windows NT (WNT)というのはVMS (DECのベストセラーマシンVAXのOS)を一文字づつずらした名前にしたというものである。誰かがデイブ・カトラーにその真偽を問うメールをしたところ、今ごろ気がついたのかよ、という返信が来たという。90年代初頭にそのようなメールがでまわっていたような記憶がある。 それはともかく鬼軍曹のような風貌のプロジェクトリーダ率いるNT開発物語はザカリーの筆力もありぐいぐいと人を引きつける。 それは栄光と挫折の物語である。20世紀最後の商用OS開発物語と言ってもいい。

  • 明日の空模様 - Backnumbers: Steps to Phantasien

    ある Mac プログラマから "WebKit ってドキュメントがすくないよね" という話を聞いた. WebKit の挙動が気に入らないので直せないかと調べたところ, Mozilla と比較した文書の少なさに呆れたという. 私としては連載枠が貰えたのもひとえに文書がないおかげだから, そこに不満はない. (むしろめでたい.) けれどコードを直したい人が不便なのは困ったことだ. WebKit に比べ, Mozilla の内部は網羅的ではないにしろそれなりに文書化されている. この違いはどこから来るのだろう. 私の印象は, Mozilla が "書き直し" プロジェクトだからというものだった. Netscape は Netscape Natigator 4.x のコードベースを捨て, ほぼスクラッチから Gecko を書いたとされている. 私の仄暗い経験によれば, 書き直しのプロジェクトは最初に

  • きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません

    「構造のきれいなプログラムを書けるようになるためにはどうすればいいのか?」という質問を受けたので、「はて?どうしているだろうか?」と考えてみました。あ、形式知にきちんとなっているようなテクニックみたいなもんじゃなくて、モノローグなので、あまり凝ったものは期待しないように。 http://blog.shibu.jp/article/28983162.html 自分なりにもっと凝縮版を。渋川さんが言っている事全体もその通りとは思うけど*1、もっと簡単で、しかも射程が広い、と自分が思っている事。 渋川さんはちょろっと触れてるだけだけど、自分はこれが最も基的で汎用的、かつ、ソースをきれいにする原動力となる上にバグをも減らしてコードの汎用性まであげる、コーディングのエンジンみたいなものと思ってる。それは、 「すべてに正しい名前を付けて、そして、正しい名前であることを維持する」という鉄の意志 クラス

    きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません
  • Shibu's Diary: きれいなソースコードを書けるようになるためには

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 by chazmatazz 「構造のきれいなプログラムを書けるようになるためにはどうすればいいのか?」という質問を受けたので、「はて?どうしているだろうか?」と考えてみました。あ、形式知にきちんとなっているようなテクニックみたいなもんじゃなくて、モノローグなので、あまり凝ったものは期待しないように。あ、Pythonに限定してますが、他の言語でも似たようなものはあると思いますので、脳内変換をお願いします。 事前の設計はしません 「こういう処理が必要」「こういう計算しなきゃね」みたいなロジックや「要件はこうかな?」ということは事前に考えたりするけど、クラス構造とかは基的に考えないで手をつけます。そして、ある程度規模が大きくなって「あ、ちょっとこの関数大きすぎて理解しにくいなぁ」と

  • 長文日記

  • わたしがprintf()デバッグをしない理由 2009-03-22 - 未来のいつか/hyoshiokの日記

    プログラマという職業について、もう25年くらいになるのであるが、その間にコンピュータのコストパフォーマンスは、それこそムーアの法則に従って、10万倍〜100万倍くらい向上した。にもかかわらづ、デバッグの方法というものの劇的な変化はほとんどみられない。 プログラミング入門書では、デバッグについて、ほとんど議論されていないし、仮にふれられていても、おざなりな方法というか、かなり邪険にあつかわれていたりする。プログラマの多くの時間がデバッグについやされていたとしてもだ。 たまたま手元にあった、C実践プログラミング(ISBN4-900900-64-8)という10年くらい前に買った参考書では、450ページのうちデバッガの利用については、4行ほど記述がある。たった4行である。診断用のprintf()を挿入するということは3ページにわたって記述されているのにだ。 流石に21世紀になってprintf()デ

    わたしがprintf()デバッグをしない理由 2009-03-22 - 未来のいつか/hyoshiokの日記
  • ソースコードにWhy(なぜ)を残していますか? - Fly me to the Luna

    つい最近Java界隈でSimpleDateFormatがスレッドセーフではない、という事が話題になりました。JavaDocにも「synchronizedではない」と書かれている事だけれども、日付の変換は良く使う上にフォーマットを繰り返し書くのは面倒なので、ユーティリティクラスとしてまとめておく事が良くあるっしょ。 こんな感じで。 package util; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public abstract class DateConverter { public static String convertYYYYMMDD(Date date){ DateFormat formatter = new SimpleDateFormat("y

    ソースコードにWhy(なぜ)を残していますか? - Fly me to the Luna