転勤した話
退職エントリならぬ転勤エントリですが、
京都所属にしてもらいました。京都市内に住んでます。
色々と理由があって決めました~٩(•౪• ٩)
よくある質問
- お客さんが京都にいるの? -> NO
自社開発なのでチガウヨ - 京都でのプロジェクトのため? -> NO
東京に残ったとしてもやる仕事は同じだしチガウヨ - とばされたの? -> NO
一応希望を聞いていただき自分で決めたことなのでチガウヨ
割とよく東京来る(今も東京に居る)し勉強会顔出したりするので
関東のみなさまこれからもどうぞよろしくお願いいたしますー。
関西のみなさまこれからどうぞよろしくお願いいたしますー。
区役所と間違えて行った京都市役所(かなしい)
IntelliJ IDEAのContent Rootを設定する
9月27日(日)はJava女子部のGradle勉強会です。
@mike_neckさんがGitHubに専用のリポジトリを置いてくださっています。
その内容が充実しているためとても勉強になるだろうと大変楽しみ!!!
で、予習の際、IntelliJ IDEAについて得た知見を書いておきます。
Content Rootという概念('o')
先に私の身に起こった事象を説明するんだけど
上のGitHubリポジトリ行くとこんな風にいっぱいフォルダやファイルがあるのね。
こいつを普通にcloneしてIntelliJ IDEAで開くとこうなった。
おう、ファイルしかない。明らかな不足・・・!
( ˘•ω•˘ ).。oஇ
何でこうなっているかというと、Content Rootが指定されてないからみたい。
✈ Content Rootとは
- 軽くぐぐるとどうやらJetBrains用語?
IntelliJ IDEAのContent Root説明ページはコチラ
上記説明ページの Basicsという部分だけ少し読んでみると
Content Root = 一番上の階層にあるフォルダ のことみたい(イメージ通り…)
何かひとつのモジュールを構成する全ファイルが入ったフォルダ、のように書いてある。
なおContent Rootは複数指定できるけど、大概ひとつで十分。
Content Rootが必要ないケース*1もあるでしょう、とのこと。
✈ Content Rootの設定の仕方
※ IntelliJ IDEAのバージョンは14.1.4 ULTIMATE
⌘
+;
でProject Structure
というウィンドウをひらくProject Settings
のModules
で+ Add Content Root
する- 選ぶ
ここだよ↑
今回だとjavajo-gradle
を選択して・・・
できた!
設定画面を閉じると…よい感じですね(左側Project部分のトリミング)
ハッピー!でも今までこんなことなかったな・・・。
ふえぇrootの指定が足りなかったのか・・・・・。まぁこれで一生同じことで困らない。
— サイホーンよこな (@ihcomega) September 23, 2015
まぁまぁ。というわけで、
9月27日(日)はJava女子部のGradle勉強会です。
9月27日(日)はJava女子部のGradle勉強会です。
9月27日(日)はJava女子部のGradle勉強会です。
おしまい。
*1:たとえば、"他のモジュールに対して依存するモジュール群を提供するため"といった役割で使う時とか(参考:Modules without content roots: Collections of dependencies
初めましてfluentd!
fluentdのこと知らなすぎて
真顔で設定ファイルとにらめっこすることしか出来なかったので(・_・)
クイックスタートガイドの一部を読んだ。
✫fluentd
ログ収集用のツール。いろんなログに対応しておりプラグインがたくさん。
✫使われている技術・特徴
✫fluentdイベントのライフサイクル
- イベントが発生し、fluentdにインプットがあるとタグを発行する。
- タグを識別し、マッチするアウトプットの形式(設定)を判断する。
- マッチしたアウトプットに合わせて適切にイベントを送信する。
※アウトプットしたあと、イベントに新しいタグを付与して再利用することも出来る。
✫configファイル
☁configファイルの場所
- パッケージインストールした場合
/etc/td-agent/td-agent.conf
- Gemインストールした場合(インストール時に指定)
/etc/fluent/fluent.conf
☁ディレクティブ
configファイルには6つのディレクティブを指定する。
- source
- インプットデータがどこからどういう方式で送られてくるか指定する。
type
パラメータが必須。http
(http通信を行う)、forward
(TCP通信を行う)を指定するのが標準的。tag
、time
、record
というパラメータでルーティングが出来る。
- match
- filter
- どういう処理をするか指定する。処理の通過点!
- matchと同様の使い方をするが、一度マッチした後も、それより下にもマッチする処理があれば全て実行する。
- system
- 各種設定を行う。
log_level
、suppress_repeated_stacktrace
、emit_error_log_interval
、suppress_config_dump
、without_source
という値が対象。
- label
- filterやアウトプットをグループ分けする。
- 各パラメータにプレフィックス
@
が必要となる。
- @include
- 異なる設定ファイルの情報をインポートし再利用する。
- ファイルパス、グロブ、URLで指定できる。
☁configファイルについてその他
✫プラグイン
おおまかに分類すると6種類ある。
- Input
ソケットを生成してログを収集したり、定期的にログを取得したりする。 - Parser
インプットのフォーマットを変更する。 - Filter
特定フィールドの値によって絞り込んだり、フィールドを追加・削除したりする。 - Output
結果を出力する。即時出力する(Non-Buffered)か、チャンクのキューにバッファしてから出力する(Buffered)か、一定時間毎に出力する(Time Sliced)かの3パターンある。 ※チャンク(chunk)はイベントの集まり - Formatter
アウトプットのフォーマットを変更する。 - Buffer
Bufferedアウトプットにて、バッファの設定を行う。
✫その他
- インストール方法(環境別)
- 使用例
- もっと詳しく
※他にも色々ある。
ちなみにこれ会社のwikiにも書いといたやつ…w
うすっぺらい情報だけどこれくらい分かってればとっつきやすいでしょう!
あ、あとどうでもいいけどエントリのフォントサイズあげた。
MySQLのステートメントターミネータ知らなかった
そんなの学校で習いませんでした・・・
名前カッコイイ。
SELECTとかSHOWとか使うときに
; (セミコロン)
じゃなくて\G (バックスラッシュ+G)
を入力するのです。
そうすると、何やら縦表示になるのです。カラムが多いとやや見やすくなるのです。
以下、例。
mysql> SELECT * FROM HELP_KEYWORD LIMIT 3; +-----------------+--------------+ | help_keyword_id | name | +-----------------+--------------+ | 0 | JOIN | | 1 | HOST | | 2 | SERIALIZABLE | +-----------------+--------------+
mysql> SELECT * FROM HELP_KEYWORD LIMIT 3\G *************************** 1. row *************************** help_keyword_id: 0 name: JOIN *************************** 2. row *************************** help_keyword_id: 1 name: HOST *************************** 3. row *************************** help_keyword_id: 2 name: SERIALIZABLE
ひぇぇ。先輩が作業しているのを見て、な、なんだ今の・・・ってなりました。
横長なテーブルをセミコロンちゃん使って見ていた自分、さようなら。
数値型おさらい&金勘定ことはじめしてきた #javajo
数値型おさらい&金勘定ことはじめに参加しました。
講師はJJUG幹事の@miyakawa_takuさん!癒し系インテリお兄さんです。
リンクたち
♡資料:
この資料だけ見ても大変分かりやすい上に、説明も丁寧で感激しました。
♡togetterまとめ:
♡講師タクサンのブログ:
Java女子部勉強会「数値型おさらい&金勘定ことはじめ」で喋りました - 映画は中劇
※質疑応答の様子を書いてくださっています!
感想やら
…はい!もう書くことないです!上に綺麗にまとまっているんだもん。
しかしあまりに内容がない(リンク集的な)記事になってしまったので、
タクサンブログに書いてある2つ目の質問について、ご回答を詳しく記載します
(勉強会中にタクサンが見せてくださった*1のを改めてやってるだけです)。
このページに対する質問があがりました↓。
左から3桁分とって丸めるのかな?と思いきや、「1番下の"0.0001"は"0.00"にならない!?何故!?」と。
…ふむたしかに、roundって結局何をしてくれやがるメソッドなのかパッと見分からない。
さて、どうして上記のようになるかというと・・・
BigDecimal#round(MathContext mc)
が丸めるのは、
スケールを取っ払った(BigDecimal#unscaledValue()
っちゅーメソッドで取り出せるintValue
という)値だからー!
これ↓を見れば、納得〜なはず(・・・合ってるかな?)。
たしかに、"0.0001"のスケールなしの値は1だから、精度3で丸めても何も起きないよね。
まぁこのメソッドはまず使わないという説明だったので掘り下げたところで…という話かもしれません。
内容がない記事、という状況かわらず(=_=)まいっか。
おまけ
そうそう、なんでこのテーマでJJUG CCC登壇しようと思ったんですかっていう謎の疑問を投げかけたところ
- double / float使ったシステムを見てウーンと思ったり、Twitterでこのネタが盛り上がっているのを見たりしたから
- 「このキャッチーでポップ(で何とかでかんとか)なタイトルを思いついてしまったから」(うろ覚え)
とのことでした。w
振り返り
やっぱりご参加者のみなさんは緊張されてるようでしたが、後半は結構質問もあがったりして👍
まぁタクサンは、こうおっしゃってくださったし↓、
Java女子部はよいところであった。うらやましい。
— 宮川 拓 (@miyakawa_taku) 2015, 6月 11
同じ週に開催したJava女子部もくもく会にも
ご参加くださったみたいでよかったです🍬是非またお願いしますw
うん、とても楽しかった。
理解の難しいチャレンジングな勉強会もよいですが、
すっきり分かったああああああと思える機会はやっぱり時々必要。
IntelliJ IDEAのコード補完でmainメソッドを出したい
ようやくIntelliJ IDEAのライセンスをゲットしました。
そしてふと、書きかけでドラフトに残していたこの記事の存在を思い出しました・・・
せっかくなので更新!
以前、こんなエントリで、mainメソッド入りテンプレートをつくる話をしました。
この時うすうす、空のクラスにmainメソッド追加したほうが早い気はしてたんです…
というわけで、mainメソッドをさくっと出す方法を書いておきます。
eclipseだと"main"と入力して Ctrl + Spaceですよね、確か。
空っぽのクラスを作ってpsvmって打ってCtrl + space押すなぁ。(NetBeans)
— JPAがわからないゆとり (@megascus) 2015, 3月 29
NetBeansではこうらしい↑。
ちなみに
@ihcomega public static void mainの頭文字〜
— うらがみ (@backpaper0) 2015, 3月 29
じゃ、IntelliJ IDEAは?
同じく、"psvm"と入力してTabで出ます。デフォルトは。
でも、変更したければコード補完はここで設定できます(OS X × IntelliJ IDEA 14.1.3)!⌘
+ ,
押して Preferences -> Editor -> Live Templates (-> other ->pvsm)
私は、"psvm"とか子音の羅列につき打ちづらいので
"main"でmainメソッドが出るようにしました。らくちんだ。ついでに配列を可変長引数にかえてみたり。
ちなみにこの補完の設定のとこ、色々見られて楽しいです。以下、勉強になるトークをお届け。
@backpaper0 できますできます。"hello".soutって打ってタブを押せばSystem.out.println("hello")にもできます
— 山本裕介 (@yusuke) 2015, 3月 29
@backpaper0 "hello".contains("h").ifでタブ押せばif("hello").contains("h")){ } になりますよ!
— 山本裕介 (@yusuke) 2015, 3月 29
@backpaper0 new HashMap().varでタブで Map map = new HashMap(); #idea気持ちいい
— 山本裕介 (@yusuke) 2015, 3月 29
@backpaper0 あ、うそでしたごめんなさい受ける方HashMapでした!
— 山本裕介 (@yusuke) 2015, 3月 29
@yusuke @backpaper0 Shift+TABで型も指定できますよ。あと1〜2回やらすと学習して、次からMapで補完されるはず。 |д゚)チラッ
— いまいまさのぶ (@masanobuimai) 2015, 3月 29
さて。結論としては、なーんだ、やっぱり空のクラスにmainメソッド作るほうが楽やん。
でも、上で貼った先日の記事に対して@yusukeさんがこうおっしゃっていてちょいとハッピー!
mainメソッド入りのテンプレート作るのいいね!
— 山本裕介 (@yusuke) 2015, 4月 5