タグ

programmingに関するkenzy_nのブックマーク (25)

  • 「悪い方が良い」原則と僕の体験談|Rui Ueyama

    ソフトウェアの世界には「悪い方が良い」原則という有名なエッセイがある。キレイにレイヤ分けされた一貫性のある良いデザインよりも、一見手抜きの悪いデザインのほうが実は良いときもあるという話だ。この逆説的なデザイン原則を僕は身をもって体験したことがある。それについてちょっと書いてみようと思う。 僕はlldというリンカの現行バージョンのオリジナル作者だ。リンカというのはコンパイラと組み合わせて使うもので、実行ファイルやDLLを作るのに使用される。lldはプロダクトとしてはかなり成功していて、標準のシステムリンカとして採用しているOSがいくつかあったり、GoogleやFacebookなど皆が知っているような大規模サイトの中で広く使われていたりする。 現在のlldは2世代目で、第1世代のlldは僕がプロジェクトに参加する前から存在していたのだけど、数年前にそれを捨てて一から書き直すということになった。

    「悪い方が良い」原則と僕の体験談|Rui Ueyama
  • notepad.exeをJavaコードをかけない体に改造する - Qiita

    この記事は Altplus Advent Calendar 2017 の14日目のエントリです。 こんにちわ。Xamarin人材です。 最近、ゲームのチートだったりハッキングだったり、怖い話が多いですね。 ああいう手口から身を守るには、まず攻撃手段について学ばなければなりません。 というわけで今回は、「notepad.exeを、2度とJavaコードかけない体に改造する」というテーマで、悪いプログラマーになりきってみようと思います。 実演 「意味がわからない」という声が聞こえますので、まずはデモを見ていただきたいと思います。 おわかりいただけただろうか。 ファイル保存時にHelloWorld.javaと入力したにも関わらず HelloWorld.csとなっているのです。悪魔的所業。これではJavaコードがかけないじゃないか。許せない!!! 解説と実装 何をやっているのかというと、 notep

    notepad.exeをJavaコードをかけない体に改造する - Qiita
    kenzy_n
    kenzy_n 2017/12/15
    なという恐ろしい所業
  • やり直しC言語:複雑な宣言の読み方

    C言語は宣言文が非常に読みにくいことで有名で、後発のGo言語はこれを批判して宣言の構文を変えています。私もずっと読むのが苦手だったのですが、私の頭が悪いのではなく、C言語の仕様がヘン、ということらしい。 今まで飽きるほどこの手の解説は書かれてきてるわけですが、自分なりにまとめないと覚えた気がしないので、あえてまとめておきます。ここに書いてある内容は、「C言語ポインタ完全制覇」に詳しく書いてあります。 型の派生 C言語では、int, char, floatなどの基型から、配列やポインタを派生していくことができます。対象を並べたものが配列で、対象を指し示すのがポインタです。 配列やポインタからも配列やポインタを派生できるので、派生パターンは無限に存在します。 int int の配列 int の配列 の配列 ... int へのポインタ int へのポインタ へのポインタ ... int への

    やり直しC言語:複雑な宣言の読み方
  • リアルタイム通信で利用されるプロトコルと手法 - tech.guitarrapc.cóm

    NOTE: 記事はすでに内容が古く、今読んでも役に立つ度合いはほぼないです。 記事は、先日社内勉強会のために準備した、Webサービスのリアルタイム通信周りのまとめシリーズ の1つを転載して公開するものです。 まだまだわかっていないことが多いので、ぜひぜひ間違っている点などにご指摘いただければと思い公開します。 ぜひぜひ優しくマサカリをいただけると泣いて喜びます! 目次 目次 はじめに プロトコルと手法 前世代のやり方であるComet について Polling 系 Streaming 系 過渡期といわれてる手法 将来有望といわれてる手法 Polling メリット デメリット 向いているシーン Long Polling (Comet) Polling の発展版 メリット デメリット LongPolling 自体は双方向通信ではない 接続が閉じられるケース 向いているシーン Server S

    リアルタイム通信で利用されるプロトコルと手法 - tech.guitarrapc.cóm
  • プログラムにおける「関数」とは何かについて、自分なりのまとめ - Line 1: Error: Invalid Blog('by Esehara' )

    近況 自宅サーバーが起動しなくなったため、中身に保管してある電子書籍PDFが取り出せず、大量の知性が失われている。 要旨 以前に「関数型プログラミングの初心者」に向けて質問したときに、そもそも関数とはなにかについてわからなかったという質問があった。自分も、具体的に関数とはなにか、というと説明に困ることがある。そこで、今回のブログでは「関数」とは何かについて、自分なりにまとめたことを書く。 はじめに 知り合いの技術者は、「実は関数の考え方について、一年間くらい馴染めなかった」と言っていた。現在では、開発をバリバリやっているような人であり、自分も尊敬しているのだけれど、そういう人でも「関数」という考え方について、実はそれほど馴染めなかったということを聞いてビックリしたりしていた。 とはいえ、そういう風に「そうなのか」と納得している俺も、実際のところ、では「関数」とは何か、というのを説明できる

  • われわれは、いかにして変更点を追うか

    われわれは、いかにして変更点を追うか ChangeLog/Issueを追う技術 自己紹介 azu @azu_re Web scratch, JSer.info アジェンダ 変更点を ChangeLogで知る Issue/Pull Requestで知る Commitで知る アジェンダ 変更点を Commitに書く Issue/Pull Requestを扱う ChangeLogにまとめる 変更点を追う :mouse: ChangeLogの追い方 ChangeLogを追うにはまずChangeLogの更新に気づく事が必要 GitHubでライブラリのリリースを見ていくためのツールや方法に書いた 更新検知の仕組みや補助ツールについて リポジトリのWatch => azu/github-reader タイムライン => azu/github-reader Star => starseeker GitHu

  • Swiftを使ってテトリスをつくる方法を丁寧に解説したサイト「Swiftris」 | ソフトアンテナ

    オンラインのプログラミング学習サイトBLOCが、Swiftを使ってテトリスを作成する方法をステップ・バイ・ステップで解説した無料サイト「Swiftris」を公開しています(公式ブログ)。Free eBookとありますがPDF形式の電子書籍などがダウンロードできるわけではなく、学習用Webサイトに無料アクセスできるようになる仕組みのようです。 ↑目次です。 オンライン学習サイトの教材(?)だけあって、解説は丁寧で分かりやすそう。Swiftのビッグウェーブに乗って行きたい方はどうぞ。

    Swiftを使ってテトリスをつくる方法を丁寧に解説したサイト「Swiftris」 | ソフトアンテナ
  • サイト閉鎖のお知らせ | ASCII Books

    ASCII Booksのサイトをご利用いただき、ありがとうございます。 2016年12月6日をもちまして、サイトを閉鎖させていただくことになりました。 今までサイトをご利用いただき、ありがとうございました。 アスキー・メディアワークスを引き続き、よろしくお願いいたします。

  • 長文日記

    長文日記
  • TechCrunch | Startup and Technology News

    Welcome back to TechCrunch’s Week in Review — TechCrunch’s newsletter recapping the week’s biggest news. Want it in your inbox every Saturday? Sign up here. Over the past eight years,…

    TechCrunch | Startup and Technology News
    kenzy_n
    kenzy_n 2014/04/03
    連携されると
  • よくわかるPHPの教科書 PHP5.5対応版のクロスサイト・スクリプティング

    たにぐちまことさんの よくわかるPHPの教科書がこのたび改版されて、よくわかるPHPの教科書 【PHP5.5対応版】として出版されました。旧版はmysql関数を使ってSQL呼び出ししていましたが、mysql関数がPHP5.5にて非推奨となったための緊急対処的な内容となっているようです。つまり、従来mysql関数を呼び出していた箇所をmysqliの呼び出しに変更したというのが、主な変更点のようで、これ以外はあまり変更点は見あたりません。 既に、Amazonでは、熱烈な読者の方からの詳細のレビューが届いています。 神御降臨! 言わずと知れたPHPプログラミング書籍のロングセラー。 2010年9月に発売された前作の改訂版。 PHPのバージョンも最新の5.5に対応、内容は前作と殆ど同じ。 少し前に前作を購入した方も書を購入した方がいいでしょう。 【中略】 それにしても、帯の「3万人に読まれた定

    kenzy_n
    kenzy_n 2014/03/10
    単純であるが強い対策
  • Pythonにサヨナラを - HackerNews翻訳してみた

    「HackerNews翻訳してみた」が POSTD (ポスト・ディー) としてリニューアルしました! この記事はここでも公開されています。 Original article: Saying Goodbye To Python by Ian Bicking ずっと先延ばしにしてきた記事を書きます。決別宣言ではなく(ずいぶん前に離れていますし)、ただ自分が歩んできた道を振り返ったに過ぎません。Pythonの世界に別れを告げてずいぶん経つのに、これまでサヨナラを言う勇気がなかったのです。 何年も前にPythonを卒業したとはいえ多少の愛着は残っており、戻る可能性もあると思っていました。PyCon 2013への提議が却下されたことは頭にきましたが(面白い話をしようと思っていたのに!)、この件で自分はもうPythonコミュニティの一員ではないのだと確信しました。 Pythonは私が初めて(もしかした

    kenzy_n
    kenzy_n 2014/03/07
    ロンググッドバイ
  • #最近のJavaScript情報の探し方

    azu @azu_re 皆さんの集め方も書いてもいいんですよ "最近のJavaScript情報の探し方 · Issue #‌2 · azu/jser-info" http://t.co/tZeSNAvB59 2014-01-30 13:01:07

    #最近のJavaScript情報の探し方
  • ウノウラボ Unoh Labs: Rubyでネットワークサーバを書く

    尾藤正人(a.k.a BTO)です 先日公開したブラウザだけでネットワーク対戦ゲームができるサイト「プラッシュ」では、 フラッシュとネットワーク通信を行う専用のXMLSocketサーバを開発しました。 このXMLSocketサーバはrubyで書かれています。 LLでデーモンを書く需要が、それほどあるとは思えませんが、デーモンを書く際に気をつけた点、工夫した点をまとめてみたいと思います。 なぜrubyを選んだのか rubyを選んだのには理由は2つあります。 Railsを採用した LLで早く開発をしたかった 僕も昨今のRailsブームにのって個人的にRailsを使い始めていました。 プラッシュは完全に新規プロジェクトで環境を選択する事ができたので、迷わずRailsを選択しました。 では、なぜCのようなコンパイル言語で書かなかったのか。 速く動くものを開発するよりも、早く開発をしたかったからです

  • まつもとゆきひろ×結城浩,Rubyを語る - 特別対談:ITpro

    結城浩 (ゆうき ひろし) JavaPerlなどの書籍でおなじみの著者。 最新刊は「数学ガール」。 このイラストは結城浩さん書き下ろしのもの。 http://www.hyuki.com/ 日経ソフトウエア2007年8月号,特集のテーマはプログラミング言語のRubyです。「Ruby大作戦」と題した特集の中で,Ruby作者のまつもとゆきひろ氏と,JavaPerlの書籍や誌連載の執筆,Web上での活動で著名な結城浩氏の対談を設けました。以下は,日経ソフトウエア2007年8月号に掲載した対談の全内容です。ぜひお楽しみください。なお,この対談では,お二人のファンで日経ソフトウエア特集「Ruby大作戦」のPart5にも寄稿いただいた松岡浩平氏にも同席していただきました。この対談でRubyに興味を持たれた方は,ぜひ日経ソフトウエア2007年8月号をお読みください。 はじめてのRuby ――結城さ

    まつもとゆきひろ×結城浩,Rubyを語る - 特別対談:ITpro
  • javascriptを理解するためのたった2つの大切なこと

    9割ぐらいはハッシュ何がハッシュなのかjavascriptで存在するほとんどのオブジェクトの実体はハッシュだよ。 var arr = [0,1,2,3]; とかをみると配列(人によってはリスト)に見えると思う。でも実際は違うんだ。 これは var has = {0:0,1:1,2:2,3:3}; と基的には等価なんだ。ただちょっと束縛されているメソッド(インターフェイス)が違うだけ。 ためしに arr[4] = 4; arr['x'] = 'string'; arr[-1] = -1; としてみよう。 Firebugで確認してみると[0, 1, 2, undefined, 4]というような値がかえってくるよ。 でもarr[-1]やarr['x']の値は保存されてないのかな?そんなことはないちゃんとアクセスできるんだ。 それどころかarr.xで'string'がかえってくるんだ。 別の例を

    javascriptを理解するためのたった2つの大切なこと
  • ウノウラボ Unoh Labs: バグに効く習慣〜より良いテストを実現する企業文化

    こんにちは! やまもと@テスト番長です。 プロダクトの品質を上げるには、会社ぐるみで品質管理に取り組む意識が重要です。 より良いソフトウェアテストを実現する為の企業文化として、大事だと思うことを幾つか挙げてみたいと思います。 新人にまずやってもらうことは? 新人テスターをいきなりテストに参加させるのは良くありません。製品への理解が深くないと有効なテストは出来ないからです。 まずは製品の仕様を覚えてもらったり、バグレポートの書き方を覚えてもらったりしなくてはいけないのですが、仕様書をポンと渡して、「これを見ながら製品を全部動かしてみて」といった指示を出しても現実味がなくモチベーションは揚がらないでしょう。 最初にやってもらうことは、先輩テスターの書いた障害報告の再テストか、 画面遷移図の更新など手探りで学習しながら行えることが良いと思います。 極力固定したビルドでテストする テスト対象の

  • JavaScriptの巧い書き方 - Archiva

    Make a note of it: Web tech, montaineering, and so on. Note: この記事は、3年以上前に書かれています。Webの進化は速い!情報の正確性は自己責任で判断してください。 Webに言語は数あれど、特に玉石混淆の激しいJavascriptの書き方について纏めてみた。間違い指摘大歓迎! 発端はYahoo!の Eric Miraglia による、YUI 式モジュールの作り方をまとめた記事。ざっくりまとめると、以下の手順になる。 YAHOO.myProject.myModule = function () { //"private" variables: var myPrivateVar = "I can be accessed only from within YAHOO.myProject.myModule."; //"private" m

  • 404 Blog Not Found:電脳言語を嫁に例えると....

    2007年06月13日02:20 カテゴリLightweight Languages 電脳言語を嫁に例えると.... Dave Thomasにインスパイヤされて。 日 Ruby 会議 2007 - Log0610-S5 なぜRubyを愛しているのか - それは難しい質問だ。 なぜ奥さんを愛しているのか簡単には答えられないよね。 なお、「」となっているのは、私がたまたま「夫」だから。他意も鮃もございません。 以下、アルファベット順。夫に例えばバージョンや他の言語は読者の皆さんにおまかせします。 C 不器用 でも子だくさん。 他の嫁達の多くが、彼女の娘。 不器用だが、一番きつい仕事もしてくれるので、未だに娘達が家事を押し付けに実家にやってきたり。 C++ Cが高齢出産した娘 英才教育を受けたが、親の期待が大きすぎたのか、妙な行動を取る事も多く、美人なわりにもてなかった。 しかし親を吹っ切れ

    404 Blog Not Found:電脳言語を嫁に例えると....
  • まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro

    第0回 あらためてRuby入門 まつもとゆきひろ氏自身による「Ruby入門」をお届けします。日経Linuxの連載開始前の特別企画(2005年4月号)として,Rubyが他のスクリプト言語やオブジェクト指向言語とどこが違うのか,なぜ便利なのかを中心に解説してもらったものです。 ● 基と他言語との違い ● 実装とRuby誕生の秘密 第1回 プログラミングとオブジェクト指向の関係 プログラマを目指す人々の中にも,「オブジェクト指向は難しい」とか,「なかなか分からない」という印象を持つ方が多いようです。そこで,Rubyを題材にオブジェクト指向という考え方について説明していきます。 ● その1 ● その2 ● その3 第2回 抽象データと継承 オブジェクト指向プログラミングを構成する3原則のうち,前回は「ポリモーフィズム」を学びました。今回はオブジェクト指向の歴史を復習した後,残りの「データ抽象」と

    まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro