勉強会したので、資料公開。 jenkinsを使って、自動テストだけでなく静的コード解析や統計情報をおこなって、ケント・ベックが提唱した「コードの臭い」を察知して、リファクタリングのタイミングや具体的な指摘のフィードバックを自動で得ようというお話。
オブジェクトについて抽象から具象まで取り混ぜて説明していた時、最も具象なレベルで見れば、オブジェクトはメモリ上に確保した領域にすぎないと説明しました。 そんな説明をしていた時、メソッドの実体ってどこにどうあるのですかと質問を受けました。人の心はどこにどうあるのですかという質問に比べると緩い質問ですが、良い質問だと思いました。こういう疑問を持つのは大事だと思うからです。自分もかつてプログラムとは結局のところどう実行されるのかが気になりました。プログラマなら誰もが通る道だと思います。 そんなわけでJavaのような箱入り娘から離れて、デレのないツンデレ娘ことC言語で古のテクニックを見せることにしました。 とりあえず次の簡単なコードから始めます。C言語は知らなくても構いません。関数fnがあって、引数に2を加算して返すことだけを読み取ってください。 #include <stdio.h>
日本のオープンソース会の重鎮(そして自称プロのよっぱらいでもある)楽天技術理事のよしおかひろたか氏が、はてなダイアリーの未来のいつか/hyoshiokの日記で「IT産業には民族誌が必要だ」というエントリを書いています。このエントリにはとても共感するところがあります。 よしおか氏は以前から、ハッカー中心の企業文化を日本に根付かせたいという意志をもってさまざまな活動をされていて、今回の「IT産業には民族誌が必要だ」という意見もそれを実現する要素の1つです。 ではなぜ民族誌が必要だとよしおか氏が書いているのか、本題に入る前に、よしおか氏が言う「民族誌」とは何なのかを、今年の2月にデベロッパーサミット、通称デブサミでよしおか氏が行った講演「ハッカー中心の企業文化を日本で根付かせる」のスライドから少し読み解いていきましょう。 ハッカー中心の企業文化を根付かせるために この講演でよしおか氏は「良いソフ
Scalaの勉強をはじめたので、とりあえず簡単なパーサーを作ってみてます。 一段落ついたらまとめを作ろうと思ってたのですけど、先も長そうなので、ここいらで目次をつくっておきます。 Scalaでパーサーを作る基本 Scalaでパーサーを作ってみる〜1:構文定義 - きしだのはてな Scalaでパーサーを作ってみる〜2:構文木の作成 - きしだのはてな Scalaでパーサーを作ってみる〜3:式の評価 - きしだのはてな 言語要素を組み込んでいく Scalaでパーサーを作ってみる〜4:ブール値とif式 - きしだのはてな Scalaでパーサーを作ってみる〜5:文字列とprintln - きしだのはてな Scalaでパーサーを作ってみる〜6:コードブロック - きしだのはてな プログラム言語に Scalaでパーサーを作ってみる〜7:変数 - きしだのはてな Scalaでパーサーを作ってみる〜8:変
基金訓練の講師をやめました。基金訓練、今は求職者支援制度に名前が変わったみたいですけど、そこの講師をやめたというか、会社ごとやめて転職しました。 何の講師をやっていたかというと、今をときめく(?)Androidの講師です。 転職先にも少しなれてきて、今までのことを振り返って書き留めてみたのですが、せっかくなので発表することにしました。もともと僕だけが読むメモのつもりで書いたので、読みやすい文書ではないですがご容赦のほど。 Androidの講師になるまでAndroidの講師になるまでは、Javaのサーバーサイドのエンジニアをやっていました。 お客様のところに常駐し、システムの一部ではあるけど、自社メンバーだけで上流行程から担当し、僕はそのチームリーダーでした。 でも、このご時世なので、仕事がどんどんなくなっていきます。 プロパーの方でも仕事がないような状況で、それでも僕らのチームは半年ほどは
こんにちは。新卒入社で今年から働き始めました、横幕です。現在は、mixiのAndroid(TM)版公式クライアントアプリを開発しています。 Android開発を始めてから数か月になりますが、今回は、開発に携わる中で知ったことをご紹介したいと思います。 レイアウトの複雑さで発生するStackOverFlowError Androidでは、見た目(UI)のデザインやレイアウトをXMLで記述することができます。XMLを書くときには、UIのパーツ(ウィジェット:ボタンやチェックボックスなど)のほか、ウィジェットの配置を決めるためのコンテナ(LinearLayoutやFrameLayoutなど)を用います。そして、それらを入れ子にしながら画面を設計していきます。 たとえば、以下のような感じに。 * main.xml <?xml version="1.0" encoding="utf-8"?> <Li
「Android技術者認定試験制度(OESF Authorized Certification Engineer for Android、通称ACE)」は、IT業界に生まれた最も新しい資格の1つである。2010年にアプリケーションエンジニアのための資格「アプリケーション技術者試験」が2010年末に始まってから、もうすぐ1年になる。 Androidの普及は加速している。米国ではAndroidがiOSを抜きトップ(※1)、日本国内でもOSのシェアはAndroidが首位に立った(※2)。この活況は、同時にAndroidアプリ開発エンジニアの需要を生み出している。スマートフォンアプリ開発エンジニアの需要は、2011年後半になってもいまだ衰えを見せていない(※3)。 一般社団法人「Open Embedded SoftwareFoundation(以下、OESF)」は、携帯電話以外へのAndroidの
イタリア料理の定番といえばパスタですよね。スパゲティ、フィットチーネ、ペンネ、いろいろなパスタがありますが、日本人にダントツで人気なのはスパゲティでしょう。ミートソースも美味しいですし、クリームソースも濃厚でタマリマセン! インターネット掲示板『2ちゃんねる』では「自炊するときにどんな味付け・調理をしているの?」という話題が盛りあがっています。グルメにうるさい2ちゃんねるユーザーたちはどんな味付けで食べているのでしょうか? いくつかご紹介したいと思います。 <自炊でスパゲティを作るときどんな味付けしてる?> ・酢か塩 ・プロは塩。俺はミートソースだけどね ・オレは茹でてマーガリン乗っけて食う ・ケチャップドバドバとソーセージでいい ・業務用タラコスパふりかけ1択 ・もうマヨネーズと黒胡椒だけでいいや ・キノコ洗って切って茹でたパスタと鶏肉とで炒めて昆布だしかけてかつぶしのせて食う ・情強は
追記 11/12/25 Bi ってそんなに一般的ではない、 Both-Sides JavaScript の方が、ということでまた変更しました。(side でなく side's') 11/12/04 Both Side JavaScript は変ということで、 BSJS=Bi-Side JavaScript に変更しました。 本文 CSJS と SSJS で両方同じ言語で処理が書けるメリットの 1 つとして、 書いた処理の共有があげられます。 (そこにメリットを感じない人もいるかも知れませんが。) 例えば Validater を共有 クライアントの状態をサーバで再現 などがあります。前者はそのままですね。 受け取った入力のバリデーションはサーバでは必須で、フィードバックを速くするためにクライアントでも同じように行う場合があります。 今まではサーバで書いたバリデーションと同等のものを JS に
先日、技術評論社の傳智之さん(@dentomo)より、Jenkins実践入門を献本していただきました。どうも、ありがとうございました。 Jenkins実践入門 ?ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus) 作者: 佐藤聖規,和田貴久,河村雅人,米沢弘樹,山岸啓,川口耕介出版社/メーカー: 技術評論社発売日: 2011/11/11メディア: 単行本(ソフトカバー)購入: 26人 クリック: 496回この商品を含むブログ (64件) を見る既に、Jenkins(Hudson)については、開発プロセスを自動化する継続的インテグレーションに欠かせないツールとして、日本でも非常に人気高いツールとなっており、また、雑誌やインターネットの記事でも今まで時々特集が組まれてきたと思います。WEB+DB PRESS 総集編 [Vol.1?60] 作者: 森田創,cho45
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
ここでは、 Bulletnoteを開発した際に分かったことを中心に、 Eclipseのプラグインを 開発する際のFAQを勝手に設定して勝手に答えている。 Eclipseは、デザインパターンを活用した、 ポストモダンでデカダンでレーゾン・デートル なアーキテクチャになっているので、 そのプラグインを開発する際、非常に簡単なことを実現するにも 非常な困難にぶちあたることがままある。 いま目の前にあるテキストを取り出すにも、 耳の穴から指を突っ込んで奥歯をがたがたいわせながら舌をひっぱるような、 手の込んだメソッド呼び出しが必要になったりする。 パズルとして考えれば楽しくないこともなくもなくもないが、 プログラミングでいちいちこんなことをやらされるとなかなかつらいものがある。 加えて、ドキュメントが圧倒的に不足している。 一応Helpおよびいくつかの記事があるが、基本を網羅しているとは 言いがた
旅行や出張などで利用する「スーツケース」。荷物がきれいに収まらなかったり、スーツケースの中で衣類がぐちゃぐちゃになってしまったりと、パッキングに苦戦する人が多いのではないでしょうか? そこで今日は、宿泊日数に合わせたスーツケースの選び方やパッキング方法などを紹介します。 ■ スーツケースの選び方 これからスーツケースを購入するという人は、宿泊日数や目的に合ったスーツケースを選びましょう。 ▽ http://www.devicenet.co.jp/store/bag/trank.html 4日間までの宿泊ならば、機内持ち込みができるサイズもあるSサイズのスーツケースがおすすめです。荷物を持って移動することが多い人や、個人旅行をよくするという人にもぴったりです。 1週間程度の宿泊なら、渡航先や季節によりますが、Mサイズのスーツケースで十分です。それ以上の宿泊や、2人分の荷物をまとめる場合は、L
Yokohama.pm#8でのYappoの話によれば、IRC botを駆使すると捗るらしい。 IRC botは作ったことがなかったので練習としてllevalを実行するbotを作ってみた。botのフレームワークとしてはAnySanを使い、llevalへのアクセスはLLEval-Clientを使った。 https://github.com/gfx/LLEval-Client/blob/master/example/irc-bot.pl #!perl -w use strict; use 5.10.0; use AnySan; use AnySan::Provider::IRC; use LLEval; use Encode qw(encode_utf8 decode_utf8); use constant _DEBUG => $ENV{LLEVAL_BOT_DEBUG}; use if _DE
概要 Eclipse + Maven + ScalaでMapReduceしてみた。 割と強引なやり方なのでこれが正しいのかと言われると微妙ですが、とりあえず我が家の環境ではそれなりに動いてくれてます。 JavaやHadoopの導入は済んでいるものとします。済んでない場合は、とりあえず擬似分散モードなどで動く状態を作りましょう。本例ではCDH3を使って完全分散モード上で動かしています。 @Date 2011/11/02 @Versions CDH3, Scala2.9.1, Eclipse3.7, Maven2 @Updated 2012/02/26 Mavenのscopeでprovidedを使うよう変更 必要なものを揃える まずMaven2をインストールします。sbtでもできると思います。 $ sudo apt-get install maven2 次にEclipseをダウンロードします。
皆さん、Windowsでコマンドライン使ってますか? まともなターミナルエミュレータすらないと思っている方もいらっしゃるかもしれませんが、案外何とかなるものです。 これが完成図です。1週間ほどいろいろ試した結果、動作、見た目、フォントレンダリング、どれもおおむね満足行く結果になりました。 Terminal Emulator選び Windowsをお使いの皆様ならご存じかとは思いますが、デフォルトのTerminal Emulatorである cmd.exe が良くないです。 挙動、フォント云々の話をするまでもなく、横幅が80文字固定なのがどうしようもありません。 プロパティのレイアウトのところから幅の変更ができるようでした。ご指摘ありがとうございます。 この辺を見てWindowsで動作するものを一通り試してみたのですが、動作がおかしいか、フォントが気に入らないか、プロプライエタリかで、どれもよく
第一引数で書式を指定し、その書式に則って第二引数以降の値を編集(変換)して出力する。 (第二引数以降の値は、可変長引数で複数指定できる) System.out.printf("値1=%d 値2=%d", 123, 456); String s = String.format("%04x", 789); 書式には「%」が入った文字列を指定する。「%」の書式指定に従って変換が行われる。 デフォルトでは、複数の%指定がある場合、第二引数以降の値が順番に使われる。 引数が多い分には無視されるだけなので別に構わないが、指定に該当する引数が足りないと例外が発生する。 変換の実体はFormatterクラスにある。 したがってどのような書式があるかについてはFormatterのJavadocに載っているが、代表的なのは以下のようなもの。 C言語と同様の書式指定 書式 説明 例
MavenはAntに代わるビルドシステムですが、 Antとは異なった設計思想になっている為 最初に使い始めるまでが大変です。 とりあえず、このページではMavenのインストールから 簡単なサンプルプロジェクトのビルドまでを説明します。 インストール まず、Mavenのサイトからバイナリをダウンロードします。 Mavenのソースはここからはダウンロードできません。 CVS経由で行う必要がありますが、通常のMavenユーザならば その必要も無いはずです。 インストールといっても、適当な場所に解凍するだけです。 ここでは、その場所を $MAVEN_HOME とします。 次に、$MAVEN_HOME/bin にパスを通します。 Linuxならば % export PATH=$PATH:$MAVEN_HOME/bin とします。 MavenはJavaで作成されているので 実行にはJavaが必要です。
仕事柄、「ああいうデカいサイズのファイルアップロードとか、preforkでやるべきじゃないよね。イベントモデルじゃないと厳しい」とかそんな話をすることがあって、「確かにpreforkだとあの場合すぐプロセスが埋まっちゃいますよね」とか自分も分かったようなことを言うのだけども、裏側のことは特にはっきりと理解しているわけでなく、イベントモデルだと1プロセスで大丈夫だとか、下手にブロックしちゃうと死んじゃうとか、聞きかじっただけの知識でそういうことを何となく語ってしまう自分に不意に背筋がゾッとする、そのようなことも秋の夜長にはございます。 そのような良心の問題とは特に関係なく、ネットを漂流してほどよいサンプルを見つけたのでふんわりとした自分用のメモ。 http://www.oreilly.co.jp/community/blog/2010/03/pthread-epoll-inet-server
はじめまして。Aiming で C# を書いてるウェブっ子エンジニアの廣岡 (hirooka) です。 弊社ではすべての開発ラインでコードレビューに Android 開発で有名な Gerrit という Google 製のツールを使っています。 今回は、この Gerrit と CI ツールである Jenkins を組み合わせて使う需要が社内で発生したので、公開社内向けドキュメントにしました。 Jenkins Gerrit Trigger Plugin Jenkins には Gerrit Trigger というプラグインがあります。このプラグインが行ってくれることは、 Gerrit にパッチセットをアップロードすると、そのパッチセットを Jenkins でビルド・テスト Jenkins 上でのビルド・テストの成功・失敗を Gerrit に通知 テストに成功していれば CodeReview +1
設定時に使用するコマンド等 コマンド無しでも大抵の設定は出来るが、使った方が何かと楽。 サイドバーの『Dash ホーム』 > それ以外のソフト > インストール済み > 端末 でGNOMEターミナル(Windowsでいう所のコマンドプロンプト)を起動し、そこにコマンドを入力してエンターキーを押すことで実行できる。 Ctrl + Shift + c コピーを行う。コマンドではなくGNOMEターミナルのショートカットキー。 Ctrl + Shift + v 貼り付けを行う。コマンドではなくGNOMEターミナルのショートカットキー。 cd フォルダ名 cdコマンドはフォルダ(ディレクトリ)を移動するコマンド。例えば『cd デスクトップ』と入力してEnterキーを押せばデスクトップに移動できる。 cd .. 一つ上のフォルダ(親フォルダ)に移動する。 cd cdとだけ入力して実行するとホームフォル
マクロでは、マクロを発動させてもいいユーザを指定することが出来ます。例えば、発動条件のユーザ欄に"frofile1P"というnickを入れると、frofile1Pさんにマクロの発動を許可したことになります。自分自身を許可する場合は、自分のnickではなく、%meというフレーズを使います。 複数の人に許可を与えたいときは|(半角パイプ記号)でnickを繋げます。例えば、frofile1Pさんと、zi-noさんに許可するときは、"frofile1P|zi-no"と言った具合です。 みんなに許可を与えたい場合は、*(半角アスタリスク記号)を使います。これは自分自身には許可が下りないので気をつけてください。自分を含めたみんな、と言うときには、半角パイプ記号で"%me|*"と繋げて表現します。
最近 redmine ブームが今更やってきていて、redmine のインストールが楽しくて仕方ない、、、わけないんですが、前は rvm で入れてたんですけど@niw さんに rvm オワコンだよねって言われて、僕も同感なので rubies をやっと使ってみました。ついでに、bundler も使って gem を管理してみて、あと passenger に standalone があることに今更気づいたのでそれも使ってみたら、かなりすっきりしたので簡単にメモ。 rubies で ree を入れる rubies はシンプルな ruby/gem 切替ツールです。 niw/rubies – GitHub blog.niw.at – rvm について一言 これを使って、Ruby Enterprise Edition(ree)を入れてみましょう。ただし、普通に installer を叩くと rails と
マネージャになるほど膨大な量のメールを処理するのが主な仕事になってくる。 また、SEの仕事の殆どは、顧客やメンバーからのメールや添付されたExcelを元に、設計書をどんどんブラッシュアップしていくことだ。 倉貫さんのつぶやきを読んで、同感すると共に、果たしてそれが本当に良いことなのかラフなメモ。 【元ネタ】 Twitter / @kuranuki: メールで5人とかに送って、ひとりtypoとかで届かなかったときの残念さったらない。もう一度5人に送り直すか、その人だけに送り直すか。前者は他の人にはウザいし、後者はこれからの返信に漏れるし。もう複数人でのメールやだ。 Twitter / @kuranuki: メールでは手紙で出来ること以上のことをやっちゃいけないんだよ。 Twitter / @kuranuki: メールのccにいつまで偉い人を入れておくのか判断が難しい。遠慮なく入れた方が良いの
@haru_iidaさんがRedmine Commit Relation Editor Pluginという有用なプラグインをリリースされたのでメモ。 【元ネタ】 Haru's blog: Redmine Commit Relation Editor Plugin 0.0.1をリリースしました。 r-labs - Commit Relation Editor - Redmine Twitter / @kzgs: MLで以前質問していたものがまさに見つかった感じです RT @haru_iida: Haru's blog: Redmine Commit Relation Editor Plugin 0.0.1をリリースしました。 http://bit.ly/vqzxjT (引用開始) Redmineではリポジトリのコミットメッセージにチケット番号を入力することでコミットとチケットの関連付けを行う
今回から、Vimをプログラム開発環境にしてしまう方法を解説します。これができれば、Vimでプログラムを編集した後に、コンソールに戻ってコンパイルの指示を出すという面倒を避けられます。(編集部) そろそろ実用的なことを - Cプログラミング これまで7回にわたってVimの基本的な使い方を解説してきた。これまで紹介してきた操作法を身に付けておけば、かなりの速度でテキストファイルを編集できるようになっているはずだ。Vimを操作する能力は、熟練すればするほど高速になる。スキルアップに費やす対象としては悪くない選択肢だ。今回以降しばらくの間は、より具体的なシーンを想定して、操作方法や、または操作方法をより便利な次元へ引き上げるプラグインについて紹介していく。 Vimといえばやはりプログラミング言語や設定ファイルの編集エディタとして利用することが多い。今回は、C言語のソースコード編集とコンパイル、実行
[運用] 仕事に使うSkype ― 在宅勤務に、BCPに、無料ネット通話を活用するためのエッセンス ― 第2回 Skypeの通話を実現するネットワークの仕組み デジタルアドバンテージ 島田 広道 2011/11/17 前回は、仕事で使ううえでSkypeに何ができるのか、どんな機能が利用できるのか、そしてSkypeのセキュリティについて説明した。低コストで自由度の高いコミュニケーション手段としてSkypeは確かに便利そうだ。ただ、社内システムを預かる管理者としては、仕組みのよく分からないものを導入するのはためらわれるところだ。それに、導入にあたって既存システム側に何か変更が必要なのかどうかも気になる。 そこで今回は、Skypeのインストールに進む前に、Skypeのシステムで特に重要な役割を担うネットワークの仕組みについて、簡単に説明したい。またSkypeを社内システムで利用するのに必要なネッ
今までの環境の問題点 今まで僕はメインのタスク管理ツールとしてNozbeを、そしてサブ・ツールとしてOmniFocusを使っていた。 どちらもそれぞれユニークで便利なツールなのだが、今までの環境にはいくつか問題があった。 僕が感じていた問題は以下のとおり。主にNozbeで感じていた問題点。 タスクリストの一行が高くて一覧性が低い カレンダー表示にした時順番が揃わない サブタスクが作れない 繰り返しタスクの取り扱いが苦手 作業時間設定の融通がきかない では、順番に見ていこう。 タスクリストの一行が高くて一覧性が低い Nozbeは一行ごとのタスクに妙に厚みがあるため、ずらっとタスクが並ぶとすごく見にくくなってしまう。 最初はこのUIが好きだったのだが、本格的に使い始めたらずらーっと縦に伸びてしまい管理がすごく難しい。 スクロールしないと全体像が見えないのは不便。またフィルター的機能がないのも痛
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く