環境構築・零

環境構築のその先へ

GitExtensionの日本語について

開発者から...Twitterで反応がありました。

英文の通りです。

うれしいですね、話せることは。

過去ログ

takkii.hatenablog.com

miniテストに関する話題。

www.nyasocom.site

ねこだるまに先日追加したメソッド。

minitest-reportersというRubyGemsにありました。

gem install minitest

gem install minitest-reporters

github.com

レイアウトが変わるので、かなりみやすくなります。

www.nyasocom.site

フォルダの構成は、test-unitとほぼ同じです。

www.nyasocom.site

画像のような結果をみることができます。

github.com

実行手順、例。

git clone http://www.nyasocom.site/takkii/zinbei.git

cd zinbei

ruby mini_test_runner.rb

※ mini_testとunit-testがあればRubyで開発手法の主流であるTDDなども行えますね。

環境構築、確認OS。

このブログの記事で動作確認

dein / neovim / deopleteなどの導入

Neovim / Vim8

Windows10
MacOSX mojave
Linuxカーネル
( Ubuntu
LinuxMint
Zorin )

難易度が高いツールの動作確認できました。

テキストエディタの選択肢として、Neovim / VIm8 は有用です。

今年もお世話になりました。来年もよろしくお願いします。

ねこだるまの更新と雑談。

github.com

クリスマス、イブイヴにねこだるまの更新。

ユニットテストメソッドに対応しました。

メリークリスマス、ひと足早く。

サンタとトナカイ、deopleteとねこだるま、そんな相性。

2017年に作ったつぶやきツール。これで完結。

mikutterはglibやgtkなどのパッケージを使っていたはずです。しかし、Ruby/Tkでもそれなりのツールが作れます。こだわれば、まだまだいけるはずです。私も少しずつレイアウトを変更していこうと考えています。課題とまでいかなくても、自作のツール。増えると楽しいですよ。私の作成したつぶやきツールは、これで完結です。サポートは、今後もしていきます。

defxでiconを使ってみる。

github.com

f:id:emerald00:20181123132337p:plain

defx_icon

環境

mac mojave

neovim-qt

deinでtomlを使う→ :call dein#update() 、 自動インストール設定してあれば不要

[[plugins]]
repo = 'kristijanhusak/defx-icons'

Unicodeの絵文字一覧

※ このサイトから絵文字を貼り付けて、

init.vimにはこう書いてみる

let g:defx_icons_enable_syntax_highlight = 1
let g:defx_icons_column_length = 2
let g:defx_icons_directory_icon = '♦️'
let g:defx_icons_mark_icon = '*'
let g:defx_icons_parent_icon = '♦️'
let g:defx_icons_default_icon = '♦️'
let g:defx_icons_directory_symlink_icon = '♦️'

将来予想(予定は未定であって決定ではない)

let g:defx#custom#column = '👍'

Neovimなどでdefxを起動

:Defx -columns=icons:filename:type

グループ名に不正な文字があります→enter

サポートされていないので、こうなるんだろうな...

表示可

♦️
☃
▪️
♣️
♠️
♟    など

表示不可

✈️ 
📕
📂
📂
🌲 など

追記

話題になっていて、メールが回ってきた午前中はできなかったが、いろいろ試していたことにより、絵文字でも、表示できるものとできないものがあることを見つけた。絵文字に関しては、入力補完でもプラ銀があるくらい、Vimでは表示することは一般的のようだ。面白いんじゃないか。。環境の絵文字に関する設定によっては、表示できるらしい。とりあえず、絵文字に関して、共通の絵文字は表示できることがわかりましたよ。

今後、どのような仕様になるのか、注目のdefx。進化に期待。

> vim-comに :DefxF コマンドを追加しました。 Defxをアイコン表示するコマンドを短縮します。

以上です、再会は次の記事にでも。

Javaを使ったプロジェクトのワークフロー例。

ゲームエンジンを作る際に、原因を仮定し進めていく。 何も手に付かないよりとりあえず行動することで、 原因にたどり着くという手法の例。

数独は「決められたマスに決まった数字のみうめていくパズル」
難易度が高くなると、数字を仮定し正解にたどりつくかどうかを調べていく。
あとは、運次第。運がよければそれで解法がみつかる。
「今回のエラーの可能性を消していくと同意義、それは"消去法"→"仮定法"である。」

資料

Internal Server error 500 が発生する。原因がわからない ... とりあえず、こう考えてみる↓

jode-time.jarを使ったJDK7でDateTimeライブラリを使った際、時刻を取得するときにnullが発生する

仮定

① JDK7でjode-time.jarはJDK7の補い、2.3であれば動作が保証される

・Androidは7.0 → 1.8 JDK
・iOSでもiPhone5以下、6以上JDK8(現在のバージョン)

このとき、新しいjode-time.jarにセットすべき。 JDK8の標準ライブラリはjode 2.10が標準 - JSR-310 - DateTimeAPIを参照すべき。

対策

・if 文 ~ elsif ~ else

Javaが7または8のバージョンを知るとき、新しいjode-time.jarがセットされるように処理する。

対策2

JRubyプロジェクトを.jarへ変換。.jarでjavaに読み込む処理をセットする。

発生しうる例外

・ArrayIndexOutOfBoundException ... 不正なインデックスを使って、配列がアクセスされたことを示すためにスローされる。
インデックスが負で配列のサイズ異常が予想される。

・IllegalArgmentException ... 不正または不適切なときにメソッドが呼び出されたことを示す。Java環境、Javaアプリケーションは、要求されたオペレーションに適した状態ではない。

・NullPointerException ... null値が入った型、変数を参照しようとした時、発生する。

・実行時例外 java.lang.Runtime.Exception
例外処理なし → コンパイルエラーは起きない。

試行錯誤

可能性

① 改行コードが含まれるとき ... execute、CR + LF、LF、CRのとき、InternalServerError500を起こす。

② 複数のスレッドが共有しようとしたとき、javaでデッドロックが起きる

対策

 原因を突き止める。仮定の材料。とりあえず、これなのか、これじゃないのか、もしくは原因は何なのかを知ることができる。

追記

このような対策をとるべきことはあまりない。ほとんどの場合、実装が独自のものであり、情報共有の場がある。試行錯誤せずともすべての結果を手に入れている。この例は、流用コードを改変していく際に用いる。最小の変更で最大の効果を出すためには、仮のプロジェクトを作るしか方法はないと考えた。しかし、全体のバグと対策を知るために莫大な時間と労力がかかる。何年もかけて、バグを消していけるならこの方法を繰り返していくといいだろう。失敗は成功の素というが、どれだけの失敗にも成功の形を意識することができる。成功よりも失敗から得られることは多い。失敗を受け入れないとしたら、成長などありえない。

Copyright © 2007-2018 Takayuki Kamiyama. All Rights Reserved.