タグ

プログラミングに関するnoonworksのブックマーク (178)

  • プログラムを理解させるには?

    K&RのCで書かれたプログラムを渡された(もう少し正確に言えば、VisualStudioのWizardで作られたものにK&RのCでコーディングしてある(C++ですら無い)ので純粋なCでは無いが果てしなくK&RのCだ)。あと、これを作った人はどうにも「ポインタ」の概念が無いらしく、無駄に多次元配列だったり、配列のアドレス渡しとかが多用されている。 作業指示は、これを流用して、C++/CLIかつ.netFramework3.5使用かつ新規案件に対応せよ、との事。 個人的にはどう見積もっても3人で4ヶ月かかる量なんだが、予算が1人で1ヶ月、と言って来た。理由は「Cからの流用だから」。 参ったな。自分としては、C++/CLIはもはや別言語だと思っているんだが。 どうにも上司と顧客に説明出来ない。説明出来ないのは、自分が理解していないせいだ、と言われればそれまでなのだが、自分の感覚で言うと、高段者が

    プログラムを理解させるには?
  • Javaプログラマが知るべき9のこと - @katzchang.contexts

    はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ

    Javaプログラマが知るべき9のこと - @katzchang.contexts
  • Twitterが、Ruby on RailsからJavaVMへ移行する理由

    オライリーが主催するイベント「Open Source Convention 2011」が7月25日から米国ポートランドで開催されました。 その中で、TwitterがなぜRuby on RailsベースのシステムをJavaVMベースへ移行しようとしているのかを解説したセッション「Twitter: From Ruby on Rails to the JVM」が行われ、ビデオが公開されています。 13分程度の短いセッションのポイントをまとめて紹介します。 世界最大のRuby on RailsによるWebサイトをJavaVMへ移行 Twitterのアプリケーションサービスグループ、Raffi Krikorian氏 Twitterは世界中からのツイートをリアルタイムで扱っている。リアルタイム処理が、ツイッターにおけるもっとも難しい処理だ。 Twitterは、おそらく世界最大のRuby on Rail

    Twitterが、Ruby on RailsからJavaVMへ移行する理由
    noonworks
    noonworks 2011/08/02
    なるほどー "一方でTwitterはこれだけのスケーライビリティや性能が要求される段階までRuby on Railsで対応できることを証明してきたともいえます"
  • ぼくはこうしてプログラミングを覚えた

    オリジナルはココです。フェイスブックのエンジニアでで史上ベスト3に入るといわれるEvan Priestley氏への質問「どうやってプログラミングを覚えましたか」に対する人からの答えです。 手短かに言えば 何年もの歳月の賜物というか。ぼくはただひたすらプログラミングが大好きで、(フェイスブックで働いていた)過去4年間、ほとんど他のことをしていない。その前も2.5年ほどプログラマーとして働いていたし、そのさらに前も6年くらい趣味でプログラミングをしていた。ぼくは高校も大学も中退しているので、それで空いた時間もプログラミングに費やした。つい最近フェイスブックを辞めたけど、未だに起きている時間のほとんどはプログラミングだ。 もっと詳しく言えば 月並みだが、ぼくはちっちゃい頃からコンピューターが好きで、我が家にあったヤツで(最初はMac Plusで途中からIIsiになった)で散々遊んだ。8歳か9歳

    noonworks
    noonworks 2011/07/20
    "マスターするには気の遠くなるくらいの時間を費やさなくてはいけない。近道はないし、一番ためになる教訓は、一番苦労して得るものだ。"
  • 闇プログラマーに喧嘩を売ってしまった昼下がり~条件分岐篇~

    ※このまとめに含まれるプログラムは一種のパズル的な遊びです。 くれぐれも用法用量を守った上で正しくご利用ください>< 実用するならば、“言うまでもなく” if か ?: を利用すべきです。 やばい連中に喧嘩を売ってしまった……。 続きを読む

    闇プログラマーに喧嘩を売ってしまった昼下がり~条件分岐篇~
    noonworks
    noonworks 2011/05/27
    "条件演算子と呼べよデコ助野郎" キャーッイケメン
  • http://neta.ywcafe.net/000327.html

    noonworks
    noonworks 2011/05/21
    "担当者がパスワードを知ってしまう過程が無い""生のパスワードがWeb画面やメールや紙の上に記録または表示される過程が無い"
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    noonworks
    noonworks 2011/05/20
    こ、こわい… "夜中、机ががたがた音を立てたが、忙しいので待ってもらった。"
  • Javascriptの開発手法について社内でプレゼンしました — Aduca

    About this Entry Javascriptの開発手法について社内でプレゼンしました was posted on 5月 18th, 2011 at 1.23pm and is filed under Programming. This entry has no comments (yet). You can follow any responses through the RSS 2.0 Feed. Recent Post Javascriptの開発手法について社内でプレゼンしました Javascriptが難しくてわからないので誰か教えてください Nerineを作り直したい話 新宿にて配信の記録 機材購入 Category livestream non-category Programming thinking Meta ログイン 投稿の RSS コメントの RSS Wor

  • ブラウザでJavaScriptが動く時代がやってきた! - 葉っぱ日記

    というわけで、昨日から話題沸騰の Javascript PC Emulator すごいですね。JavaScript で書かれた x86 PC エミュレータ上で Linux 動かして、入ってる tcc 使えばそこそこのソースもコンパイルして動いたり。 もとのディスク容量が少ないので、適当な母艦を用意して、こんな感じ で新しいディスクイメージ作って、CocProxy や Fiddler の AutoResponder を使って root.bin へのリクエストをローカルのファイルに差し替えてやれば、好きなファイルも入れられますね。 というわけで、SpiderMonkey を入れて動かしてみました。ブラウザ内でJavaScriptが動くなんてムネアツですね! 手順としては、コンパイルの簡単な SpiderMonkey 1.7 を x86 の32ビットマシンで -static 付きでビルドして、r

    ブラウザでJavaScriptが動く時代がやってきた! - 葉っぱ日記
  • Wizard Bible

    Wizard Bibleは2018年4月22日24時に閉鎖しました。 投稿者や読者の皆様、これまでの間当にありがとうございました。 【2021年6月27日更新】 Wizard Bibleの設立から閉鎖までに至る過程を詳細に述べたが出ることになりました。 『Wizard Bible事件から考えるサイバーセキュリティ』執筆プロジェクト 興味のある方は是非読んでみてください。 Security Akademeiaに戻る

  • 言語たん48 (Cちゃん、C#たん、C++たん、Groovyたん、javaco、Perl姉さん、PHPちゃん、Pythonちゃん、Rubyちゃん、Scalaちゃんなど) ここにいたこと - みちしるべ

    モテるGroovy系女子力をあげる4つの心得を書くとき、GroovyたんとScalaちゃんは見つけた。 他のプログラミング言語にも擬人化された萌え(?)キャラクターがいるのだろうか? ということで調べてみた。 AKB48にならうと、PRG48、GTN48とかになるのかな。 知らない言語もあるし、そんなのあったなっていう懐かしいのもあるし 様々だな。 詳しくないけど、明らかに絵に年代を感じるのもあるね。 applescript PgGirls 跡地 Assembler プリンセス・アッセンブラ AWK AWK019 【27cmドール用】 クラシックバニーset 黒 この辺から来てると思うんだけど・・・ bash ランゲージ娘。ぼ〜ん・しぇるる BASIC PgGirls 跡地 Brainfuck PgGirls 跡地 C ランゲージ娘。Cちゃん C# C#たん C# たんをいろんな人に描いて

    言語たん48 (Cちゃん、C#たん、C++たん、Groovyたん、javaco、Perl姉さん、PHPちゃん、Pythonちゃん、Rubyちゃん、Scalaちゃんなど) ここにいたこと - みちしるべ
    noonworks
    noonworks 2011/05/17
    負けてはおれん
  • どうも周知徹底が不足しているようなので再度のお願いとなりますが、C死ね。

    確かにCでしか書けない類のプログラムは存在する(例を挙げるならKernel)が、それはCの存在を赦す理由にはならない。確かにCに輪をかけてさらにダメな類のプログラミング言語は存在する(例を挙げるならC++)が、それはCの存在を赦す理由にはならない。確かにCでしか書けないダメプログラマは存在する(例を挙げてほしければここにおまえの名前を入れろ)が、それはCの存在を赦す理由にはならない。結論:C死ね。 そもそも計算機にできて算盤にできないことなど存在しない。存在しないんだぞ。なのに何故人はプログラムを書くのか。それはオートメーションのためなのであり、奴隷的使役から人類の尊厳を開放して、この地上に楽園を築くためである。まあそこまで大上段に振りかぶって普段から書いてる輩はいないにせよ、プログラミングとは楽をするため、豊かな人生を実現するため、誰かの幸福のために行うものだ。違うか?じゃあなぜプログラ

    どうも周知徹底が不足しているようなので再度のお願いとなりますが、C死ね。
    noonworks
    noonworks 2011/05/17
    "たとえシステムがユーザーの負担を減らしたとしても、そのぶんプログラマが背負ってるだけに過ぎない場合が多々見受けられる"
  • 肉体言語 Tython - Thanks Driven Life

    Tython とはhttps://github.com/gongo/Tython/tree/development 肉体言語 Tython は、Kinect センサーを用いて、体の動きを利用してプログラムを入力する言語、というかインターフェースというかフレームワークというか。 図にするとこんな感じです。 Kinect を介して動きを検知 (Detector) 検知した動きによって、入力するソースコードを決定 (InputMethod) ソースコードを入力し終わったら、コンパイル (Compile) コンパイルしてできた命令列を実行 (VM) デモ 「Hello, World!」Tython を使って Hello, World! を出力してみました。 Hello, World! 出力まで 4分強 一回で成功しなかった 最終的に成功するまでの時間は 90分 一度でも文字入力失敗すると最初から

    肉体言語 Tython - Thanks Driven Life
    noonworks
    noonworks 2011/05/16
    これでバリバリプログラミングできる人とかいたら惚れる…
  • プログラマが体験すべき50の危険なこと

    くっくっkura 🇯🇵🦀 @PG_kura 「良い子は C++ の近くで凧揚げしてはいけません」的な RT @Cryolite 子どもが体験するべきたった1つの危険なこと:「C++ を使う」 2011-04-12 10:44:31

    プログラマが体験すべき50の危険なこと
  • 「プログラマが体験するべき50の危険なこと」

    「子どもが体験するべき50の危険なこと」のタイトルだけ元ネタ。 http://www.oreilly.co.jp/books/9784873114989/ プログラマ一般ではなくソフトウェア開発業界寄りになってます。 「危険な体験談」「あるある」で終わらずに、そこからもう少し考えるきっかけに出来るんじゃないかと思ってます。 「プログラマが体験するべき50の危険なこと」と「きのこ」 続きを読む

    「プログラマが体験するべき50の危険なこと」
  • 【ハウツー】Javaのビヘイビア駆動開発をやさしく現する"easyb"を試す (1) ビヘイビア駆動開発、そしてeasybとは? | エンタープライズ | マイコミジャーナル

    稿では、Java向けのビヘイビア駆動開発(Behavior Driven Development: BDD)フレームワークであるeasybを簡単に紹介する。 「ビヘイビア駆動開発」という用語になじみのない方のために簡単に説明すると、「ソフトウェアを書く前に、その仕様をコードで書く」という開発手法である。対して、皆さんおなじみの「テスト駆動開発(TDD)」は、「ソフトウェアを書く前に、そのテストをコードで書く」という開発手法だ。 この2つの開発手法は、「プログラムを書く前に、そのプログラムが正しく動くことを保証するためのコードを書く」という点ではまったく一緒だ。保証するためのコードもかなり似通ったものになる。ただし、TDDのコンセプトは「テスト対象のものがないのにテストを書く」というもので、あまり直観的とは言えない。対してBDDは、「仕様通りに動くことを保証するために、検証コードを先に書く

    noonworks
    noonworks 2011/05/10
    "「ソフトウェアを書く前に、その仕様をコードで書く」という開発手法" "BDDは、「仕様通りに動くことを保証するために、検証コードを先に書く」というコンセプト"
  • モテる情報科学系女子力を磨くための4つの心得

    1. あえて2~3世代前のインタプリタを使う あえて2~3世代前のインタプリタを使うようにしましょう。そして飲み会の場で好みの男がいたら話しかけ、わざとらしくパソコンを出していじってみましょう。そして「あ~ん! このインタプリタ当にマジでチョームカつくんですけどぉぉお~!」と言って、男に「どうしたの?」と言わせましょう。言わせたらもう大成功。「LiLFeSとか詳しくなくてぇ~! ずっとコレ使ってるんですけどぉ~! すぐセグフォるんですぅ~! ぷんぷくり~ん(怒)」と言いましょう。だいたいの男は新しいインタプリタを持ちたがる習性があるので、古かったとしても1世代前のインタプリタを使っているはずです。 そこで男が「新しいインタプリタにしないの?」と言ってくるはず(言ってこない空気が読めない男はその時点でガン無視OK)。そう言われたらあなたは「なんかなんかぁ~! 最近LiLFeS1.4.0が人

    モテる情報科学系女子力を磨くための4つの心得
    noonworks
    noonworks 2011/05/09
    "「><」をコードに入れると、Javaの男性ユーザーは「なんかこの子カワイイなぁ」や「Basicっぽいよね」「<>が正しいよね」、「ってか!=だよね」と思ってくれます"
  • not found

    noonworks
    noonworks 2011/05/07
    なんか落ち込んだ
  • 大企業はソースコードの管理に何を使っている?

    Facebookの元CTOだったダスティン・モスコヴィッツが立ち上げた質問サイト、Quoraにて大企業がどんなソースコード管理システムを使っているのか?という質問が挙っていました。Quoraは回答の質が高いという触れ込みでスタートしているサービスなのでこれらの情報は多分正しいのでしょう。 Facebook svn (一部の人はgitも使っている) Amazon perforce Zynga svn Netapp Perforce Google git(Android), Perforce Quora git SAP Perforce ebay Clear Case git(実験中) VMware Perforce この内容の限りだとオープンソースではgit、商用ではPerforceという流れがあるようですね。 via:http://www.quora.com/What-version-co

    大企業はソースコードの管理に何を使っている?
    noonworks
    noonworks 2011/05/06
    日本の企業がどうなのかは知らないけど中小の上司は「便利なのは知ってるけど、ほら、うちはわざわざツール使うほどの規模じゃないから」という気がする。
  • DIコンテナ【Dependency Injection Container】

    DIコンテナは,「DI(Dependency Injection:依存性の注入)」と呼ぶデザインパターンに基づいて作られたコンポーネント群を集中管理するためのソフトウエアです。 DIは,コンポーネント(クラス)間の依存関係をソースコードから取り除くことで,プログラムの実行時までコンポーネント同士が依存関係を持たないようにするデザインパターンです。 例えば,あるクラスAの中で別のクラスBのインスタンスを生成して利用しているとき,AはBに強く依存してしまっています。つまり,Bを別のクラスに差し替えたときなどにはAも変更しなければなりません。このような依存関係は,AとBを別の人が作っている場合などに特に困ります。 こうした依存性をクラスから取り除くのがDIパターンです。Bへの依存性をAから排除するには,まずBの機能を抽象化したインタフェースIを定義し,Iを実装したクラスとしてBを作ります。 Bの

    DIコンテナ【Dependency Injection Container】