タグ

関連タグで絞り込む (204)

タグの絞り込みを解除

Programmingに関するVoQnのブックマーク (311)

  • 計算量のはなし - 赤い黒歴史を蓄積する

    どうも華麗なるキャッツパーです。キャットアッパーです。 この記事はCompetitive Programming Advent Calendar Div2013, 12/7の記事です。 私は過去に、暇に任せてこのようなスライドを作ってしまいました。 有名アルゴリズムとそれの計算量について列挙するのが楽しすぎて作ってしまいました。後悔しております。 記事では「計算量ってどうやって計算するの?」みたいな話を競プロの観点からします。 計算量とはなんぞやということについては上のスライドを読んでください。 計算量の種類 競技プログラミングで気にする計算量は2種類あります。最悪計算量と償却計算量です。 最悪計算量というのは、ある処理にどのような入力を与えても、それ以上に速い計算量になる、というもので、一種の上界です。競技プログラミングでは作問者が最悪計算量になるテストケースをかならず入れてきますから

    計算量のはなし - 赤い黒歴史を蓄積する
  • FNV Hash

    An external FNV Wikipedia page exists History and use of the FNV hash FNV has been put into the public domain via the Creative Commons CC0 1.0 Universal (CC0 1.0) Public Domain Dedication license. The FNV-1 hash in a nutshell The FNV-1a hash minor variation FNV-1/FNV-1a hash parameters A few remarks on FNV primes Changing the FNV hash size with xor-folding FNV hash with a non-power of 2 size FNV r

  • Fowler–Noll–Vo hash function - Wikipedia

    Fowler–Noll–Vo (or FNV) is a non-cryptographic hash function created by Glenn Fowler, Landon Curt Noll, and Kiem-Phong Vo. The basis of the FNV hash algorithm was taken from an idea sent as reviewer comments to the IEEE POSIX P1003.2 committee by Glenn Fowler and Phong Vo in 1991. In a subsequent ballot round, Landon Curt Noll improved on their algorithm. In an email message to Landon, they named

  • “本物のマクロ”でCのコード行数を半分に! - @IT

    2009/09/07 毎年夏に開催される軽量プログラミング言語(LL:Lightweight Language)をテーマにした「LLイベント」。第7回目となる「LLTV」が、2009年8月29日に東京・中野で開催された。この記事ではプログラムの一部、「大改善!!劇的ビフォーアフター」をレポートする。前編では、Rubyによるfortuneコマンドの“増築”と、Firefox拡張によるslコマンドの実装というネタ系発表をレポートした。中編となる記事では、C言語にLisp風のマクロを取り入れ、lsコマンドのソースコードを約半分に“修繕”する匠の技をレポートする。後編では、売り場業務が滞りがちだった販売管理システムをbashコマンドで“建て直した”という劇的ビフォーアフターの発表をレポートする。 Cで書かれたlsのソースコードの問題点 「Real/Macro Metaprogramming On

    VoQn
    VoQn 2013/12/01
    川合史郎氏
  • Real Macro Metaprogramming on C

    誰もが知ってるls(1)コマンド ソースはFreeBSDから (simple, no-dependency) 素直で読みやすいコード C言語ソースとしては優等 しかし… 問題点1 - 冗長なコード cmp.c int namecmp(const FTSENT *a, const FTSENT *b) { return (strcoll(a->fts_name, b->fts_name)); } int revnamecmp(const FTSENT *a, const FTSENT *b) { return (strcoll(b->fts_name, a->fts_name)); } 問題点1 - 冗長なコード (cont'd) util.c 同じ構造の4つの関数 while ((clen = mbrtowc(&wc, ...)) != 0) { if (clen == (size_t)-

    VoQn
    VoQn 2013/12/01
    S式やばい
  • テスト書きすぎ問題 - hitode909の日記

    テスト書きすぎるとよくないって言ってる人がいた.DHHっていう人.作業時間の1/3以上テストしてたらおかしいとか,ActiveRecordのバリデーションなど,Railsの機能はテストしない,とか. Signals vs. Noiseの去年のエントリに、テストをどれくらい書くべきかということについてDHHが指針を示していたものがあったので... - Sooey 偉い人が言ってるからという理由で,テスト手抜き派の人に良い材料を与えてしまった.僕は意見ちがって,作業時間半分以上はテスト書いたりしてる. テストたくさん書くと,最初に書くときのコストは増える.けど,あとから読む時や,変更したい時には,読むだけだし,書くのも差分だけで良い.コード体を理解できれば,要らないテスト捨てるのは,落ちたのを消すだけだから簡単.あとで見て,テスト足りないと分かったときに,明文化されてない仕様からテストを補う

    テスト書きすぎ問題 - hitode909の日記
    VoQn
    VoQn 2013/10/14
    正直、世の中は「テスト書かなすぎ問題」の方が散見するので、テストは書きすぎる位に啓蒙した方が炎上する現場減ると思っています
  • 存在しない記事 - 標高+1m

    ここにあった記事は消しました。 詳しくは以下: ympbyc.hatenablog.com

    存在しない記事 - 標高+1m
    VoQn
    VoQn 2013/06/13
    「ちゃんと使いこなせれば〜」っていう時点でOOはパラダイムとして未完成っていうことなんですよ。誰もがウィザードではないのだから
  • casehack.c - Pastebin.com

    Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

    casehack.c - Pastebin.com
    VoQn
    VoQn 2013/06/07
    C の switch って単純なラベルジャンプだから別に驚きはなかった
  • ヘッズのための純粋関数型言語「Lazy SLYR」 - モナドとわたしとコモナド

    ドーモ、変数スレイヤーです。 Brainf*ckめいた派生言語が作られる前に、ニンジャスレイヤーを基にしたニンジャヘッズのための言語「Lazy SLYR」を作ってみた。 ◆Brainfuck派生ではない◆ ◆Lazy K派生でもない◆ ◆独自性重点◆ ◆純粋な◆ Hello, world! イヤーッ!イヤーッ!イヤーッ!グワーッ!グワーッ!グワーッ!イヤーッ!イヤーッ!イヤーッ!グワーッ!イヤーッ!グワーッ!グワーッ!イヤーッ!イヤーッ!イヤーッ!グワーッ!イヤーッ!グワーッ!グワーッ!イヤーッ!イヤーッ!イヤーッ!グワーッ!グワーッ!グワーッ!イヤーッ!イヤーッ!イヤーッ!グワーッ!イヤーッ!グワーッ!グワーッ!イヤーッ!イヤーッ!イヤーッ!グワーッ!グワーッ!グワーッ!イヤーッ!グワーッ!イヤーッ!グワーッ!グワーッ!イヤーッ!イヤーッ!グワーッ!グワーッ!グワーッ!イヤーッ!イヤーッ

    ヘッズのための純粋関数型言語「Lazy SLYR」 - モナドとわたしとコモナド
    VoQn
    VoQn 2013/05/28
    皆さんが大好きな純粋関数型言語ですよ
  • LLerのための関数指向入門

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    LLerのための関数指向入門
  • TypeScript0.9alphaをNode+Gruntで使うよ

    Swift is the best programming language you should learn and make your dream app easily. Swift programming is a powerful yet easy-to-learn coding language created by Apple. It's frequently used for developing iOS and macOS applications, as well as tvOS and watchOS apps. While you can use other languages to create Apple apps, Swift is the preferred language, and it's recommended because its code is

    VoQn
    VoQn 2013/04/12
    他人の書いた jQuery plugin とかたいていこういう便利メソッド濫用で基本的に読めないよね
  • DextroII先生のロマサガ閃きシステムのアルゴリズム講座

    つしま(あなたの原稿はどこから) @chartreuse37 @DextroII 先生ッ! サガシリーズの閃きシステムの概念ってどうなってるんですか!? って弟が言ってました よかったらちらっと教えてください 2011-11-13 18:26:54

    DextroII先生のロマサガ閃きシステムのアルゴリズム講座
    VoQn
    VoQn 2013/04/04
    ゲームの面白さ追求で一番楽しいのココらへんの式の設計とか補正値算出の仕組み考えるところだと思う
  • InfoQ: Domain Driven Design(ドメイン駆動設計) Quickly 日本語版

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    VoQn
    VoQn 2013/01/03
    読んでみる
  • Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ

    今年の文化祭で書いた記事です。 - C言語といえば、いやなイメージ、過去の遺産といった感じがあるかもしれません。 C言語のネガティブな側面というと、やはりポインタやメモリ管理などが難しい、ということが思いつくかもしれません。 しかし、C言語のポインタは表記に騙されやすいだけで、仕組み自体は全く難しくありません。 文法も、どこぞのPerlC++と比べたら屁でもない単純さです。 実のところ、仕様が煩雑で難しいのは、Cプリプロセッサなのであります。 普段からあまり複雑な使いかたをしないから気づかないかもしれませんが、Cプリプロセッサの置換処理は、欺瞞と裏切りに満ちた世界なのです。 これが進化するとテンプレートなどといったもっと面白いものになるのですが、今回はCプリプロセッサで計算をしちゃったりするところまで試しにやってみましょう。 (なお、GCCにより実験的に調べた記事なので、他のCコンパイラ

    Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
    VoQn
    VoQn 2012/12/17
    マーベラス!!!
  • Unityで覚えるC#

    2020年6月10日に公開された「GAME CREATORS CONFERENCE '20」の動画配信で使用した資料です。 ・公式HP http://www.gc-conf.com/ ・Youtube動画ページ https://www.youtube.com/watch?v=x67C_RqRVrg

    Unityで覚えるC#
  • 学んでから作るのではなく、作ってから学ぶ - ぼくはまちちゃん!

    こんにちはこんにちは!! 先日、ちょっとしたイベントで、学生の方にこんな質問をされました。 「自分は早くプログラマになりたい、作りたいアプリもある。 だけど来年にならないとプログラミングの授業が始まらないから、作れない」 と。 なるほど。 その時、ぼくが答えたのは、 「今日、家に帰ったらプログラミングしてください」 だったんだけど、言葉が足りなかったかもしない。 だからここに、もうちょっと詳しく書いてみますね。 アプリを作る、プログラマになる、一番手っ取り早い方法を。 1. 目標を立てる 作りたいものを思い描くということ。 いきなりすごいものを作るのは大変だから、最初の目標は少し抑えてちょっとしたものがいいね。 できれば、自分にとって便利なものや、少しワクワクするものがいい。 例えば、スマホで動くキッチンタイマーとかでもいい。 (これはワクワクしないかもしれないけど) 2. すぐに作り始め

    学んでから作るのではなく、作ってから学ぶ - ぼくはまちちゃん!
    VoQn
    VoQn 2012/11/14
    自分の定義する「学ぶ」って「作りながら、躓きながら覚える」そのものなんだよな。このエントリの学ぶはもっと他力本願で受動的なものかな
  • 関数型プログラミングは本当に難しいのか

    2012年9月初頭、東京・某所で開催された「函数プログラミングの集い 2012」というイベントに参加した。 このイベント、文字通り、「Haskell」や「Scala」「OCaml」「F#」「Erlang」といった関数型プログラミング言語に関するイベントなのだが、その午前中の講演を聞いて、筆者は少々面らった。 関数型プログラミング言語などの研究者である電気通信大学 准教授の中野圭介氏による講演だったのだが、同氏は講演が始まるや否や「これから『爆弾』を投下します」と前置きし、こう述べたのだ。 「『関数型言語』を使ってはいけない」と。 関数型プログラミングに関するイベントで、いきなり「使うな」という発言は、確かに衝撃的である。筆者だけかもしれないが、この発言の後、一瞬、会場が凍り付いたようにも見えた。一体、どういうことか。 実はこの発言、「使うな」という部分に重点があるのではなく、「関数型言語

    関数型プログラミングは本当に難しいのか
    VoQn
    VoQn 2012/10/03
    プログラミング初心者だった頃の自分にとっても Haskell の方が Java よりもずっと理解が簡単だった事を書いておきます
  • JavaScript Syntax

    JavaScript introductory keynote

    JavaScript Syntax
  • 職業プログラマがFizzBuzz書けない理由

    -- 追記@2012-08-08 09:20JST -- この速さなら言える。この前職場(派遣先)でプログラミングテストがあったのだけど、弊社社員の1/3がFizzBuzz解けなかったんだ… — papamitraさん (@papamitra) 8月 6, 2012 これ読んで工エエェェ(´д`)ェェエエ工となり、書いた。 -- 追記ここまで@2012-08-08 09:20JST -- あるいは、「FizzBuzz書けない奴m9(^Д^)プギャー」のもにょもにょ感。 結論だけ、書く。 要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。要らないから。そして知らないから。 さて、まずはこの問題解こうか。制限時間5分。 タイトル: Ants 問題

    VoQn
    VoQn 2012/08/07
    アルゴリズムのトリッキーな実装より、「他の人がメンテしやすいかどうか、要求の変更に耐えられる設計か」とかの方が重要視されるしなー
  • 僕がプログラミングをするときの心境やよく唱える呪文 - yaakaito's diary

    Objective-C GUIの更新なんかがうまくいかないとき (これは組み込み、これは組み込み、これは組み込み、妥協、組み込み、妥協) うまくいったとき (スティーブ・すばらしい・ジョブズ) パフォーマンスがでないとき (Cは甘え、Cは甘え、Cは甘え、C++は甘え、JavaScript死ね) コミットするとき 「オラッ、クラエッ」 デプロイするとき 「スティーブ・頼む・ジョブズ」 JavaScript うまくいかないとき (これは組み込み、これは組み込み、これは組み込み) 思いのほかうまくいったとき (Abyss World JavaScript) パフォーマンスがでないとき (jQueryが悪い、jQueryが悪い、jQueryが悪い、僕は悪くない、あ、なおった) コミットするとき 「jQuery死ね」 デプロイするとき 「IE頼む!!!」 PHP うまくいかないとき (これは組み込み

    VoQn
    VoQn 2012/07/10