PL/SQL版はこちら→素数の時にJOJO -Oacle PL/SQL編- - しおしおの雑記帳
ポイントは、select句の素数判定部分。
1と2の場合は、PL/SQLでも同じようにやっているけど、3以上の場合の判定方法はサブクエリを使って判定してます。
判定方法は、自身の平方根をsqrt関数で取得して、その値以下(2より大きい値)で自身の値を割り切れるかで素数かどうか判定してます。
みんなやってたから。
水まんじゅう
mike、mikeなるままに…: 素数の時にEnrico Pucciと出力するプログラムを書いてみた
一応Kotlinでも書いてみました→素数の時にJOJOと出力するKotlin — Gist
おわり。
Eclipseを入れちゃったので、IntelliJとどれぐらい違うのかなと思って比較してみたよ。NetBeansも仲間にいれてます。
id:masanobuimai さんのコメントを元にEclipseにQuick Fixを使用した場合の操作を追加しています。
リファクタリング機能で最も使うローカル変数の抽出機能を比較してみたよ。個人的には、この機能はかなり重要だと思ってます。
Eclipseでローカル変数の抽出をするには、抽出する部分を事前に選択します。選択範囲でローカル変数が抽出できないとエラーになってしまいます。なんか残念すぎますね・・・
下の例だと、「map.get("USER_ID")」の戻り値をローカル変数に抽出します。
範囲選択をしたら、Refactorメニューからローカル変数の抽出を選びます。下の画像のような感じですね。
変数名を入力するダイアログが表示されるので、好きな変数名を入れてあげます。
これで変数の抽出が完了です。型をインタフェースに変えたりってこともできないみたいですね。
抽出範囲は、カーソルの位置によって変わるようです。現在のカーソル位置以降でローカル変数に抽出可能なものを候補として出してくれます。IntelliJと同じ動きですね。
map変数の部分にカーソルがあると、map以降でローカル変数に抽出可能なものがリストされます。
map変数より後にカーソルがあると、mapをのぞいたものがリストされます。
ローカル変数の抽出はリファクタリングメニューの変数の導入から行います。
Eclipseと同じように変数を入力するダイアログが表示されるので、好きな変数名を入れてあげます。
finalにできたりもするようですね。
これで終わりです。型はEclipseと同じように選べないんですね。
抽出範囲の選択は、基本的にNetBeansと同じ動きですね。見た目はこんな感じです。
ローカル変数の抽出は、RefactorメニューのExtractのVariableから行います。昔は、Introduce Variableみたいな名前だった気がします。
個人的には、ダイアログ出すよりエディタ上でのリファクタリングが好みだけど、ここは他のIDEとあわせてダイアログを表示するリファクタリングでいきます。
変数を入力するダイアログが表示されます。変数名は、呼び出したメソッドの名前やMapのキー値などを元に候補として幾つか表示してくれます。これがなにげに便利ですよ。
型も親クラスや実装しているインタフェースを候補で出してくれるので、インタフェースで宣言が簡単に出来ます。下の絵は、new ArrayList
抽出後はこんな感じです。
ちなみにIntelliJでは、ダイアログを出さずにエディタ上だけでの操作も可能です。この切替は、「Settings」の「Editor」から行います。右下の方の「Enable in-place mode」にチェックを入れるだけです。
エディタ上だけで行う場合は、こんな感じになります。shift-tabで型選択になってtabで変数名編集にといったりきたりができます。
微妙な違いがあって、Eclipseはちょっと使いづらすぎるかなと。範囲選択を事前にしないとダメってのは使う気がなくなってきてしまいます。
IntelliJとNetBeansは型選択ぐらいの差があるぐらいかな?この差が個人的にはものすごい大きいと感じてます。
Eclipseは、リファクタリングメニューからのローカル変数の抽出ではなく、Quick Fixからの操作が圧倒的に便利です。(なぜ、同じローカル変数の抽出なのに違いがここまであるのかわかりませんが・・・)
IntelliJとEclipse(Quick Fix)を比較した場合は、そこまで大きな機能差はありません。(最後は好みの問題かな)
おわり。気が向いたら続編書きます。
JSLintをantから使ってみる - しおしおの雑記帳のGradle版。
https://github.com/kellyrob99/gradle-jslint-pluginのプラグインを使うと、GradleからもJSLintを呼び出すことができます。
情報少なく、手探り感満載だけどとりあえず動いたので。
buildscript { dependencies { // jslintのgradleプラグインをクラスパスに設定 classpath fileTree(dir: 'jslint_lib', include: 'gradle-jslint-plugin-0.2-SNAPSHOT.jar') } } // jslintのconfigurations configurations { jslint } dependencies { jslint fileTree(dir: './jslint_lib', include: '*.jar') } apply plugin: org.kar.jslint.gradle.plugin.JSLintPlugin // jslintへの設定 jslint { inputDirs = ['main/web/js'] haltOnFailure = false excludes = '**/*jquery*.js,**/*require*.js' options = 'indent=2,plusplus,maxlen=120,bitwise,continue,white,undef' formatterType = 'html' }
railsのプロジェクト作って、modelを自動生成してみたのでとりあえず自動テストを流してみようと思って実行したら、いきなりこんなエラーが・・・
MiniTest framework was detected. It is a lightweight version of original Test::Unit framework. RubyMine/IDEA Ruby plugin test runner requires 'minitest-reporters' (>= 0.4.1) for integration with MiniTest framework. Or you can use full-featured Test::Unit framework version, provided by 'test-unit' gem, otherwise default console tests reporter will be used instead.
対処法は、下のサイトにかかれてたりしました。
対処法を簡単にまとめると・・・
group :test do if RUBY_PLATFORM =~ /(win32|w32)/ gem "win32console", '1.3.0' end gem "minitest" gem "minitest-reporters", '>= 0.5.0' end
http://siosio.hatenablog.com/entry/2012/07/28/130010:IntelliJでsvn:リポジトリからプロジェクトの作成の続編?
IntelliJ(バージョン11.1.3)からBranch作ったり、switchやmergeする方法をまとめてみました。
svn switchに相当する処理は、Update Projectから行います。まさかここにあるとは思わず、かなり探しました。
選択後OKで、switchの完了です。
branchでコード編集をしてコミットbranchに対してコミットをしてあげます。
説明することがあまりないので割愛。
branchに変更した時と同じ手順でtrunkに変更します。
branchリストが表示されるので、今回mergeするnew_branchを選択します。
あるはずのbranchが表示されない場合は、リフレッシュしてあげましょう。
下のダイアログが表示されるので、全てをmergeするかリビジョンを選択するか選びます。
今回はリビジョン選択で・・・
選択するのではなく、チェックをいれていきます。
必要に応じてコミットメッセージを直しましょう。
おわり。