https://github.com/gfx/gradle-android-utils (see .travis.yml, build.gradle, test/test.gradle) Android Studioで開発していてGradleを書いていると共通ルーチンをライブラリ化したくなるわけですが、そうなると当然テストしたりCIしたりしたいですよね。そこでちょっとやってみました。build.gradleに目的のコードをかき、 test/test.gradle にテストを書くのでいけます。 テストは gradlew で DEFAULT_JVM_OPTS="-ea" したうえで、 ./gradlew -b test/test.gradle check で実行します。原始的ですが、 taskのなかに assert をならべるとそれなりのテストになります。テスト自体は Groovy の pow
週末は Gradle と Android アプリのビルドツールと戯れていたので、得られた知見などを書き残しておく。 更新記録 2014-01-07: Android Gradle プラグイン 0.7.1 (Android Studio 0.4 対応版) に合わせて内容を更新しました。 Gradle について Gradle 公式サイト: Gradle - Build Automation Evolved Java 周辺のプロジェクト管理ツール (ビルドシステム?) といえば Ant や Maven があるけど、最近 (?) 注目を集めているのが Gradle。 XML で記述される Ant や Maven とは違い、Gradle のビルドファイルは Groovy による DSL で記述される。 Ruby におけるビルドツールである Rake と似たような雰囲気。 記述の容易さはもちろんのこと
import groovy.transform.TypeChecked import groovy.transform.CompileStatic /** * コンパイル時点でエラーが出れば、態々実行してテストする必要がなくなるのは自明。 * 例えば下記のreturnCheck()メソッドの場合、ifの両方の条件を通るテストをしないと、 * 意図していない型の値が返されるというバグが分からない。 * (returnCheck()場合はIntegerを返す筈なのにStringが帰えされるバグがある) * * @TypeCheckedはコンパイル時に型をチェックするので、それが出来ない動的な機能は基本的に使えない。 * なお、コンパイル時点でチェックするのみで、生成されるバイトコードは@TypeCheckedが無いものと同じ。 * @CompileStaticを使うと、動的な機能が含まれないバ
上記の例の場合、変更した箇所が近いため同じhunk(変更の塊)として表示されています。ですので、hunkをさらに分割する必要があります。そのためにはsを選択します。そうすると次のような表示になります。 Split into 2 hunks. @@ -1,5 +1,5 @@ <ul> <li><a href="/">Home</a></li> - <li><a href="/about.html">About</a> + <li><a href="/about.html">About</a></li> <li><a href="/help.html">Help</a></li> </ul> Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? 変更が分割されて閉じタグ忘れだけの変更が表示されています。ここでyを押してこの変更をステージングします。すると次は以下の表
参考URL http://yamkazu.hatenablog.com/entry/2012/10/20/233031 http://www.jworks.nl/2013/09/11/upgrading-grails-2-2-4-to-2-3-0/ 下準備(1回だけ) IntelliJから、Grailsのデバッグが出来るように初回のみ設定をする。 まずは画面上部のメニューからEdit Configurations...を選択 左上の緑色の+ボタンをクリックして、remoteを選択 すると必要な設定画面が表示される。Nameだけ好きな物に変更して、後はデフォルトのままで基本的にOK Grailsをデバッグモードで待機状態にする。 --debug-forkオプションをつけてGrailsを待機状態にする。
SaaSのCIと言えばTravis CIやCircle CIといったサービスが有名ですが、いずれにしてもプライベートリポジトリを使う場合は有料なのです。しょうがないよね、商売だもんね。でもCI入れたいなぁ。 そんな中、GithubだろうがBitbucketだろうがプライベートリポジトリでも無料で使っていいよ!というβ期間中のCI、Werckerが僕の周辺で話題になっていたので、触ってみました。画面もスゲー使いやすい上に、ハマりどころもなく、これはひょっとしてひょっとするんじゃないの?という期待を込めて、rails newからRailsアプリをHerokuにデプロイするまえのチュートリアルを作ってみました。みなさんもこの記事を参考に、ぜひ使ってみてください。 この記事のゴール Githubにpushしたら自動的にWercker上でRSpecのテストが動くこと Werckerでのテストに成功し
CentOSがRed Hatとの共同開発体制を発表。引き続きRed Hatからは独立しつつ、開発支援などを受け入れ Red Hat Enterprise Linux互換のフリーなLinuxディストリビューションとして、多くのホスティングサービスやクラウドなどで広く利用されているCentOSが、Red Hatとの共同開発体制を発表しました。CentOSの発表から引用します。 With great excitement I'd like to announce that we are joining the Red Hat family. The CentOS Project ( http://www.centos.org ) is joining forces with Red Hat. Working as part of the Open Source and Standards tea
GitHubにリポジトリを置いてる人はみんなプルリクエストを待っています。けどプルリクエスト用にフォークした自分のリポジトリを保守する方法が途中でわからなくなって...という人が案外多いんじゃないかなと思ったり。なので、ちょっとメモ置いときます。って、人のためみたいな言い方ですが、まあ自分用のメモです。 まずこうしたほうがいいという原則。masterブランチはフォーク元から変更せず、かならず自分用のブランチを作る。これは、masterを作業の同期用に置いておくためです。 自分のブランチでコミットしたあと、フォーク元のmasterが進んでないかのチェックは必ずすること。 もし進んでいたら自分のmasterに元作者のコミットを取り込んで自分のGitHubでのフォークが最新と同期してる状態にしましょう。で、元作者のコミットログを確認して何が起こったのかを理解しましょう。 $ git checko
G*ワークショップZは日本Grails/Groovyユーザーグループの定例イベントです。Groovy、Grails、Griffon、GradleといったG*技術をテーマに、ハンズオンやコードリーディング、読書会など参加型の内容で毎月第3金曜日に開催しています。 G*ワークショップ"Z" 第10弾は 新春恒例!GGX2013ロンドン報告&LT大会! 今回は、12/12~13にロンドンで開かれたGroovy/Grailsの国際カンファレンスGroovy & Grails eXchange 2013 Londonの報告発表をメインに、JGGUG名物・ライトじゃないLTを加えて、新年を祝しつつ 新春恒例GGX2013ロンドン報告&LT大会! を開催します。 タイムテーブル 19:00-19:45 Groovy & Grails eXchange 2013 London報告 / @kiy0taka
pfiles pfilesは、各プロセスでオープンされている全てのファイルについてfstat(2)とfcntl(2)の情報を報告するコマンドである。 ポートを使用しているプロセスを確認する例を示す。 for pid in `ps -aeo pid | grep -v PID` do echo PID ${pid} pfiles ${pid} | egrep "^${pid}:|sockname:" done psradm (processor administration) psradmは、プロセッサ操業状態を変更するコマンドである。 プロセッサをオフラインにする(CPUの停止、CPUを止める、CPUの切り離し) psradm -f processor-id プロセッサをオンラインにする(CPUの起動、CPUの再始動、CPUの組み込み) psradm -n processor-id プロセ
Android Studio 0.4.0 への移行 - ひだまりソケットは壊れない 上の記事の一番下で書いたのだけど、Gradle のビルドファイルはシステムのデフォルトエンコーディングで読み込まれるようになっている。 なので、UTF-8 で書かれた build.gradle を Windows (日本語環境の場合デフォルトファイルエンコーディングは Shift_JIS の亜種) で使うと悲しいことになる。 Gradle は JVM 上で動いているので、システムのデフォルトファイルエンコーディングは 「-Dfile.encoding」 オプションで変更できたりする *1 し、冒頭に書いた記事中でも 「-Dfile.encoding=UTF-8」 を使って対応できる、というようなことを書いた。 書いてから気づいたのだけど、「-Dfile.encoding=UTF-8」 でデフォルトファイルエ
2013年度OSSAJ総会ならびにOSSAJセミナーOSSAJ設立10周年記念 OSSの10年間を振り返る http://bit.ly/111qa9u 講演1「MySQLとオープンソースビジネスの10年、そして未来へ」 講師:梶山隆輔氏(日本オラクル株式会社 Asia Pacific & Japan地域 MySQL Sales Consulting Manager) 概要: OSSAJの発足と時を同じくしてオープンソースのサポートサービスの立ち上げを行い、その後MySQLを軸としてアジア太平洋地域全体でのオープンソースビジネスの展開に身を置く立場から、この10年間のMySQLとオープンソースビジネスの変化や今後の展開をお話しさせていただきます。
英語には日本語の「何番目」に相当する表現がないため、「何番目」を問いたい場合、回りくどく言う必要がある。ここでは英語で「何番目」を問う方法を4つ紹介する。 はじめに 「何番目」であるかを英語で問うのは難しい。英語には「何番目」に相当する表現がないからである。だから、「ジェーンはあなたの何番目の娘さんですか」といった文は英語に直訳できない。また、リンカーンがアメリカの何代目の大統領か問いたければ、日本語なら「リンカーンは何代目の大統領ですか」と問えば良いのだが、英語では「何番目」かを問える直接的な表現がないので、別の方法で問う必要がある。 以下、英語で「何番目」を問うための方法を紹介する。色々な方法があってどれを使えば良いか分からなくなるかもしれないが、その場合は、一番最初に紹介する「適当な順番で言って、相手に訂正させる」方法を使うとよい。この方法がおそらく一番楽である。 適当な順番で言って
仕組みとか説明するのも面倒だし、ソースを出すのも手間だし、論より証拠って便利な言葉に乗っかって。 こんなテストがあったとする。ありえないけど。ないけど、まぁあったとする。 @Grab('junit:junit:4.11') import org.junit.* import org.junit.rules.* import org.junit.runner.* import org.junit.runners.model.* class Tests { static { println 'static-initializer' } @ClassRule public static TestRule classRule = {s,d ->{-> println 'ClassRule-before'; s.evaluate(); println 'ClassRule-after' } as S
最近仕事でExcel方眼紙を読んだり書いたりするプログラムばかり書いているのですが、そんなExcel方眼紙を支える最新のJava技術を紹介したいと思います。 なにはなくともPOI JavaでExcelと言えば外せないのがPOIです。以前はJExcel APIという対抗馬もあったのですが、Excel 2007に対応していないので現在ではPOIが唯一の選択肢といっていいでしょう。 POIは非常にプリミティブなAPIを提供するライブラリで、使いこなすにはそれなりの修練が必要です。そのため、可能であれば実際の読み書きには後述するXLSBeansやjXLSなどを使った方がよいでしょう。ただし、jXLSのようなテンプレートエンジンでは細かいセルのスタイル設定などはできないため、POIを併用しないとならないケースも多いです。Excel方眼紙を支える技術のベースとして押さえておくべきライブラリといえるでし
失敗したはがきは交換可能です 書き損じたはがきや郵便書簡、特定封筒(レターパック封筒およびスマートレター封筒)やご不要になった郵便切手等は、所定の手数料をお支払いいただければ、下記の表のとおりのものと交換することができます。 汚れたり、き損した郵便切手や料額印面(はがき、郵便書簡や特定封筒(レターパック封筒およびスマートレター封筒)の料金を表す部分)は無効となりますので、ご注意ください。 また、年賀状印刷・お手軽年賀などの印刷代金等を含む商品を書き損じた場合は、料額分(購入金額から印刷代金等を除いた金額)での交換となります。 1回当たりの交換枚数が100枚以上の場合は、切手類を種類別および金額別にまとめるなどの方法(切手の場合は金額ごとに適宜の用紙に貼付)で提出していただきます。 切手を貼付する用紙は適宜のものでかまいませんが、こちらをお使いいただくことができます。 A4判たて A4判よこ
障害テストなんかでよく使います。 RHEL系のOSはSysRqが有効化されてカーネルコンパイルされているのでマジックキーを使って簡単にカーネルパニックを発生可能。 # echo 1 > /proc/sys/kernel/sysrq # echo 1 > /proc/sys/kernel/panic # echo "c" > /proc/sysrq-trigger これでpanic rebootする。 書き込む文字を変えるといろいろな現象を意図的に起こせる。 詳細は kernel-doc パッケージに含まれる /usr/share/doc/kernel-doc-2.6.XX/Documentation/sysrq.txt に記載されている。 以下代表的なコマンド。 "c" panicさせる。kdumpの設定確認やどうしようも無くなったときに(テストの場合はsyncしてから "b" 即座にリブ
はじめに 明けましておめでとうございます。今年もよろしくお願いいたします。 この記事は DevLove Advent Calendar 2013 「現場」 の53日目の記事として書いています。 1月1日の23:57時点でまだ書いています。ギリギリです。 自己紹介 @ma2saka (まつさか)です. とあるベンチャー企業でインフラ部門のマネージャをしています。少し前は大手ECサイトで国外向けのショッピングモールのシステム開発をしていました。もっと前は、中堅システムインテグレータで固いお客さん向けのシステム開発に関わっていました。 .NET と Java でアーキテクトやってたはずなんですが、数年離れているうちに Java 8 とか C# 5 とか全然追えてなくてとてもじゃないけどそこらへんのエキスパートの端くれとは自称できません。 最近は ruby で fluentd のプラグイン書いたり
「New Build System - Android Tools Project Site」 に書かれているように、Android Gradle プラグイン 0.7.2 から、ビルド済みの JNI 共有ライブラリ (.so ファイル) を配置する jniLibs フォルダがソースセットに追加されました。 Add jniLibs folder to source sets for prebuilt .so files. JNI とは Java Native Interface のことで、Java とネイティブコード (C や C++ で書かれたコード) の間のインターフェイスとして定義されています。 例えば、JNI によりネイティブの動的共有ライブラリを Java から使ったりできます。 Android アプリ開発においても、JNI を使用できます。 JNI Tips | Android
ウインドウズでは、OS起動時に同時に起動したいソフトは、スタートメニュー内の「スタートアップ」フォルダに入れておけばよかった。しかし、ウインドウズ8はスタートメニューがないため、同時起動したいソフトをどうすればいいか困っている人もいるはず。 結論から書くとウインドウズ8でも、「スタートアップ」フォルダにショートカットを入れておけばOK。ただし、スタートメニューからアクセスできなくなったため、Cドライブの階層を下って、自力でフォルダを見つけ出さなければならない。さらに、途中の「AppDate」フォルダは隠しファイルとなっているため、先に隠しファイルを表示にする設定も必要だ。 「スタートアップ」に関しては、ウインドウズ8では極めて設定が不便になった。確かに、多くのツールは自動的にこのフォルダにショートカットを作成するため、最近はユーザーが自力で設定する機会が少なく なっている。それでも、付箋紙
不思議ネット とは 不思議.netでは5ちゃんねるで話題になっているスレを厳選してお届けするサイトです。普段5chを見ない人でも気軽にワクワクできる情報サイトをころがけて毎日絶賛更新中!
@HIROCASTER さんの記事 プログラミング上達がはやいヤツの特徴10個 を騙されたと思って試し,9ヶ月経った今の気づきを書いておきます. ① 毎日コードを書く 始めた当初は楽しさがわからず,なかなか辛かったです. しかし入社した時に,5分でもとにかく「毎日」続けようと決めて,PCも常に持ち歩いて続けました. コードを書く 不明点が出て壁にぶつかる 調べる 解決 モノが動く 楽しい コードを書く ... 結論これです. 毎日続けると,様々なものがどんどん積み上がります. コードを書くスピード,品質が上がるのに伴って,コードを通して実現できることが増えます.そして,難しいことにも挑戦してみようと思うようになります. その結果,やっている内にどうしていいかわからないバグなどが発生し,一旦は壁にぶつかります.しかし,ネットで調べたり人に相談したりして解決できると,楽しくて,またさらに新しい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く