[SQL]with句の効用

[SQL]SQLの共通表式ではSQLのwith句でテストデータの生成ができるってことを書いたけど、それ以外にもwith句には効用がある。

・サブクエリにコメントを付けておこう。
SQLだと他のソースコードに比べて、コメントがおろそかになっていることが多いけど、サブクエリ毎にコメントを付けておくとわかりやすいんじゃないだろうか。

サンプル用のテーブルはこんな感じ。
IDをキーにして、開始日と終了日を持っているとしよう。

Periods
ColumnType
idChar(5)
start_dayDate
end_dayDate

[C]オペークポインタ

「いくつかの言語でフィボナッチ数生成」を考える。ではハンドルに配列そのものを使っていたけど、CのAPIでハンドルを使う場合はオペークポインタにすることが多いよ。

「いくつかの言語でフィボナッチ数生成」を考える。の結果をオペークポインタを使ったものに変えてみよう。
まずは呼び出し側を見てみよう。

main.c
#include <stdio.h>
#include "fib.h"

int main(void) {
    hSequence fib = fibonacci_new();

    for (int i = 0; i < 10; i++) {
        printf("%d\n", fibonacci_next(fib));
    }

    fibonacci_delete(fib);

    return 0;
}

[Java]Mapのループ

JavaでMapをループする時に、なんとなしにkeySetを使ったりしていた。

MapIterate1.java
import java.util.HashMap;
import java.util.Map;

class MapIterate1 {
    public static void main(String ... args) {
        Map<String, String> map = new HashMap<>();
        map.put("banana", "yellow");
        map.put("apple", "red");
        map.put("orange", "orange");

        for (String key : map.keySet()) {
            System.out.println(key + ":" + map.get(key));
        }
    }
}

けれど、パフォーマスを考慮するとentrySetを使ってループしたほうがいいみたい。

[bash]キャリッジリターンの使いどころ

Unixの改行コードはLFでWindowsの改行コードはCRLFだ、なんていう話はよく出てくる。

CR(carriage return)というのは本来、現在位置を行の先頭に戻すだけで次の行には進まない。
LF(line feed)は逆に行中の位置は変えずに現在位置を次の行に進める。

じゃあ、CRのみを使うのはどういった場面があるだろうか。
例えば、コマンドラインで進捗状況を表示することを考えよう。

count.sh
#!/bin/sh

for i in $( seq 10 )
do
  # \rで行の先頭に戻ってから出力、改行はしない。
  printf "\r%2s/10" $i
  sleep 1
done
echo ''