» 技術のブログ記事

SQL ServerのISNULL関数、OracleのNVL関数、MySqlのIFNULL関数。
そして、PostgreSQLのCOALESCE関数。

どれも同じ機能ですが、COALESCEの綴りがすっごく覚えづらいですよね。
なので、私はこう覚えました。

「コーアル・イー・ソニー・コンピュータエンタテインメント *1

*1 ソニー・インタラクティブエンタテインメントの前の名前。略称が「SCE」。

あーーーーーー

ーーーーーーーーーーーー!!!

やってしまった!!!
急いで申請中です……。

 

なにこれ、ただの Piskesoft のサイトじゃん?

 

 

!!

 

Chromeの強制的な警告表示が2018年7月から開始
さくらインターネット より

Piskesoft は Google Chrome の警告表示に備え、常時 SSL 化対応をしました。

完全に趣味のサイトで、証明書の費用もかかってしまうので別に対応しなくてもいいのでは……と思ったのですが、知的好奇心をくすぐられてやってしまいましたw

オナ禁タイマーのウィンドウが行方不明になってしまった場合、以下の方法で見つけることができます。

1. タスク スイッチのオナ禁タイマーのアイコンにカーソルを合わせてしばらく待つ
how-to-found-onakin-timer-01

2. ウィンドウのプレビューが表示されたら、そこで右クリックをする
how-to-found-onakin-timer-02

3. [移動] メニューを選択する
how-to-found-onakin-timer-03

4. キーボードの方向キーのいずれかを押す
how-to-found-onakin-timer-06

5. マウスをおもむろに動かすと、オナ禁タイマーのウィンドウがついてきます
how-to-found-onakin-timer-04

または、通知領域に隠れている場合もありますので、併せてご確認ください。
how-to-found-onakin-timer-05

Mac 買いました

| 技術, 日常 | | 2件のコメント

過去に Apple が嫌いだと言った私でしたが、最近 Mac を買いました。
機種は MacBook Air Late 2010 です。
車やバイクと同じ感覚で、まずは中古を使い倒して慣れてしまおうと言う考えです。
お金がなかったからとかいう理由じゃないよ。 ←半分はそれ
使い出した理由は今後言いますが、まずは 2 か月ほど開発機として使ってみての感想を書き留めたいと思います。

  • 良い点

    画面がキレイ
    さすが、というべきでしょうか。
    どこを見回してもビットマップ フォントなど見当たりません。
    ちなみに画面解像度 (画素数ではありません) が 72dpi なので、12pt のサイズの文字がかなり小さく見えます。
    ですが、綺麗なアンチエイリアシングのため見づらいということはなく、また、文字が小さいということはそれだけ多くの情報を表示できるので、画素数が 1366 x 768 の MacBook Air でもソースコードを読むのにそんなに狭さを感じません。
    また、コントロールの背景色 (MDI の何も開いていない状態のアレの背景) なども単色でないので、なんとなくキレイに見えたりします。
    標準アプリが意外と使える
    メモやカレンダーなどは、iCloud のアカウントがあればそれと自動的に同期してくれます。
    iCloud を通して iPhone とも標準のアプリだけで同期できるのは素晴らしいですね。
    (私の携帯は iPhone ではないので、その恩恵はありませんが……)
    ネットワーク プロファイルの切り替え
    自宅では IP アドレスを固定している場合でも、テザリングでは DHCP という方は多いのではないでしょうか。
    Mac では OS 標準のネットワーク設定で DHCP と固定 IP アドレスの切り替えができます。
    おまけに名前をつけて管理をすることもできます。
    そのため、たとえば自宅と会社が固定 IP アドレスで、テザリングのみ DHCP という場合でもプロファイルを 3 つ作っておいてそれを切り替えるだけで対応できます。
    まぁ、Android では (iPhone でもそうかもしれませんが)、Wi-fi のアクセス ポイントごとにその設定ができる (アクセス ポイントが切り替わるだけで設定も切り替わる) ので、そうなってくれれば 100 点満点なんですが。
    Windows は今でもそれらのどの機能も実装されていない理由がわかりません。 切り替えのためのバッチファイルを作って管理者として実行しなきゃいけないのは大変です。 頑張ってよ、Microsoft さん……。
    起動音
    個人的に、起動時の「デューン!」が気に入っていますw
  • 良くない点

    フリーソフトが少ない
    特に開発に使うアプリが少ないように感じます。
    DiffMerge というテキストの比較をするソフトでは、ファイルやフォルダ同士の比較はできますが、ドキュメントを新規作成しオン メモリで比較する機能がないなど、若干の機能不足を感じます。
    なお、有料ソフトでは高機能のものがあるようですが、Windows ではフリーで実現できる機能にお金を払うのは……と、購入に二の足を踏んでしまいます。
  • 勘違いされる点

    Mac は落ちない
    落ちます。 普通に。
    昨今の Windows と同じくらいの頻度で強制終了をしています。
    Mac は同スペックの Windows マシンと比べて動作が高速
    んなことありません。
    やはり Core 2 Duo 1.4 GHz では、それなりの動作速度です。
  • 慣れが必要な点

    日本語入力の切り替え
    Windows では「半角/全角」キーで切り替えますが、Mac では「英数」キーと「かな」キーで切り替えます (JIS 配列の場合)。
    今でこそようやく慣れてきましたが、未だに「1」キーを押してしまうことがあります。
    また、Windows に戻ると「変換」「無変換」を押してしまいそうになります。
    非英語圏のユーザーにとっての宿命でしょうかw
    ちなみに delete はそのキーの位置からすぐに慣れることができました。
    (Mac の delete キーはキャレットの前の文字を削除します。 Windows だと Backspace の役割です)

結論として、Windows vs Mac の決着は付かないものだと思いました。
特別な事情がない限り、また、趣味として Web ブラウジングをするとかメールをするとかだと、どちらでもいいような気がします。
私は一応特別な事情があるので、MacBook Pro が欲しいなぁ、と Apple のサイトを眺めていますw

メールチェックをしていたら、いつもよりメールが少ないことに気づきました。
ていうか、一昨日からメールが来てませんでしたw

自分のメールアドレスに携帯から送ってもエラーで返され、
更には www.piskesoft.com にも接続できず、な状況でした。

ping も nslookup も「そんなホスト名知らねーよバーカ」状態で、
どうしようもなくお名前.com に問い合わせてみました。

すると、「レジストリがドメインを凍結している」とのこと。
なんでも、登録者情報が間違っているとのことですが、おかしな所が見つから……

『都道府県: 北海道』

あったーーー!!www

北海道桶川市ってなんじゃそらw
即刻修正しましたw

担当者の方が、最近、登録者情報のチェックが厳しくなった、とおっしゃっていました。
ドメインをお持ちの皆様、お気をつけ下さい。

ちなみに、復旧までには少し時間がかかるかもしれません、
と言われましたが 1〜2分で繋がるようになりました。

しかし、何というかまぁ、よりにもよって登録が北海道だったとは。 北海道に帰れってことですかね?w

会社のゲートウェイサーバー&DNS サーバーの HDD が飛びました。

ゾーンファイルのバックアップぐらい取っとけよ、俺……orz

ほーら、ね。 1か月以上も放置してる。
ネタはいくつかあったんですが、投稿が面倒になってましてねw

それはそうと。
最近、電子工作に再々々……ハマりしまして、いろいろ組んでみてます。

いま、電気二重層コンデンサ (別名: スーパーキャパシタ) ってどれくらい持つんだろう、と自然放電の実験なんぞをしております。

テスター棒を箸のように

ふと思ったのですが、テスター棒を箸のように持つのって、日本人特有なものなんでしょうかね?w

オナ禁タイマーのソリューション エクスプローラ

うーん、古い!

オナ禁タイマーのソースを見直してみた感想です。

文字列関係だけで言っても
 ・TEXT() マクロで切られてたり、そうでなかったり。
 ・lstr~系の関数が _s じゃなかったり。
 ・保存されている文字列が UNICODE じゃなかったり。

こりゃー、時間かかりそうだな……w

いま私が自宅で使用しているプロバイダーは、マンションタイプです。
んで、グローバル IP アドレスをくれないというクソ仕様です。

実は半年くらい前に引っ越したのですが、引っ越す前は普通にグローバル IP アドレスをもらえるプロバイダだったので、FTP やら VPN やらを外に出してたんですね。
それができなくなったことで、もう不便で不便で……w

そこで、ファイル転送だけは何とかしようと、ファイル転送ゲートウェイ的なプログラムを組んでみようかな、なんて思いました。

ゲートウェイ ソフトウェア開発計画

無理。 プロジェクトの規模が大きすぎて諦めましたw

んじゃー、一体どんな方法があるのか……と考え抜いたところ、VPN があるじゃない、と思い付きました。
VPN サーバーを外の VPS かなんかに立てて、ウチ側ゲートウェイをそこに繋ぎっぱなしにすればいい、と。

VPS の選定

VPS は、さくらにしました。
石狩にデータセンターがあることが決め手となりました。 ←北海道出身

インストールと設定

CentOSで自宅サーバー構築 – VPNサーバー構築(OpenVPN)を参考にしました。

(4)証明書廃止リスト作成 までの間で、記載の内容と違う部分

・easy-rsa がいない
Blog on fuketch.net – OpenVPNの設定(その1:認証用ファイルの生成)
>OpenVPN 2.3からeasy-rsaが同梱されていないので別途ダウンロード。

ので、上記のページを参考にダウンロード、およびコピーします。

・whichopensslcnf の修正
バージョン更新に伴い、既に修正されているのでいらないみたいです。

これに従ってできるネットワークは、以下のようになると思います。

VPN ネットワーク図

各マシンの呼称

図中にも記載していますが、各マシンは以下のように呼ぶこととします。

・VPS に構築した VPN サーバー
ext-gateway
・自宅側の VPN クライアント
int-gateway
・外出先ネットワークの VPN クライアント
mobile
・自宅ネットワーク内のファイル サーバー
file-server

IP アドレスの固定

int-gateway の IP アドレスは、固定にしたいです。
というのも、ほかのクライアントが向く先になるからです。
そのためには、以下の設定をします。
なお、証明書は int-gateway という名前で作成したものとします。

[ext-gateway] /etc/openvpn/server.conf


client-config-dir ccd

コメントアウトを解除します。

[ext-gateway] ccd ディレクトリの作成


# mkdir /etc/openvpn/ccd

[ext-gateway] /etc/openvpn/ccd/int-gateway (新規)


ifconfig-push 10.8.0.5 10.8.0.6

ルーティング等の設定

このネットワークでのパケットの往復のイメージを示します。

VPN ルーティング図

まずは往路です。 青い線と番号で記された経路です。
① 192.168.0.0/24 宛のパケットは、10.8.0.5 に送る
② クライアント間の通信を許可する
③ 10.8.0.5 と 192.168.0.50 の間は、パケットを転送する
④ 192.168.0.5 にパケットが到着する

次に復路です。 赤い線と番号で記された経路です。
これに大ハマりしました。
⑤ 10.8.0.zzz は、192.168.0.0/24 外であるので、デフォルト ゲートウェイに送る
⑥ デフォルト ゲートウェイは、10.8.0.0/24 のパケットを 192.168.0.50 に転送する
⑦ 10.8.0.5 と 192.168.0.50 の間は、パケットを転送する (③ と同じ)
⑧ クライアント間の通信を許可してあるので、10.8.0.zzz にパケットが到着する

それでは、設定方法です。

① 経路情報を追加する
VPN クライアントに対して、経路情報を追加するよう設定します。

[ext-gateway] /etc/openvpn/ccd/int-gateway


iroute 192.168.0.0 255.255.255.0

[ext-gateway] /etc/openvpn/server.conf


route 192.168.0.0 255.255.255.0

②、⑧ クライアント間通信を許可する

[ext-gateway] /etc/openvpn/server.conf


client-to-client

コメントアウトを解除します。

③、⑦ ルーティングする

参考にしたサイトでは、VPN サーバーがルーティングを担っていますが、今回の環境では、int-gateway がルーティングすることになります。
int-gateway のルーティングの設定は以下のようになります。

[int-gateway] /etc/rc.d/rc.local に以下を追記 (どこでもよい)


echo 1 >/proc/sys/net/ipv4/ip_forward

[int-gateway] /etc/sysconfig/network


NETWORKING=yes
HOSTNAME=int-gateway
FORWARD_IPV4=yes
GATEWAY=
GATEWAYDEV=

[int-gateway] /etc/sysctl.conf


net.ipv4.ip_forward = 0

ここまで設定したら、一度再起動します。

⑥ 静的ルーティング

192.168.0.0/24 のネットワークに属する file-server は、10.8.0.zzz から受け取ったパケットをデフォルト ゲートウェイに返します。
なので、デフォルト ゲートウェイが 10.8.0.0/24 を返す先として、192.168.0.50 とするよう静的ルーティングを設定してあげます。

静的ルーティング

なお、静的ルーティングを設定できないルーターを使用している方は、以下の方法もあります。

IP マスカレード

この、masquerade と書かれている部分でポート番号と IP アドレスを変換しています。
うまいこと変換してもらえたので、file-server は 192.168.0.50 にパケットを返せばいいことになります。
その設定は以下の通りに int-gateway で設定します。


# iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE

ファイアウォールについて

ext-gateway の iptables は


# iptables -A INPUT -p udp -m state --state NEW -m udp --dport 1194 -j ACCEP

だけでおk

int-gateway の iptables は、全解除。


# iptables -A INPUT -P ACCEPT
# iptables -A FORWARD -P ACCEPT
# iptables -A OUTPUT -P ACCEPT
# iptables -F

内側のサーバーの eth0 はインターネットからアクセスできず、また、都合上外側に向いている tun0 は証明書なしでの接続ができないため、利便性を考慮し、全スルーとします。
不安な方は、絞ってもよいかと。