タグ

programmingに関するkataringのブックマーク (37)

  • PHPで誰でも簡単Webサービス製作!でなんか作って公開した奴ちょっと来い - 甘味志向@はてな

    タイトルは出来れば関連する方に読んで欲しかったので、軽く釣り針にしました。すみません。:*) 最近はやりのヒウィッヒヒー(Twitter)でも、よく「○○ったー」みたいなサービスがばんばん登場してますね! おかげでますますツイッターが面白い感じになってて、いい流れですね! でも・・・ちょっと気になることが・・・ 最近「もうプログラマには頼らない!簡単プログラミング!」だとか・・・ 「PHPで誰でも簡単Webサービス作成!」だとか・・・ はてなブックマークのホッテントリで見かけますよね・・・ プログラミングする人が増えるのは素敵です!レッツ・プログラミングなう! なんですけど・・・ ちゃんとセキュリティのこと考えてますか・・・!? 『セキュリティ対策とか難しいし面倒くせーし、俺の適当に作ったサービスとかどうなってもイイしww』 いいんですいいんです! 別にそう思ってるならどうでもいいんです!

    PHPで誰でも簡単Webサービス製作!でなんか作って公開した奴ちょっと来い - 甘味志向@はてな
  • Facebookが大規模スケーラビリティへの挑戦で学んだこと(前編)~800億枚の写真データとPHPのスケーラビリティ問題

    Facebookが大規模スケーラビリティへの挑戦で学んだこと(前編)~800億枚の写真データとPHPのスケーラビリティ問題 全世界で3億人を超える会員を抱え、世界最大のSNSとなったFacebook。同社の巨大なシステムは、3つのデータセンターにある約3万台のサーバと、PHPC++、Memcache、MySQLなどのソフトウェア群によって支えられています(同社のデータセンターの巨大さは、記事「3億のユーザーを抱えるFacebookのデータセンター。移動は自転車、希望は100Gbイーサネット 」を参照)。 同社の技術担当バイスプレジデント Jeff Rothschild氏は、Facebookが実現している大規模なスケーラビリティを、いかにしてこれらのソフトウェアで実現しているのか、10月8日に米カリフォルニア大学サンディエゴ校で行ったセミナー「High Performance at Mas

    Facebookが大規模スケーラビリティへの挑戦で学んだこと(前編)~800億枚の写真データとPHPのスケーラビリティ問題
  • PHP以外では: 既にあたり前になりつつある文字エンコーディングバリデーション - 徳丸浩の日記(2009-09-14)

    _既にあたり前になりつつある文字エンコーディングバリデーション 大垣靖男さんの日記「何故かあたり前にならない文字エンコーディングバリデーション」に端を発して、入力データなどの文字エンコーディングの妥当性チェックをどう行うかが議論になっています。チェック自体が必要であることは皆さん同意のようですが、 チェック担当はアプリケーションか、基盤ソフト(言語、フレームワークなど)か 入力・処理・出力のどこでチェックするのか という点で、さまざまな意見が寄せられています。大垣さん自身は、アプリケーションが入力時点でチェックすべきと主張されています。これに対して、いや基盤ソフトでチェックすべきだとか、文字列を「使うとき」にチェックすべきだという意見が出ています。 たとえば、id:ikepyonの日記「[セキュリティ]何故かあたり前にならない文字エンコーディングバリデーション」では、このチェックは基盤ソフ

  • ソースコードリーディング(head,tailコマンド編)

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、Yahoo!ショッピング担当の吉野です。 今回はタイトルの通り、headコマンドとtailコマンドのソースコードを読んでいきたいと思います。 ■はじめに 皆さんご存じの通り、headコマンドはファイルの先頭からn行(バイト)を出力し、 tailコマンドはファイルの末尾からn行(バイト)を出力するコマンドです。 ほかにもパイプの入力に使ったり、[tail -f]でログファイルの出力監視に使ったりと、 UNIXを使う上では欠かせないコマンドと言えるでしょう。 headとtailは見た目の動作は似ているようですが、ソースコードの中は結構違います。 さっそく見ていきましょう。 <headのソースコード> http://www.

    ソースコードリーディング(head,tailコマンド編)
  • 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
  • 電子工作の経験がなくても、誰でもハードウェアを自作できる時代が来ていた! : akiyan.com

    電子工作の経験がなくても、誰でもハードウェアを自作できる時代が来ていた! 2009-06-07 『電子工作』 なんとなく興味はあるけど、電気回路なんてまったくわからないし、はんだごてとか使うのもやたら危なそうだし...というイメージが(少なくとも個人的には)ある電子工作の世界。 そんなイメージは、とあるセミナーでぶっ壊されました。 なんと、最近の電子工作の世界は「プログラミング未経験でもperlCGIやPHPぐらいならできそう」と同じくらいのところまできていたのです。 たとえば、PCを使わずに「人が通ったことをセンサーで感知して、自動的にtwitterにpostする機械」を、電子工作経験がほぼゼロの僕でもちょっとがんばれば作れそうと思えるぐらいでした。 「できたらいいなあ」が「やればできちゃう」ぐらいになってて、なんだか、視野がぐぐっと広がった感じがしてかなりテンションがあがりました。

    電子工作の経験がなくても、誰でもハードウェアを自作できる時代が来ていた! : akiyan.com
  • JavaScript正規表現メモ。 (JavaScriptでよく使う書き方。) - こせきの技術日記

    タイトル変えました。旧タイトル「JavaScriptでよく使う書き方」。よく使うけど毎回忘れる。 正規表現にマッチするかどうか。 RegExp#testを使う。 /abc/.test("abcdefg") // => true String#searchはマッチした位置を返す。マッチしない場合は-1。先頭にマッチすると0でfalseなので注意。真偽値が欲しい場合はString#searchを使わない。 "abcdefg".search(/xxx/) // => -1 "abcdefg".search(/def/) // => 3 "abcdefg".search(/abc/) == false // => true 正規表現の部分マッチを得る。 部分マッチを得るには、RegExp#execかString#matchを使う。execとmatchの速度は大して変わらない。 正規表現のベンチマー

    JavaScript正規表現メモ。 (JavaScriptでよく使う書き方。) - こせきの技術日記
  • 体系的な知識・技術を身につけるための学習法について - Kentaro Kuribayashi's blog

    体系的な知識や技術を身につけたいと思っています。たとえばプログラミングに関していえば、これまでたまたま興味を抱いたところをつまみいしていて、小手先の技術が少しは身についたものの、もうちょっとなにか深いことをやろうとしても、それだけではなかなか難しい。とはいえ、教育機関のようなところでやり直すわけにもいきませんし、かといって、なにかをただ作ったりしているうちにいつの間にか体系的な知識や技術が身につくというのも、そういうひともいるかもしれませんが、あまり考えられないことです。ではどうすればいいか……?と考えていたのですが、先日ちょっと思いついたので、とりあえずまずは実践してみたいと思いました。 というのはつまり、学習したいと考えている、なにかそれなりに大きな規模の分野について、自分でを書くつもりで、あるいは、こういうがあったら体系的な知識を得られるだろうなあというの目次を自分なりに書き

    体系的な知識・技術を身につけるための学習法について - Kentaro Kuribayashi's blog
  • ソースコードリーディング(killコマンド編)

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、オペレーション統括部(Yahooショッピング担当)の吉野です。 前回お話しさせていただいたlsコマンドをハックしてみようの公開後、多くの方からご意見をいただきました。 その中で目に付いたのは、「ソースコードリーディングはしてみたいがなかなか(時間|機会)がない」というご意見でした。 そこで、今回はソースコードリーディングとして、FreeBSDで動くkillコマンドのソースコードを読んでみたいと思います。 killコマンドとは、ご存じの通りプロセスにシグナルを送るコマンドです。 trussコマンドでトレースしてみても、killシステムコールしか使っていません。 $ truss /bin/kill 12345 kill(

    ソースコードリーディング(killコマンド編)
  • クラスタリングの定番アルゴリズム「K-means法」をビジュアライズしてみた - てっく煮ブログ

    集合知プログラミング を読んでいたら、K-means 法(K平均法)の説明が出てきました。K-means 法はクラスタリングを行うための定番のアルゴリズムらしいです。存在は知っていたんだけどいまいちピンときていなかったので、動作を理解するためにサンプルを作ってみました。クリックすると1ステップずつ動かすことができます。クラスタの数や点の数を変更して、RESET を押すと好きなパラメータで試すことができます。こうやって1ステップずつ確認しながら動かしてみると、意外に単純な仕組みなのが実感できました。K-means 法とはK平均法 - Wikipedia に詳しく書いてあるけど、もうすこしザックリと書くとこんなイメージになります。各点にランダムにクラスタを割り当てるクラスタの重心を計算する。点のクラスタを、一番近い重心のクラスタに変更する変化がなければ終了。変化がある限りは 2. に戻る。これ

  • プログラマー面接時の技術的な質問事項(アプレッソ版) : 小野和俊のブログ

    技術者・SE・プログラマ面接時の技術的な質問事項というエントリをはてブで見かけたのだが、私もjavaプログラマーの面接を割とよくやっているので、よく質問する内容をまとめてみた。 (ちなみに、基的にコーディング面接の形態を取っている) プロジェクトの性質にもよると思うが、私の場合には、情報処理技術者試験的に基礎が満遍なく抑えられているかどうかよりも、 すぐ答えが見つからないような課題に対して、きちんと自分でやり方を考え、対応することができるか 「変な」コードをコミットしたりしないか(見つけにくいバグを混入させるとか、汚いとか、遅いとか)といった点を重視している。 まず、何を知っているかよりも、どんなものを作れるか、どんなことができるか、という質問。 ここで強烈な回答が来る人は、たいていここより下の質問は「あー、はいはい」という感じでサラッと答えてくることが多い。 これまでに携わってきた開発

    プログラマー面接時の技術的な質問事項(アプレッソ版) : 小野和俊のブログ
  • 私がJavaScriptを初心者用の言語として選んだわけ : 404 Blog Not Found

    2008年02月20日16:00 カテゴリLightweight Languagesアマグラマーのすすめ 私がJavaScriptを初心者用の言語として選んだわけ アマグラマーのすすめが止まっていて一部の読者を絶望させて申し訳ありません。他のを先に出さないといけないというのがその理由なのだけど、いい機会なので、 2008-02-20 - きしだのはてな デブサミでid:amachangが、初心者がプログラムを勉強するための言語としてJavaScriptがいいと言っていて、ぼくも同じような理由でいいと思って初心者の勉強にJavaScriptを使ってみたことがあるのだけど、実際にやってみるとかなり難しいと思ったので、そのことをまとめておきます。 への返答の形で、なぜ私がJavaScriptを選んだのかをまとめておくことにします。 まず比較的明らかな理由。 インストール不要の開発環境 ブラウザ

    私がJavaScriptを初心者用の言語として選んだわけ : 404 Blog Not Found
  • 言語別フレームワークの比較 ~Perl/Ruby/PHPユーザーのためのMVCフレームワーク入門~ (1/6):CodeZine(コードジン)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    言語別フレームワークの比較 ~Perl/Ruby/PHPユーザーのためのMVCフレームワーク入門~ (1/6):CodeZine(コードジン)
  • 夜型エンジニアが朝会社に来てすぐ作業に取り掛かるコツ : 管理人@Yoski

    エンジニアというと、朝は出社時間ぎりぎりに会社にやってきて、まずはメールチェック、だらだらと返事を返しながらお茶とか飲みつつネットで情報収集、そしてそのままお昼ご飯へ、というステレオタイプが有ったり無かったりするのですが、そもそも・・・ ・朝が苦手 ・2-3時間後には昼で作業中断する という条件では、午前中は開発する気になれないのは仕方ないのかも。。 ま、そんな環境で働けるエンジニアは超絶恵まれていると思いますが・・・というか「クリエイティブな仕事だから」とかなんとか理由をつけて当然の権利とか考えるようになったら(ry・・・頑張れ社会人。 で、ま、それはさておき、夜型エンジニアが朝会社に来てすぐ作業に取り掛かるコツがあります。誰にでも効くとは思えないけど。 方法は実に単純で、前日に作業を区切りのいいところまで終わらせないことです。 つまり、コーディングの途中、エディタとか全部画面に開けっ

    kataring
    kataring 2008/12/02
    自分もたまにやるなー
  • #!shebang.jp : 社内で使った Apache モジュールの資料

    November 21, 200811:00 社内で使った Apache モジュールの資料 カテゴリ技術ネタ 社内の技術MTGで Apache モジュール入門なプレゼンをしたので、資料公開します。 非常に基礎的な内容ですが。 実際の Web サービスでの Apache モジュールの使いどころとしては、translate_name フェーズでゴニョる事が多いですね。 ユーザーへみせる URL と実体の場所との関係が複雑化してきた際には Rewrite でがんばるよりモジュール書いちゃった方がスッキリします。Apache ModuleView SlideShare presentation or Upload your own. (tags: apache module) 「技術ネタ」カテゴリの最新記事 タグ :#apache#presentation

  • Geekなぺーじ : Mac OS Xネットワークプログラミング

    Mac OS Xでのネットワークプログラミングを勉強しながら、少しずつ公開していくコーナー。 コードを書く前の準備 まず、gccを使える状態にしないといけません。 Mac OS Xを普通にインストールしただけでは開発環境は入りません。 Xcodeを含むMac OS X開発環境はOS DVDなどに入っています。 次に、エディタが必要になります。 標準開発環境であるXcodeを利用して書くことができます。 一方で、UNIXやLinuxなどで一般的なエディタであるmule、emacs、xemacsなどを利用することも可能です。 個人的にはviが好きです。 Cocoa ファイル単体をそのままコピペしてgccでコンパイルできるCUIとして書いているので多少特殊な書き方をしている気がします。 GUIを使う場合はNSRunLoopではなく、NSApplicationMainを使ったりするのでご注意下さい

  • Zend Framework: Manual - プログラマ向けリファレンスガイド(日本語)

    表目次 2.1. サンプル CMS 用のアクセス制御 3.1. 設定オプション 3.2. サーバのオプション 3.3. デバッグメッセージ 3.4. Active Directory 用のオプション 3.5. OpenLDAP 用のオプション 4.1. Core フロントエンドのオプション 4.2. Function フロントエンドのオプション 4.3. Class フロントエンドのオプション 4.4. File フロントエンドのオプション 4.5. Page フロントエンドのオプション 4.6. File バックエンドのオプション 4.7. Sqlite バックエンドのオプション 4.8. Memcached バックエンドのオプション 4.9. Xcache バックエンドのオプション 6.1. Zend_Config_Ini コンストラクタのパラメータ 9.1. 通貨記号の設定を指定する

  • 教養としてのC言語

    筆者は「日経ソフトウエア」というプログラミング雑誌で記事の執筆と編集をしている。先日,C言語にターゲットを絞った特集を企画・担当した。記事は無事校了し,今はこの特集を収録した2008年11月号が書店に並んでいる。 C言語の特集を企画した理由はただ一つ,C言語を学ぶことによって,プログラミングに関するより深い知見を得られると強く感じたからだ。筆者自身,C言語に不案内で苦手意識を感じていたので,その思いは余計に大きかった。同時に,だからこそ,筆者同様にC言語の経験が比較的少ない人,そしてこれからC言語を学ぼうという人に役に立つ特集に仕立てられるのではという気持ちもあった。 日経ソフトウエアとしては,C言語にターゲットを絞った特集をここ3年ほど掲載していなかった。その間にアプリケーション・ソフトウエアの大きな流れとしては,デスクトップ・アプリケーションからWebアプリケーションへの比重が高まり,

    教養としてのC言語
  • プログラマーにとっての読み書きそろばん : 小野和俊のブログ

    基礎的な学力を表す言葉として読み書きそろばんという言葉があるが、 私はプログラミングについても読み書きそろばんに当たるものがあると思っている。 まず読みというのは、プログラムを読む能力である。 たまに、人の書いたソースを見て、すぐに 「全面的に書き直さないと使い物にならない」とか、 「グチャグチャですよ」とか、 「気持ち悪い」といったことを口にする人がいるのだが、 多くの場合、なぜそのように感じるのかを聞いてみると、 単に自分が今まで書いてきたコードと違ったスタイルで書かれている、 ということだったり、ごく一般的なデザインパターンが使われているのに、 そのデザインパターンを自分が知らないだけで 「わかりにくくて読めない」などと言っていたり、 人のコードを使い物にならないと簡単に口にする人であればあるほど、 その人自身が使い物にならない、という傾向がある。 もちろん、全体の整合性を取るために

    プログラマーにとっての読み書きそろばん : 小野和俊のブログ
  • 『コピー指向プログラミング』

    以前、「簡単コピー・プログラミングの罠」という記事で、コピー・プログラミングの危険性について書いた。ここでいうコピー・プログラミングとは、同じアプリケーション開発の中で、似た機能を量産するためにソースコードをコピーすることである。同記事には書いていないが、他にも、「バグがコピーされてしまう」問題や、ソースコードが無駄に大きくなるなどの問題もある。 そもそも、プログラミングでは「同じことを何度も書く」ということは避けるべきだ。その理由をあらためてここに書く必要もないだろう。同じことを何度も書かずに済ませるにはどうするか、ということは、構造化プログラミングからオブジェクト指向やアスペクト指向に至るまで、プログラミング技術の発展における重要な課題のひとつだったはずだ。 アプリケーションに固有の「業務ロジック(ビジネスロジック)」なども、開発プロジェクト内で共通化を行い、重複コードをなくすのが理想

    『コピー指向プログラミング』