【読書感想ブログ】 達人に学ぶDB設計徹底指南書

はじめに 自分はデータベースとは無縁の仕事をしてるんだけど、WEB開発に興味があって、WEB開発するにはデータベースを勉強しないとな、ということで勉強している。 今までに購入したデータベース本(SQL本)は以下の3冊、読んだかどうかすでによく覚えていな…

【読書感想ブログ】13歳から分かる!プロフェッショナルの条件

はじめに この本↓のわかりやすい版の本と間違って購入した。なので、期待した内容ではなかったが学びはあったので読んでよかったと思う。 www.amazon.co.jp この本は「成果」を挙げることで人生をより豊かにするにはどうすればいいか?ということに対しての…

【読書感想ブログ】 Webを支える技術

はじめに 私は IT系といえばそうなのかなという感じの職場にいますが、Web系というより組み込み系に近い職場です。ただ、最近では組み込み分野でも IoT の煽りを受けてWebサーバーが組み込まれた機器が増えてきています。そういう意味では組み込み系もWeb系…

所有権? String と 文字列スライス

文字リテラル Hello から String を作成し、一部を文字列スライスとして切り出した後、String スコープ外で文字列スライスを使う。というシナリオを考えたが、以下のようにコンパイルエラーが発生する。文字列スライスが参照している大元の String がスコー…

npm? webpack?

今更、npm/webpack ってなんだ!?ってなったのでちょろっと調べてみた。数年前に一回React触ったけどまるっと忘れてしまったので復習。 参考文献 https://qiita.com/righteous/items/e5448cb2e7e11ab7d477 https://qiita.com/koedamon/items/3e64612d22f347…

Postgresql の設定 (Rails 編)

※ Rails はすでにインストールされているものとします。 Postgresql の インストール www.digitalocean.com 上記を参考にインストール。今回は Debian 公式パッケージをインストール $ sudo apt update $ sudo apt upgrade $ sudo apt install postgresql po…

Raspberry PI 4 で RS485 通信 (双方向)

まとめ Raspberry Pi でサポートしている UART は RTSトグルをサポートしていないので RTS は自力でトグルする必要がある 使用した機器 今回は Raspberry Pi 4 と TTL-RS485 コンバーターを使用しました。 使用したTTL-RS485 コンバーター www.amazon.co.jp …

2021年度版、TSharkを使ってリアルタイムパケットモニタリング

2013年に以下の記事を書いた。この時はJSONではなく、XMLフォーマットを用いてリアルタイムパケットモニタリングを実現したが、最近では jsonが隆盛してきているため、jsonフォーマットでのリアルタイムパケットモニタリングを行いたい。また、Rubyのバージ…

microsoft / vs-streamjsonrpc の Formatter を MessagePack にして使う

github.com Microsoft が提供している jsonrpc ライブラリ vs-streamjsonrpc は Json 以外にも MessagePack でシリアライズ・デシリアライズできるように作成されています。 以前の記事 microsoft/vs-streamjsonrpc のバージョンが 2 になっていたので使って…

2水準系直行表の作成

2水準系直行表を作成するスクリプト require 'terminal-table' require 'csv' def dup_row(rows) new_rows = [] rows.each do |row| 2.times do new_rows << row.dup end end new_rows end def add_cols(rows) c = [0,1].cycle new_rows = rows.dup new_rows…

子プロセス間でパイプをつなぐ

親プロセスで作成したパイプを子プロセス間でつなぐ方法 以下のスクリプトは、標準入力で 何か文字を入力すると、それが出力されるサンプル。 out_r, out_w = IO.pipe script1 = <<~SCRIPT1 $stdout.sync = true loop do v = gets puts '1:' + v sleep 1 end…

Windowsファイルパスを標準添付ライブラリで生成/パースする時の言語ごとの違い

Ruby 、 C# 、 Go の標準添付ライブラリで file:///c:\temp\doc.txt のようなパスを生成・パースした時の違いを示します。Ruby だけは標準ライブラリの仕様上少し手を加えてあげないと動きませんでした。そのあたり少しフェアじゃないかもしれません。 参考…

プラットフォームがWindowsかそうでないかで処理を変える方法

RUBY_PLATFORM で Ruby が動作しているプラットフォームがわかります。 Windowsは x64-mingw32 とかになります。windows ではありません。 Visual Studio とかでビルドすると mswin が入るようです。(環境がないのでフルネームはわかりません...) なので、こ…

Windowsでプロセスグループを指定して spawn する方法

Linux で プロセスグループを指定して spawn を実行する場合は pgroup を指定しますが、Windowsではこのオプションはサポートされていません。Windowsでプロセスグループを作成するには new_pgroup を指定します。ただし、spawnの記述を間違うとshell経由で…

spawnとCtrl+C

参考サイト equj65.net モチベ プロセスグループとCtrl+Cの関係がよくわからなかったので調べてみた。 結論 pgroup: false だと子プロセスにも SIGINTを送信する pgroup: true だと子プロセスには SIGINTは送信しない プロセスグループなしで spawn 以下のプ…

Fiddle で MessageBox 表示

Ruby3.0から Win32API ライブラリが廃止になってしまったらしく 久々に Win32API使おうと思ったら使えなくて困った。 代替品として fiddle/import を使ってねということだったの使ってみた。 require "fiddle/import" require 'fiddle/types' def L(text) te…

Ruby(Windows)で改行付き文字列データを扱う場合はテキストモード(バイナリモード)に気をつけろ!!

はじまり Rubyに限った話ではないのかもしれないですが、Rubyで改行を含むテキストデータを送受信するようなプログラムをWindowsで書いていた時に思った通りに処理されなくて嵌ってしまったので、自戒を込めてブログに残しておきます。 結論 Windowsで CR/LF…

Hotwire チュートリアルをする

Hotwire とは hotwired.dev Railsの作者 DHHが提唱する新しいSPAの形を実装したライブラリになります。 今まではサーバーサイドのデータをJSONのようなフォーマットでクライアントに渡し、クライアント側のJavascriptでHTMLをレンダリングすることでSPAを実…

Microsoft 純正 Dependency Injection ライブラリ試してみた

C#

V-VM を Dependency Injection でつなげる例 using System; using System.Windows; using MessagePipe; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.DependencyInjection; namespace MessagePipeTest2 { public partial class App : Ap…

CySharp/MagicOnion を試してみた

CySharp/MagicOnion は以下のリポジトリにあります github.com 基本的にはREADMEを読むか、リポジトリ直下にある sample を参考にすれば動作はわかると思います。 以下の記事は本家の人のブログ tech.cygames.co.jp 試した結果はGitHubに置きました。 github…

Cysharp/MessagePipe を試してみた。

github.com tech.cygames.co.jp 感想 ブログにも書いてある通り prism の eventAggregator より速いので、今後は prism の代わりにこっちを使ってもいいかなぁと思いました。 App.xaml

Cysharp/ZString を試してみた

github.com Cygames の子会社 Cy# さんが出してる C# のOSSライブラリ。メモリ消費量が少なく、早い(?) tech.cygames.co.jp 細かい内容は上の Cy# さんのブログに書かれています。 試したコード using System; using System.IO; using Cysharp.Text; namespa…

Flutter に入門したい

あらすじ Flutter がラズパイでも動作することを知り、何か IoT 的なものが作れないかを検討したいので、 Flutter に入門してみようと思う。 チュートリアル Google CodeLabs の 「初めての Flutter アプリの作成 」 の パート1 と パート2 はとっかかりとし…

sony/flutter-embedded-linux を使ってみた Raspberry Pi 4 (arm64) 編

あらすじ github.com 上記のリポジトリを Raspberry Pi 4 (aarch64) 向けにビルドして、DRMで実行します。 flutter-embedded-linux は libflutter_engine.so を使いますが、プラットフォーム毎にビルドしないといけません。ただし、いまのところ Raspberry P…

sony/flutter-embedded-linux を使ってみる

要約 github.com sony/flutter-embedded-linux を Debian 10 で使ってみた。 参考資料 Debian / Ubuntu上のwaylandとwestonで最小限のGUIを構築する - Qiita flutter-embedded-linux/doc at master · sony/flutter-embedded-linux · GitHub Build error in f…

RSAのEncrypt/Decrypt で例外が出るときの対処

C#

要約 RSACryptoServiceProvider を使って Encrypt を呼び出した場合、文字列が長いと WindowsCryptographicException が出る。(Decryptの場合は CryptographicException) その場合は KeySize と パディングから最大長を割り出してそのサイズ以下でブロック化…

プライベート認証局によるCA署名証明書の作成

参考資料 OpenSSLでプライベート認証局の構築(ルートCA、中間CA) - Qiita 5分でわかる!プライベート認証局(CA)の構築とサーバー証明書の発行方法 | あぱーブログ OpenSSL で認証局 (CA) を構築する手順 (Windows) - OpenSSL - Node.js 環境構築 - Node.j…

(C#) 並行処理キー入力まちプログラム

C#

参考サイト mslgt.hatenablog.com ポイント CancellationTokenSource() でトークン作成して、トークンからキャンセル用トークンを生成して、それをすべての非同期タスクで共有して、キャンセルが起きた時の処理をタスクに書くってとこ。 今回は WaitKeyTask …

Vue.js 練習

これはなに? 私が Vue.js を練習した時の忘備録的記録です。詳しい内容が知りたいならオフィシャルのリファレンスを見たほうがよいです。日本語ですし。 経緯 最近 PHP でもやってみるかな、と思って始めたけど、テンプレートエンジンでいいのがなさそうだ…

ディスクのパーティションを変更後、Linuxの起動が遅った問題

あらすじ Virtual Box で初回 10GBで仮想ディスクを組んでしまい、途中で空き容量不足でLinuxが固まる問題が発生したので、仮想ディスク容量を拡張したが、パーティション設定が以前のままで、拡張部分が使えず結局空き容量不足という状態だった。KNOPPIXを…