タグ

programmingに関するsawatのブックマーク (168)

  • 非公開サイト

    サイトの構築。作品の販売。ブログの投稿。この他にもさまざまな機能があります。 ログイン サイトをはじめよう 非公開サイト このサイトは現在プライベート設定になっています。

    sawat
    sawat 2013/08/19
    何だこりゃ。そもそも (条件) ? TRUE : FALSE って三項演算子の意味がない ( ꒪⌓꒪)
  • バカ向け言語 Scala - だらだらしてたいなぁ

    なぜScalaがバカ向けなのか。 ぼくの経験を元に、バカ向け言語と非バカ向け言語を比較しながら見て行きましょう 非バカ向け言語 C プログラマーとして最初に携わったのがC言語です。 それは以下のようなものでした。 何十ものファイルにまたがるグローバル変数 緻密な制御が必要であるにも関わらず、無秩序に取得/開放が行われているメモリー管理 このような複雑な構造を、ぼくのようなポケコン並の処理能力しか持たないバカに把握可能でしょうか。もちろん不可能です そこで、次のようなコーディングを心がけました。 グローバル変数を使わず、関数に引数を定義して渡す メモリーの取得/解放を同一ファイル内に限定する これで、メモリーや変数参照の影響範囲を限定し、ぼくのようなバカでも理解できるようになります。 ですが、わざわざそんな事をやらなくても全てを理解できるエリート様達は、 「なぜ引数で渡すんだ。グローバル変数

    バカ向け言語 Scala - だらだらしてたいなぁ
    sawat
    sawat 2013/04/24
    デザインパターンだって「バカ向け」の概念のはずなんだけどな…。ちょっと小難しい話でもパターンで定型化してしまえば扱えるようになるでしょ?
  • 名状し難いコードを書く(コメント編) | Webシステム開発/教育ソリューションのタイムインターメディア

    あらすじ 長年プログラムを書いていても、良いコメントを書く技術ってぇのはなかなか身に付かないもので、 良かれと思って書いたコメントでも後々読み返すと書いた当人ですら首を傾げる始末。 長屋に住む八五郎もそんなSEの一人。 ある日、出社すると親方エンジニアがカンカンに怒っている。 どうやら先週末の退社前にレビューしてもらおうと push したコードについてらしい。 特に不味いところはなかったはずだが、はて、何が悪かったのだろうかと親方のデスクモニターを覗き込むと── さっぱり役に立たない <summary> 八五郎は普段から Visual Studio で C# のコードを書いている。 こいつにはXML Documentation Commentsというのがあり、 一定の書式に従って型やメンバーにコメントを書いておけば、 インテリセンスで有意義なメッセージが表示されたりAPI リファレンスの

    名状し難いコードを書く(コメント編) | Webシステム開発/教育ソリューションのタイムインターメディア
    sawat
    sawat 2012/08/02
    おもしろい
  • オレオレCocoaコーディングガイドライン

    gistfile1.md オレオレCocoaコーディングガイドライン see also. オレオレUIViewControllerコーディングガイドライン オレオレUIViewコーディングガイドライン ここで述べるターゲットはiOS5, Lion以降, ARC 定義 フレームワーク: システムまたは自前の複数のクラスを集めたもの 外部ライブラリ: 主に外部から取り込んだフレームワーク オブジェクト: id型すべて(CFTypeRefも含む) スカラ型: オブジェクト以外の型 ARCから外れるもの 命名規則 接頭語: OreOreApplication → OOA 以下例として OOA クラス: 接頭語+Hoge フレームワーク: 接頭語+Hoge+(Kit) インスタンス変数: _hoge (インスタンス変数の項 参照) プライベートメソッド: method システム・外部ライブラリクラス

    オレオレCocoaコーディングガイドライン
    sawat
    sawat 2012/06/01
    参考になる。
  • Qiita

    Qiita is a knowledge sharing service for engineers. You can follow users and tagsYou can stock useful informationYou can make edit suggestions for articlesFunctions that can be used after logging in

    Qiita
  • L&#39;eclat des jours(2011-02-20)

    _ Javaには良い点があるのか? Java当に良く使われているプログラミング言語だから、プログラミングを知らない人でもプログラムを記述できる。プログラミングを知っているというのは、この場合、ケースバイケースで記述することができるってことだ(というか、正直なところおれが知っているプログラミングはそのあたりまでで、ケースはわかってもプログラミングがわからなくて、まずいプログラミングをすることもたくさんある)。 そのため、プログラムとは言えないソースコードをたくさん目にする機会があってうんざりした。 どのくらいうんざりしたかと言うとコーディングの掟というケーススタディを上梓できたくらいだ。 コーディングの掟(最強作法) 現場でよく見る不可解なJavaコードを一掃せよ! (開発の現場セレクション)(arton) というわけでうんざりしているのはJavaで書かれた妙なコードであって、Java

    sawat
    sawat 2011/02/20
    読んで、ポチッた
  • Javaプログラマが知るべき9のこと - @katzchang.contexts

    はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ

    Javaプログラマが知るべき9のこと - @katzchang.contexts
    sawat
    sawat 2011/02/11
    あ、Effective Javaを人に貸しっ放しなだ。返してもらわないと!
  • アルゴリズム講座/実践編/バックトラック

    バックトラック(バックトラッキング)は思考アルゴリズムの王様と言っても過言ではありません。私の知る限り思考プログラムの約90%はバックトラックを使っていると思います。 1.バックトラックの考え 人が行う「試行錯誤という行為」を忠実に実行するように考え出されたアルゴリズムで利用範囲は 広範です。もちろん不得意分野もあります。 複数の未知のものを上手く組み合わせて、ある条件を満たす全体を得るのに、その未知のものを ひとつずつ許される範囲内で「もし、こう仮定して」さらにこの状態から「次に、こう仮定して」 というように仮定から仮定へと強引に突き進みます。 そんなことをすれば大抵は途中で行き詰ってしまいます。その時は1歩戻って(バックトラッキング) 仮定を立て直して、また、突き進みます。総ての仮定に失敗したら、そこからまた1歩戻って新たな仮定 を立て直して同様に進行すれば、やがては解に到達することに

    sawat
    sawat 2010/10/17
    『バックトラックは思考アルゴリズムの王様』
  • 美しすぎるプログラムを解読せよの巻 - やねうらおブログ(移転しました)

    #include <iostream> #include <cstring> using namespace std; long long dp[18][4][4][4][4][4][4][4][4][4][4]; #define FORN( n ) for ( int i##n = 0; i##n < 4; i##n ++ ) int main() { memset( dp, 0, sizeof( dp ) ); FORN( 0 ) FORN( 1 ) FORN( 2 ) FORN( 3 ) FORN( 4 ) FORN( 5 ) FORN( 6 ) FORN( 7 ) FORN( 8 ) FORN( 9 ) dp[0][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] = 1; for ( int r = 1; r <= 17; r ++ ) { FORN

    美しすぎるプログラムを解読せよの巻 - やねうらおブログ(移転しました)
    sawat
    sawat 2010/10/13
    動的計画法であることまではわかったけど…
  • 3回に1回出力するだけの簡単ではないお仕事 - やねうらおブログ(移転しました)

    なんかさ、3回に1回出力するだけの簡単なプログラムのお仕事ってあるじゃん。 if ( (++counter % 3) == 0) printf("Fizz\n"); これって意外と難しいんだよね。 ……なんてことを言うと「おいおい、天下のやねうらお、ついに頭おかしくなったか」とか言われるだろうけど、これ実際うちの仕事であった話で、このコードが原因でお客さんと大きなトラブルになった。 あまり具体的には言えないので、ちょっと別のものに置き換えて話すけど、それは、ひよこの餌やりプログラム(仮)だったわけ。 上のプログラムは、3回に1回だけど、このソフトには、N時間に1回、餌をやるロジックが書いてあった。 if ( (++counter % N) == 0) printf("餌やるでー\n"); なんかこんな感じな。それでNの値は、UI(ユーザーインターフェース)で調整できる作りにしてあった。一度

    3回に1回出力するだけの簡単ではないお仕事 - やねうらおブログ(移転しました)
  • Amazon.co.jp: サンプルプログラムでマスターする iPhone SDKプログラミング実践ガイド: 柴田文彦, 森田秀幸, 森本一茂, 近藤修平, 加藤貴之: 本

    Amazon.co.jp: サンプルプログラムでマスターする iPhone SDKプログラミング実践ガイド: 柴田文彦, 森田秀幸, 森本一茂, 近藤修平, 加藤貴之: 本
  • [iPhone][links] iPhone開発に便利なオススメサイト10選

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    [iPhone][links] iPhone開発に便利なオススメサイト10選
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • メソッドと関数呼び出しの内部

    0x1dac <foo>: mflr r0 0x1db0 <foo+4>: bcl 20,4*cr7+so,0x1db4 <foo+8> 0x1db4 <foo+8>: mflr r12 0x1db8 <foo+12>: mtlr r0 0x1dbc <foo+16>: addis r9,r12,0 0x1dc0 <foo+20>: addi r9,r9,568 0x1dc4 <foo+24>: lfd f0,0(r9) 0x1dc8 <foo+28>: fmul f1,f1,f0 0x1dcc <foo+32>: blr 0x1dd0 <call_test>: mflr r0 0x1dd4 <call_test+4>: stfd f31,-8(r1) 0x1dd8 <call_test+8>: stw r31,-12(r1) 0x1ddc <call_test+12>:

  • 並行プログラミングの原理から実践まで - L'eclat des jours (2009-08-31)

    _ 並行プログラミングの原理から実践まで アスキーの鈴木さんからもらって読み始めたが、いきなり1章の練習問題でつまづく。教科書(序文によれば大学の最終年度の教科書兼実務者の参考文献を想定している)っぽく、ぶっきらぼうに問題が出ていて解答はない。 おれの来の読者(実務者)としての正しい読み方は1章をすっとばして(アムダールの法則は別らしい)、いきなり実践編の並行スタックだとか並行キューとか、プライオリティキューとかを読めば良いのだろうが、せっかくだからまじめに(CSコースの読み方)読んでみようかなぁと。 (もっとも2章の相互排他、3章の並行オブジェクトは基的に読むべきとされている。3章ではJavaメモリモデルとしてダブルチェックロッキングがなぜ無効なのかについての解説があったりするが、わかりやすい。ただ、volatileフィールドを揮発性フィールド、シリアライザブルを線形化可能と日語に

    sawat
    sawat 2009/08/31
    高いなぁ。どうしようか。
  • トップ

    テスタ棒で基板の上を調査している場合、テスタ棒を当てるのにかなり神経を使っている。なぜならICなどピッチが狭い時、一歩間違えれば隣のピンとショートしてしまうかもれないし、きっちり当てないと接触不良で正しい値が得られないからだ。しかしテスタ棒を当てた後、測定値を読み取るには、どうしても視線をテスタに向けなければならない、この時にツルっとテスタ棒の位置を狂わせてしまう事故が起きがちだ。 そこで測定値をPCで読み上げるようにしてみた。うちにあるのはだいぶ昔に買ったM-6000Mというテスターで、RS-232Cで測定値を読み取ることができる。そしてVOICEBOXという便利な読み上げソフトウェアがあるので、これらを組み合わせれば出来そう。このテスタを買った当時は、どうやらRubyでも同じようなアプリを作成していたようだ(もう12年も前なのか)。今回はRustでゼロから書き直した。RS-232Cから

    sawat
    sawat 2009/08/28
    コメントした。
  • Matzにっき(2008-02-04) - 初心者向けの言語|ソフトウェア開発における初心者

    << 2008/02/ 1 1. [言語] 「ハッカーと画家」の著者が新しいLisp系言語「Arc」を公開 | エンタープライズ | マイコミジャーナル 2. 「セキュリティ、なめんなよ!」 なめねこも一緒に情報セキュリティ強化宣言 | ネット | マイコミジャーナル 3. 「サイオステクノロジーはグルージェントの未来技術に期待し子会社化」:ITpro 2 1. [Ruby] Nimble Method: Garbage Collection is Why Ruby on Rails is Slow: Patches to Improve Performance 5x; Memory Profiling 2. [言語] LuaJIT roadmap 2008 3. [Ruby] What will Matz do? 4. [Ruby] EURUKO 2008 − European Ruby

    Matzにっき(2008-02-04) - 初心者向けの言語|ソフトウェア開発における初心者
    sawat
    sawat 2009/07/14
    再読記念にブクマ。
  • トップ

    「プログラミング言語Rust公式ガイド」を大分前に送って戴いていたのを、ようやく読んだ。 Rustは、個人的にかなり気に入った言語で、早く組込み開発で普通に使えるようにならないかなと思っている。Rustの公式のガイドがとても良く出来ており、おそらく多くの人がここをとっかかりに始めているのではないかと思う。書は、このガイドを読んだ人、読んでいない人のどちらにも勧められる良書だ。ただ中盤以降の翻訳は一部こなれていない箇所もあり、意味が良く分からない時のために原書もあると良いと思う。 2章 Shadowing。Rustでは同じ名前の変数を複数回宣言できて、それにより前の変数はShadowされる(見えなくなる)。他の言語では、ほとんどが二重宣言のエラーになるところだ。便利かもしれないが個人的にはRustの言語仕様の中で、ほぼ唯一疑問を感じるところ。まぁ関数のサイズが小さければ問題ないのかもしれな

    sawat
    sawat 2009/07/07
    なるほど。64bitメモリ空間を32bitにおしこむならそりゃそうなるよね。
  • iPhoneSDK他 開発メモのまとめと言うか目次 - 電子趣味の部屋

    最新版はこちらです。 http://d.hatena.ne.jp/uosoft/20091231/1262186194 そろそろネタがたまってきたので、まとめます。 アプリの作り方 iPhoneでのOpenGLの簡単な遊び方 HTMLJavaScriptiPhoneアプリを簡単に作る方法 Android SDK インストールからHello World実行まで iPhone SDKでOpenGLに挑戦 立方体を表示してみよう センサー等ハードウェア関連 iPhoneSDKでスリープさせない方法 iPhoneの加速度センサの使い方 画面操作関連 iPhoneSDKのUIViewアニメーション iPhoneSDKでインジケータ(待ち等に表示する回転画像)を簡単に表示する方法 iPhoneで画像のサイズ変更方法(UIImage) iPhone SDK 画面方向の変え方 サウンド関連 iPhon

    iPhoneSDK他 開発メモのまとめと言うか目次 - 電子趣味の部屋
  • 2009-06-16

    実を言うと記号なしでJavaScriptというhasegawayosukeさんのトリックをあんまり深く調べていないんですよね。なんとなく筋道はわかるはずなので自分で作ってみようかとチャレンジしているわけです。そこで最初に考えていた問題が、文字「p」が欲しいということなんです。esca「p」eとunesca「p」eをいずれ作らなくてはいけないはずですから。たぶんこれが文字全部を表現するための最短ルート。「%」を得て数字とくっつけてunescape? (/_/).constructor + ''これでstringオブジェクトとしてリテラル値が「RegExp」になればケツを拾えば「p」が拾えて万万歳なはず…と思っていたのですが… function RegExp() { [native code] }ver3.0.11ではこんなstringオブジェクトが返ってきています。うむ。Firefoxのバー

    2009-06-16
    sawat
    sawat 2009/06/16
    通常実行では再現するけど、デバッガ実行したり、ログレベルを上げたりすると再現しなくなる(観察者効果)のは何バグというのだろう?