タグ

programmingに関するkarronoliのブックマーク (355)

  • MVCにおけるcontrollerクラスの役割は時代と共に変わって行く | F's Garage

    昔、JavaのフレームワークであるStrutsも出てくる前、MVCモデルにおけるControllerの役割というのは、 「ロジックもデータも見ない現場監督のような役割」 と学んだ。だから昔、ServletではMVCアーキテクチャを学んだ時に、こんなControllerを書いていた。 [とりあえずRequestオブジェクトを受け取る] | [validationロジックに引き渡す。データの中身は見ない] | [例外が発生したらエラーView処理クラスに引き渡す。何のエラーかは細かく知らない] | [次にロジック処理クラスに渡す。最終的にDBのテーブルとマッピングしたデータはJavaBeansというデータクラスが保持する] | [例外が発生したらエラーView処理クラスに引き渡す。何のエラーかは細かく知らない] | [Viewの生成オブジェクトにJavaBeansを渡す] | [Viewオブジ

    MVCにおけるcontrollerクラスの役割は時代と共に変わって行く | F's Garage
    karronoli
    karronoli 2013/11/02
    「どうプログラムを整理したいか?!」MVCなんて考え方を借りようと借りまいと,それさえ見えればいいって常々思う.MVCって言葉自体もう消えていい.
  • RubyプログラマーがRubyのためにできるのは他の言語を学んで戻ってくること [GoGaRuCo 2013] - ワザノバ | wazanova.jp

    [Video] http://www.youtube.com/watch?v=tlSFBGCaAwM Sarah Meiの講演の原題は、「なぜRubyは勝てないのか?」ですが、結論としては他の言語を学ぶ重要性を説いてます。 Rails1.0以降、Rubyに対する不安はHacker Newsのネタに随分なってきた。Hacker Newsのコメントは単に汚らしいものが多いから無視するとしても、どうすればRubyを使うように皆を説得できるだろうか? エンジニアが新しいプログラミング言語を評価するときは、無意識に既に使っている言語と同じふるまいを期待している。自分自身もJavaからRubyに転向したときには、最初の1ヶ月、loopを使ってJavaコードのようなRubyを書いていた。 それ以外にも、どれだけ多くの人のそのプログラミング言語を使っているかという影響が大きい。SmallTalkが言語とし

    karronoli
    karronoli 2013/10/16
    "フレームワークやプログラミング言語を変えることを毎日悩む人"はこのリストに追加で何を考えるか,を考えたい.
  • DVCSもBTSも知らない人達とScrumをやってみた。 - うさぎ組

    このエントリーはStartup Scrumなブログではありません。Scrumというものに興味をもった当時23歳うさみみ系エンジニアがScrumという言葉を借りて開発してみた。という話です。2011/3から2011/5あたりの話。 2011/3。僕はデスマ4年目を終えて、新しいプロジェクトに移りました。 あるプロジェクトの中の4人チームのうちの1人として。もちろん僕はいちばん下っ端として。 (元請け会社の2人、当時同じ会社だった先輩、僕の4人) そのプロジェクトはWFだったんですけど、タイムボックスやリスク管理について理解があることは雰囲気で伝わってきました。 僕はその頃勉強し始めていたあらゆることを現場で試してみたいって強く思いました。 僕はMercurial、Jenkins、Groovyを趣味的に使い始めていて(MercurialとJenkinsは2010/10から。Groovyは201

    DVCSもBTSも知らない人達とScrumをやってみた。 - うさぎ組
    karronoli
    karronoli 2013/05/08
    感動した.
  • [Tips] TortoiseSVNで、astahファイルのリビジョン間の差分を表示 - astah* Users Community Site - フォーラム

    あるユーザーの方から、Subversionとの連携について問合せをいただきました。 astah*のプロジェクトファイルを Subversionで管理している過去のリビジョンと比較できないか、という内容です。 今日は TortoiseSVNでの設定内容を紹介します。 (プロジェクトの簡易比較は、astah* professionalで利用できます。) ----------------------------------------------------------- 1. [TorsoiseSVN]-[設定]を選択します。 2. [外部プログラム]-[差分ビューア]を開き、[高度な設定]ボタンを押下します。 (画像は Windows7で設定ダイアログを開いた状態です) 3. [差分の高度な設定]ダイアログを開き、[追加]ボタンを押下します。 [拡張子に対応した差分プログラムを追加]ダイアロ

    karronoli
    karronoli 2012/06/23
    "[Tips] TortoiseSVNで、プロジェクトの簡易比較を試してみる" Subversionに限らずastah*専用のdiffで比較できる…はずなんだけど動かない?
  • UWP を Continuum に完全対応させるには? - 高橋 忍のブログ - MSDN Blogs

    We're happy to announce that ASP.NET Core OData 9 has been officially released and is available on NuGet: Microsoft.AspNetCore.OData 9.0.0 The major highlight of this release is the update of the OData .NET dependencies to the 8.x major version. By updating the dependencies,...

    UWP を Continuum に完全対応させるには? - 高橋 忍のブログ - MSDN Blogs
    karronoli
    karronoli 2012/02/05
    TFSで複数プロジェクトのテストをJUnitで管理とかできたら(できそう?)かっこいい.
  • インライン関数 - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "インライン関数" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2017年10月) インライン関数(英: inline function)とは、プログラミング言語の言語機能および構文の一種で、コンパイラに対して特定の関数をインライン展開するよう指示するものである。つまり、コンパイラに対して、その関数を呼び出している全ての箇所に関数の実体を挿入するよう指示する。 インライン展開は、関数呼び出しにかかるオーバーヘッドを無くす目的で行われる。一般に関数の処理内容自体が非常に小さくオーバーヘッドの割合が無視できない場合に使われる。非常に小さい

    karronoli
    karronoli 2012/02/05
    C99ってinlineサポートしてるのかー!
  • 畳み込み関数の比較 (fold / accumulate / inject / reduce) - blanket log

    つーか、fold の弱点として、言語によって引数の順番がまちまちで、 正直憶えきれないってのがあるんだよな。誰か対応表とか作ってくれんもんか。 jijixi's diary - fold, map, for-each この中から一つ選ぶとしたらどれ? 確かにいろいろとややこしいのでまとめてみました。 いくつかの言語について大雑把に表にすると次のような感じ。 言語 関数 Haskell, OCaml, Scheme, Erlang foldl* f init items C++ accumulate(begin, end, init, f) Ruby*, JavaScript items.inject(init, f) Python, Perl* reduce(f, items [, init]) 言語 畳み込む二項演算 Scheme(SRFI)*, Erlang f(item, acc)

    畳み込み関数の比較 (fold / accumulate / inject / reduce) - blanket log
    karronoli
    karronoli 2012/02/04
    reduceってfold / accumulate / injectとかいう名前であったりするのか.
  • 空き時間にスマフォでソースコードが読める『CodeLibrary』をリリースしました! - hamheiの日記

    英語でこの記事を読む(Reading in English) ・4/5 追記: 好きなプロジェクトのコードが読めるPocketCodeをリリースしました。 クリスマスも当然の如く開発充なはむへいです! 僕と同じくクリエイティブで孤独なXデイを過ごす500万人のエンジニアを応援する為に 『CodeLibrary』というOSS(オープンソースソフトウェア)のコードをスマフォ上で読めるアンドロイドアプリをリリースしました! きっかけ 「OSSも読まないエンジニアって...」という記事を読んで、慌ててコードリーディングを始める 移動中にSNSを見る時間を、コードリーディングに充てたい スマフォでソーシャルにコードリーディングが出来るプラットフォームを作ろう! ベータ版ができたから公開するお^^ ←イマココ どんなアプリ? ちょっとした空き時間に、スマートフォン上でソースコードが読める、アンドロイド

    karronoli
    karronoli 2011/12/25
    Nice.ソーシャルにコードリーディングっておもしろそう
  • スタック領域とヒープ領域の速度 - シリコンの谷のゾンビ

    会話の中で「ヒープに比べてスタック領域の方が処理が速い」という話が出てきて,なぜそうなのかすぐにわからなかった.後で考えてみれば,ヒープ領域はアドレスから参照するしかないので,ワンステップ余計な処理が必要だな,と気がついた.けれど,そのロジックだとヒープ領域参照にかかる時間に比べて,参照してから行う処理の時間が圧倒的に大きい場合,関係なくなるなぁと思った. そこで{スタック領域, ヒープ領域}に用意したint型変数への代入と自作クラスのインスタンスへの操作の時間を測定してみた. 実験コード int型変数への代入 #include <iostream> #include <ctime> double count_stack (int n); double count_heap (int n); double count_stack (int n) { int a; std::clock_t

    スタック領域とヒープ領域の速度 - シリコンの谷のゾンビ
    karronoli
    karronoli 2011/12/24
    コメントがなるほどーと思った.メモリ管理は結局OSにやってもらうわけでスタックポインタ動かすだけなら処理は軽そう.ヒープだと構文上のスコープの度になんかしら操作するとなるとOS的にめんどそう
  • Mostly-Concurrent Mark & Sweep GC のアルゴリズム

    目次 1. 前置き 2. HotSpot VM 1.4.x の GC の種類 3. Mostly-concurrent Mark & Sweep 4. 応用 4.1 世代別 GC との組み合わせ 4.2 カードマーキング (Card Marking) 4.3 並列化 (Parallel GC) 4.4 ビットワイズ・スイープ (Bitwise Sweep) 4.5 インクリメンタル・コンパクション (Incremental Compaction) 5. 参考文献 脚注 コメント 1. 背景 ガーベージコレクション(GC) には色々なアルゴリズムが存在するが、大雑把に言って Stop-the-World (STW) 型 GC と On-the-fly 型 GC に大別される。 STW 型の GC はプログラムの実行中にはガーベージの回収を行わず、メモリが枯渇した時になって始めてガーベージの回

    karronoli
    karronoli 2011/12/21
    mark-and-sweepのとっかりとして読んだ.GCって呼ぶからにはそれ用の処理系がいてGCって呼ぶんだなーとか.
  • Lambda calculus in JS syntax

    λx…yz.M for λx…y.λz.M λx.M N for λx.(M N) (x M) for ((x) M) (L M N) for ((L M) N) function(x,…,y,z){ return M } for function(x,…,y){ return function(z){ return M } } x(M) for (x)(M) L(M)(N) for (L(M))(N) function(x,…,y,z) M for function(x,…,y) function(z) M x(M) for (x)(M) L(M)(N) for (L(M))(N) code1 (function(x){ return x })(a) run code1 code2 (function(x,y){ return x })(a) run code2 code3 var k

    karronoli
    karronoli 2011/12/04
    code12までなんとか読んでみたりした.いい脳トレだった
  • Flashのガベージコレクション – 遅延参照カウント – Rest Term

    前回のエントリーの続きです。 Flashのガベージコレクションに関する正しい理解 ——————– Flash Player(AVM2)のガベージコレクション(以下 GC)は以下のアルゴリズムを採用しています。 (参照: AS3TuningInsideAVM2JIT.pdf) * Deferred Reference Counting (DRC) * Backed by incremental conservative mark/sweep collector 今回は1つめの「遅延参照カウント」について。 「詳説 ActionScript 3.0」14章のガベージコレクションの説明が”詳説”というよりも”概要”にしかなってなかったので、やっぱりMMgc (TamarinのGC実装)の方を読むしかなさそうです。。 参照カウント まずは基のアルゴリズム、参照カウントについて。オブジェクトは自分

    karronoli
    karronoli 2011/12/03
    遅延参照カウントという手があるのかー なるほど
  • 言語のGC機能と参照カウント (前編) - moriyoshiの日記

    たまにはちゃんと書いたほうがいいかなと思って書いてみる。 あらまし 原始的な参照カウントベースのガーベジコレクションは、循環参照が発生すると、その参照に含まれるオブジェクトを回収できないという厄介な問題を抱えている。循環参照とは、1つ以上のオブジェクトが環状の参照関係を形成している状態のことで、このような参照を持つオブジェクトは、やがてルート (ある時点で言語ランタイムが管理しているすべてのスコープと考えてもいい) から辿りつけなくなって、解放されずにリークしてしまう。 この問題はいろんな LL 言語に見られる。 Perl の場合 use Devel::Peek qw(Dump); sub make_circular { my $foo = {}; my $bar = {}; my $baz = {}; $foo->{'bar'} = $bar; $bar->{'baz'} = $baz;

    言語のGC機能と参照カウント (前編) - moriyoshiの日記
    karronoli
    karronoli 2011/12/03
    Perlの例を5.14で試したけどメモリ使用量が増えない.なんで? / 元のコードがメモリを食う例か.コメントにして循環を作らなければ回収されるわな
  • 404 Blog Not Found:perl - to goto or not to goto, that's the continuation

    2007年04月18日06:45 カテゴリLightweight Languages perl - to goto or not to goto, that's the continuation Perlでもgotoを使えば、当の継続(continuation)が可能であることを示す。 継続ってなんのことだかさっぱりわからない一は、以下にあらかじめ目をとおしておいていただきたい。 なんでも継続 なんでも継続、Perl で。 : torus solutions! 404 Blog Not Found:継続は力なり Tociyuki::Diary - Perl 5.8 で似非継続 Perl 5のgotoには、3種類ある。 goto LABEL こちらはCなどで見られるgotoと等価である。 goto END; print "Hello\n"; END: print "Goobye\n"; G

    404 Blog Not Found:perl - to goto or not to goto, that's the continuation
    karronoli
    karronoli 2011/11/28
    コメントの「continuationってgotoの意味論研究の過程で生み出された抽象概念ですよ。」ってのがなるほどーと思った
  • 非構造化プログラミング - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "非構造化プログラミング" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2015年12月) 非構造化プログラミング(ひこうぞうかプログラミング)とは、いわゆる「構造化プログラミング」に対するレトロニムのようなものであり、「構造化された制御構造」ではないラベルと分岐命令を直接使うようなプログラミングパラダイムである。 非構造化プログラムは可読性が低くデバッグすることが難しい。そのため、何らかの構造をサポートするプログラミング言語では使われない手法である。しかし、条件文とgoto文の組合せによって任意のプログラム構造が実装可能であり、理論

    karronoli
    karronoli 2010/12/14
    構造化も非構造化もこれじゃ同じことを言ってる気がする..なんでだろう.
  • J言語の使用によるASCII文字の地獄への手引き - TopCoderとJ言語と時々F#

    J言語ってどんな言語? Jのサイトによれば「モダンで、高級で、汎用的で、ハイパフォーマンスな」言語らしい。 有限オートマトンを2バイトで実装できるらしい。 超幾何級数を2バイトで計算できるらしい。 関数のメモ化が2バイトで実装できるらしい。 実際のコードを見てみよう。たとえばクイックソートの実装はこんなかんじ。 quicksort=: (($:@(<#[) , (=#[) , $:@(>#[)) ({~ ?@#)) ^: (1<#)ただの難読言語?いいえ、もっとひどい難読言語です。難読だけど、機能だけみれば実用的。 処理系のインストール http://www.jsoftware.com/stable.htmからお使いのプラットフォームに合ったインストーラ/シェルスクリプト/ディスクイメージをダウンロードしよう。 J言語の基 品詞 まずは次のプログラムを見てほしい。 #include<st

    J言語の使用によるASCII文字の地獄への手引き - TopCoderとJ言語と時々F#
    karronoli
    karronoli 2010/03/31
    一応おわりまで読んだけど,どうやらJ#の親戚かと思ったら全然違った.人が読むことを考えられてない高級言語に感じた
  • コンペア・アンド・スワップ - Wikipedia

    コンペア・アンド・スワップ(Compare-and-Swap、CAS)は、CPUの特別な命令の一種。不可分操作として、あるメモリ位置の内容と指定された値を比較し、等しければそのメモリ位置に別の指定された値を格納する。この操作の結果、置換が行われたかどうかを示す必要があり、単純な真理値を返すか、そのメモリ位置から読み込んだ内容(書き込んだ内容ではない)を返す。 CAS命令は、マルチプロセッサシステムでセマフォなどを実装するのに使われる。マルチプロセッサシステムでLock-freeとWait-freeアルゴリズムを実装するのにも使われる。 Maurice Herlihy (1993年) は、CAS命令が単なるリード、ライトやテスト・アンド・セットでは実装できないことを示した[1]。 応用[編集] CAS命令を利用したアルゴリズムは、一般にあるキーとなるメモリ位置を読み取り、その古い値を記憶して

    karronoli
    karronoli 2010/03/24
    昔ZTTの人に存在を教えてもらったのをふと思いだした.といっても使う予定はない
  • Prolog Prologue

    Prologを使ってみる (動作確認 程度のProlog入門) たけおか@AXE (ex.山ナヲミ) %% これは、筆者が 技術評論社 刊 ソフトウェアデザイン誌 「つこてなんぼのFreeBSD」 1998年11月 SB-Prologを使う に掲載した原稿をもとにしたものです %% 0. はじめに この文書は、SWI Prolog, GNU Prolog, SB-Prologなどに適用できます。 Gnu Prolog: http://www.gprolog.org/ SWI Prolog: http://www.swi-prolog.org/ GnuProlog, SWI-PrologはISO規格準拠のPrologです。 SB-Prologは、DEC10 Prolog準拠です。 1. Prologとは Lispと同じくPorlog人工知能用の言語として、1980年代には大いに利用さ れ

    karronoli
    karronoli 2010/03/18
    やってみた.ソクラテスは死にます.
  • http://www.01-tec.com/document/without_pointer.html

  • Browse code samples

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    Browse code samples
    karronoli
    karronoli 2010/03/12
    VS2010は補完の部分一致も候補にでるようだ.それくらい2008でもできてくれないかな