タグ

programmingとProgrammingに関するtztのブックマーク (522)

  • Perl基礎文法最速マスター - Perl入門ゼミ

    Perl › 基礎文法 ITの現場でPerlが必要になって、今勉強しているという方はおられませんか? 他の言語をある程度知っている方が「Perl基礎文法最速マスター」を読めば、Perlの使い方の基礎をマスターしてPerlを書くことができるようになっています。 基礎 文法チェック 文法をチェックを厳しくするために最初に必ず次の2行を書くようにします。 use strict; use warnings; 「use strict」と「use warnings」という2行を加えることで事前に文法チェックが行われるので、ソースコードを記述する作業は速くなり、コードの品質が上がります。 print関数 文字列を出力するにはprint関数を使用します。 print "Hello world"; Perlでは標準関数や事前に定義されている関数で括弧を省略することができます。 コメント Perlのコメントで

    Perl基礎文法最速マスター - Perl入門ゼミ
  • Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介

    Perl基礎文法最速マスターをだいたいそのまま、Rubyに置き換えてみました。 他の言語をある程度知っている人はこれを読めばRubyの基礎をマスターしてRubyを書くことができるようになる…かも知れません。無保証です。 参考: オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.9.2) オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (1.8.7) ■ 1. 基礎 インタラクティブRuby (irb) irbを使うと、Rubyのプログラムを簡単に練習することができます。 /Users/yhara $ irb irb(main):001:0> puts "hello" hello => nil irb(main):002:0> 1 + 1 => 2 以下の説明は、irbを起動して、自分で試しながら読むと習得が早いと思います。 表示 (print,

    Route 477 - Ruby基礎文法最速マスター&Ruby書籍紹介
  • いまさら聞けない「変数の命名規則」 - 基本へ帰ろう

    変数の命名規則って名前がついているのですね・・・というのをさっき知ったので・・ほんといまさら聞けない感じです・・w アッパーキャメルケース (UCC)、またはパスカルケース(PascalCase)(Pascal記法) キャメルケース - Wikipedia 複合語の先頭を、大文字で書き始める。 例 : CamelCase ローワーキャメルケース (LCC)、または単にキャメルケース キャメルケース - Wikipedia 複合語の先頭を、小文字で書き始める。 例 : camelCase アプリケーションハンガリアン(ハンガリアン記法) ハンガリアン記法 - Wikipedia アプリケーション ハンガリアンは、間違えたコードを間違えて見えるようにする記法である。 たとえば、論理座標にRelative Positionのrp、絶対座標にAbsolute Positionのapというプレフィッ

    いまさら聞けない「変数の命名規則」 - 基本へ帰ろう
  • どういう場面で new を使うか? - Cube Lilac

    先ほど Twitter において new 談義で花が咲いていたのですが,この際に「どういう場面で new を使うべきなのだろう?」と,ふと疑問に思いました.そこで,今回は「new を使う場面」を挙げてみようと思います.尚,ほとんど何も分からないまま書くので誰かの補足に期待します:p 多態性 (Polymorphism) を確保したい場合 まず始めに思いつくのが多態性を確保する場合です.例えば,AbstractFactory パターンのようなものを実現する際には new が必要となります. class Shape { ... }; class Triangle : public Shape { ... }; class Rectangle : public Shape { ... }; Shape* shape_factory(const std::string& name) { if (n

    どういう場面で new を使うか? - Cube Lilac
  • 無名関数を使った非同期通信のススメ(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) その書きやすさのために、実務経験の

  • 分散Key-Valueストア「kumofs」を公開しました! - Blog by Sadayuki Furuhashi

    分散Key-Valueストア kumofs を、日オープンソースソフトウェアとしてリリースしました! kumofs@SourceForge kumofs関連資料まとめ kumofsとは? kumofs(クモエフエス)は、実用性を重視した分散データストアです。レプリケーション機能を備え、一部のサーバーに障害が発生しても動作し続けます。単体でも高い性能を持ちながら、サーバーを追加することで読み・書き両方の性能が向上する特徴を持ち、低コストで極めて高速なストレージシステムを構築・運用できます。 kumofsの大きな特徴は、システムの構成の簡単に変更できる点です。システムを止めることなく、簡単な手順でサーバーを追加したり復旧したりできます。アプリケーションには一切影響を与えません。 またkumofsは、広く利用されている分散キャッシュシステムの「memcached」と互換性のあるプロトコルを実装

    分散Key-Valueストア「kumofs」を公開しました! - Blog by Sadayuki Furuhashi
  • ConsistentHashing - コンシステント・ハッシュ法

    ConsistentHashing - コンシステント・ハッシュ法 目次 この文書について コンシステント・ハッシュ法 実例 実装 用途 コンシステント・ハッシュ法 この文書について "Tom White's Blog: Consistent Hashing" の日語訳です. http://weblogs.java.net/blog/tomwhite/archive/2007/11/consistent_hash.html 推敲歓迎: 誤訳, タイポ, 訳語の不統一, そのほか... 原文のライセンス: http://creativecommons.org/licenses/by-nc-sa/2.0/ 私は今までに何度かコンシステント・ハッシュ法にとりくんだことがある。 このアイデアをあらわした論文 ( David Karger らによる Consistent Hashing and R

  • Google Python スタイルガイド

    概要¶ これは Google Python Style Guide Revision 2.29 を日語に訳したものです。 家ガイドは CC-By 3.0 ライセンス の基で公開されています。また、ガイドも同ライセンスを継承します。 家ガイドの著者は以下の通りです。 Amit Patel Antoine Picard Eugene Jhong Jeremy Hylton Matt Smart Mike Shields また、ガイドの翻訳者は以下の通りです。 Kosei Kitahara ガイドに誤植、誤訳があった場合は issue で教えてください。 その他ガイドに関する問い合わせは、サイト最下部に記載のメールアドレスか @Surgo にお願いします。 はじめに¶ PythonGoogle で使われている主要なスクリプト言語です。 このスタイルガイドは Python によ

  • 知れば天国、知らねば地獄――「探索」虎の巻

    いよいよ今回から、具体的なアルゴリズムの紹介に入っていきます。今回は、プログラミングにおける重要な概念である「探索」について考えます。グラフに変換し、探索する、という流れを知るとともに、そのグラフを効率よく探索する方法について紹介します。 今後紹介していくアルゴリズムについて お待たせしました! 「最強最速アルゴリズマー養成講座」という連載タイトルのとおり、今回の連載からいよいよ具体的なアルゴリズムの紹介に入っていきたいと思います。 しかし、それを読んでいただく前に、1つ注意してもらいたいことがあります。連載第3回でもお伝えしたように、「問題を、既存の適当なアルゴリズムに当てはめる」という考え方は、非常に危険である、ということです。 筆者の経験上、TopCoderでRedCoder以上を目指すのであれば、回答時間短縮のために、いままでのパターンを利用するのも方法の1つなのですが、連載では

    知れば天国、知らねば地獄――「探索」虎の巻
  • 京都収納棚:DBMの率直な壱実装 - mixi engineer blog

    飲み屋に行くとかなりの確率で荷物を忘れて帰るmikioです。さて、今回はここ2ヶ月ほどで急ピッチで開発した軽量データベースライブラリ「Kyoto Cabinet」について紹介します。 開発の動機 以前から軽量データベースライブラリとしてご好評いただいているTokyo Cabinetですが、DBMとして必要十分な機能と性能を備えていてなかなか良いものだと自負しております。ただ、開発を進める中でいくつか不満な点があったのも事実です。端的に言えば、全てC言語で記述して、標準ライブラリ(とzlib/bzip2)以外の機能は全て自作しているので、最適化がしやすい反面、メンテナンスの難易度が高くなってしまっているというのが不満です。 そこで、多少性能が悪くなってもいいから、私自身としてお気楽に開発およびメンテナンスができて、移植性も高いような実装を作ってみようと思い立ったのが昨年10月頃。様々な検討を

    京都収納棚:DBMの率直な壱実装 - mixi engineer blog
  • プログラミング言語 Misa

    #! /usr/bin/misa ごっ、ごぉおっ、ご〜きげんよおぉおおぉおほっ。ほおぉおぉおっ。 「ごきげん☆みゃぁああ”あ”ぁ”ぁああ〜っ」 さわやかな朝の☆ご挨拶! お挨拶がっ。 澄みきった青空にこだましちゃうぉ〜ああぉおおおぉん。 「は、はひっ、はろおぉっ☆わぁるどおおぉっぉ〜っ」 こ、この文章は☆おサンプル! おおぉおぉおおサンプルプログラム!! どんなおプログラム言語でも基のご挨拶させていただくのぉぉおッ! 「ぽうっ」 長々と書くのがこ、ここでの〜、ここでのぉおおぉおぉぉおたしなみぃぃいぃ。 「長いぃ。長すぎましゅう。ご挨拶にこんなプログラム長すぎまひゅぅうぅ☆ んおおぉぉ、ばかになる、おばかになっちゃいましゅ〜ッ」 長いのがっ、バッファの奥まで入ってきましゅたぁあぁあっ! ばっふぁ☆溢れちゃいまひゅぅ〜。あみゃぁあ”あ”ぁ”ぁああ”あ”ぁぁ。 「で

  • 人材獲得作戦・4 試験問題ほか - 人生を書き換える者すらいた。

    さて試験問題です。 内容は、壁とスペースで構成された迷路が与えられたとき、スタート地点からゴール地点に至る最短経路を求めよ、というものです。 たとえば、S:スタート G:ゴール *:壁 $:解答の経路 としたとき、 ************************** *S* * * * * * * ************* * * * * ************ * * * * ************** *********** * * ** *********************** * * G * * * *********** * * * * ******* * * * * * ************************** という入力に対し、 ************************** *S* * $$$ * *$* *$$*$ ************

    人材獲得作戦・4 試験問題ほか - 人生を書き換える者すらいた。
    tzt
    tzt 2010/01/11
    ググるの有りか無しかで難易度変わりそう。/愚直な解法なら中学生レベルの思考力と基本的なコーディング能力があればおkかな?Lv3出来たら職業プラグラマとしては及第点だろう。よく出来た問題だと思う。
  • Home | Geany

    Fast & Small One of the primary reasons for Geany's existence is that there is a need for a decent, GUI, lightweight, cross-platform, flexible and powerful IDE/editor. Many editors meet one or more of these requirements but fall short on others. Geany attempts to hit the sweet spot. More Features » Great Community Geany is Good Ol' Fashioned Free Software. Using the GPL v2 license, Geany assures t

  • プログラマのためのGoogleプロジェクト35、+23、+34 | エンタープライズ | マイコミジャーナル

    Blog of 0x1fff 0x1fff: 35 Google open-source projects that you probably don't knowにおいてGoogle Codeでホスティングされているプロジェクトから35のプロジェクトが紹介されている。もとはポーランド語で記載された0x1fff: 34 projekty Open Source udost?pnione przez Googleを英訳したものとあるが、翻訳する段階で1つプロジェクトが追加されて35になっている。その後さらに25のプロジェクトが、その後さらに34のプロジェクトが追加され、合計92のプロジェクトがまとめられている。マイコミジャーナルでニュースやハウツーとして取り上げたものも多い。取り上げられているプロジェクトは次のとおり。 テキストファイル処理 Google CRUSH (Custom Repo

  • Google Japan Blog: Google が公開しているソフトウェアの解説 ( その 1 )

    今後複数回にわたり Google がオープンソースとして公開しているソフトウェアの紹介をしていきます。 第一弾はコマンドラインの解析ライブラリ google-gflags です。 このライブラリは実際に Google 社内で一般的に使われており、入社したエンジニアがまず最初に覚える Google インフラストラクチャーの1つです。 % foo --big_menu --language japanese この場合、--big_menu や --language japanese がコマンドラインフラグに相当します。--big_menu は引数を取らないコマンドライン、--language は japanese という引数を取ります。 google-gflagsは getopt といった既存のライブラリと設計もそのユースケースも大きく異なります。 getopt の場合、次のようにコマンドライ

    Google Japan Blog: Google が公開しているソフトウェアの解説 ( その 1 )
  • やる夫ブログ やる夫で学ぶプログラミングC言語入門 その1

    2 : ◆yLAhgX0PfU :09/12/26 22:07:50 ID:P6tTRkg5 ┏           ┓ C言語 授業中 ┗           ┛ ∧∧ l: _つ/      /;:’ ∧_∧┌ _||/ (,,゚Д゚).⊃ /      / l::゚/:(`   ,,/:|  ̄||.,o ∧_∧ . l:_つ/      / l//:’と   ||  :| .o'  ̄o , ・∀・) ⊃/       /;:’ ∧_∧┌ _||/ l: _つ/        / l:’/:(`   ,,/:|  ̄||.,o ,ヽ⊃ ./        / l//:’と   ||  :| .o'                     ∧∧ ⊃ .つ / ): /       /;:’ ∧_∧┌ _||/                      .,(Д゚ ,,)_┐ / /    

  • IBM Developer

  • SICP(計算機プログラムの構造と解釈)を読み終えて : Serendip – Webデザイン・プログラミング

    最後のC言語での実装の2問が残っているけれども、一旦これで終了とする。 2008年の11月に開始したので約1年と1ヶ月ちょっとかかったことになる。 SICP を読む過程で得たもの 1章で scheme での基的なプログラミングに慣れて、カッコの存在を忘れることが出来た。 弟子が尋ねた。「先生、私は先生がカッコをまるで魔術師のように扱っているのを常々敬服しています。どうすれば先生のようになれるのでしょうか?」 師「えっ?カッコ?あ、そうか。そんなものもあったな。いやあ、すっかり忘れておったわ」 このあたりでは、まだ再帰に慣れていなくて、末尾再帰の意味もよく解ってなかった。 また、高階手続きを普通に使えるようになった。 2章で抽象化の有用性やその導入方法を理解できた。 1章2章は数学的な知識が必要な部分も多く、その部分で苦労した。 2章のデータ抽象や3章の環境モデルでオブジェクト指向の舞台裏

  • プログラムはどう動くのか? 〜 ELFの黒魔術をかいまみる

  • ビットシフトの落とし穴 - 算術シフトと論理シフト - 職業としてのプログラミング

    C言語には、ビットシフト演算子というものがあります。左シフト演算子(<<)と右シフト演算子(>>)です。同じビット演算でも、ビット単位の論理和(|)や論理積(&)、NOT(~)等はの方は、フラグ型の変数の処理で使われる事が多い気がしますが、ビットシフトの方は使用されるケースはあまりないかもしれません。 さて、このビットシフト演算子で時々問題になるのが、符号ビットが立っている時の右シフト演算です。見逃されがちなポイントは、 型によって挙動(算術シフトか論理シフトか)がかわることがある C言語の規格として、算術シフトか論理シフトかは不定 Nbitの算術シフトと2のN乗での除算は等価ではない といったところにあります。 算術シフト(shift arithmetic)と論理シフト(shift logical:又は0充填シフト)という言葉をご存知ない方のためにちょっと説明を書いておくと、シフトによっ