programmingとnetaに関するllillのブックマーク (20)

  • 闇プログラマーに喧嘩を売ってしまった昼下がり~条件分岐篇~

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

    闇プログラマーに喧嘩を売ってしまった昼下がり~条件分岐篇~
    llill
    llill 2011/05/27
    この場合ヤバイのはプログラマではなくC言語だと思うんです
  • 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)

    TwitterのTLで知ったのだが、少し前に海外掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。 Genius sorting algorithm: Sleep sort 1 Name: Anonymous : 2011-01-20 12:22 諸君!オレは天才かもしれない。このソートアルゴリズムをみてくれ。こいつをどう思う? #!/bin/bash function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait example usage: ./sleepsort.bash 5 3 6 3 6 3 1 4 7 2 Name: Anonymous : 2011-01-20 12:27 >>1 なん…だと

    常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)
    llill
    llill 2011/05/20
    普遍化させると、超でかい配列にソート対象の値をindexとして取りつつ格納し、その先頭から参照するアプローチ(バケットソート?)...ってことでしょうか。そこで配列を時間軸上に取ることでほぼ無限の空間を確保、と。
  • ITエンジニアリングの現状|常に進化し続けるITエンジニアリングの最新情報を、専門分野ごとに分けて紹介していきます。- Johogekkan.jp

    ITエンジニアリングの現状|常に進化し続けるITエンジニアリングの最新情報を、専門分野ごとに分けて紹介していきます。 Johogekkan.jpはこちらでは利用できません。u22procon.comへの移動をお願いいたします。 ITエンジニアリングの現状 常に進化していくITエンジニアリングの世界では、そこで働く人たちも常に進化していかなければなりません。そこで今回最新のITエンジニアリングの現状を、以下の2つのパートに分けて紹介していきます。 ITエンジニアリングの最新の状況、知識 こちらのパートではIT業界の最新の状況、知識などを紹介していきます。分かりやすく専門分野ごとに「システムエンジニアリング」、「プログラミング」、「サーバーエンジニアリング」、そして「ネットワークエンジニアリング」の4つに分けて紹介していきます。 ITエンジニアたちの現状 こちらのパートは、いったんは飽和状態と

    llill
    llill 2010/09/29
    U-0x20なら
  • 不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー

    プログラミング言語は人が作ったもの。人は誤るもの。なので完璧なプログラミング言語は存在しない。 「人は誤るもの、しかし誤りに固執するのは馬鹿の所業だ。」(キケロ) プログラミング言語も、間違った設計をして、馬鹿でない人がそれを修正することの繰り返しで発展してきた。 というわけで言語間での設計判断のい違いとか失敗した設計とかを収集中。一部抜粋して講義資料に入れるつもりなので他の事例をご存知でしたらぜひ情報をいただけるとありがたいです。 if(x = 0) C言語では代入が式であるためif(x == 0)のつもりでif(x = 0)と書いてしまい、常に偽になってしまう。 x = 0の値はint、条件式はboolでないといけないので型エラーだよ派: Java x = 0は式ではないので条件式に入れたら構文エラーだよ派: Python 条件式にx = 0をいれたらx == 0と解釈するよ派: H

    不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー
    llill
    llill 2010/08/10
    Cの突き放しっぷりとHaskellの突き抜けっぷりにむせる
  • Javaでセミコロンなしでプログラムを書く - プログラマーの脳みそ

    java-ja温泉2日目の夕。 @yoshiori がpythonのワンライナの楽しさを得々と語っていた。 @yoshiori「Brainf*ck を Python-oneliner にコンパイルする Python-onelinerを書いたけど全ッ然反応がなかった。こんなに面白いのに!」 @yamashiro「だって分かりにくいもん」 西尾先生が通常ワンライナではtry-catchが使えないけど子プロセス立ち上げて例外を出力してパースすればエラー処理ができるとか(http://www.nishiohirokazu.org/blog/2006/08/python_12.html参照)そんな話で盛り上がる中、 @nagise「Javaでセミコロンなしでプログラムが書けるような気がしてきた」 Javaの場合、普通にセミコロン(;)でマルチステートメントにかけるのでただ1行にしようというなら改行

    Javaでセミコロンなしでプログラムを書く - プログラマーの脳みそ
    llill
    llill 2010/03/23
    これはすごいw
  • Bsddiary.net

    Bsddiary.net This Page Is Under Construction - Coming Soon! Why am I seeing this 'Under Construction' page? Related Searches: High Speed Internet Anti Wrinkle Creams Work from Home Best Penny Stocks song lyrics Trademark Free Notice Review our Privacy Policy Service Agreement Legal Notice Privacy Policy

  • javascriptプログラマのレベル10 : tech.kayac.com - KAYAC engineers' blog

    週末料理をしていて足を切ってしまいました。agoです。 以前Perlは書いていたんですが、その頃以下の記事を読んで非常に感銘を受けました。 Perlプログラマのレベル10 - Perlプログラミング救命病棟より - naoyaのはてなダイアリー 当時あまりコミュニティとのつきあいがなかったので、「自分のスキルの絶対位置」、「次のレベルへ行くために必要なもの」を知ることで非常に安心感を感じた記憶があります。 いま確認したところ、「JavaScriptプログラマのレベル10」はないようなので書いてみました。 Perlプログラマ Schemeプログラマ Rubyプログラマ (家に直接リンクできるURLが無かったため、参照ページへリンクしています) haskellプログラマ 堕落したCプログラマ HTML知識レベル プログラマレベル 企業法務 JavaScriptの業務スキルレベル 判別表 (5

    javascriptプログラマのレベル10 : tech.kayac.com - KAYAC engineers' blog
  • プログラミングの上手い奴の特徴:アルファルファモザイク

    ■編集元:プログラマー板より「プログラミングの上手い奴の特徴」 1 仕様書無しさん :2009/09/21(月) 19:40:36 どんなに努力しても予習しても アイツにだけは速さも技術も敵わない・・・ そんな相手がいるはずです。 そんな人達と自分と、一体何が違うのか。 考えてみても分からない。 仕様書無しさん :2009/09/21(月) 21:16:33 努力するよりも好きになる努力をすればいいんじゃないかな Enjoy programming 7 仕様書無しさん :2009/09/23(水) 01:52:09

    llill
    llill 2009/10/06
    "あたまがいい"こと
  • [ソフト開発] わかりやすいプログラムの書き方 - よくわかりません

    ※このエントリは、Arata Kojima/NPO法人しゃらく さんが公開しているわかりやすい技術文章の書き方の改変です。 このページは、プログラムやコードなどを書く方々のために、分かりやすいプログラムを書くためにはどうすればよいのかについて説明しています。 1. 自分が伝えたいこと・訴えたいことを誤解しないように相手に読んでもらうにはどうするべきか。 2. プログラムを書くにあたって知っておくべきルールは何か。 3. プログラムを書く前にどのような手順を踏めば、分かりやすいプログラムを作れるか。 などについて参考にしていただければ幸いです。 プログラムを書く前に プログラムを書く前に次のことをしっかりとイメージしておく。 何を書くのか。 書こうとしている物は正確に何であるのか。 仮定して良い、必ず成り立つ前提(状況/状態)は何か。 成り立つ事が単に多いだけ/今はたまたま成り立っている、と

    llill
    llill 2009/08/19
    この辺って考えるが故の落とし穴とかもあったりして。心がけからウデに出るまで時間があるイメージ
  • 優秀なプログラマにたまに起こる逆行(退行)現象

    あれは私がまだ大学助手をしていたころだから3年ほど前のことだと思う。 私の勤めていた大学(情報系)では「プログラミング研究会」みたいなサークル活動が行われていて プログラミングの講義を受け持っていた私はそのサークルにちょくちょく顔を見せるようになっていた。 そこにはとびっきりかわいい女子学生が一人いたのだけれど、その子はゲームが大好きで 「自分でもゲームが作りたい」と一念発起してゲームコンテストに作品を出品することになった。 しかし、彼女はプログラミングの講義(Java)を1年くらい受けているものの、 格的なモノを作った経験がなく、ひとりでは行き詰まりをみせているようだった。 彼女はひとりでいることが多く、パソコンに向かって黙々とプログラムを書いているのをよく見かけた。 それを気にかけていた私はたまに彼女をランチに誘うようになり、彼女の方もしだいに私に打ち解けてきた。 私たちはだんだんと

    優秀なプログラマにたまに起こる逆行(退行)現象
    llill
    llill 2009/08/11
    金のハンマー問題。ベストプラクティスにも逆行はあるし難しいよね。OOP周りは特にそう感じる
  • プログラマの麻疹 - 宇宙行きたい

    id:t-wada と話してた時に出てきた「プログラマの麻疹」 プログラマはみんなどうせかかるんだから早めにかかっておいた方が良い そしてかかっておくと治った後にはさらに良いコードが書けるようになるので 恐れずにかかりましょう 名前 症状 僕の状態 OO 厨 多分、現在一番キャリアが多い。一時期 AOP 厨になってしまった人も含むことがある。Smalltalk を神格化し始める かかり中 function 厨 最近増えてきた。マルチコア時代に最適というわかりやすい感染源ができたことも要因の一つ。LISP が世界を作っていると信じる 挫折中 三項演算子厨 どんどんネストした三項演算子を書いてしまう。気がつくと自分でもよくわからなくなってることもある 治療済み テスト厨 テストのためだけにコードを書いてしまう。プロダクトコードのきれいさよりもテストのしやすさを求めてしまう 治療中 lambda

    プログラマの麻疹 - 宇宙行きたい
    llill
    llill 2009/07/06
    リセット厨。とにかくコードを一から書きたがる
  • 一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録

    一番右端の立っているビット位置(RightMostBit)を求めるコードで速いのないかなーと探していたら、ものっっっすごいコードに出会ってしまったのでご紹介。2ch のビット演算スレで 32bit 値のコードに出会って衝撃を受けて、その後 64bit 値版のヒントを見つけたのでコードを書いてみました。 この問題は ハッカーのたのしみ―物のプログラマはいかにして問題を解くか (Google book search で原著 Hacker's delight が読めたのでそれで済ませた) で number of trailing zeros (ntz) として紹介されています。bit で考えたときに右側に 0 がいくつあるかを数えるもの。1 だと 0、2 だと 1、0x80 なら 7、12 なら 2 といったぐあい。0 のときに表題どおりの問題として考えるといくつを返すの?ってことになるので、

    一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録
  • プログラミング格言集

    psychopathより。 金言、格言は古今東西いろいろあるのだが、ここではプログラミングに関する格言がまとめられていたので、抜粋して翻訳してみる。翻訳に間違い等があった場合は、コメント等で指摘してください。 We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil 私たちは、時間の約97%を占めるわずかな効率に関しては忘れるべきである: 時期尚早な最適化は諸悪の根源だ。 - C. A. R. Hoare Walking on water and developing software from a specification are easy if both are frozen 水の上を歩くのと、仕様に基い

  • ドイツのプログラミング大会の優勝作品:アルファルファモザイク

    編集元:ガイドライン板「638 名前:水先案名無い人 投稿日:2009/04/17(金) 15:33:16 ID:tiYVFzCJ0」より 226 ウンナンオウバイ(静岡県) :2009/04/15(水) 18:40:47.19 ID:feyVAFxN 4キロバイト部門の優勝作品 容量制限なし部門の優勝作品 とくに上のほうはマジキチレベル。音楽もグラフィックもプログラムも全部まとめて たった4KBのプログラムにしてる。

    llill
    llill 2009/04/17
    平沢PVかと
  • バイナリとテキストの本当の違い : 404 Blog Not Found

    2009年04月09日00:15 カテゴリLightweight LanguagesCode バイナリとテキストの当の違い うーむ、Wikipediaですら「見た目」の違いしか説明していない。 バイナリ - Wikipedia コンピュータが扱うすべてのデータはバイナリデータ(バイトの並び)であり、プレーンテキスト(または単にテキスト)もバイナリデータの一種ではあるが、通常バイナリとテキストは対比して用いられる。テキストとはデータの内容すべてを人間が読んで理解できる (human-readable) 表現形式を指し、バイナリとはそうでない表現形式を指すことが多い。 Binary file - Wikipedia, the free encyclopediaA binary file (.bin) is a computer file which may contain any type

    バイナリとテキストの本当の違い : 404 Blog Not Found
    llill
    llill 2009/04/09
    そのうちdanpediaが作れるんじゃないか
  • プログラマは履歴書をどう見るか

    当の見方はこちら 上のから読むといい。 How to recognize a good programmer (いいプログラマの見分け方) Another Resume Tip (さらに履歴書のコツについて) - Joel on Software Ten Tips for a Slightly Less Awful Resume (履歴書をもうちょっとマシにするための10のヒント) - Steve Yeggeによるアドバイスで、楽しい読み物。 Getting your resume read (履歴書を読んでもらうには) - Joel on Software

  • そろそろ例のプロジェクトについて言及するか - 西尾泰和のはてなダイアリー

    以前、とあるシステムのソースコードを読む機会があったのだけどあまりにひどかった。あのひどいコードでまあまあまともに動いているというのが逆に信じられない。今日昼ご飯をべながら少し話していたのだけど意外と知られていないようなので、話せる範囲でいかにひどいのか説明してみようと思う。 まず、ソースコードが大雑把に見積もって3750万行あるのだけど、その中でまともに機能しているコードは3%しかない。10分の1程度のソースコードで同程度の機能を実現しているシステムもあるのでほんとあのシステムのコードはゴミだと言っても過言じゃない(*1) プログラマとしてはなんでそのプロジェクトはそんな状態になってしまったのか気になるところだけども、まあ多くのプロジェクト同様、真相を知る人は誰もいない。でもまあ、実際に機能しているコードのコピーみたいなものがあちこちに散らばっていることからしてコピー&ペーストが盛んに

    そろそろ例のプロジェクトについて言及するか - 西尾泰和のはてなダイアリー
    llill
    llill 2009/02/01
    そのソースコードには難読化の意図を感じる
  • プログラミング言語の難易度 - Homoiconic Days

    Javaはわりと素朴な言語だ。 Rubyは簡単な英語をちょっと知っていれば分かってしまうくらい易しい。Perlもまぁだいたい同じくらいだ。 Cなんて、小学生でも、ともすれば幼稚園児でも、理解が可能だ。 C++やC#なんかは慣れない人は戸惑ってしまうかもしれないが、実際は素直だったりする。 OCamlは人によって力を入れる場所が違っていたりして混乱しがちだ。それに比べるとHaskellはブレが少なくて意外と易しい。 Pythonは比較的難しい。SchemeはPythonと同程度かPythonより難しい。 Gaucheはかなり難しい。初めて見た人はどうしても間違った判断を下しがちだ。 うん、まぁ名前の読み方の話なんだけど。

    プログラミング言語の難易度 - Homoiconic Days
  • 世界のナベアツに Squeak Smalltalk で挑戦する(改訂) - Smalltalkのtは小文字です

    流行っているみたいなので。 力試しにナベアツのような判定をするプログラムを作ろうとしたと… - 人力検索はてな ただし、ふつうに書いてもつまらないので、例によって Smalltalk ならではの“はるか斜め上”に向かってかっ飛ばしてみました。w (#改訂:最初のバージョンはアホになるはずがなぜか気持ちよくなっていたので差し替え。ついでに、複数の条件にも対応できるようにしました。) ▼コード 1から:40まで数えて:[(3の倍数 と:[3がつく数字])の時だけ:#アホに]なります ▼出力 1 2 さ〜ん 4 5 ろ〜く 7 8 き〜ゅう 10 11 じ〜ゅうに じ〜ゅうさん 14 じ〜ゅうご 16 17 じ〜ゅうはち 19 20 に〜じゅういち 22 に〜じゅうさん に〜じゅうよん 25 26 に〜じゅうなな 28 29 さ〜んじゅう さ〜んじゅういち さ〜んじゅうに さ〜んじゅうさん さ〜

    世界のナベアツに Squeak Smalltalk で挑戦する(改訂) - Smalltalkのtは小文字です
  • 世界のナベアツに Ruby で挑戦する - Tociyuki::Diary

    squeak には構文上かないませんが、なるべく似た感じになるように ruby で書いてみました:-p ⇒ id:sumim:20080417:p1 「世界のナベアツに Squeak Smalltalk で挑戦する(改訂)」 このスクリプトはメソッド名に日語を使っているので、UTF-8 でセーブしておいてから実行します。 オリジナルとの違いは、squeak 版のようにコンテキストからローカル変数の値を参照できないものかと試行錯誤してやりかたがわからなかったので、クラス変数アクセスでごまかしています。また、〜になっての処理を関数合成しておいて、メソッド「なります」で値を適用する方式に変更しました。 (2008-04-18修正) FalseClass#のときだけ() メソッドが nil を返すように変更しました。 #!/usr/bin/ruby -Ku #Content-type: appl

    世界のナベアツに Ruby で挑戦する - Tociyuki::Diary
  • 1