タグ

programmingに関するstakiのブックマーク (60)

  • 「セキュアなPHPアプリケーションを作成するための7つの習慣」のサンプルがとんでもなく酷い - ockeghem's blog

    はてブで250以上のブックマークを得ている以下のエントリ。 PHP アプリケーションを作成する際には、可能な限りセキュアなアプリケーションにするために、次の 7 つの習慣を守る必要があります。 入力を検証する ファイルシステムを保護する データベースを保護する セッション・データを保護する XSS (Cross-Site Scripting: クロスサイト・スクリプティング) の脆弱性から保護する フォームへの投稿を検証する CSRF (Cross-Site Request Forgeries: クロスサイト・リクエスト・フォージェリー) から保護する ほう。しかし、内容はどうだろうか。 読んでびっくりした。説明も微妙なところが多いが、サンプルが酷い。こんなサンプルでは悪い習慣が身についてしまう。全部は書ききれないと思うので、目についたところからピックアップして紹介する。 パストラバーサル

    「セキュアなPHPアプリケーションを作成するための7つの習慣」のサンプルがとんでもなく酷い - ockeghem's blog
  • Google 工藤拓さん講演「大規模ソフトウェア開発を支えるGoogleのテクノロジー」

    NAISTにてMeCabの作者としても有名な工藤拓さんの講演が行われました。Googleの開発体制とそれを支えるツールのお話です。 学校と拓さんの双方からブログへの掲載許可が得られたので、まとめを公開します。この講義はNAISTのソフトウェア開発管理講義の一環です。 iPhoneカメラしかなかったので、画像が荒くて済みません・・・。 会場は大入り! 工藤拓さん NAIST自然言語処理学講座出身 Googleに入社してから大規模開発やインフラを経験 MeCabを開発 NTTコミュニケーション科学基礎研究所に所属 その後Googleへ 研究より開発寄り Googleでの仕事語のウェブ検索 「もしかして」機能 ダジャレサーチ エイプリルフールネタを1ヶ月かけて実装 何千人もの開発者が単一のソースコードリポジトリの上で開発を行っている 大規模開発をサポートするインフラが不可欠 Mondria

    Google 工藤拓さん講演「大規模ソフトウェア開発を支えるGoogleのテクノロジー」
  • 芸術の秋にProcessingでスケッチプログラミングを始めてみよう(1/3) - @IT

    芸術の秋にProcessingでスケッチプログラミングを始めてみよう:絵心がなくても簡単に絵が描けるProcessing(1)(1/3 ページ) アートやデザインのための“プログラミング” 読者の皆さんは「プログラミング」という用語や、それをすることに、どんなイメージを持っているでしょうか。仕事に使われるアプリケーションやWebサービスの開発の世界の「プログラミング」を考えてみると、多くの場合「実用性や効率が重んじられ、専門的な知識を持ったエンジニアプログラマーが慎重に正確に行うもの」といったイメージではないかと思います。 しかし一方で、実用性ではなくスクリーンに表されるイメージや動きの美しさ、見るものを引き込むインタラクションのアイデアをプレゼンテーションする「プログラミング」の世界も存在します。エンジニアではなくアーティストやデザイナーが、驚きやインスピレーションを求めて大胆に「プロ

    芸術の秋にProcessingでスケッチプログラミングを始めてみよう(1/3) - @IT
  • C++11 - Wikipedia

    この記事は更新が必要とされています。 この記事には古い情報が掲載されています。編集の際に新しい情報を記事に反映させてください。反映後、このタグは除去してください。(2019年1月) C++11は、プログラミング言語 C++ のISO標準 ISO/IEC 14882:2011 の略称である。規格の策定中は2009年中の標準化を目指していたため、C++0x という仮称で呼ばれていた。 ISO/IEC 14882:2003 (C++03) に代わるものとして、2011年8月12日にISOによって承認された[4]。後継のC++14が2014年8月18日に承認されている。 コア言語への機能追加や標準C++ライブラリの拡張を施し、C++TR1ライブラリの大部分を(数学的特殊関数ライブラリを除いて)取り込んでいる。 標準策定の方針[編集] C++ への修正はコア言語と標準ライブラリの双方に及ぶ。 委員会

  • 中里一日記: 金槌は役に立たない

    金槌は役に立たない あらゆる人々と同じく、プログラマの耳に入る情報も、かなりの部分がテンプレでできている。 「××は役に立たない」というテンプレを聞かずに一週間を終えることはまずない。それでも、××の中身によっては煽られる人がいるのだから面白い(コメント欄)。 登場したばかりの新技術は、それがどのくらい役に立つのか、誰も知らない。だから、「金槌を使えば、ネジ回しなんかなくても、木材に木ネジを打ち込めますよ」というような極論を唱える人が出てくる。実際に木ネジを打っている人がこう主張するならまだいい。しかし、自分では打ちもせずに主張する糞野郎がぞろぞろと出てくるのだから目障りだ。その反動として、「金槌は役に立たない」という声の大合唱が始まる。 だから、「××は役に立たない」という声はいつものことであって、なんの問題もない。そういう声がやかましく聞こえてきたなら、××をかじっておいたほうがいい。

  • コーディングスタンダードpMatzにっき(2004-10-06)

    << 2004/10/ 1 1. [Ruby]ChangeLog 2. [家族]長女の帰還 3. [Ruby]Ruby Conference 2004 4. U-20プログラミングコンテスト表彰式 2 1. [言語]文法のデザイン 2. 初心者パラドックス 3. DSL(domain specific language)と組み込み言語 3 1. [教会]松江、そして岡山 4 1. AC 2. [Ruby](行ってないのに)RubyConf 2004レポート 5 1. [特許]コダック、Java特許訴訟で勝訴--判決に批判の声が噴出 2. [日記]tDiary 2.0 6 1. [Ruby]Rubyの教科書 2. [Ruby]コーディングスタンダード 7 1. Skype 2. [特許]携帯電話の2画面特許,NECとドコモ側が東京地裁で勝訴 8 1. [特許]KodakとSun、オブジェクト

  • Rubyコーディング規約

    はじめに 文書は、Rubyによりコーディングを行う際の規約について述べる。 実際のプロジェクトに適用する際には、このコーディング規約をカスタ マイズして用いることを推奨する。 ソースコードの整形 インデント プログラムを読みやすくするため、インデントを適宜行う。インデント 幅は2とする。また、インデントにはスペースのみを使用し、タブは使用 しない。(環境によりタブ幅が異なるため。) 例: if x > 0 if y > 0 puts "x > 0 && y > 0" end end 一行の桁数 一行の桁数は最大80桁までとする。 空行 複数のクラスの区切には空行を挿入する。 例: class Foo ... end class Bar ... end 誤った例: class Foo ... end class Bar ... end また、クラス内の各構成要素の区切にも空行を挿入する。

  • Top | 間違ったコードはコンパイルできないようにする

    ハンガリアン記法に関する間違った意見をよく目にする。Making Wrong Code Look Wrong (間違ったコードは間違って見えるようにする)の記事では、ハンガリアン記法でもアプリケーションハンガリアンは有用だと主張している。もちろん、わかりやすい変数名を使用することには賛成だが、変数名を人間が目で見て正しいかどうかを判断しなければならないようなルールに価値はないと確信している。ワインバーグではないが、計算機が得意なことは計算機にやらせればよいのであって、人間がやることではないのだ。ソフトウェア工学的に正しいのは、間違ったコードはコンパイルエラーになるようにする、ということだ。 アプリケーションハンガリアンが善だと思い込んでる素人は、この続きを読まずにマンガ喫茶にでも行って時間を過ごして欲しい。 当のソリューションは静的解析で正しさを証明すること 前述の記事では、アプリケーシ

    staki
    staki 2008/09/20
    それでもハンガリアンは要らない言う話。確かにあの例はtaintで良いと思った。VB6 とか VBA で小さいのを弄る時は良いかなあ位に思う。『計算機が得意なことは計算機にやらせればよい』まったくだ
  • 間違ったコードは間違って見えるようにする - The Joel on Software Translation Project

    Joel Spolsky / 青木靖 訳 2005年5月11日 水曜 私が最初の当の仕事をはじめたのは1983年9月に遡る。それはオラニムというイスラエルの大きな製パン工場で、16台の飛行機ほどもある巨大なオーブンで、毎晩10万個のパンが作られていた。 はじめて工場に入った時、そのあまりの汚さに信じられない思いだった。オーブンの側面は黄ばんでいるし、機械は錆びていて、そこらじゅうが油だらけだった。 「いつもこんなに汚いの?」と私は聞いてみた。 「なんだって? なんの話をしてるんだ?」とマネージャが答えた。「掃除したばかりだから、今が一番きれいな状態なんだ」 なんてこった。 毎朝の工場の清掃を何ヶ月か続けて、ようやく彼らの言っていたことが理解できるようになった。パン工場では、きれいというのは機械にパン生地が付いてないことを言うのだ。きれいというのは、ゴミ箱に発酵したパン生地が入ってないこと

    staki
    staki 2008/09/20
    ハンガリアン記法の起源、その間違った伝わり方・本来の意味と価値について。/状態変化を変数名で管理するような気味悪さをちょっと感じるんだけど・・・。込み入った小さい局面で言語の支援機能が無い場合に使う?
  • レガシーコード借金説 - 世界線航跡蔵

    Rails勉強会@東京 第30回の懇親会の席で話していて、 id:takahashim さんがハッとすることを言った。バグバグなコードは負債であると。 バグバグなコードは、それだけでメンテに定常的な出費を産む。書き直せばそのコストはいらないのに。バグバグなコードはあらゆる危険性を産む。なまじモノがあるだけについコードを無条件に資産と見なしてしまいがちだが、実は怪しいコードは負債であると。 そして、でっち上げのコードが必要な場合も確かに存在するのだ、とも。「無借金経営だけが経営じゃない」そうだ。なるほどね。 ここで、自動化されたテストケースが存在しないことをもって負債と見なす、と基準を定めよう。テスト可能性が担保されていればそのコードはそれなりに安全であるわけだし、差し換えもローコストなわけなので。「レガシーコード = テストが存在しないコード」という定義は『 Working Effecti

    レガシーコード借金説 - 世界線航跡蔵
  • 第四世代言語 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "第四世代言語" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2023年12月) 第四世代言語(英: fourth-generation programming language、4GL)とは、FORTRANやCOBOLのような手続き型言語より高機能なプログラム言語を一般的に指す言葉である。 主にアプリケーションプログラムを開発する際に用いられる。 4GLは単体で存在することよりも、特定のアプリケーション開発システム(たとえばデータベースシステム)と組になって提供されることが多い。たとえば、データベースアクセスや報告書作成用言語やDBMS

  • デフォルトスコープが上手く使えない - 都元ダイスケ IT-PRESS

    最近の悩みです。同一パッケージ内のみから可視であるデフォルトスコープ。 パッケージ分けって2つのやり方があると思うんですよ。 ヒエラルキー的分類をパッケージ割りに反映させる。 同種のものを同じパッケージに置いておく 例えば、Actionクラスはこのパッケ、ActionFormはこのパッケ、とか 抽象的な上位フォルダから具体的な下位フォルダへ、ファイルのディレクトリ分類みたいなイメージ デフォルトスコープの可視範囲をパッケージ割りに反映させる。 種類は異なるが、協調して動くものを同じパッケージに置いておく 例えば、Fooページ用のパッケ(Action, ActionFormが両方入ってる)とか 今まで俺がとってきた割り方は前者。分かりやすいと思うんだ、その方が。 だけど、デフォルトスコープを上手く使おうとすると、後者の分類をせざるを得ない。デフォルトスコープの為のパケ割と、分類のためのパケ割

    デフォルトスコープが上手く使えない - 都元ダイスケ IT-PRESS
  • COBOLとか談義 on Twitter - monjudoh’s diary

    なにやら盛り上がっていた。 COBOLは使ったことないしおそらく今後使うことはないので言及はしない。ただもくもくとふぁぼるのみ。適当なタイミングでまとめる。 ということで途中経過をまとめた。 まとめ方法 議論と関係ないエントリをどんどんクリックして隠していくところまでは↓ Twitter議事録 - 文殊堂 その後実行するscriptは↓ 9626’s gists · GitHub クリップボードにコピーされるのではてダにペースト。 まとめ文 nagise 新システムで敢えてCOBOLか。ビジネスロジックって要は誰が書いても同じ部分のことだろうなぁ http://slashdot.jp/developers/article.pl?sid=08/09/09/0252214 nagise 要するに、順次・反復・分岐という情報処理の基礎部分だけでやれる簡単なお仕事という部分で、その辺ならCOBO

    COBOLとか談義 on Twitter - monjudoh’s diary
  • kajidaiの日記 - 新しいプログラミング言語を習得するための15の方法

    ↓で紹介されてた新しいプログラミング言語を習得するための15の方法についてhttp://forums.programming-designs.com/viewtopic.php?pid=3482I've working knowledge of a bunch of programming languages but job demands to learn a new language frequently in a short time. Instead of reading hundreds manual/book pages, I quickly read 10-15 pages of tutorial or primer. (As you know google is the best search engine to look for such stuff). I keep p

  • “オブジェクト指向”の本質 - Smalltalkのtは小文字です

    「OO(OOP)とは何か?」については、ネタが割れてしまえばそんなに複雑なものではない…と個人的には最近、考えるようになってきています。 リスコフのユーザー定義型(aka、抽象データ型。データと手続きのセット)そのもの、あるいはその「ユーザー定義型」をクラスやそれに準ずる機能で実現しようとするOO(ストラウストラップ。aka、クラス指向。継承を使ったプログラミング)。もしくはそれらを一般化したOO(クック。aka、手続きによる抽象化)。 メッセージングにより動的性を実現しようとするOO(ケイ。aka メッセージ指向) 今回登場した、後者のメッセージングのOOのミニマリズムをおしすすめることによって派生的に生じたOO(アンガーとスミスからの 派生 変形。aka、プロトタイプベースOO。フレームとスロット、あとは委譲機構があれば十分…というミニマル化の結果、アンガーとスミスの頃には重要だった“

    “オブジェクト指向”の本質 - Smalltalkのtは小文字です
    staki
    staki 2008/08/08
    なんかおぼろげに見えてきたかも
  • オブジェクト指向でなぜ作るのか を買ってみました - みねこあ

    オブジェクト指向をわかりたいなら今すぐ『オブジェクト指向でなぜつくるのか』を読め -思っているよりもずっとずっと人生は短い。 VS お勧め? - カレーなる辛口Java転職日記 について、http://www.kt.rim.or.jp/~kbk/zakkicho/08/zakkicho0807c.html#D20080728-4 さんよりお呼びが掛かりました。 普段、さんざ召還魔法を使いまくっている私としては、ここは恩返しのしどころです。けれど、敵はあまりに強大で...。 オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識― 作者: 平澤章出版社/メーカー: 日経BP社発売日: 2004/06/03メディア: 単行購入: 34人 クリック: 448回この商品を含むブログ (198件) を見る 結論から先に言えば、OO の入門書としては、書はダメで

    オブジェクト指向でなぜ作るのか を買ってみました - みねこあ
  • メソッドに対応関係を持たせる - kagamihogeの日記

    バグ出した、ってわけでもないんだけど。ちょっと気になったコードがあったので。 amazon:Code Complete第2版〈上〉―完全なプログラミングを目指して曰く、 〜良いルーチン名のガイドラインより ■正確な反意語を使用する 反意語の命名規則を設けると、一貫性を保ちやすくなり、読みやすさにつながる。first/last のような反意語の組は、一般的に理解されている。それに対して、FileOpen() と _lclose のような反意語の組は対称的でなく、紛らわしい。 setter/getter なんかが良い例。必ずしも対応関係のあるメソッドばかりでもないけどさ。 で、今日見かけたのはこんなコード int getHogeId() { ... } void releaseHoge(int hogeId) { ... }hoge っていうのは何かしらのハードウェアリソースと思ってもらえれば

    メソッドに対応関係を持たせる - kagamihogeの日記
    staki
    staki 2008/07/29
    Acquire いいな
  • 最近もらった本: インターフェイス指向設計 - steps to phantasien t(2008-07-21)

    最近でもないですが頂きました. ありがとうございます > 関係者の方. 多忙にかまけて感想を書くのが遅れてしまいました. 遅れた理由はもう一つあって, 私はこのの主張があまりピンとこなかった. でも貰ったのことを単にイマイチだったと書くのも社会人としてどうかなー, などとよたよたするうちに月日は流れ... 嘘や間違いはない. けれどアジャイルなオブジェクト指向設計という視点でみると, いまいち relevance を欠く気がする. このを読んでまずい設計が良くなるのを期待できない自分がいる. 何でピンとこないのか, しばらく考えていた. どうも "インターフェイス" を中心に据えるのがまずいんじゃなかろうか. オブジェクト指向の設計を議論する上で, インターフェイスはツールの一つに過ぎない. "インターフェイス指向設計" という切り口は, 極端に言えば "クッキー指向ウェブアプリケー

    staki
    staki 2008/07/29
    昔ながらのOOと今風のOO
  • ホワット・ア・ワンダフル・ワールド 初心者にプログラミングを教える際の難しさ

    今のプログラミング言語は,アルゴリズム (計算手順) を書き下す (だけの) ものなんですよね. なので,初心者にプログラミングを教える際 「どうやってアルゴリズムを作れば良いのか ?」「熟練者は,どのように発想しているのか ?」 ということを教える際には,向きません.これがプログラミング教育質的な難しさです. アルゴリズムを作るための方法論と,それを表現できるプログラミング言語が無いから,結局はたくさん読ませて,問題解かせて,自分で勉強してがんばってね,数こなせば自然とわかってくるから,という前時代的な教育しかできないのです.これでは脱落者がたくさん出てしまっても無理はありません. amachang さんががんばってます.執筆中のマインドマップを引用するってのは,ちょっと申し訳ない気もするのですが,面白い一文を発見. IT 戦記 2008-07-15 プログラミング未経験者が Ja

  • ソフトウェア開発の落し穴

    This guide is the safest way to do a domain switch, you get all you need to change a blocked domain. What is a user flow and a user journey? There’s a macro view of a customer experience that we can analyze and partially control.

    ソフトウェア開発の落し穴