No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

コードを自動生成するか否か

メッセージIDのenumなどを作る際に、定義書から自動生成する場合がある。こういったボイラープレートは自動生成で逃げるのが良いかもしれないのだが、その自動生成ツールなり、スクリプトなりが後からきちんと運用されなくなったりする場合を考えると、なか…

引き継ぎ者不在のシステム

私が前に携わっていたシステムで、専任して保守してい方が、会社を退職されるらしい。体力のある会社であれが後任をすぐに立てられるんだろうけど、そこそこの規模の会社さんだとそうも行かないらしい。 私にも、元開発者だったということで、またお仕事の話…

No Project Small Library Principle

ある日、業務コードを眺めてていたら、ふとXMLをダウンロードさせるWEBプログラムのソースに出くわした。 それだけだったら何も目新しいことはないだろう、十分に使い古されたフォーマットであるし、何も目にとまることなど無いはずであった。しかし、何かが…

技術は繋がっている

どうも、ふもです。最近は新しいプロジェクトのアプリケーションアーキテクトなどという大層な役割を与えてもらい、日々奮闘している毎日です。長らく新しめな技術から遠ざかっていたため、Java8やらSpring4などの環境がやっと使えるようになりました。 日々…

コードはそのプロジェクトメンバー達のスキル上限までにしかならない

コードの完結さやスマートさは、結局はプロジェクトメンバーに左右されるという意味。 より洗練されたコードを目指すのであれば、プロジェクトに携わるメンバーへの教育や布教活動が欠かせない。 コードのスマートさは、将来に渡って長い間コードを維持し続…

SQLのANY, SOME, ALL, USINGについて

どうも、ふもです。 なんだか今年の夏は雨ばっかりですね。さて、今日はSQLについてです。 現在携わっているお仕事ではOracleデータベースを使っているのですが、とある事情でSQLのリファレンスを眺めていたら、ほとんど使わないキーワードに出会いました。 …

WIkipediaに寄付してみました

どうも、お久しぶりです。 暑くなってきましたがみなさんどうお過ごしてしょうか。最近Wikipediaさんにアクセスすると 寄付して欲しそうな切実な広告がでるようになっていた。 やっぱりWebサービスの運営にはお金がかかるんですねぇ、同じIT業界に関わらせて…

プログラミングレベルメモ(Java編)

レベル1 基礎文法を理解している レベル2 オブジェクト指向を使わずにプログラムを組める レベル3 標準Javaライブラリを使ってプログラムを組める レベル4 自分でクラスを作れる レベル5 デザインパターンを理解できる レベル6 フレームワークのラッパーを作…

OS Xを10.9(Mavericks)にしてから久々にHomebrewを起動したらエラーが出て起動しなかった話

OS Xを10.9(Mavericks)にしてから久しくHomebrewを使っていなかったのだが、久々に使おうと思い起動したところ、以下のようなエラーがでて起動できず…ぐぬぬ。 $ brew version /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/r…

GriffonのSwingPadがうまく起動できない

とあるお仕事でGriffonを使うことになり、最近Griffonな毎日を送っています。 そんな中、SwingPadを使おうと思って実行しようみたところ、うまく起動できなかったので メモがてら投稿しておく。 /Applications/Griffon-1.5.0/samples/SwingPad $ griffon -Dg…

GitHub Pagesを作成してみた

前からやりたいなと思っていたGitHub Pagesを作成しました。http://fumokmm.github.io/ こちらの記事を参考にさせていただきながら作成しました。 (余談ですが、この記事のころはドメインが "http://username.github.com/" だったようですが、2014-05-03現…

中括弧省略問題

例えばif文で、 「処理する行が1行のみであった際は、中括弧を省略できる」 if (条件) 処理; と、みなさんは最初習ったのではないだろうか。 しかしどうだろう、次のようにも考えられないだろうか。 「条件式のあとは式が一つのみ指定できます。 もし複数指…

システム維持・保守は歯科医の業務に似ているという話

最近、歯の治療のため、歯科医に通っていた、ふもです。 治療中にふと思ったので書き留めておこうと思います。 お客さん=ユーザーさん歯=運用中のシステム歯茎の腫れ=エラーや警告悪い歯並び=スパゲッティコード歯の矯正=リファクタリング虫歯=バグ親…

MacのGoogle日本語入力でバックスラッシュ(\)を入力する方法

「環境設定 -> 一般 -> ¥キーで入力する文字」 で指定可能でした。真ん中あたりの「¥キーで入力する文字」をクリックして 「バックスラッシュ(\)」に変更 これで、\がさくさく入力できるようになります。 類似記事 (2013-05-30追記) Mac の Google 日本語…

GroovyでMarkdownパーサーを作ろう #4「Headers(見出し)の実装」その2

このシリーズの一覧へ Groovy! (挨拶)どうも、ふも(@fumokmm)です。 はじめに さてそれでは、前回の続きで、Headers(見出し)の具体的な実装に入って行きたいと思います。 一行ずつ処理する 前回までは、ファイルから読み取った内容を一気にHTMLのBODYタグに…

GroovyでMarkdownパーサーを作ろう #3「Headers(見出し)の実装」その1

このシリーズの一覧へ Groovy! (挨拶)どうも、ふも(@fumokmm)です。 はじめに さて、今回から具体的な変換処理の実装に入っていくわけですが、いざ実際にコードを書いていこうとすると色々と下準備が必要になってきそうです。ゆっくりやっていきたいと思いま…

GroovyでMarkdownパーサーを作ろう #2「HTML出力部分の作成」

このシリーズの一覧へ Groovy! (挨拶)どうも、ふも(@fumokmm)です。 はじめに さて、それでは早速コードを書いて行きたいと思います。といってもまだ、Markdownの変換ロジックには入りません。 今回は設定ファイルを読み込んで、その内容をプレーンなHTMLに…

GroovyでMarkdownパーサーを作ろう #1「名前決め」

このシリーズの一覧へ Groovy! (挨拶)どうも、ふも(@fumokmm)です。 はじめに 最近がっつりとブログを書いている時間がないので、先にやりたいことを決めて、ちょっとずつその軌跡を記録していく感じで記事にしていこうと思います。だいたい一つの記事が3分…

GroovyでMarkdownパーサーを作ろう

GroovyでMarkdownパーサーを作ってみよう。 GroovyでMarkdownパーサーを作ろう #1「名前決め」 - No Programming, No Life GroovyでMarkdownパーサーを作ろう #2「HTML出力部分の作成」 - No Programming, No Life GroovyでMarkdownパーサーを作ろう #3「Hea…

Re:3年間の進歩(10分でコーディング)

Groovy! (挨拶) はじめに id:uehajさんが、3年間の進歩 - uehaj's blog で楽しそうなお題を解いていたので私もやってみました。こういう三年越しの計画とかっていいですね。昔自分で解いたお題を今の知識で再トライするとか素敵です。 お題 あなたはこれから…

JLineの最小サンプル in Groovy

はじめに Groovy! (挨拶)突然ですが、 航海日誌: 2012-01-09: [Scala][Java] JLineの最小サンプル をGroovyでも書いてみました。 JLineは、コンソールアプリケーションにおいてユーザの入力の編集と読み込みを行うJavaライブラリです。 タブ補間、コマンド履…

メタプログラミングGroovy入門

Groovy!(挨拶)最近Groovyであまり遊べていないfumokmmです。G* AdventCalender2012の10日目ということで、久々に記事を書かせていただいております。 せっかくの機会なので、Groovyでメタプログラミングする際のとっかかり部分をまとめてみました。自分の…

Project Euler Problem 3 を解いてみた

問題 The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? Problem 3 - Project Euler 13195 の素因数は 5、7、13、29 である。 600851475143 の素因数のうち最大のものを求めよ。 Problem 3 -…

お題:package-info.javaの一括生成

プログラミングお題の一覧はこちら ※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。 説明 (このお題の元ネタはこちら) JavaDocのパッケージ内容を記述するpackage-info.javaを生成するプログラ…

GroovyでJavaのpackage-info.javaを一括生成するスクリプト(二番煎じ)

元ネタ RubyでJavaのpackage-info.javaを一括生成するスクリプト - tbpgの技術メモ GroovyでJavaのpackage-info.javaを一括生成するスクリプト - 日々常々 はじめに id:tbpgさんのRuby記事を見て、Groovyで解こうかなと思っていたら、id:irofさんに先を越さ…

Project Euler Problem 4 を解いてみた

問題 A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 99.Find the largest palindrome made from the product of two 3-digit numbers. Problem 4 - Project Euler 3桁…

Project Euler Problem 22 を解いてみた

問題 Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this v…

Groovyによるうるう年チェック

はじめに Javaによるうるう年チェック - お仕事の備忘録みたいなもの で画期的なうるう年判定を行っていた。 それは、 java.util.Calendar#getActualMaximum(Calendar.DAY_OF_YEAR) を使うというもの。 Calendar#getActualMaximum Calendar#DAY_OF_YEAR この…

お題:階層のナンバリング

プログラミングお題の一覧はこちら※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。 説明 以下例のように、カンマと1で階層を表現するデータ入力がある。 階層ごとに出現順にインクリメントしナ…

Groovyで既存クラスのasTypeをOverrideする

はじめに Groovyでは as演算子 を利用するためには #asType(Class) メソッドを実装すればよい。既存クラスには既に #asTypeメソッド が実装されているため、通常あまりいじることはない(と思われる)のだが、とある事情でいじる必要が出てきた。その際、ちと…