kurukuru-papaのブログ

主に、ソフトウェア開発に関連したメモを書き溜めたいと思います。

「レガシーコード改善ガイド」読書メモ(その2)

「レガシーコード改善ガイド」という書籍を読み、自分の解釈した内容をメモしています。前回は、コードを改善する考え方をまとめました。 今回は、実際のテストコードについて書きます。書籍では、テストコードの書き方について、第2部、第3部で書かれていま…

「レガシーコード改善ガイド」読書メモ(その1)

「レガシーコード改善ガイド」という書籍を読みました。考え方から具体的な手法まで説明されていて良い本でした。特に気になった部分について、自分の解釈した内容をメモしておきたいと思います。 書籍概要 レガシーコード改善ガイド (Object Oriented SELEC…

既存WebアプリケーションもJenkinsで自動デプロイしたい!(ビルド・デプロイ完結編)

先日の投稿の続きです。先日は次の投稿をしました。 既存WebアプリケーションもJenkinsで自動デプロイしたい!(概要編) Jenkinsで自動デプロイしてみたいシステムと、その問題点、自分なりの解決案の概要を書きました。 既存WebアプリケーションもJenkins…

既存WebアプリケーションもJenkinsで自動デプロイしたい!(ビルド・デプロイ基礎編)

前回投稿の続きです。前回は、Jenkinsで自動デプロイしてみたいシステムと、その問題点、自分なりの解決案の概要を書きました。 今回は、解決案のうち、ビルド・デプロイに関する基礎的な部分を、具体的に記述してみたいと思います。

既存WebアプリケーションもJenkinsで自動デプロイしたい!(概要編)

IT現場における「新3種の神器」とも呼ばれるようになった「Jenkins」を、私も使いこなしてみたいと思っていました。私の身近なところで、Jenkinsを使って効率化したいと思うシステムは、少々古くなったWebアプリケーションで、手動での独自運用手順が確立さ…

二つのディレクトリの差分を別ディレクトリにコピーするスクリプトを作ってみました

ネットで調べ物をしていると、次のページを見つけました。Rubyの配列を上手く使っていて、非常に勉強になる内容でした。 Ruby標準パッケージでディレクトリ比較を作ってrsyncモドキをする - それマグで! http://takuya-1st.hatenablog.jp/entry/20100921/12…

PowerShellからODBC接続してSQL実行してみました

Windows環境で、SQLクライアントソフトを使って、定型的なSQL文を実行することがあり、手間に感じていました。Windows環境で、コマンドラインから、手軽にSQL実行することができることを知りましたので、試してみました。 ポイントは、PowerShellから、.NET …

ODBCのデータソースをコマンドラインから作成してみました

複数のWindows端末で、同じODBC設定を、GUIから行うのを、少々手間に感じていましたが、コマンドラインから実行する方法を知りましたので、試してみました。

H2データベースにODBC接続してみました

ちょっと、Windows環境でODBC接続してSQLを実行したくなりました。 手元にあるPCを確認すると、データベースがインストールされていませんでしたので、手軽にインストールできて、ODBC接続ができるH2データベースを使用して、ODBC接続するまでに行った手順を…

アプリポケット Ver.0.5.0公開

少し時間が経ってしまった話ですが、2012/10/28に、Android用ランチャーアプリ「アプリポケット」のVersion 0.5.0を公開しました。今回の大きな変更点は、広告表示を廃止したことです。メイン画面以外で広告表示をしていて、個人的には何も疑問にも思わずに…

Mac&TomcatでJenkins環境構築

Mac上にJenkinsの環境を作ることにしました。次のことから、一旦、Tomcat環境を構築し、そのTomcatにJenkinsを追加する方法で、環境構築することにしました。簡単に環境構築してしまおうと思えば、JenkinsとTomcatが一式になったpkgインストーラーがあるよう…

Denchin 0.2.7 公開

本日、バージョン0.2.7を公開しました。要望と不具合の対応です。今回取り入れた要望は、Google Playのプロフィールで公開していたメールアドレスに、ご意見を頂いた内容です。メールで会話して、ユーザーの方が、Denchinをどのように使っているかお聞きする…

HTML5のWeb Storageを使ってみました

HTML5のWeb Storage機能を使ってみました。Web Storageには、sessionStorage, localStorageの2種類が用意されていて、sessionStorageはセッション単位でデータを保持し(ウインドウやタブを開いている間だけデータ保持。閉じたらデータが消える)、localStor…

HTML5のFile API:Writerで、動的データのダウンロードを実装してみた。

前回の記事では、HTML5のBlobを使用して、動的データのダウンロードを行いました。非常に簡単に実装できたのですが、ひとつ残念だったのは、ファイル名を指摘できないことでした。今回、HTML5のFile API:Writerを使って、ファイル名を指定して、動的データの…

Denchin 0.2.6 公開

本日、バージョン0.2.6を公開しました。約半年ぶりのバージョンアップですね。そんな久しぶりのバージョンアップですが、何も華々しいことはありません。今回の変更は、Google Playでコメント頂いていた、いくつかの不具合の修正です。 変更内容 1.メイン…

HTML5のBlobで、動的データのダウンロードを、わずか3行で実装できた。

JavaScriptなどにより、クライアント側で動的なデータを作成し、それをローカル環境に保存したいと思い、サンプルプログラムを作成してみました。実装技術として、HTML5のFile API機能におけるBlobを使いました。わずか3行で実装できてしまうのですね。便利…

初めてのjQueryプラグインを作成してみました

最近、jQueryやBootstrapなどに触れています。把握しきれないくらいたくさんのライブラリやプラグインが作成されていて、圧倒されていたりします。それで、興味が湧いてきて、jQueryプラグインの作成方法について、少し調べて見ました。jQuery公式サイトに載…

文字列表記を変換するツールを作ってみました

前回に引き続き、JavaScript/jQueryを使って、ブラウザ上で動作する簡単なツールを作成してみました。 作成したもの 今回は、入力された文字列を、キャメルケースやスネークケースに変換するツールです。次のURLで公開しました。デベロッパーのための文字列…

Windowsバッチファイルのひな形を生成するジェネレーターを作ってみた

よく、CSSジェネレーターとか、HTMLジェネレーターとか、ボタンジェネレーターとか、アイコンジェネレーターのページを見かけることがあります。特に、アイコンジェネレーターは、急にアイコンが欲しくなった事があり、大変重宝した覚えがあります。インスト…

Visual C# 2010 Express からNUnitを起動する方法

Visual C# 2010 Expressにて、NUnit 2.6.1を、外部ツールとして起動する方法をメモします。NUnitは既にインストール済みで、「C:\Program Files (x86)\NUnit 2.6.1」にインストールされている前提とします。1.[ツール]→[設定]→[上級者設定]を選択します(…

Windowsバージョンの取得方法(Windows8対応済み)

私のPC環境に、Windows 8 Release Preview 日本語版をインストールしてみました。これに伴い、以前作成したC#.NETによるWindowsバージョン取得プログラムを更新、動作確認してみました。 Windows8バージョン判定概要 Windows8のバージョン判定の方法は、Micr…

日時を文字列で取得する

バッチファイルを書いていて、ファイル名などにタイムスタンプを入れたくなる事があります。そんなときのために、日付(YYYYMMDD)、時刻(HHMMSS)、タイムスタンプ(YYYYMMDD-HHMMSS)の取得方法をメモしておきます。 set datestr=%DATE:/=% set timestrtm…

はてなブログを開設

とりあえず、はてなブログのページを作ってみました。 なんだか、シンプルできれいなページが出来て、楽しくなってきました! 2012-08-05 11.19.01.jpg

アプリポケット Ver.0.4.2/0.4.3公開

Android用ランチャーアプリ「アプリポケット」のVersion 0.4.2/0.4.3を公開しました。0.4.2は、バージョンアップユーザに対して不具合が発生しました。ご迷惑をお掛けし申し訳ありません。すぐに0.4.3を公開し現在では修正されています。変更内容は下記です…

Jenkinsを使ってみました

Jenkinsを軽く使ってみました。隅々までユーザのことを考えてくれているようで、非常に使いやすく、感動を覚えました。素晴らしいです。さらに詳しくJenkinsのことを知ろうとして、書籍「Jenkins実践入門」を購入し読みました。今後、自分自身がJenkinsを活…

アプリポケット Ver.0.4.1公開

Android用ランチャーアプリ「アプリポケット」のVersion 0.4.1を公開しました。変更内容は下記です。 概要 次の機能を改善しました。Google Play ストアのコメント欄で頂いていたご要望になります。 メイン画面のアイコンタイトルについて、文字サイズを選択…

ステップカウンタ

時々、作成したプログラムのステップ数を計測する必要が発生します。単純に各種ステップ数を数えるだけなら、色々なソフトウェアが存在するのですが、改修前と後の差分のステップ数を計測し、無料のソフトウェアというと、選択肢が限られていました。最近、…

今さらですが、書籍「世界一やさしい問題解決の授業」が本当に分かりやすかったのでメモします

数年前になるかと思いますが「世界一やさしい問題解決の授業」という書籍が発売され、いつか読んでみようかな、と思っていて忘れていました。そして、数カ月前、本屋さんで見つけ、読んでみました。確かに分かりやすかったので、話のポイントをメモしておき…

アプリポケット Ver.0.4.0公開

Android用ランチャーアプリ「アプリポケット」のVersion 0.4.0を公開しました。変更内容は下記です。 概要 次の機能を追加しました。 各画面の配色を選択できるようにしました。 メイン画面を半透明に表示できるようにしました。 メイン画面の見た目をダイア…

Microsoft Translator API(HTTP版)を使ってみました

C#.NETで、日本語文字列を英語に翻訳してみたくなったので、少し調べてみました。そして、Microsoftが公開している翻訳API(無償プランあり)を用いて、C#.NETによる翻訳サンプルアプリケーションを作成してみたので、メモしておきます。 はじめに 翻訳APIを…

ユーザ操作に応じて全画面表示/通常表示を切り替える方法

前の記事に引き続き、Androidアプリで全画面表示する方法を書きます。今回は、ユーザの操作に従って、全画面表示と通常表示を切り替えてみました。 画面イメージ 作成した画面のキャプチャを以下に貼付けました。画面では、ラジオボタンを用意して、ユーザが…

アクティビティを全画面表示する方法

Androidアプリで画面表示周りを作っていました。アクティビティを全画面表示すること自体は簡単に出来たのですが、全画面表示する際、一瞬だけタイトルバーが表示されていました。タイトルバーをまったく表示しないで、全画面表示する方法をメモしておきます…

アプリポケット Ver.0.3.3公開

Android用ランチャーアプリ「アプリポケット」のVersion 0.3.3を公開しました。変更内容は下記です。 概要 次の機能改善を行いました。主に、Google Playのコメント欄に頂いていました要望です。 アプリ操作ダイアログにGoogle Playページ表示メニューを追加…

アプリポケット Ver.0.3.2公開

Android用ランチャーアプリ「アプリポケット」のVersion 0.3.2を公開しました。変更内容は、タグ操作の機能改善と、不具合対応です。 概要 主なアップデート内容です。 トップ画面に表示するタグの並び順を変更できるようにしました。トップ画面でメニューボ…

ListViewの項目をドラッグして並び替え可能にしてみた

先日の記事(こんなに簡単だとは思わなかった!Viewのドラッグ方法)で、Viewをドラッグ・アンド・ドロップしてみました。今回は、発展させて、ListViewの項目をドラッグ・アンド・ドロップして並び替えられるようにしてみました。少し長いですが、作成した…

アプリポケット 0.3.0/0.3.1 公開

Android用ランチャーアプリ「アプリポケット」のVersion 0.3.0/0.3.1を公開しました。以前から要望のあったアプリの非表示機能を追加しました。 概要 主なアップデート内容です。 アプリの除外(非表示)機能を追加しました。 トップ画面でタグを展開した時…

フォームを動的に操作してみた

Androidで、PhoneGapとjQuery Mobileを勉強しています。jQuery Mobileのフォームを動的に生成し、フォーム入力内容を取得する処理を作成しましたので、メモしておきます。 概要 次のように、ユーザ入力の画面と、ユーザ入力値を表示する画面を用意しました。…

listviewを動的に操作してみた

Androidで、PhoneGapとjQuery Mobileを勉強しています。jQuery Mobileのリストビューを動的に生成し、リストビューの選択項目を取得する処理を作成しましたので、メモしておきます。 概要 次のように、リストビューの画面と、リストビューで選択された項目を…

こんなに簡単だとは思わなかった!Viewのドラッグ方法

Viewをドラッグ・アンド・ドロップするというと、どのように実装するのか直ぐには思い浮かばなかったので、調べたところ、Viewをドラッグするだけなら、非常に簡単に実装できることがわかりました。私が作成した実験プログラムを紹介してみます。 画面イメー…

逆コンパイルソフト「ILSpy」

以前、C#.NET用のデコンパイルソフト「Reflector for .NET」を大変便利に使わせて頂いていました。が、Reflectorは、2011/3/10から有償になったようで、そのうち無償の別のデコンパイルソフトを探そうと思っていました。先日機会があり別ソフトを見つけるこ…

Denchin 0.2.4 公開

前回アップデートからかなり時間が空いてしまいましたが、2012/4/12にバージョン0.2.4を公開しました。今回のアップデートでは、バッテリー消費量が軽減されるはずです。見た目は全く変えていないです。ぜひご利用ください。 リンク Denchin 0.1.4 公開 Denc…

SQLiteのトランザクション管理はパフォーマンスに影響するでしょうか?

Androidアプリ開発において、DBのトランザクション管理が、パフォーマンスの観点で、どの程度影響するのか気になりました。トランザクション管理を適切に行うと、パフォーマンスが向上すると思うのですが、それは使用者が体感できるほどでしょうか?今回動作…

アプリポケット 0.2.5 公開

Android用のランチャーアプリを作成しています。本日、Version 0.2.5を公開しました。いくつかの不具合対応になります。不具合対応 特定端末にて電話帳アプリが起動できないなど一部の端末が起動できない、表示されない問題を修正。 複数アプリにタグ付を行…

Aptinaを利用するとAPTのテストが簡単に書けたよ

最近、APT(Annotation Processing Tool)を勉強しています。そのなかで、テストケースはどう書けば良いのか考えていました。特に、Annotation Processorのprocessメソッドの引数として必要な、Set型のオブジェクトと、RoundEnvironment型のオブジェクトの2…

AndroidのO/Rマッパーを題材にAPTを使ってみましたよ

Java6から、APT(Annotation Processing Tool)と呼ばれる便利な機能があることを知りました。とりあえず使ってみようと思い、AndroidのSQLiteでDBアクセスするための、O/Rマッパーのような処理を題材に、APTで実現してみました。 APTで自動生成するクラス A…

Macのメタ情報(EA)を除去するAppleScriptを作ってみました

Mac

Mac OS XのTigerからEA(Extended Attributes)というメタデータ機能が追加されたようですが、このEAと相性が悪いアプリケーションがあったりするような感じがしています。そこで、ファイルのドラッグ&ドロップで、EAを除去するスクリプトを作成しましたの…

AppleScriptでSafari上のフォーム入力を自動化してみた

Mac

MacのSafariで、多数のデータ入力を行う機会がありました。一つの画面で、繰り返し同じような入力を何度も行う作業です。自動化向きの作業だと感じましたので、いくらか試行錯誤し、AppleScriptで半自動化することにしました。「半自動化」です。「完全自動…

実践したい!エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子出版社/メーカー: 翔泳社発売日: 2011/04/09メディア: 大型本購入: 19人 クリック: 1,360回この商品を含むブロ…

擬似的にシステム日時をゆっくり進めるソフトウェアを作成してみたよ

Windowsの管理しているシステム日時を、一時的に、実際の時刻よりもゆっくりと進ませるような簡単なソフトウェアを作ってみました。実際には「ゆっくり」ではなく、一定タイミングごとに少しだけ時間を戻すことで実現しています。そのため、ある瞬間にはシス…

指定セル範囲の文字列を連結する関数

Excelで、セル範囲の文字列を連結する関数を書いてみました。連結時の区切り文字を指定することが可能です。文字列連結は、Excel標準のCONCATENATE関数でも出来ますが、この場合、連結する対象のセルを1つずつ指定する必要があり、区切り文字を指定すること…