2021年7月8日木曜日

accessのクエリで2つのフィールドの和や差をとるといった四則演算ができない現象を解決する物語

  accessのクエリで2つのフィールド(A,B)の和(A+B)や差(A-B)といった四則演算ができない現象に遭遇した。何故、たかが足し算や引き算が出来きんのかなぁ、何が原因なのだろうといろいろと試行錯誤した。計算ができない事態が起きている。その原因は何だろう。そして、突然、閃いた。クエリーで取ってきたフィールドの値がNullになっている箇所があり、それが故に計算できないのではないかと仮定してみた。何故、そんな都合よく、思いついたのか、わからない。

 兎も角、そこで、Nz(A,0)+Nz(B,0)1とかNz(A,0)-Nz(B,0)1という具合にNz関数を使用し、和や差をとってみた。そして、見事に計算できた。

 Nz(A,0)はフィールドAがNull以外ならば Aの値を、Nullならば0をセットする関数だ。つまり、Nullの代替値として0をセットし、Nullがあるが故に演算できないという事態を回避できる訳だ。

 逆に言えば、accessはNullが混じると四則演算といった単純な演算ができず、おまけに出来ないことを知らせるエラーメッセージさえも出さない(出せない)ヤツなので、自分で気が着くしかないということだ。    

 このNz関数が使いこなせるようになれば、access名人に向けて、「ワンランク昇格」だ。

 ここで、一息のコーナーは、ステーキの焼き方だ。

 1センチの肉を焼く時間は、片面1分30秒、もう片面は45秒。1センチ増すごとに+30秒だ。強火で、肉は常温に戻さない。フライパンに蓋をして、2分余熱で通す。




2021年6月17日木曜日

ACCESS(もしくはSQL)で2つのテーブルの片方にしかないデータを抽出するまでの物語

 ACCESSで2つのテーブル(TABLE_AとTABLE_B)が同じKEYフィールドを持つ場合、片方にしかないKEYフィールドのデータを抽出するには、どうすれば良いのか?
AleftOuterJoinBonA.KEY=B.KEYwhereB.KEY=NULL
 【テーブルAにしかないデータを抽出】





 例えば、TABLE_Aにのみ存在するKEYフィールドのデータを抽出するには、SQLビューで、SELECT  * FROM TABLE_A LEFT OUTER JOIN TABLE_B ON TABLE_A.KEY = TABLE_B.KEY WHERE TABLE_B.KEY = NULLと打ち込めで、クエリを作ればいいのだ。
 このSELECT * を使うと、テーブルTABLE_AからKEY が TABLE_Bにはない値を持つデータ(レコード。即ち、行)を抽出してくれる訳だ。


 この=NULLが使いこなせるようになると(この壁を乗り越えるのは意外と簡単ではないが)、ACCESS(SQL)名人に向けて、「ワンランク昇格」だ。いや、「スリーランク昇格」かもしれない。

 ここで、一息、レンチンのとうもろこし。トウモロコシの薄皮を1枚残し、塩水を振りかけて、600度で片側2分、ひっくり返して、600度でもう2分だ。とても美味しいとうもろこしの出来上がりだ。美味しい。もう水から茹でるなんてしない。



  

2021年4月23日金曜日

FMV-BIBLO NB50S slacko7にath5kがなかったので、やむを得ず、kernelを再構築し、ワイヤレスでネットにやっとつなげることができるまでの物語

 slacko7(puppyLinux)がなかなかクールだったので、FMV-BIBLO NB50Sにいれてみた。ところが、カーネルにath5kがないため、ワイヤレスでネットにつなげることができなかった。


それならば、カーネルを再構築するしかないなーと。カーネルソースのsfsとmakeするためのdevナントカ.sfs(開発環境)をインストールし、cd /usr/src/linuxし、make menuconfigでath5kがコンパイルされるようにした。ざっくりといえば、network driver-->のnetwork device support-->のatherosチームを<M>としてみた。そして、make modulesし、make modules_installした。ついにath5k.koができたので、make bzImageでできたbzImageをvmlinuzに変更して、再起動し無事にネットにつながったFMV-BIBLO NB50Sで、この記事を書いているのだ。なお、dmesg | grep ASPMすると、ath5KでASPMのエラーがでていた。エラー回避のために、terminalで以下のコマンドをはたいておかないといけない。
rmmod ath5kし、modprobe ath5k nohwcrypt=1 no_hw_rfkill_switch=1をたたく。次回の起動時に自動的にこれを行うため、echo "options ath5k nohwcrypt=1 no_hw_rfkill_switch=1" > /etc/modprobe.d/ath5k.confも叩いておく。

 J・P・ホーガンの「星を継ぐもの」「ガニメデの優しい巨人」「巨人の星」の3部作を読んだ。振り返ると、第1作目が一番、衝撃的で、面白かったと思う。小説は面白いですね。電車通勤をするようになり、本が読めるようになって、よかった。

 

 

2021年4月7日水曜日

前月同日は、DATE(YEAR(B2),MONTH(B2)-1,DAY(B2))ではなく、EDATE(B2,-1)を使う~EXCELの関数技のお話

 EXCELの関数で、前月同日はどう表現するのか、最初にググって、試したのは、DATEとYEAR,MONTH,DAYを組み合わせたものだった。当日の日付がB2セルに設定されていると仮定する。前月同日は、=DATE(YEAR(B2),MONTH(B2)-1,DAY(B2))という関数で求めることができる。  

 ところが、=DATE(YEAR(B2),MONTH(B2)-1,DAY(B2))だと、当日が月末(29日~31日)に差し掛かると前月同日が同じ日が存在しないため、マズいことが起こる。例えば、当日が2021年3月31日であった場合、前月同日は2021年2月28日となるべきだが、このDATE,YEAR,MONTH,DAYの組み合わせだと、2021年3月3日?になってしまうのだ。  

 こんなときは、=EDATE(B2,-1)を使うと、具合が良くなるのだ。先の例でも、これなら、ちゃんと2021年2月28日を求めることができるのだ。 

 前月同日の関数は、=DATE(YEAR(B2),MONTH(B2)-1,DAY(B2))ではなく、=EDATE(B2,-1)を使いましょう!(B2セルに当日の日付が設定されていると仮定) 

 そして、前年同日の関数は、 =DATE(YEAR(B2)-1,MONTH(B2),DAY(B2))ではなく、=EDATE(B2,-12)を使いましょう!

 ちなみに、ACCESSだとEDATE関数が使えず、DateAdd関数を使う。同月同日ならばDateAdd("m",-1,[日付])やDateAdd("m",-1,TODAY()-1)。前年同日ならばDateAdd("yyyy",-1,[日付])とかDateAdd("yyyy",-1,TODAY()-1)といった「さばき」になる。

 ここで、一息のコーナー。空豆を茹でると、栄養分が湯に流れ出るので、勿体ない。そこで、レンジで600w、2分30秒から3分で鞘のついたまま、チン。ホクホクして、実においしい。

 

2021年3月30日火曜日

星を継ぐもの~30年積読を経て

 最近、ジェームズ・P・ホーガンさんの「星を継ぐもの」を最後までやっと、読むことができた。 なにせ、この30年、積読というか、読み始めると、すぐに睡魔に襲われ、何度となく、挫折していたのだった。 何故、今回は最後まで読めたのだろうか?よく、わからないのだが、最初の月面を歩く2人の男のシーンから前に 進むことができなかったのである。わくわくしなかった。 兎に角、そこをじっーと我慢できたのが勝因だろう。 さて、読み終えた感想は、面白い。凄く、面白い。もっと早く、耐えておけばよかったんだけどね。

 そして、続編の「ガニメデの優しい巨人」を読み、巨人たちの哀しみというか、切なさを感じた。さらに、その続編の「巨人たちの星」に挑む。

2021年1月29日金曜日

ubuntu20.04 +macbook pro(late2013)インストール物語

 ライブDVDでは、まず、wifiを認識してくれない。これが最初の壁だ。 原因はbroadcomのwlanドライバがプロプライエタリなためだ。

 ライブDVDを使うだけならば、対策としては、インストール途中にプロプライエタリなドライバーをロードするサービスを利用すればよい。 具体的には、インストール用のアイコンをクリックし、ディスクを選択する直前でプロプライエタリのソフトウェアのダウンロードをするかどうかきかれるので、ダウンロードを選択すればよい。

 その後、インストール先のディスクを選ぶところでインストールを中止すればよいのだ。 その後、設定アイコンをクリックし、wifiタブをみるとドライバがロードされ、アクセスポイントがずらりと並ぶ。 

 実は、この記事はusbへインストールしたubuntuかつ、macbook pro(late2013)で書いているだが、ここまでくるには、もう2つ、3つの壁を超えなくてはならなかった。

  • uefiによるos起動(ググってUSBへgrubをインストールすればいい) 
  • no rootによるkernel panicの回避(ググってinitramfsをつくればよい)
  • keyboardの設定かつ IMEの設定 (ググってaptでアルミかつJISを設定し、・・・)

 結局のところ、ググればなんとかなって、今に至る。いろいろ夢中でやるのが楽しい。誰かに強制された訳ではなく、好きでやってるのだ。楽しすぎる。

 Mozcの調子が悪いときは、ibus-daemon -drxでリセットすればよい。

そして、gimpを入れて、macではwacomが切り捨て、未サポートとなったBanbooFun(CTH-461/S)というペンタブを使えるようになったのだった。とても長い道程だった。

その後、plankというパッケージを入れて、macぽっくしてみた。設定のIcon Zoomでdockをカーソルが移動するときにアイコンが大小にウェーブする動きもできた。

それから、ファンがまわらず、熱を持ってきたので、ググって、mbpfanを入れて、sudo nano /etc/mbpfan.confで、設定値を変更し、ファンがまわるようにしてみた。

先日、村上春樹さんの「ラオスにいったい何があるというんですか」という紀行文集を読んで、気になったワードをメモしておく。 

  • 伊トスカナ地方のワインーコルティブオーノ(いつか飲みたい)
  • 「来熊」(らいゆうと読む) 
  • オレゴン州ポートランドのウィラメットバレーのピノ・ノワール(いつか飲みたい)

2021年1月17日日曜日

macbook pro(retina,late2013) ubuntu 20.04 live DVD wifi(wlan) trouble shooting

macbook pro(retina,late2013)でubuntu 20.04 liveDVDを動かしてみたらwifiを認識しなかった。
どーすればいいんじゃろとググって2日、諦めかけたときに以下の方法に辿り着いた。
ubuntuのLiveDVDに入っている制限付きモジュールでwifi(wlan)を使えるようにできるのだ。
その方法は、以下の通りだ。
cd /cdrom/pool/main/d/dkms/
sudo dpkg -i *.deb
sudo apt install gcc
cd /cdrom/pool/resricted/b/bcmwl/
sudo dpkg -i *.deb
sudo modprobe wl
村上春樹さんの小説を読んだら、とても面白かった。
そして、紀行文集やドキュメンタリーを読んだら
ひょっとしたら、こちらの方が抜群に面白いというか
もっとうまいのではないかと思った。とりわけ、イタリアやギリシャで暮らした話は見事だった。
人の話を聞くのが好きというのが実によくわかった。