ORA-01476出たのでNVL/NULLIFの確認

Oracle ORA-01476 について

  • 0除算なんだけど、NULLIF/NVLの違いが詳しく理解出来てなかったのでメモ
SQL> SELECT 2 / 0 FROM dual;
SELECT 2 / 0 FROM dual
         *
行1でエラーが発生しました。:
ORA-01476: 除数がゼロです。
  • 分母の除数が0の場合はnullを渡す
SQL> SELECT 2 / NULLIF(0, 0) FROM dual;

2/NULLIF(0,0)
-------------

NULLIF

  • 第一引数と第二引数が一致した場合にnullを返す
  • NVLと同様にnullの場合に0を返すイメージだったが、nullを返すという事で納得

参考

PHPのinteractive shell psyshを利用する

brew update で Permission denied

/usr/local/bin/brew: line 28: /usr/local/Library/brew.rb: Permission denied
/usr/local/bin/brew: line 28: exec: /usr/local/Library/brew.rb: cannot execute: Undefined error: 0

brewがいる /usr/localに権限がないとか

この記事を参考にさせて頂きました

$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$ git reset --hard origin/master

あとは、psyshのgithub READMEを参照

  • composerのpathを通してREADMEの通りに対応
export PATH=~/.composer/vendor/bin:$PATH
$ brew update && brew install composer
$ composer global require psy/psysh
# If asked what version constraint to use just type `*`
  • pshsyを叩く
➜  /tmp psysh
Psy Shell v0.7.2 (PHP 5.5.31 — cli) by Justin Hileman
>>> echo "interactive mode にするためにpsyshって打つのを思い出すのが一番つらい";
interactive mode にするためにpsyshって打つのを思い出すのが一番つらい⏎
=> null
>>>

Karabinerの設定ファイルをDropboxで管理

設定方法はKarabinerの公式Documentにあった 公式Doc

<include> with Dropbox
You can synchronize your private.xml by Dropbox or other file syncing service.

private.xml
<?xml version="1.0"?>
<root>
  <include path="{{ ENV_HOME }}/Dropbox/private/Karabiner/core.xml" />
</root>

Dropbox/private/Karabiner/core.xml
<?xml version="1.0"?>
<root>
  <item>
    <name>Dropbox Test!</name>
  </item>
</root>

参考にさせて頂きました

Vimでノーマルモードに戻った時に日本語入力OFFに変更

最近またVimキーバインドの練習を始めた
IntelliJ、SublimeText2もVimモードで利用中

  • karabinerを利用して"Ctrl+["を押下後に日本語入力OFFにする
  • 設定時に利用するappname,equalの表示方法
    • アプリケーション > 対象のアプリを右クリック > パッケージ内容を表示
    • Contensフォルダ内のinfo.plistを確認
    • CFBundleName -> appname に利用
    • CFBundleIdentifier -> equal に利用

Karabiner private.xml

<?xml version="1.0"?>
<root>
  <appdef>
    <appname>iTERM2</appname>
    <equal>com.googlecode.iterm2</equal>
  </appdef>
  <appdef>
    <appname>MACVIM</appname>
    <equal>org.vim.MacVim</equal>
  </appdef>
  <appdef>
    <appname>Sublime Text 2</appname>
    <equal>com.sublimetext.2</equal>
  </appdef>

  <appdef>
    <appname>IntelliJ IDEA</appname>
    <equal>com.jetbrains.intellij</equal>
  </appdef>
  
  <item>
    <name>Leave Insert Mode with EISUU (vim keybind apps)</name>
    <identifier>private.vim_keybind_apps_esc_with_eisuu</identifier>
    <only>iTERM2,TERMINAL,MACVIM,Sublime Text 2,IntelliJ IDEA</only>
    <autogen>__KeyToKey__ KeyCode::ESCAPE, KeyCode::ESCAPE, KeyCode::JIS_EISUU</autogen>
    <autogen>__KeyToKey__ KeyCode::BRACKET_LEFT, VK_CONTROL, KeyCode::BRACKET_LEFT, VK_CONTROL, KeyCode::JIS_EISUU</autogen>
  </item>

</root>

参考にさせて頂きました

ジムに入会

2月1日に会社の近くに24時間営業のジムが出来た。 以前から気になっていたが、重い腰をあげて入会してみた。 出勤前に通って汗を流せればと考えている。 1月、2月、3月に関してはほぼ週末に運動できているため、運動の習慣化は出来てきたと思う。

目的

  • 月間の走行距離を増やす
    • コンスタントに50km/月
    • 1月達成
    • 2月70%
    • 3月70-75%
  • 週末のランニング時間を家族時間に割り当てる
    • 1時間30分くらい土日にもらってる
    • この時間だとどんなに頑張っても10km/1回が限界
    • 実際は7km/1回くらい
  • 朝方人間へのシフト
    • いつかはやってみたいと思っていた

今までの課題

  • 業後にジムに通おうと思っていたが、なかなか仕事終わりに行けるテンションと体力がない
  • ついつい会社に残って仕事(ではない事もある)をしている

目標

  • 習慣化(頻度)

    • とりあえず強制入会の7月末まで頑張る
    • 4月 2回/週
    • 5月 2-3回/週
    • 6月 3回/週
    • 7月 3-4回/週
  • 月間走行距離

    • コンスタントに50km/月
  • 週末

    • 運動は行わず家族と過ごす時間を少しでも増やす

実践したい事

  • ランニング中に英語教材
    • 音読パッケージ
      • 先行リスニング
      • 音読
      • シャドーなど

PHPとRubyの式展開(interpolation)

interporlationと書きたかった。だけです。

PHP

$name = "太朗";
echo "私の名前は、$nameです";

これだと、変数の後ろがアルファベットだと$namedesu になりわけわからない。

$name = "次郎";
echo "私の名前は、${name}です";

Ruby

Railsチュートリアル第4章から

>> first_name = "Michael"    # 変数の代入
=> "Michael"
>> "#{first_name} Hartl"     # 文字列の式展開
=> "Michael Hartl"

ついで

今までPHPを書いてて文字列リテラルを"" / '' で迷う。というか既に実装されている部分が""なら"" 、''なら''で合わせていた。 しかし、上記のように式展開するとなると、基本は""だよな。と改心しました。 ''を使うのは改行コードを直接変数として利用したい時など。 以下は再度Railsチュートリアル第4章から参照

>> '#{foo} bar'     # シングルクォートで囲まれた文字列では式展開されない
=> "\#{foo} bar"

>> '\n'       # 'バックスラッシュ n' をそのまま扱う
=> "\\n"