技術日誌

DB,Java,セキュリティ,機械学習など。興味のあることを雑多に学ぶ

Java読書会BOF「Kotlinイン・アクション」を読む会 第6回に参加

Kotlin in Action 第6回 ジェネリクスの後半(9章)とリフレクションの章(10章)とDSL(11章)を読みました。 10章は技術的にもちょっと面白い読み物になっていて、オープンソースのjsonシリアライザ/デシリアライザであるjKid*1の解説をしながらリフレクションを…

ブルーボトルコーヒーの豆を買った

通勤経路にあるので覗いてみたところお土産コーナーだけ人がいなかったので買いました。行列並んでまで買うと負けな気がするので今まで飲む機会がありませんでした。 1500円/200gくらいしました。普段買ってる豆が1200円くらいなので少し高いです。挽き売り…

30日OS自作本21日目

OS

21日目の内容です。セグメントやメモリの復習が多めです。 hariboteOSのメモリマップ メモリに直接データを書き込むなどの危険行為を行なっているので、念のためどこらへんを潰しているのか分かり易くするために復習です。p171から引用したデータを元に作成…

プログラマのためのSQL 読書会(20)に参加

25.3.4の自己外部結合から25章最後まで読みました。 自己結合、自己外部結合などがテーマです。 SQLでパズル的なことをやろうとすると自己外部結合が役立ちそうです。 あとは障害調査くらいですかね。 正誤表と掲載SQL 外部結合は順番が入れ替えられない 25.…

30日OS自作本20日目

OS

20日目は1文字を表示するAPIを作りました。これでOSに配備したアプリケーションからOSの機能を呼び出すことができます。 API 引数を扱う専用の処理を呼び出す 引数専用の処理でスタックに引数をつむ 23bitレジスタ,16bitレジスタ,8bitレジスタ復習(EAX,AL等)…

30日OS自作本19日目

19章の内容です。typeコマンドでOSにコピーしたファイルの読み込みと、ファイルとしてコピーした機械語の実行を行いました。 FAT12の復習 1セクタ=512バイト sector offset size(Byte) content 1 0x0000 0x0200 boot sector 9 0x0200 0x1200 fat area 9 0x14…

30日OS自作本18日目

OS

細かいコンソールの修正といくつかのコマンド(mem,cls,dir)を作る内容でした。 動画 www.youtube.com 文字列を比較する string.hで定義されているstrcmpを使用します。 arr[0] == "t" && arr[0] == "s" && arr[2] == "t" これが strcmp(arr,"tst")==0 こんな…

30日OS自作本17日目

OS

17日目の内容です。 www.youtube.com ソースの動作具合 13章目以降初めて全てのソースが動作しました。16日目は全滅だったので非常に嬉しいです。ただしGUIは若干もたついており遅延があるような気がします。タイミングがシビアなアクションゲームなどはでき…

30日OS自作本16日目

OS

16日目の内容です。 タスク管理の機構を強化するような内容です。 タスク管理 15日目でハードコードされた部分を無くします。タスクも構造体の配列で管理するようにします。 #define MAX_TASKS 1000 /* 最大タスク数 */ //前回から引き続き登場task state se…

Kotlinでラムダ式のインライン展開を逆コンパイルで検証

Java読書会で読んだKotlin in Actionの復習です。 最初はQiitaに投稿するつもりで書いたのですが、 ただ逆コンパイルしたソースを貼り付けてるだけなのでブログに書きます。 インライン関数とそのメリットについて Kotlinではラムダ式は無名クラスにコンパイ…

30日OS自作本15日目

OS

15日目はマルチタスク(タスクスイッチ)をやりました。 マルチタスクp290~310 タスクスイッチ 保存するレジスタ等の内容 JMP命令とEIPレジスタ JUMP命令のnearモードとfarモード 実行イメージ 動画 感想 マルチタスクp290~310 CPUは複数のタスクを同時に実行…

30日OS自作本14日目

OS

14日目の内容です。 内容としてはGUI機能をさらに強化する感じです。 Windowが動くようになりました(不完全) 画面が高解像度になりました。 キーボード入力に対応した文字が表示できるようになりました。 GUIは結構進みましたが、まだまだ改善の余地を感じさ…

プログラマのためのSQL 読書会(19)に参加

SQL

「24 単純なSELECT文」から「25.3.3 自然外部結合と条件付き外部結合」まで読みました。 内容的にはSELECT文、結合などが中心です。 プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに作者: Joe Celko出版社/メーカー: 翔泳社発売日: 2015/01/19…

30日OS自作本13日目(詰む)

OS

13日目のソースは harib10a:文字列表を簡単に(文字列表示のヘルパー関数を作る) harib10b:FIFOバッファを見直す(タイマーのFIFOを統合する) harib10c:性能を測定してみる(パフォーマンス測定用のカウンターの導入) ですが、harib10cのソースが正常に動作しま…

30日OS自作本12日目

OS

12日目はタイマーです。 www.youtube.com タイマーとは?その必要性は? タイマーがないと定期的に or 何秒後にXXするという処理を作りにくい タイマーがなくても一応実現できる。 ただしCPUのクロックに依存したコードを書く必要がある 各命令や関数が何ク…

30日OS自作本11日目

OS

11日目はついにWindowを作ります。 Windowのハローワールド的なもの ウインドウ ウインドウの作り方です。簡単にコメントで補足してみました。 struct SHEET *sht_win; unsigned char *buf_win; /*リソース確保*/ sht_win = sheet_alloc(shtctl); //シート b…

30日OS自作本10日目

OS

10日目はGUIの改善を行いました。これにより、下のバーをマウスが破壊する現象がなくなりました。 GUIの改善。マウス以外の恩恵を感じられるのは11日目から、な気がします。 day9までのGUIの課題 画面再描画の方法 画面描画の改善 感想 day9までのGUIの課題 …

「世界一シンプルで科学的に証明された究極の食事」を読んだ

面白かったので買って1日で全部読めた。ホットなうちに感想を書きました。 念のためですが私は医療や食の専門家ではないので書いてることは鵜呑みにしないでください。 本書の特徴 色々な健康法へのアンチテーゼ 間違った健康情報がはびこる理由 書き方が誠…

30日OS自作本9日目

OS

30日OS自作本9日目 9日はメモリ管理です。 BIOSからメモリの情報を取得する方法(失敗) https://stackoverflow.com/questions/39024754/how-to-get-ram-size-bootloader https://wiki.osdev.org/Detecting_Memory_(x86)#Manual_Probing http://softwaretechni…

マウス(PS2)の割り込みについて

OS

8章終了時にマウスが動いている仕組みがイメージできなかったので 5〜8章で割り込みついて書いてるところを自分なりにまとめました。 PICの設定の初期化 IDTの設定 IDTに割り込みハンドラを登録する 割り込みの発生、割り込みハンドラの呼び出し 割り込み…

Java読書会BOF「Kotlinイン・アクション」を読む会 第5回に参加

7,8,9章あたりを読みました。 ジェネリクス、ラムダなどJavaだとちょっと不便なところをKotlinがどう解決しているか?というのが見所だと思います。 コード 分割宣言 複数の戻り値を持つ関数 分割宣言とループとの組み合わせ 移譲の例 ORマッパーのようなも…

プログラマのためのSQL 読書会(18)に参加

22章,23章あたりを読みました。 IN述語の中には列名を書ける NOT INのサブクエリにNULLが含まれる場合、常に結果は無しになる。 MySQLではcheck制約の代わりにenum,setなどが使われている VALUES句はINSERT句以外にも使える SQL ServerのINCLUDE MySQLのセカ…

30日OS自作本8日目

OS

8日目の内容になります。 前回マウスを動かすための割り込み処理を完成させたので、 受信したデータを使ってマウスカーソルを動かす内容になります。 祝マウス初動作。灰色のバーはマウスが通った後再描画されないのでグチャグチャ 動画 マウスの受信データ…

30日OS自作本7日目

OS

7日目は6日目で作った割り込みを少しカスタマイズしました。 マウスからの入力が感知できるようになりましたが、まだ動かす部分は作っていません。 7日目終了時の画面。表示されているデータの左側がキーボード、右側がマウス入力のもの 割り込み処理の中身…

30日OS自作本6日目

OS

6日目は割り込みハンドラの実装&呼び出しを行った。 キーボード入力に反応.マウスはまだ動かない. GDTの仕組み GDTRという48ビットのレジスタにGDTを配置した番地(開始地点)とリミット(開始地点からどこまでGDTか)を書き込む GDTRの最初の2バイトはリミット…

第14回 セキュリティ共有勉強会に参加

5月10日開催。テーマは認証 新しい知見や感想を箇条書き パスワードマネージャー 流行ってない 課金しての業務利用を推奨している あまりセキュリティの専門家がパスワードマネージャーを進めてる印象はないが・・・ 強いパスワードは運用コストが高いが*1、…

30日OS自作本5日目

OS

5日目は文字とマウスカーソルの表示をやりました。 VRAMにマウスカーソルとフォントを書き込んだ。マウスカーソルはまだ動かない 文字をどう扱うか 文字を配列のインデックスに利用する マウスカーソルを動かすためにはセグメンテーションと割り込みが必要。…

SQLのCOUNT,MAX関数はソートを発生させるのか PostgreSQL編

SQL

この記事の続きてです 今回も同じようなデータを使います。 id age country 0001 18 JP 0002 23 US 0003 56 SK 0004 99 SK 0005 11 US 0006 34 JP create table people( id char(4) not null primary key, age integer not null, country char(2) not null )…

30日OS自作本4日目

OS

今日はこの辺までできた。 画面描画周りの色々 で結局画素の位置との対応は? 配列とポインタ 配列のインデックスはアドレスの加算として表現されている C言語でなんでもできるわけではない おまけ(失敗) 感想 画面描画周りの色々 day3から引き続き、ビデオ…

SQLのCOUNT,MAX関数はソートを発生させるのか MySQL編

SQL

昔々に書いたQiitaの投稿に来た指摘に、今はわからないと回答しました。 https://qiita.com/gooddoog/items/21b221c57ede30f8669a この記事を書くにあたって参考にした書籍の著者の一人にご質問する機会があったのですが、 結論としてDBごとに違いが大きそう…