タグ

programmingに関するheavenshellのブックマーク (118)

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

    テイクアウト容器いろいろ これまでいろいろな国でご飯をテイクアウトしてきました。日ではあり得ないようなスタイルもあってなかなか面白かったので、そんなもののまとめを。国によってはお弁当 (ランチボックス) のデリバリーもあったので、そちらもいくつか。 サウジアラビア 熱々の炊き込…

    はてなブログ | 無料ブログを作成しよう
    heavenshell
    heavenshell 2011/02/02
    これ凄い!
  • 整数の桁数を求める方法 : 除算の繰り返しで求めるか文字列化するか / 言語間のあれこれ - UDONCHAN

    整数型の変数aの桁数を求める場合,例えば 10000 という整数が与えられた場合にその整数が 5 桁であることを求める関数を書くとするとき,変数aを10で除算することを繰り返して0になるまでの回数をカウントすれば求めることが可能だ.この手法は正攻法ではあるのだけど,スクリプト言語の場合,文字列の操作が非常に楽なので,整数型の変数aを文字列に変換してその文字数を得るといった少々横着とも思える手法でも桁数を求めることが出来る. さて,以前の PHPでプロセスを呼び出してパイプで繋ぐ方法 / 例としてGNUPLOT で描画したグラフをPHP経由で出力,ついでにラッパーも書いた - UDONCHAN のエントリの後半にあるスクリプトでも,整数型の変数の桁数を求めるという処理があったのだけど,そこでは文字列長を得る方の「少々横着」な手法で求めている.両者の方法のどちらが高速かと考えた場合,常識的には

  • ニコニココメントサーバーにおけるメモリ使用量増大問題の調査と対策 - ドワンゴ 研究開発ブログ

    はじめに コメントサーバーは、ニコニコ関連サービスのコメントを司るサーバーである。稿は、ニコニコ広場で起こったコメントサーバーメモリ使用量増大問題について、我々コメントサーバー担当が行った調査と対策のまとめである。 今回のメモリ増大問題の解決にあたり、「仮説を立てる + 計測する→修正する→確認する」というパターンを繰り返した。このパターンは、ソフトウェアの様々な問題を調査するのに適用できる、基パターンである。 コメントサーバー概要 コメントサーバーについて簡単に概説する。 コメントサーバーはニコニコ関連サービスのコメントを管理するサーバーである。基的な機能は、新しいコメントの保存、およびコメントの出力である。ニコニコサービスのユーザーがコメントサーバーに直接触れることはなく、ニコニコのプレイヤーがコメントサーバーと直接やりとりを行う。ニコニコ動画の例でいうと、コメントサーバーを使用

  • parallel と concurrent 、並列と並行の覚え方 - まめめも

    縦軸が時間、横軸がタスクと覚える。 なにやら縦棒が多ければ、同時に実行する様を表している。 なにやら横棒が多ければ、タスク同士が通信しながら実行する様を表している。 行と列の覚え方のパクリです。 以下余談。 タイムシェアリング *1 のことを concurrent という人もいる *2 けれど、何人かの有識者に聞いてみたところ、「複数のタスクが協調して実行すること」という概念を指すというのが正しいようで、タイムシェアリングはその実装形態のひとつらしい。concurrent と parallel は独立した概念で、concurrent なものを parallel に実行するというのもあるらしい。 また、parallel は 1 つのタスクを分割して実行するニュアンス、concurrent は複数のタスクが協調して実行するニュアンス、もあるらしい。 ほとんど伝聞なので、間違ってたら教えてくださ

    heavenshell
    heavenshell 2010/09/17
    分かりやすい。
  • ビジュアルプログラミング言語 Illumination Software Creator | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー プログラミング言語Illumination Software Creatorを使うと,ビジュアルにプログラムを作ることができる。Illumination Software Creatorでは,コードを文字列として打ち込む代わりに,ウインドウやダイアログ,条件分岐やループといった部品を配置してゆき,部品同士を線で結ぶことでプログラムを作ってゆく。 サイトにいくつかサンプルがあるので,そのなかから具体的な例を見てみるのが早いかも知れない。たとえば,以下の「Hello World」を見てみよう。 アプリケーションが立ち上がると,変数に文字列をセットして,文字列をウインドウに表示,ウインドウが

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

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

    不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー
  • 【ハウツー】JavaScriptをよりシンプルに書く! - 簡易言語「CoffeeScript」登場 (1) Ruby/Pythonライクな文法でJavaScriptを - CoffeeScriptとは | エンタープライズ | マイコミジャーナル

    Jeremy Ashkenas氏がRuby/Pythonライクな文法でJavaScriptを記述する、興味深い試みをおこなっている。同氏が開発した「CoffeeScript」と呼ばれる簡易言語は、"a little language that compiles into JavaScript"の名のとおり、コンパイルするとJavaScriptコードを出力するというものだ。Ruby製のコンパイラが用意されており、デベロッパはCoffeeScriptで書かれたファイルをコンパイラに通すことでJavaScriptコードを得られる。 CoffeeScriptで記述されたソースをコンパイルした結果。左側にCoffeeScript、右側にコンパイル後のJavaScriptが表示されている - Mini Overviewより引用 現在のバージョンは1月10日(米国時間)にリリースされた0.2.3で、Th

  • The Go Programming Language

    Tips for writing clear, performant, and idiomatic Go code Packages

    The Go Programming Language
  • オレオレ検索窓を設置しよう - mixi engineer blog

    まだピクミン2をクリアしてないのでケジメ的に新作ゲームを買えないmikioです。今回は、Tokyo Cabinetを使って激烈簡単に特定サイトの専用の検索機能を設置する方法について説明します。クローリングから検索までを10分くらいの作業で可能にします。 特定サイトの検索エンジン Web全体の検索機能を作るのは、途方もない技術力と設備を持っているGoogleMicrosoftなどのビッグプレーヤでないと難しいのが現実です。でも、自分が気に入っているいくつかのサイトを対象とした検索エンジンを作るのであれば個人だってできます。また、インターネットから手が届かないイントラネットのコンテンツの検索機能は自分達で手がけないと構築できません。 ということで、企業用の検索システムが数多く売られていますし、LuceneやGroongaやHyper Estraierなどのオープンソース製品も世に多数存在しま

    オレオレ検索窓を設置しよう - mixi engineer blog
  • 100行のCプログラムでWebチャットを実装する方法 - mixi engineer blog

    例の冷却ファンを修理してもらいに秋葉原に行ったのですが、最近の同人ゲームのクオリティはすごいなあと感心していたら、その二階はもっととんでもないことになってて、ひとつ大人になってしまったmikioです。今回は、Tokyo Cabinetのテンプレート直列化機能を駆使して、たった100行のCプログラムでWebチャットシステムを実装してみます。 古式ゆかしいWebチャットシステム 10年くらい前にCGIスクリプトでチャットシステムを作るのが流行していたのを覚えている方も多いと思います。チャットログは現在のようにデータベースサーバに転送して格納するのではなく、ローカルファイルシステム上のファイルにCSVやTSVなどのフォーマットで格納したり、同じくローカルのDBMファイルに格納するのが主流でした。2ちゃんねるの「datファイル」もそのようなデータファイルの一種と言えるでしょう。 その頃から、CGI

    100行のCプログラムでWebチャットを実装する方法 - mixi engineer blog
  • Shibu's Diary: きれいなソースコードを書けるようになるためには

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

  • コードポケット - アプリケーションをささっと作るコツ - (ひ)メモ

    誰に教えられたのでもないのですが、ぼくは冬眠前のリスのようにコード片を溜め込んでいます。 コード片とは、ライブラリにするほどまとまった大きさではない、数行〜十数行のコードのことで、溜め込んだコード片は、アプリケーションやツールを作るときに使っています。 例えば「Perlでメール送るのどう書くんだっけかな」とか「Pythonでファイル開いて全部読むのどう書くんだっけかな」とかというときに、溜め込んだ中からコード片をさっと取り出してコピペした後、なじむようにちょっと修正して使っています。 コードポケット コードを溜め込んでいるディレクトリをぼくは「コードポケット」と名付けていて、コード片を取り出すことを「ポケットからコードを取り出す」と呼んでいます。先日、知り合いが似たようなことを実践していて、その人は「コードスケッチ」と呼んでました。いい名前ですね。 ぼくの場合、コードポケットは ~/lan

    コードポケット - アプリケーションをささっと作るコツ - (ひ)メモ
  • Python力を高めるためのライブラリコードリーディング - Doge log

    id:yuroyoropython力を高めるとか言ってたのを聞いて、自分の場合どうだったかなあと。 思い入れがあるものを簡単に。まあ参考になれば。 pure python系 まずはpure python系 django 結構python初心者のころからdjangoのソースは読んでた。 多分、今ほど大きくなかったからだと思う。 学べることはPEP8、__import__の使い方、デコレータによるトランザクション管理などなど多岐にわたる。 但し、いきなりモデル周りに手を出すときついのでWEB側の入り口である方 django.core.handlers.base.py ぐらいがいいかなと。 middlewareってどうやって呼び出し、実行してるか、urlの解決方法などから入ると割りととっつきやすいかと。 フルスタック故カバーしてる範囲が多いのでずっと参考になる。 標準ライブラリのソース あんま

    Python力を高めるためのライブラリコードリーディング - Doge log
  • 簡単なDIコンテナ - Sooey

    簡単なDIコンテナ 最小のDIコンテナ in PHP - anatoo勉強記より。 DIコンテナがなにやら大仰なものとして勘違いされているような気がしたので、機能を極限まで削ぎ落とした最小のDIコンテナを書いた。 これにはAOPは当然ないし、設定ファイルなどもない。 30行ほどのコードでDIコンテナっぽい動きを示せているところは素晴らしいです。確かにDIコンテナにAOPは必須ではないし、設定ファイルもできればない方がいいですもんね。 ただ、「最初の取っ掛かり」ということで極限まで簡略化されたのでしょうが、異なるコンポーネント間のDependencyをInjectionできないものはDIコンテナではなくて単なるオブジェクトプールのような気がします。簡単なsetterインジェクションをする場合なら、こんな感じでしょうか。 これはこれで設計的にヘンなところが色々ありますが、このくらいのコードだと

  • ただ漠然と10000時間では意味がない - きしだのはてな

    10000時間くらいやったら天才になれる、ということですが。 http://lifehacking.jp/2008/11/the-law-of-10000-hours/ ぼくは小学校のころからプログラムしてるので、そこから大学の最初の4年まで、趣味だけで組んでた時期は週3時間くらいプログラムしてたとしましょう。 3時間×52週×12年=1872時間 大学の4年目の終わりくらいから仕事でプログラム始めたので、まあそれでも毎日毎日というわけでもないけど、まあ、さすがにプログラム専業なのでid:higayasuoさんより多いだろうってことで、一日2時間より多い週15時間ってことにする。 15時間×52週×12年=9360時間 ん?普通に仕事で組んでれば早いうちに1万時間行くね。 まあいいとして、合計すれば11232時間。ということで、1万時間は超えてますね。 実際には、たぶんもっとやってて、15

    ただ漠然と10000時間では意味がない - きしだのはてな
  • マージ・ソート : 巨大データのソート法

    はじめに まずはともあれ腕試し、この問題を解いてみてくださいな: 【問1】 デタラメな順序で並んだ文字列の集合がテキストファイル「input.txt」に収められています。この文字列群を辞書順(昇順)に並び換えたテキストファイル「sorted.txt」を作りなさい。 ※各文字列は改行で区切られています。 プログラミング教の練習問題、あるいは学校の課題で出てきそうな“お馴染み”の問題です。ソート(整列)アルゴリズムの実装には配列/代入/条件分岐/ループなどなどプログラミングの基中の基となる構文を総動員するため、練習問題としてよく使われますね。 早速解いてみましょう、ソート・アルゴリズムにはこれまたお馴染みのバブル・ソートを使います。C#、VB.NETC++/CLIの3まとめて一気にいきますよ: using System; using System.IO; using System.C

    マージ・ソート : 巨大データのソート法
  • http://labs.cybozu.co.jp/blog/kazuho/archives/2008/06/friends_timeline.php

  • Perl入門

    Perl は、1987 年にラリー・ウォール によって開発されたプログラミング言語です。もともとはテキスト処理やレポート作成を効率化するために設計されましたが、利便性の高さから Web 開発、システム管理、データ処理、ネットワークプログラミングなど幅広い用途で利用されています。 プログラミング言語としての Perl には、次のような特徴があります。

    Perl入門