タグ

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

タグの絞り込みを解除

programmingに関するhonamisのブックマーク (424)

  • C#でもタプル使いたいよね。で、GetHashCodeのオーバーライドはどう実装すればよいの? - Bug Catharsis

    遅ればせながら、C#でもタプルが欲しくなった今日この頃。 C#4.0では標準でタプルを用意してくれるっぽいけど、今すぐ欲しいよ。 HaskellやPythonなどにあるタプル。C#でも使いたいよね! タプルとは、いくつかの値(数値型、文字列型など)をひとつにまとめて、 あたかもひとつの値のように扱える機能です。リストや配列が同じ型をまとめるのに対して、 タプルは用途や型が異なる型について、ひとつにまとめる目的で使われます。 その特徴から、汎用的で匿名な構造体と考えて差し支えないでしょう。 さっそくジェネリックを用いて、2要素と3要素のタプルを作ってみます。 using System; using System.Diagnostics; using System.Runtime.InteropServices; namespace ClassLibrary1 { /// <summary>

    C#でもタプル使いたいよね。で、GetHashCodeのオーバーライドはどう実装すればよいの? - Bug Catharsis
  • はてなブログ | 無料ブログを作成しよう

    春の伊予国漫遊記。松山・今治と愛媛の魅力を満喫してきました。 法事を兼ねて愛媛観光へ 2024年のGWは、毎年恒例の名古屋帰省ではなく自宅でゆっくり過ごしておりました。というのも、4月に法事のため愛媛・松山に親族大集合というイベントがありまして、そちらをGWの旅行代わりにしたという理由です。法事は日曜日の予定ということ…

    はてなブログ | 無料ブログを作成しよう
  • 仕事でコードを書いていますがどうしても同期と比べて仕事が遅いです。早くコードを書くコツや短くまとめるコツなどがあれば教えてほしいです。あと普段どんなことを意識してコー��

    私は昔、趣味で作っていたアプリに機能を「追加」する度に、アプリケーション(実行ファイル)の総サイズを「減らす」、というのを繰り返していたよ。速度も同様に。 これによって「あるパターンはこう簡潔に直せる」というパターン知識が積み上がっていった気がするな。 さらに、それを実現する過程で、限界に見えた状況を打開するために色んな既存アルゴリズムを勉強して実際に使って身につけていくことになった。 ある問題があるときに、的確に適合するアルゴリズムや構成が発見(選択)できると、劇的に簡潔になることがある。そこにたどり着けるかどうか考えるのが楽しい。 あと、同じコードを何年も「育てる」という経験をすると、保守性の低いコードがどう困るかが身に染みるようになるよね。ソースコードは「人が読む物」でもあり、読みやすいというのも保守するなら重要なパラメータになる。これはコメントを書けという意味じゃない。コメ

  • http://japan.internet.com/developer/20061128/27.html

  • Java7 で String クラスがリファクタリングされていました - 地平線に行く

    先日、ついに JavaSE 7 がリリースされました! そこで、早速ダウンロードして、Java7 のソースコード(src.zip)を Java6と比較してみたところ、公表はされていないのですが、ちょこちょことリファクタリングされていることがわかりました。 そこで、そのうち String クラスについて調べてみました。 splitメソッド - 独自処理による高速化 いままでは、String#split(〜) は正規表現 (Patternクラス) に処理を移譲するだけでした。 // (Java6) Stringクラス、2291行目〜 public String[] split(String regex, int limit) { return Pattern.compile(regex).split(this, limit); } それが、単純な区切り文字なら正規表現を使わないで独自に処理をす

    Java7 で String クラスがリファクタリングされていました - 地平線に行く
  • 「リファクタリング」の完全読破。その1 - 南極の図書館

    ファウラーの言わずと知れた名著だけど、私は15章構成のうちカタログ部分(第5章〜第12章)を今まで読んでいなかった。 理由としては、やはり古いこと、そんなに難しい内容では無いこと、リファクタリングの思想という意味では理解していたこと。 ホントに古いなので、もういいかなと思っていたんだけど、少し読み直したらやっぱり一度は全部書くべきだった。 リファクタリングの思想と同じくらい、カタログにある各種技術は重要だった。 それに「おすすめのは?」と聞かれたときに、とりあえずこれを挙げることは多くて、そのくせ完読してないのは質が悪いというのもある。 ということで、今回は「はじめに」と「第1章」 はじめに ここでは書の説明と、リファクタリングについての話が少し。 ・リファクタリングはリスクが高いのでやみくもに行ってはいけないこと。 ・手順を守り、体系的に行うこと。 ・具体的には「1度に1ステップず

    「リファクタリング」の完全読破。その1 - 南極の図書館
  • 「Vimテクニックバイブル〜作業効率をカイゼンする150の技」を執筆 — 名無しのvim使い

    Vimテクニックバイブルは既にVimエディタを利用している人向けに、さらなる作業効率の改善を行うための手法やプラグインなどの解説を150のTipsとして紹介するで384ページ2980円で、技術評論社より9月中旬発売予定です。 「Vimテクニックバイブル〜作業効率をカイゼンする150の技」の概要 Vimテクニックバイブルを執筆しました。 Vimテクニックバイブルは既にVimエディタを利用している人向けに、さらなる作業効率の改善を行うための手法や、 プラグインなどの解説を150のTipsとして紹介するです。 おおよそサイトを見に来て頂いている方ならば、ちょうど良いになっています。 想定読者 Vimエディタを利用しているけど、さらに色々知りたい方 Vimエディタの基礎の先を知りたい方 Emacsテクニックバイブルを読んで、VimEmacsテクニックバイブルが欲しくなった方 ちょっとだけ

  • Scratchというプログラム言語について - Takasの日記

    おひさしぶりです。 エントリーしたいネタはたくさん溜まっているんだけど、ブログばっかり更新されて溜まった仕事が更新されていかないのもやーねーという気がしていたんで書いてなかったけど、やっぱり書きたいことができたのでかいちゃうけど、もう夜も遅いので一つだけにする。 今月の日経ソフトウェアでScratchというプログラム言語が紹介されていた。記事を少し読んだだけで、僕が長年探していたモノだとわかったので早速ダウンロードして使ってみた。果たして、それはまさに僕が長年探していたモノだった。 システムエンジニアになり、子供が生まれた。当然、子供には自分の仕事を分かってほしいし、できる事ならコンピュータを動かすことの楽しさを教えてやりたい。長い間そう考えていた。 僕が初めてパソコンに触れたのは小学校4年生のこと。親父がよく分からないままに知り合いからNECPC-8001を譲り受けて来たのだ。PC-8

    Scratchというプログラム言語について - Takasの日記
  • .NET 開発者のための Jenkins 入門 - present

    はじめに 仕事で Subversion と Trac を使っていますが、残念ながら、活用できているとは言えません。継続的インテグレーション(以下CI)?何それおいしいの?って状態。そもそも CI やるために Trac とか諸々導入したはずなんですけどね…。 CI 導入しなきゃと思い続けて結構な期間が経過しました。その間、定期的にリリースビルドを行っていたんですが、コミット忘れや修正し忘れにより、何度もビルド環境がぶっ壊される…。その度に手作業で修正してたんですが、さすがに堪忍袋の緒が切れて CI 導入を開始しました。 やりたいこと ひとまず次ができれば OK。 Subversion を定期的に監視して、変更があったらビルドとテストを実行。 失敗したら管理者にメールを送信する。 ビルドぶっ壊した人にメール送る。 CI ツールは Jenkins、ソースコード管理システムは Subversion

    .NET 開発者のための Jenkins 入門 - present
  • ヒビルテ(2011-07-08)

    λ. 『抽象によるソフトウェア設計』がついに出版されます 先日、レビュワーを募集していた "Software Abstractions"の翻訳ですが、ついに来週『抽象によるソフトウェア設計』として出版されることになりました。 2009年のFLTVで告知してから二年も経ってしまいましたが、ついに出版されることになったかと思うと非常に感慨深いです。これは訳者の贔屓目ですが、それだけの時間に見合う素晴らしい仕上がりのになっていると思います。 抽象によるソフトウェア設計−Alloyではじめる形式手法−(Daniel Jackson/中島 震/今井 健男/酒井 政裕/遠藤 侑介/片岡 欣夫) このはAlloyという言語・ツールを用いた形式手法の教科書です。 Alloyというのは、モデル発見器と呼ばれているツールの一つで、条件を与えるとその条件を満たす具体例を探してくれます。モデルというのは、条

  • プログラミングのスキルを鍛える10の方法 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー ステキな英文の記事を見つけました。10 ways to improve your programming skills。どれも自分が実践していることでもあって,「なるほどな−」と思うものばかり。 たっぷりプログラミングしたあとは,節電も忘れずに:-)。 1. 新しいプログラミング言語を学ぶ 新しいプログラミング言語を学ぶことで,新しいプログラミングに対する考え方に触れることができる。そのプログラミング言語が今まで知らなかったパラダイムに根ざしている場合ならなおさら。新しい手法の多くは,すでに知っている知識になぞらえることができるので,習得はそれほど難しくないはず。 2. やる気をそそら

  • 汎用のフレームワークがあれば業務アプリ実装にオブジェクト指向は不要という考え方は適切でないと思う - 達人プログラマーを目指して

    前回のエントリいまさらですが、職業Javaプログラマーなら理解しておいてほしい「継承」の意味についてのブクマのコメントで、 すごく今さら感がw 最近の開発はフレームワーク使うことが多いようだから知らなくても作れちゃうと思ってたけど違うのかなあ。 という感想をいただきました。実際に、SI業界で多くの方々、特に、アプリケーション開発の下流工程を担当しない層の方でこのように考えている方はほんとうに多いのではないかと思います。確かに最近ではSalesforceなどの製品もありますし、CRUD処理を行うような見栄えの良い業務アプリケーションは非常に簡単に開発できるようになっているということはあります。また、Visual BasicやMS Accessなど気軽にアプリケーションを開発できるツール類は昔からありました。そして、業界構造などの理由からやむを得ない側面があるとはいえ、SIerの提供する多くの

    汎用のフレームワークがあれば業務アプリ実装にオブジェクト指向は不要という考え方は適切でないと思う - 達人プログラマーを目指して
  • いまさら聞けないHadoopとテキストマイニング入門

    ビッグデータ時代の救世主「Hadoop」とは 「Apache Hadoop」は今、最も注目を集めている技術の1つです。Hadoopとは、大量のデータを手軽に複数のマシンに分散して処理できるオープンソースのプラットフォームです。 Hadoopを活用している企業は年々増え続けていて、不可欠な技術になりつつあるといえるでしょう。 連載では、Hadoopとは何か、Hadoopがどう活用できるのかということを、「テキストマイニング」に焦点を当てて解説していきたいと思います。 重い処理を複数のマシンに分散させる 複数のマシンに処理を分散させるには、プロセス同士の通信、監視、障害時の対応などを考えなければならず、プログラマにとってハードルが高いものです。しかし、Hadoopはそういった面倒くさい処理を一手に引き受けてくれ、プログラマは、やりたい処理だけに集中できます。 例えば、Hadoopを使うと、1

    いまさら聞けないHadoopとテキストマイニング入門
  • ついにExcel VBAとおさらばする時がきたかもしれん - かずきのBlog@hatena

    .NET系の言語をExcelで実行できるExcel-DNAをテライケメンのid:bleis-tiftの呟きから教えてもらえました。 Samplesも結構充実してるのでいいかんじ。ファイルをExcelにドロップするだけでいいので、お手軽に使えますね!! 個人的にイケてると思ったのは以下の点。 Excelのリボンにメニューを追加できる Excelの任意のセルの値の取得、設定が出来る VB, C#, F#が使える もうよだれものです。

    ついにExcel VBAとおさらばする時がきたかもしれん - かずきのBlog@hatena
  • ORMがアンチパターンである11の理由

    サンフランシスコのプログラマLaurie Voss氏が書いた見逃せない記事が賑わっています。近年のフレームワークやライブラリの定番中の定番ORマッパーが既にアンチパターンなのではというのが彼の主張です。この記事を書くきっかけになったのはこのツイートだそうです。 I cannot overstate the degree to which ORM is a dangerous antipattern. — Laurie Voss (@seldo) June 9, 2011 ORM が危険なアンチパターンだっていうのはどれだけ言っても言い過ぎることはない このツイートに対して各方面(ActiveRecord, Doctrine, Hibernate)から多くの(激しい)返信が寄せられて書かれたのが問題のエントリです。まずはアンチパターンとは何かの定義として下記の2つを挙げています。 当初は有益

    ORMがアンチパターンである11の理由
  • web api viewer

    当サイトは、web apiを活用したサービス開発を応援するサイトです。 ※ 2014/03/21 現在、当サイトを更新する余裕がなく掲載情報が古くなっております。各ページの右上に最終更新日がありますのでご注意ください。 まだ色々準備中でアルファ版です。 使用することはできますので色々お試しください。 Google Chrome推奨です。 web api viewerの特徴 各Apiの仕様を統一したフォーマットでまとめています。 各Apiごとのドキュメントの様式の違いに翻弄されなくて済みます。 公式ドキュメントを読んでも、そもそも言葉の意味が分からない時に、戻り値を見て意味を推測できます。 apiの結果を見やすく表示します。 web api開発の敷居を下げられたらいいなと思ってます。 作っている人 twitterアカウントは、@aulta です。 誤字脱字、仕様変更、リンク切れ、バグなどがあ

  • 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)

    TwitterのTLで知ったのだが、少し前に海外掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。 Genius sorting algorithm: Sleep sort 1 Name: Anonymous : 2011-01-20 12:22 諸君!オレは天才かもしれない。このソートアルゴリズムをみてくれ。こいつをどう思う? #!/bin/bash function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait example usage: ./sleepsort.bash 5 3 6 3 6 3 1 4 7 2 Name: Anonymous : 2011-01-20 12:27 >>1 なん…だと

    常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)
  • 【翻訳】Gitをボトムアップから理解する

    John Wiegleyさんの "Git from the bottom up" を翻訳しました。 元PDFはこちらからダウンロードできます: http://newartisans.com/2008/04/git-from-the-bottom-up/ 元記事のライセンスがクリエイティブコモンズのBY-SAであったため、この翻訳もBY-SAとなります。 ライセンスを守って自由にご利用ください。(詳しくは記事内の最初にも書いてあります) 翻訳ミスの指摘や改善の提案等があればブログコメントやTwitter(@oshow)などで遠慮なくどうぞ。 Git をボトムアップから理解する Wed, 2 Dec 2009 by John Wiegley 私が Git を理解しようと調査した時、高級なコマンドの視点から眺めるよりボトムアップ式に理解することが役立った。そしてボトムアップ視点で見る Git

    【翻訳】Gitをボトムアップから理解する
  • プログラミングに必要な6つの才能 - 久保清隆のブログ

    ロシアの研究者 A.P.Ershovは、プログラミングに必要な才能として、6つを挙げた。 これは、確かにそうだなと思った。才能は磨いていけるものと信じて、これらの才能を磨いていけるように、メモをしておく。 プログラミングに必要な6つの才能 第一級の数学者の論理性 エジソンのような工学の才能 銀行員の正確さ 推理作家の発想力 ビジネスマンの実務性 協同作業をいとわず、経営的な関心も理解する性向 第一級の数学者の論理性 出現するケースをもれなく拾いあげる能力 実行の条件を正確に決める能力 この能力を高めるための書籍 プログラマのための論理パズル 難題を突破する論理思考トレーニング 作者: Dennis E. Shasha,吉平健治出版社/メーカー: オーム社発売日: 2009/03/26メディア: 単行購入: 21人 クリック: 412回この商品を含むブログ (63件) を見る論理トレーニン

    プログラミングに必要な6つの才能 - 久保清隆のブログ
  • コーディングテクニック

    スタック上に置かれるオート変数は、初期化しないとどんな値が入っているのか知れたものではありません。 コードとしては多少冗長になるかもしれませんが、オート変数を定義した時点で有意な値に初期化する癖をつけておくと、初期化忘れによるバグの数がほぼ皆無になります。 もちろんものごとには例外がありますが、特に初心者の場合、変数を定義したら初期化する、という原則を知っておくべきです。 さもなければ、いつか高い勉強代を払う羽目になるでしょう。 もちろん、C++ならすべてのメンバをきっちりコンストラクタで初期化するのは言うまでもありません。 オーバーヘッドといっても、これだけCPUやメモリが高速化している昨今、 ほんの数サイクルのCPU節約よりも、バグフリーなコードを書くほうがよほど大事です。 また、条件がそろえばコンパイラのオプティマイズで冗長なコードが消えることもあります。 不要な初期化を行わずにすむ