<< 前へ | Home

Botフレームワーク #kagechiyo を発表 - #jjug ナイト・セミナー「ビール片手にLT&納涼会」に参加&LTしましたー

Java User GroupのLT大会、「ビール片手にLT&納涼会」に参加して1本LTをしてきました。

内容はTwitterを使ったボット開発について。ふざけたトーンで話をしていますが実際の業務でBotを活用してきた経験と、最近いかにしてJava8の新機能を適用して効率的かつメンテナンス性の高いコードに出来るかじっくり考えた結果が反映されています。

5分のLT内に二本立ての発表を織り込むというのも自分的には初めて。(時間切れにならないよう2回くらいイメトレしました!)

動画はこちら:


スライド:

Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug from Yusuke Yamamoto


またJava8でBotを超手軽に実装できるフレームワークKagechiyoを発表しました。
とても薄いTwitter4JのラッパーだけどもLambdaが使えて大変気持ちよく、実用的なフレームワークに仕上がっています。今後もメンテナンスしていくと思います。Bot作ってみようかな、という方は是非お試しください。
KagechiyoサンプルBotは実際に@kagechiyo_botで稼働中です。

関連記事:
JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 #jjug - Togetterまとめ
2014/8/22 #JJUG ナイト・セミナー 「ビール片手にLT&納涼会」 - YouTube
#jjug ナイト・セミナー「ビール片手にLT&納涼会」に参加&LTしましたー - Challenge Java EE !

このエントリーをはてなブックマークに追加   

WebStorm、PhpStorm、RubyMine、PyCharm、IntelliJ IDEA、AppCodeなどでコードをなるべく楽に綺麗に書くための機能紹介 3つ #jbugj

コツなんて必要ありません。普通にIntelliJ IDEAを初めとするJetBrains IDEでコードを書いていれば綺麗になります。

1. コードフォーマット
特にプラグインとか入れる必要はない。最初からScala、Java、ActionScript、CFML、CoffeeScript、CSS、Groovy、HAML、HTML、JavaScript、JSP、LESS、SCSS、SQL、TypeScript、XML、Yamlなどのコードフォーマッタが入ってる。
ショートカットはOpt+Cmd+L(設定によっては違う)。しかるべきところでの改行と、インデントをまとめてしてくれるのでたすかります。

べつにショートカットを押さなくてもコミット時にフォーマットをかけさせられるのでコーディング時は意識しなくていい。
コミットダイアログ(Cmd + K)ではReformat code、Rearrange code、Optimize imports、Perform code analysisにチェックを入れておき、汚いコードをコミットしてしまうことを防止しましょう。


あと、IntelliJ IDEA 14 EAPではバックスペースを押すと勝手に指定のコードスタイルに整う Smart Backspace Indent機能が搭載されているので「あ、必要以上にインデントのスペース消しちゃった・・」とかない。

2. 行末の不要なスペースやタブの削除
変更を加えた行の末尾のスペースやタブはデフォルトで保存時に削除してくれる。
変更を加えていない行の不要な行末のスペース、タブを削除したければEditor > Strip trailing spaces on SaveでAllを選択。


3. スペースとタブの可視化
内蔵のコードフォーマッタが良きに計らってくれるので気にする必要はないけど、見えないからこそ見たいという願望を叶えたい場合はEditor > Appearance > Show whitespaces。でも見えないものは見えないからロマンがあるのであって丸見え状態ではあまり面白くありません。


・おまけ : emmetで html:5 を展開したときに en になるのを ja にする
JetBrains IDEでemmetのhtml:5を展開したときはen強制ではなく、システムの設定言語で展開してくれます。必要に応じてLive Templates > Zen HTML > html:5 より設定できる。


関連記事:
Sublime textでコードをなるべく楽に綺麗に書くための機能紹介 3つ | megane9988のブログ
パロディ?元です。

このエントリーをはてなブックマークに追加   

8月18日発売 - Software Design 2014年 9月号特集記事の一つを書きました

Software Design 9月号にて「この夏に克服したい2つの壁 - C言語のポインタとオブジェクト指向 習得のヒントと実践」という特集があります。

4月よりプログラミング未経験で業界に入り研修も終わって現場に出ているけど・・・あれ、まだポインタやオブジェクト指向がイマイチわからないぞ!という方をターゲットとした記事です。

第二部のオブジェクト指向編では七人のエンジニアがそれぞれにいかにしてオブジェクト指向を習得したのか、またそのコツを書いており、その中の一人に名を連ねさせて頂きました。

記事の中でも書いていますがオブジェクト指向の習得法、そして解釈に王道は(今のところ)なく、ひとそれぞれ頭に入りやすい道、そして解釈があります。
その証拠に、7人それぞれ言っていることが全然違います!(もちろん相反する事は書いてありません)

オブジェクト指向がまだよくわからない、人によって説明が違うし・・・、と迷っている方は今回の特集をご覧ください。七人のエンジニアの七色の説明を読んで自分でしっくり来るものだけ頭に入れればばっちりオブジェクト指向習得が捗るはずです。

いかにしてオブジェクト指向を習得したのか、そしてどうしたら効率的にオブジェクト指向を習得できるか、自分なりの答えを書いてみました。是非お手にとってください!



紙面版:


電子版:
Software Design 2014年9月号 | Gihyo Digital Publishing

このエントリーをはてなブックマークに追加   

なぜ、テキストエディタじゃなくてIntelliJ IDEAを使うか。 #jbugj

なぜ、IDEじゃなくてVimを使うか。 - Qiitaのパロディです。

ここに書かれていることは私の「なぜ、テキストエディタじゃなくてIntelliJ IDEAを使うか。」の理由なので、IntelliJ IDEAユーザー全員同じ理由とは限らないのでご注意を...。
また、だいぶ省略しているので、IntelliJ IDEAを全くしらないひとには分からないところも多々あるかもしれません、ご了承を...。
IntelliJ IDEA以外のIDE(NetBeans、Visual Studio、Eclipseなど)では同じようなことが実現できるかもしれないので、必ずしもここであげたことが正しいわけではないですのでご勘弁を...。
1. Mac、Linux、Windowsのどれでも使える。
MacやLinuxやWindowsユーザーは新しいマシンを手に入れたら真っ先にIntelliJ IDEAをインストールします。
IntelliJ IDEAは30億のデバイスで動くJavaで出来ておりマルチプラットフォーム対応なのでさくっとインストールできます。
「Windowsユーザなので、Macに乗り換えたらIntelliJ IDEAを使いたい」とかTwitterなどでよく見ますがWindowsでも普通に使えます。

また、IntelliJ IDEAをソースコードからビルドするのも割と簡単です。
古代の技術であるantのスクリプトが置いてあるのでGitHubのリポジトリからチェックアウトしてantコマンドを叩けば大抵の環境でビルドできるでしょう。
リポジトリのクローンにxx分くらい、ビルド時間はxx分くらいですが普通自分でビルドする必要はまずないでしょう。(リポジトリがデカイのでブログ記事書いている間にはクローン完了しなかった)

2. 起動が速・・くはない。
IntelliJ IDEAの起動時間は数秒という単位で起動し終えます。
テキストエディタだと起動時間がミリ秒単位かもしれませんが、一日に何度も起動するものではないので私には耐えられますね。

3. キーマッピングが自由自在。
IntelliJ IDEAやその他のIDEではある程度キーマッピングの設定ができると思うのですが、大抵は修飾キー(CtrlやAltキーなど)が必要です。
その点、IntelliJ IDEAは修飾キーなしのマッピングも自由に出来ます。
しかしIntelliJ IDEAはVimと違ってモードという概念がないので普通そういうキーマップをすると死にます。

4. 他のテキストエディタやテキストエディタに比べて、カーソルが速く移動できる。
他のIDEやテキストエディタでは、Ctrl+矢印キーなどで単語の末尾やHomeキーで行の先頭に移動できたりしますが、
IntelliJ IDEAはどこでも検索(Search Everywhere、Shift2回で起動するSpotlightみたいなの)でどこへでも移動できます(多分)。
クラス名、シンボル名、ファイル名、アクションなどなんでも素早く呼び出せるので超便利。

5. ホームポジションをあんまり崩さないで操作ができる。
IntelliJ IDEAのデフォルトのキーバインドは、基本的にホームポジションを崩さないで操作ができます。
簡単な所でいうとCmd+1でプロジェクトペインへ移動、Alt+F12で内蔵ターミナルを起動です。内蔵ターミナルからVimやEmacsを起動することもできます。他に、マウスでメニューを選択してあれこれすることは操作を工夫すればほぼないです。
大抵、どこでも検索から実行することができます(これは当然キーボードから操作できます)。

6. 検索、置換が強力(変態)。
私の実感ではIntelliJ IDEAは他のIDEに比べて検索、置換が強力(変態)だと思います。
検索、置換が強力なおかげで、「コメントに含まれる特定の文字列の置換」ばども一発で行えたりします。
当然IntelliJ IDEAなので文字列の置換は、ダイアログボックスの表示(Ctrl+Shift+F)も置換(Ctrl+Shift+R)の実行もキーボードから行えます。

7. Postfix completionという機能が便利過ぎる。
メソッド呼び出しなどの表現を書いた後、インテンションアクションを実行して変数を導入とかよくやりますが、IDEA 13.1で導入されたPostfix completionを使うとアクションを呼び出さずとも変数の導入やif文の構成などが行えます。上から下に、考えるがままにコーディング出来るので超便利。
IntelliJ IDEA 13.1のPostfixコード補完 | JetBrains ブログ

8. 英語ドキュメントやヘルプが豊富。
まぁ、次の「9. IntelliJ IDEAコミュニティがやばい。」に関連しますが、IntelliJ IDEAに関する英語のドキュメントやブログ記事が一杯あります。
日本語ですとIntelliJ IDEA Advent Calendar 2013というのもあります。これだけで日本語のブログ記事が25個あることになります。とても便利です。
また、IntelliJ IDEAの仕様はヘルプであるといっていいくらい、IntelliJ IDEAのヘルプは充実しています。
これもほとんど日本語に翻訳されていませんので英語の勉強になります。

9. 日本のIntelliJ IDEAコミュニティがやばい。
また、FacebookのJetBrains IDEというコミュニティにはコアなJetBrains IDEユーザーがたむろしているので、ここに質問をなげれば大抵回答が返ってきます。とても便利です。
あとは、Twitterで#jbugjというハッシュタグをつけてツイートするとIntelliJ IDEAについて何か疑問を書けば大抵@masanobuimaiが答えてくれます。これもとても便利です。
(私もですが、Twitterでハッシュタグ「#jbugj」の検索は常にしています。

10. ある意味マルチプラットフォームなIntelliJというプラットフォーム。
IntelliJ IDEAが入っていればMac、Linux、Windowsのどれでも使えるIntelliJ IDEAのプラグインはとても便利です。

11. 設定ファイルを読む必要はない
設定ダイアログを全文検索できるので、かゆいところの設定箇所もすぐに見つけられます。

12. 他言語サポート
私はほとんどの言語(JavaだろうとPHPろうと)をIntelliJ IDEAで書く人なんですが、IntelliJ IDEAはほとんどの言語のシンタックスハイライト、コード補完、リファクタリング、フレームワークをサポートしています。
(さすがにリモートのテキストファイルをチョロっと変更する時などは内蔵ターミナルでsshログインしてvimをしょうがなく立ち上げたりはしますけどね...)

13. UIがどんどん改善されていく
アップグレード毎にUIが改善されているのかなんなのか意味不明に変わっていく製品があります。
IntelliJ IDEAは毎回迷いはしない程度に少しずつ、でも着実にUIが進化していきます。
あと、各言語ごとにIDEの使い方を覚えるのもメンドイです。

終わり

とりあえず、私の「なぜ、テキストエディタじゃなくてIntelliJ IDEAを使うか。」の理由をあげてみました。
ほかにもまだまだあると思うのですが、まぁこれが主な理由かなっと思います。

関連記事:
なぜ、IDEじゃなくてVimを使うか。 - Qiita(パロディ元です)
ココが好きだよIntelliJ IDEA - 便利機能10選 #jbugj - #侍ズム

このエントリーをはてなブックマークに追加   

Twitter4J、IDEAを使ってみたい、使い倒したい方にオススメ - 7月2日(水) IntelliJ IDEAハンズオンセミナー - Twitter4J + IDEA = ∞ #ideamugen

7月2日にIntelliJ IDEAとTwitter4Jを使ったハンズオンセミナーを茅場町にあるコワーキングスペースCo-Edoにて開催します。

Java、PHPエンジニア向けの求人・派遣サービスであるJapheego(ジャフィーゴ)様の協賛です。

IntelliJ IDEAハンズオンセミナー - Twitter4J + IDEA = ∞ #ideamugen - Co-Edo Developers | Doorkeeper

IntelliJ IDEAを試してみたい(もっと使いこなしたい)方、Twitter4Jを試してみたい(もっと使いこなしたい)方は是非ご参加ください。
ハンズオンセミナー形式ですが、耳だけ傾けながらモクモク内職作業をしていただいても構いません。LTの時間では当日作った、またはすでに作ってあるTwitter4J関連アプリ・サービスの紹介をしていただくことが出来ます。
タイムテーブルは以下の通り。

- 交流タイム(19:00〜19:30)
- ハンズオンセミナー(19:30〜21:00)
・Twitter APIの基本
・プロジェクトの作成
・Hello Worldアプリの作成
・dev.twitter.comにおけるアプリケーション登録
・ホームタイムラインのダンプ
・IDEAコード補完tips
・GitHubとの連携
・アプリケーションからのツイート
・Spring Bootによる簡単なWebアプリケーション化
・Chrononを使ったデバッグ
- 自習タイム(21:00〜21:30)
- LTタイム(21:30〜22:00)

IntelliJ IDEAハンズオンセミナー - Twitter4J + IDEA = ∞ #ideamugen - Co-Edo Developers | Doorkeeper

関連記事:
エンジニア派遣求人サイト「Japheego(ジャフィーゴ)」は、勉強会にビールとお寿司をお届けしつつ宣伝活動! - はてなニュース

このエントリーをはてなブックマークに追加   

Twitter4Jが7周年を迎えました!お祝い募集中 #twitter7j

Twitter4Jを公開したのが2007年6月9日。
Twitter4J 1.0 リリース - #侍ズム

気がつけば執念の7周年を迎えていました。

レートリミット、画像アップロード、ハッシュタグ、リツイート、幻のアノテーション、リスト、ストリーミングAPI・・・・そしてAPI1.1。とてつもない速度のアップデートに逐一対応してきました。

しばらくAPIのアップデートはなくもう安定メンテナンス期に入ったかと思えばここ最近ツイートに複数の画像を添付できたり、DMに画像を添付できたりといった新機能の追加が立て続けに行われています。
その熱意はどこから出てくるんだと自分でも疑問なくらいものすごい時間をTwitter4Jに費やしてきました。もちろんたくさんのアプリケーション、サービスを支えているという喜びと、「助かっています!」という声に支えられて来たからです。いまやMasterCard、Evernote、LinkedIn、Twitterを初めとする大企業から個人のアプリケーション、プログラミングの練習まで幅広く使って頂いています。

最近はもっぱら新機能開発はTwitterと連携するアプリケーションを開発していらっしゃる方々が行ってくださっており、自分はpull requestをレビューやリリース管理に回っています。
(クローズドベータのAPIアクセス権も一部もらっているのでそこらへんの開発はやっていかないと!)

昨年も活用した、応援の声を物(Amazonギフト)で届けてくれるサービス、Kampa!でお祝い、応援の声を集められれば!

Twitter4Jでなにか楽を出来た方、勉強になったよ!応援してるよ!という方、実際にアプリ・サービスで使っているよ!という方、以下のリンクよりカンパをいただけるとうれしいです(15円からカンパできます)。




もちろんカンパをいただかなくても日頃の「ありがとう」の声、ツイートでもたくさんたくさん元気がでるので今後ともご声援をいただければ幸いです。

なお、カンパしていただく際はどなたから送られてきたか分かるよう、メッセージにお名前やハンドルをご記入いただければと思います。(どうしてもという場合は匿名でも結構ですが)

また昨年と同じく、カンパしてくださったプロジェクト・企業のロゴ/リンクを随時このエントリに貼り付けていきます。(順不同、大小不同):

セガの岩﨑さん(@twtrfk)はバーチャファイターを始めとするアーケードゲームのTwitter連携にTwitter4Jを活用してくださっています。

Virtua Fighter5 Final ShowdownのTwitter連動機能について #twtr_hack from Takeshi Iwasaki

・Virtua Fighter5 Final Showdown:バーチャファイター5 ファイナルショーダウン


・初音ミク Project DIVA Arcade Future Tone


@takke / TwitPane(ついっとぺーん)
数々のコア機能をコントリビュートしてくださっています。中でも大きいのがSPDY/HTTP2.0対応!


DeployGate - 開発中のアプリの配布を、びっくりするぐらい簡単に


大きな電話帳


@fukai_yas
JavaFXでHello world(IntelliJ IDEA) : 人生、気合いと具合 - blog

@komiya_atsushi
Application-only authentication対応を含む数々のコントリビュートをしてくださっています。データマイニングのコミュニティ(#tokyowebmining)運営をされていたり、お勤め先のAlbertでもTwitter4Jを使って色々と分析をしていらっしゃる(?)ようです。
データマイニング+WEB@東京 (TokyoWebmining) - Google グループ






@gecko655
Twitter4Jを使い始めて一週間とのこと。何か面白いものを作って頂ければ!

@johtani
Elasticsearchといえば@johtani!


@kmizu
Scala大好き水島さん。ブログの「初学者向けの Scala Tips」は毎回楽しみにしてます!
kmizuの日記

メディアテクノロジーラボの黒田さん(@i2key)は沢山のサービス・アプリで女子高生とTwitter4Jを活用してくださっています。

cameran(以下のアイコンは左がiOS版、右がAndroid版にリンクしています)


cameranコラージュ(以下のアイコンは左がiOS版、右がAndroid版にリンクしています)


cameranアルバム(以下のアイコンは左がiOS版、右がAndroid版にリンクしています)


F#の熱心な布教家として知られるガブさん(@gab_km)からも応援いただきました!
F# User Group Japan

Local Search(@aguuu)


応援ありがとうございます!:@fukai_yas

尊敬する小西さん(@shunjikonishi)からも。ありがとうございます!HerokuでWebSocketを使ったクイズアプリ、QuizarでTwitter4Jを利用してくださっているそうです。
Quizar
WebSocketクイズアプリを作りました - フレクトのR&Dブログ

最近テクニカル文章チェックツール(RedPen)を熱心に開発していらっしゃる伊藤さん(@takahi_i)からも。ありがとうございます!
RedPen: a text inspection tool
RedPen を公開しました (ベータバージョン) | Advanced Technology Lab

技術系ライターの杉山さん(@zinbe)からもお祝い頂きました。ありがとうございます!
杉山さんのブログはこちら↓
我らねぶた馬鹿

@iam_o_sin作、tweecha
アプリオ、アンドロイダーのランキングにてTwitterアプリ部門1位を獲得しているそうで。すごい!
androidスマートフォン用ツイッタークライアント tweecha(ついーちゃ)

ダウンロード↓


パンケーキ屋さん情報でいつも重宝している30minのサービス、「みんなのパンケーキ部」や「原宿パンケーキ速報」運営・開発の@ysakakiからのお祝いも。ありがとうございます!
パンケーキ専門サイト「みんなのパンケーキ部」
原宿パンケーキ速報 - 原宿と東京のパンケーキを食べ歩くよ
全国600店舗がいつでも見られる「みんなのパンケーキ部」公式アプリ同時リリース!

いつもドラクエの情報には事欠かないコワーカー、@mike_neckありがとう!
最底辺ライン工ブログ

API大好き、Groovy大好き関谷さん@kazuchikaありがとうございます!
Apigee、いつか必ずや活用します!
Apigee API プラットフォームとは ? | Apigee Product Documentation
API管理もこれで簡単!Apigeeが凄い - Dhaulagiri
米国企業のAPIビジネス最前線まとめ&4つの事例~I love APIs Conference 2013レポート | イベントカレンダー+ログ

Facebook4Jの山下さん@roundropからもお祝いいただきました。ありがとうございます!
Facebook4J
山下さんは最近Facebook4J以外ではQuercusのめちゃめちゃ実用的ノウハウを披露されたことでも(自分の中では)有名。
PHP in Java -Quercus- によるレガシーマイグレーション実例 #jjug_ccc #ccc_r12 from Ryuji Yamashita


@sue445作:
Azusaar!!(APIでお世話になってます)


jubeat++


フルボッコヒーローズ

Bootstrap、Spring bootとbootのつくものは何でも詳しい(ちょっと違う)槇さん(@making)ありがとうございます。献本していただいたはじめてのBootstrap、レビューがかけておらずもうしわけないです!
この本↓を参考にしながらhttps://secure.samuraism.comを作りました!


最近「弟子日記」を拝読中。@yuripopありがとう!
弟子日記 (yuripop)|note

アイマスDB(@imas_DBの中の人、@mirai_iroありがとう!
アイドルマスター データベース (情報まとめ)
アイマスといえばでるぴさん(@DeLPiM)だな、とか思いつくけどやったこともライブにいったこともないですごめんなさい。

ディープな解析ツール、HeapStartsで有名な久保田さん(@sugarlife)からも、ありがとうございます!


ツイ廃あらーとの(@MulticolorWorld)より応援、ありがとうございます!
毎日0時にツイート数の統計をツイートしている方はこのサービス使ってらっしゃったんですねー。

ツイ廃あらーと開発日誌 | 開発中のこととかいろいろ

1Click飲みの河本さん(@kenkawakenkenke)からも応援頂きました。1Click飲み、Twilioを使ってサクっと飲み屋さんの予約を取ってくれるすごいサービス!TwilioやTwitter4Jを使っているそうです。
1Click飲み



関連記事:
Twitter4Jが6周年を迎えました!お祝い募集中 #twitter4j6thanniversary - #侍ズム

このエントリーをはてなブックマークに追加   

#JJUG_CCC 2014 Spring にてデバッガの使いこなし方を説明します #ccc_h4

バグのないプログラムは書けません。プログラミングに必ずデバッグという作業が伴います。
Javaには優れたIDEが沢山あり、デバッグ機能も充実しています。が、それなりにスキルのあるプログラマでもがむしゃらにブレークポイントを設定してはステップ実行で腱鞘炎になりそうになったり、print文をただひたすら入れてみたりと力業や勘でデバッグを行っていることが多いのではないでしょうか?
(自分がそうでした)

そこで明日5月17日、ベルサール西新宿にて開催されるJJUG CCCにて一枠時間を頂いて、「Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~」という話をします。
ブレークポイント、ステップ実行、式評価、リモートデバッグ、条件付ブレークポイントといったデバッグ / デバッガの基本を3大IDE - NetBeans、Eclipse、IntelliJ IDEAを使って説明します。
セッションを聞いて頂ければ「print文が入ったコードをコミットしてしまいプロダクション環境で標準出力が溢れてしまう」、なんてことはもう二度と起きない、はず!

JJUG CCC 2014 Spring | 日本Javaユーザーグループ

JJUG CCC 2014 Spring – Speaker | 日本Javaユーザーグループ

タグ :
このエントリーをはてなブックマークに追加