タグ

関連タグで絞り込む (353)

タグの絞り込みを解除

Programmingに関するkoroharoのブックマーク (363)

  • Ruby開発者・まつもとゆきひろ氏の新言語「Streem」のソースコードを読んでみよう! ~ 文法と構造を規定する「lex.l」と「parse.y」

    まつもとさん自身によるStreemについての解説は、今後日経Linuxで順次掲載されるようです。まつもとさんがStreemについて解説する内容は、おそらく、プログラミング言語設計に関する高レベルなものとなるのではないでしょうか。 記事はそれとは無関係に、2015年1月に公開されているStreemについての低レベルな解説、つまり現時点のStreemのソースファイル(の一部)の読み解き方を示します。具体的には、GitHubのStreemリポジトリにある「lex.l」と「parse.y」という2つのソースファイルについて解説します。 Streemのソースファイルは、https://github.com/matz/streemからダウンロードできます。画面右下にある[Download ZIP]ボタンをクリックしてください。 lex.lとparse.y ダウンロードしたStreemソースファイルの

    Ruby開発者・まつもとゆきひろ氏の新言語「Streem」のソースコードを読んでみよう! ~ 文法と構造を規定する「lex.l」と「parse.y」
  • Outlookメッセージファイル(.msg)からデータを取り出す – VBA

    Outlookのメッセージファイル(.msg)から送信元アドレスや件名、文等のデータを取り出すことができます。 よくあるのは、受信トレイのメールからデータを取り出したりしますが、今回は任意の場所にコピーしたメッセージファイル(.msg)からデータを取り出す方法をご紹介します。 まずは宣言 Dim OL As Object Dim msg As Object Outlookオブジェクトを生成 Set OL = CreateObject("Outlook.Application") msgファイルを指定 strFileName = "c:\sample.msg" メッセージファイルをオブジェクトに読み込む Set msg = OL.CreateItemFromTemplate(strFileName) 各種データを取得します。 Debug.Print "SentOnBehalfOfName:

    Outlookメッセージファイル(.msg)からデータを取り出す – VBA
  • クラスの命名のアンチパターン - Qiita

    昔から「名は体を表す」と言ひます。クラスの名前がクラスの果たす役割と一致してゐるかどうか常に考へ続けませう。 ImageInfo, AccountData, etc. Info って何やねん? Data って何やねん? ImageInfo って Image とはどう違ふねん?? FooInfo や FooData よりも好ましいかもしれない名前の例: FooAttribute, FooProperty, FooMetadata, FooDescription FooConfiguration, FooSetting, FooParameter FooResult, FooStatistics, FooSummary FooBuffer, FooList, FooCollection, ... ProductListItem, TranslationTableEntry, etc. Prod

    クラスの命名のアンチパターン - Qiita
    koroharo
    koroharo 2014/09/05
    語彙力に依るところがおおきいなぁ。ダウンロード数の制御をするクラス→調整弁→Throttle は出てこないわ。
  • Java は近代の言語、Ruby は現代の言語、Curl は未来の言語 - kなんとかの日記

    タイトルは釣りでもなんでもなくて、大まじめ。 Curl というのは、MIT の人たちが作ったリッチクライアント用言語。もともと軍隊で兵士につけるデバイス用のアプリを作るために開発されたらしい。だから少ないリソースでも高速に動作し、バカでも分かるGUIを備え、ネットワークが繋がっていてもいなくても同じように動くよう設計されたんだとさ。 リッチクライアント製品としての Curl も面白いんだけど、プログラミング言語としての Curl はもっと面白い。まじで次世代の言語だと思う。 以下、その理由。 静的にも動的にもできる Curl は基的に、静的な型を指定する言語。しかし型を指定しなくても構わない (その場合は any という型が指定されたと見なされる)。 ほかの言語はたいがい、静的な言語では必ず型を指定しなくてはならず、逆に動的な言語では型を指定することができない。つまり型を指定するかしない

    Java は近代の言語、Ruby は現代の言語、Curl は未来の言語 - kなんとかの日記
    koroharo
    koroharo 2014/08/23
    2014年の今のタイミングで発表された言語だったらもっと普及してたかもなぁ。
  • 未来では全てのプログラミング言語が1つになる?

    何だか名前が無駄にかっこいいんですが…。 HTML5やJavaScriptPHPCSS、XMLなどなど…挙げだせばキリが無いプログラミング言語。分野ごとに違ったものがスタンダードをとっている為、プログラマーは複数の言語を学ばなければならないケースが多いです。そんな問題を解決するため、アメリカ国家安全保障局(NSA)がカーネギーメロン大学に出資して、1つの統一言語を作るプロジェクトを進めているんだそう。 伝説上のドラゴンの名前を取って、その名も「Wyvern」(ワイバーン)と名付けられたこのプロラミング言語は、アプリケーションやウェブサイト作りにおいて複数の言語が入り乱れている状況を改善するべく、開発が進められているんだとか。 開発者は以下のように語っています。 今日のウェブ・アプリケーションは全く統一性のない複数の言語で書かれており、ごちゃまぜ状態です。例えば、1つのウェブ・アプリケー

    koroharo
    koroharo 2014/08/23
    全部読んでないけど、Curlを思い出した。まったく聞かなくなったけどまだ現役なのかな。
  • ソフトウェアエンジニアリングにおける認知バイアス5つ | POSTD

    人間の論理は、私たちがプログラミングして毎日使っているマシンの論理とは違って完璧ではありません。人間は間違えますし、悪い精神的習慣を確立してしまいますし、エンジニアとして成功するための能力に悪影響を及ぼす認知バイアスをたくさん持っています。ソフトウェアエンジニアとして定期的に目にする一般的なバイアスのうち5つを見ていきたいと思います。 1. 根的な帰属の誤り 根的な帰属の誤りは、個人の行動を説明するにあたって、気質的または個性的な面を重視しすぎて、状況的な面を軽視しすぎる傾向を言う。対応バイアスとも。 (参照) これは私のお気に入りの認知バイアスです。”至る所で”見られるからです。道で誰かに行く手を遮られると、その人を完全に嫌なヤツだと思ってしまいますが、自分が同じことをしてしまう時は、相手が見えていなかったとか、会議があって遅刻できなくて急いでいたといった理由があります。誰かがバグを

    ソフトウェアエンジニアリングにおける認知バイアス5つ | POSTD
  • (情報系の)大学の学生はとても貴重な経験をしていることに気づかず、情報系でないプログラマー(僕)は情報系の学問的知識を、いつか求めるということ - nobkzのブログ

    どもです、nobkzです。昔からずっと考えていることを、うだうだ書きます。 「Prologなんて何でやるんだ!!!」 とある情報系の学生のつぶやきでした。僕は衝撃を受けました。 情報系の人間じゃない僕 ぼくは、福岡のIT系の勉強会に足をよく運び、また主催として開催したりしています。Technical RockstarsにCTOとして就任し、FLOWer言語をTechnical Rockstarsで開発しています。そしていまでは近日中に公開予定のBaaSを開発中であって、LispやHaskell、Prologなどを書いてたりしています。一日中プログラミングの事を考えて生活しています。 そのせいか、他人にはどうも僕が完全に情報系の人間の様に見られるようです。そして、大学では情報系の学部なんだろうと、小さいころからやって来たのだろうと。 しかし、実際は違うのです。僕は九州大学芸術工学部音響設計学

    (情報系の)大学の学生はとても貴重な経験をしていることに気づかず、情報系でないプログラマー(僕)は情報系の学問的知識を、いつか求めるということ - nobkzのブログ
    koroharo
    koroharo 2014/04/13
    逆の立場でも考えてみた方がいいと思われ。
  • 簡潔データ構造 LOUDS の解説(全12回、練習問題付き)

    日本語入力を支える技術」(通称「徳永」)や「高速文字列解析の世界」(通称「岡野原」)で紹介されている LOUDS というデータ構造を、12回に分けて解説しました。 友達に教える時に使ったもので、練習問題付きです。 実際に紙に書いてやってみるとわかりやすいと思います。 詳解 LOUDS (1) LOUDS とは 詳解 LOUDS (2) ビット列を作ってみる 詳解 LOUDS (3) 0番ノード 詳解 LOUDS (4) ビットの意味 詳解 LOUDS (5) 木構造の復元 詳解 LOUDS (6) インデックスでノードを表す 詳解 LOUDS (7) ノード番号からインデックスを得る 詳解 LOUDS (8) インデックスからノード番号を得る 詳解 LOUDS (9) 子ノードから親ノード 詳解 LOUDS (10) 親ノードから子ノード 詳解 LOUDS (11) 木の検索 詳解

    簡潔データ構造 LOUDS の解説(全12回、練習問題付き)
  • まだまだあった!iOSの開発を劇的に改善する最新のwebサービス、開発ツール集1 - Qiita

    by @mixiappwchr 前回のまとめでは、有名どころを書いたので、今回は、あまり知られてないところから探してみました。自分のメモ用に。 canvas http://canvaspod.io/ アニメーションをInterface Build上で設定できるライブラリです。 部品にこまかなアニメーションつけるとき便利そうです。 injection for xcode http://injectionforxcode.com/ アプリを落とすことなく動的にソースコードを反映させるxcode pluginです。手元でちゃんと動かせてないですが、使えれば細かい修正の調整には非常に便利そうです。 cococa+cat http://cocoacats.com/ カテゴリーライブラリのみを集めたサイトです。便利なカテゴリーは手放せないので、色々探してみると面白そうです。 Nomad Mattt先生

    まだまだあった!iOSの開発を劇的に改善する最新のwebサービス、開発ツール集1 - Qiita
  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

  • チーム開発とクソコード - tototoshi の日記

    今までパッケージソフトとかWebサービスの開発をしてきた中で、ビジネス上の納期や要求を満たすためにひどいコードを書くっていうのは自分の経験ではあまりなかった気がします。なにかひどいバグがあって、とりあえずのパッチを当てて間に合わす、ということはたまにあるけれど。SIの世界は知りませんよ。 そもそもコードを汚くかけば納期に間に合うということもないし、ビジネス上の近道になるということもない。コードをきれいに書こうが汚く書こうが無理なものは無理。第一汚いコードを意図的に書くというのも意外に難しいということは、普段まあまあきれいなコードを書いている人ならわかってくれるんじゃないかと思います。 仕様変更に設計がついていけてなくておかしいとかならともかく、関数が1000行あるとか、newした瞬間全てが終わるとか、変数のスコープがびっくりするくらい広い、みたいなコードについてははビジネス上の要求ではなく

    チーム開発とクソコード - tototoshi の日記
    koroharo
    koroharo 2014/02/24
    何の取り柄もなく、クソコードしか排出できないような人間をも養い、仕事を与える(与えねばならない)のがSIの世界。それに比べたら、随分恵まれた環境だよねー。
  • これからiOSやる奴はここ読んどけ - Qiita

    これからiOSアプリ開発をやりたい!という人へ 自分が実際にiOSアプリ開発をやって、便利だったと思う情報を残しておきます。 これからアプリ開発やりたいという人の参考になれば。 iOSアプリ開発の第一歩 まずは間違いなくMacを買うこと。 Macを書いましょう。Windowsじゃ開発できません。 MacじゃないとiOSアプリの開発はできないので、 これがないとお話になりません。。。 インストールしておくもの 基的にXcodeさえインストールしておけばアプリの開発はできます。 Mac App Storeからダウンロードできます。 実機インストールやApp Storeに公開したい場合は、 iOS Developer Programを購入する必要があります。 まずはこれを読むべき Appleのドキュメント集(日語訳Version) https://developer.apple.com/jp

    これからiOSやる奴はここ読んどけ - Qiita
  • VB6からVB2008 への移行に関して

    VB6(Visual Studio6.0)がWindows7や8で使えずいずれサポート打ち切り、最悪はそのEXEも次期OSでは動かなくなる恐れから止むをえずVB2008へ変換を試みていますが、余りにVB2008は利用者泣かせよくもこのような製品を世に出したなと言わざるを得ません。VB6で便利に使えていた機能をことごとく排除、オブジェクト指向と言う単に技術者の傲慢、自己顕示欲を示すだけの製品になっている。オブジェクト指向になってどこがどう便利になったのか複雑怪奇にしただけで便利さや機能の優れている点等どこにも見えない。VB6の便利な機能排除の主な物は以下の通り。 Inetコントロール、Winsockコントロールの排除、コントロールの配列機能排除、ポップアップメニュの左クリック排除、フォームのUnloadの排除等等 その他枚挙にいとまない。またこれを代わりの方法で実現する方法等にも書いてない

    koroharo
    koroharo 2014/02/10
    『オブジェクトは目的です。目的を果たすのがオブジェクト指向です。』この理屈は始めて見たwww どこをどう調べたらこういう理解になるのか逆に知りたい。
  • Javaを使うメリットはありますか? はい、それはもちろんあるに決まってます! - ブログなんだよもん

    /.Jに聞け:Javaを使うメリットは? | スラッシュドット・ジャパン デベロッパー え、ありますよね? Webアプリに限っても。 というか、上げてるデメリットが現代的じゃないなぁ... 個人的には少数精鋭チームを作れてないならJavaはかなり有りな選択だと思っています。 ※ Java使ってるメンバーがスキルが低いのではなく、LL系で高品質なものを作るのにスキルが必要で、例えスキルがあっても多人数開発にはあまり向かない、という意図 というわけで、自分が思うLL系言語ではなく、JavaでWebアプリを開発するメリットを書いてみます。 静的型づけ言語 HaskellとかOCamlとかScalaとか、その辺の超強力な型付け言語から見ると弱いですが、多くのLLと違い静的型付けな事が特徴です。 これは型というメタ情報を言語仕様に明確に取り込んでいるということです。以下のメリットがあります。 人間が

    Javaを使うメリットはありますか? はい、それはもちろんあるに決まってます! - ブログなんだよもん
    koroharo
    koroharo 2014/02/02
    同意。ある程度の人数で開発やってる現場前提だが、Javaを頭から否定するやつはなにも分かってない。
  • http://www.codesourcery.com/public/gnu_toolchain/arm-none-linux-gnueabi

  • checkstack.pl で関数のスタック消費量を調べる - bkブログ

    checkstack.pl で関数のスタック消費量を調べる Linux カーネルのソースコードに付属する checkstack.pl を使うと、C/C++ のプログラムの関数のスタック消費量を調べることができます。checkstack.pl は objdump -d のディスアセンブルの出力からスタックポインタの操作をパターンマッチしてスタックの消費量を計算しています。 入手方法 checkstack.pl は Linux カーネルのソースコードに付属しています。Debian GNU/Linux sarege なら次のようにコマンドラインから実行して取得できます。ソースツリーに含まれる scripts/checkstack.pl が目的のものです。 % apt-get source kernel-source-2.6.8 使い方 checkstack.pl の使い方は簡単です。スタックサイ

  • UTF-8にもいろいろある - ザリガニが見ていた...。

    前回からの続き。 改行コードの違いを体感してみる - ザリガニが見ていた...。 文字エンコードとロケールを体感する - ザリガニが見ていた...。 改行コードの違いも知った。文字コードとロケール、ターミナルの言語環境との関係も知った。これで文字にまつわる悩みとはおさらばできると思ったら、まだダメだった...。 実験環境 OSX 10.8 Mountain Lion以前((OSX 10.9 Mavericksでは、Mac仕様なNFDのUTF-8を表示しようとするとエラーになってしまったため、10.8以前の環境で実験した。Assertion failed: (width > 0), function conv_c, file /SourceCache/shell_cmds/shell_cmds-175/hexdump/conv.c, line 137. ** ** Abort trap: 6

    UTF-8にもいろいろある - ザリガニが見ていた...。
  • 今どきのJava Webフレームワークってどうなってるの? - きしだのHatena

    昨日のSeasar2のエントリについたコメントなどで、「とはいえ代わりに何つかうの?」みたいな話が出てたので、とりあえずJava EEのWebフレームワークについて簡単にまとめてみます。 Java SE 8+Java EE 7+lombokで書いていますが、基的なところはJava SE 7+Java EE 6でも大丈夫です。 なので、今どきとは書いてますが、基的には2009年12月のJava EE 6ということで、実はすでに4年近くたってます。 何も考えてない なんも難しいこと考えないなら、やっぱJSPが楽ですよね。 なんでも書けちゃう。 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content=

    今どきのJava Webフレームワークってどうなってるの? - きしだのHatena
    koroharo
    koroharo 2013/11/08
    CDI、JAX-RSはいいとして、ビュー周りが、ダメだよなぁ。しかし、他の言語使えやとも思う。
  • 【訂正あり】他人のコードを「破壊」しながらプログラミングを学ぶ方法:リバース・エンジニアリング

    追記:翻訳に誤って訳された部分がございました。原文における「break」は「破壊する」意ではありません。お詫びして訂正いたします。また、今後はこのような誤りのないよう、最大限の注意をもってサイト運営をしてまいります。(2013.10.21 11:30) コードを学ぶベストな方法のひとつは、既存のコードを「リバース・エンジニアリング」することです。コードトーレニング企業の「Treehouse」が、コードの一部をわざと「破壊」しながら、コードを分析する方法を教えてくれました。Nick Pettit氏はTreehouseブログの中で、プラウザでの3Dプログラミングの学習事例として、Javascript「Three.js」を一行づつテストする方法を解説しています。 var light = new THREE.PointLight(0xffffff); light.position.set(-100

    koroharo
    koroharo 2013/10/21
    よくやる。これやって、ある程度把握できてからAPIとかマニュアル見ると捗る。
  • わかりやすいコミットメッセージの書き方 - 2013-04-24 - ククログ

    もう1年以上前になりますが、コミットメッセージの書き方を説明しました。ざっくりまとめると、以下のことを説明しています。 わかりやすいコミットメッセージがいかに大切か どのようなコミットメッセージがわかりやすいか(具体例付き) この説明をしてからも、日々コミットしていくなかで新たに得られた「どうすればもっとわかりやすいコミットメッセージになるか」という知見が増えていました。これは、コミットへのコメントサービスの提供を開始した1ことも影響しています。このサービスでは、コミットへコメントするときに「どうして自分は他の書き方よりもこの書き方をわかりやすいと感じるか」を説明しています。その過程で「なんとなくこっちの方がよさそう」だったものを「具体的にこういうときにこう感じるのでこっちの方がよさそう」と何かしら理由を考えるようになりました。これにより、今までそれぞれの開発者でなんとなくだった考えが共有

    わかりやすいコミットメッセージの書き方 - 2013-04-24 - ククログ