CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

無限に拡張可能な決済システムを構築する方法(例付き)

2024-06-10 01:56:09 | SQL

How to build a Scalable Payments System (Reference Architecture with diagrams)

How to build a Scalable Payments System (Reference Architecture with diagrams)

Everybody, from banking applications to retailers to SaaS applications, deals with payment processing. But architecting a system that can deal with payments at s...

Cockroach Labs社から送られてきたメルマガから。
今までウザいと思って捨てていたメルマガだが、こんなに充実した内容だったとは驚き。

資金があれば、Cockroach Labs社の日本支社を立ち上げてプロモーションをかけたいくらいなのだが。

無限に拡張可能な決済システムを構築する方法(例付き)

YouTubeのchrome用プラグイン開発

2024-06-09 10:25:56 | アイデア起業・アイデア売買

【はじめての chrome 拡張機能開発】 youtube で鑑賞中の動画のサムネイルを表示する chrome の拡張機能つくってみた

【はじめての chrome 拡張機能開発】 youtube で鑑賞中の動画のサムネイルを表示する chrome の拡張機能つくってみた

youtube で動画を観ていて「この動画のサムネイルってどんなんだったっけー」って思うことがよくあった。ブラウザバックすれば確認できるかもしれないけれど、パッと確認し...

Zenn

chromeでYouTubeを観る際のプラグインの開発方法が書かれている。

初歩の定番HELLO THE WORLDを表示する所から始まって、筆者の勉強がてらに作った「鑑賞中の動画のサムネイルを表示する」chrome拡張機能の作り方まで。

無料3DモデリングソフトBlenderで2D図面から建築パース作成

2024-06-08 22:29:54 | アイデア起業・アイデア売買

【建築パース】住宅外観モデリングをマスターしよう Blender編 | モデブログ

【建築パース】住宅外観モデリングをマスターしよう Blender編 | モデブログ

Blenderを利用して建築パースを作りたいが、そもそもの情報が少なく悩んでいないだろうか。また、手探り状態で始めたものの、自分の方法がほんとうによいのか疑問に思ってい...

モデブログ

2DのJWCADで描いた図面を使い、このようにして3D建築パースを描くことができる。
これを自動化できれば、有料のバカ高いRevitとか要らなくなる。








MySQL 静的関数「グローバル一意識別子」の取得

2024-06-08 21:08:00 | SQL
で試してみた。

SELECT CURRENT_USER,
CURRENT_DATE,
CURRENT_TIMESTAMP,
VERSION(),
RAND(),
UUID()

以下が結果

CURRENT_USERCURRENT_DATECURRENT_TIMESTAMPVERSION()RAND()UUID()
LA06108564@172.19.0.0/255.255.0.02024-06-082024-06-08 20:59:225.6.51-log0.422934614515802448b22f01b-258e-11ef-a77f-0242c0a82c6f

SQL HACKSをパッと開いたら242ページが出て、そこに上記のコードが載っていたので試してみた。





こんな情報が出てしまったらセキュリティはザルなんじゃないのか?と素人ながら思ってしまった。

ちなみにSQL Server、Oracle、PostgreSQLそれぞれの書き方も載っている。

【追伸】
docoqlでグローバル一意識別子文を試してみたらやはりwww




特定のセルのデータから該当するレコードを表示するSQLプログラム

2024-06-02 20:37:50 | SQL

EMPテーブル内のSALが5000であるENAMEを調べたい場合、

SELECT ENAME , SAL
FROM EMP
WHERE SAL = '5000'
と書けば良い。

ENAMESAL
KING5000

ちなみに''で括らずにそのまま5000と書いてしまうとエラーになる。

逆にKINGのSALを調べたい場合、
SELECT ENAME , SAL
FROM EMP
WHERE ENAME = 'KING'
と書けば良い。

ENAMESAL
KING5000



俺は今、SQLプログラミングでやりたいこと・試したいことを思い付くまま、逆引き形式でやっている。

俺はSQLの基本とか一切無視して素通り&飛び越してmigrationとかチューニングとかNoSQLとかNewSQLとかベテランデータベースエンジニアの領域に足を踏み入れてしまった。

なぜかmigrationとcockroachDBに強く惹かれて猪突猛進してしまった。

これから先は行ったり来たりしながらギャップを埋めていきたい。

某情報商材販売者が薦めていたスッキリわかるSQL入門と情報処理教科書データベーススペシャリスト2024年版を買ってきた。

高校三年になって猛烈に微積分に惹かれて東京出版の月刊大学への数学の微積のコーナーをやった時を思い出した。

なぜか猛烈にデータベーススペシャリスト試験の勉強をやりたくなった。

入門書と謳っていて広く浅く網羅しているようだが、銀行口座データベースの例を教材のネタとして挙げていたり、意外と知りたい情報も載っている。

本日届いたSQL関連の書籍の中で、秀逸なものはこの3点。


日本語全文検索システムの本とSQLの裏技本みたいなやつ。

NamazuはcockroachDBのアドインとして組み込めないだろうか?



SQLプログラミングサイトのバグを発見!

2024-06-01 20:50:17 | SQL

SELECT EMPNO , ENAME , SAL / 0
FROM EMP
WHERE EMPNO = 7902

と特定のセル(SALカラムのEMPNO7902レコード)を0で割るとエラー表示になると予想したのだが・・・

EMPNOENAMESAL / 0
7902FORD

結果は空欄となってしまった。


※スッキリわかるSQL入門で紹介されているサイトでは、当然エラーとなった。
そもそもINSERTやDELETEすら使わせてくれないサイトではお話にならない。

SELECT EMPNO , ENAME , SAL * 0
FROM EMP
WHERE EMPNO = 7902

は当然0と表示される。


任意のカラムのデータに数値計算や関数計算をするSQLプログラム

2024-06-01 18:50:46 | SQL

問題
従業員の給料を2%上げることにしました。EMP表から従業員名(ENAME)と1.02倍した給料(SAL)を表示してください。

答えは・・・
SELECT ENAME , SAL * 1.02
FROM EMP

天邪鬼な俺は、給料を1000分の1にしてやりたくなったwww

SELECT ENAME , SAL / 1000
FROM EMP

ENAMESAL / 1000
SMITH0.8000
ALLEN1.6000
WARD1.2500
JONES2.9750
MARTIN1.2500
BLAKE2.8500
CLARK2.4500
KING5.0000
TURNER1.5000
JAMES0.9500
FORD3.0000
MILLER1.3000

さらに平方根を表示したり、sinΘにして表示したりwww

SELECT ENAME , SQRT(SAL) , SIN(SAL)
FROM EMP
ORDER BY SAL

ENAMESQRT(SAL)SIN(SAL)
SMITH28.2842712474619020.8939696481970214
JAMES30.8220700148448830.9454647941364737
WARD35.35533905932738-0.3465363519963052
MARTIN35.35533905932738-0.3465363519963052
MILLER36.05551275463989-0.5805130081563131
TURNER38.72983346207417-0.9939019569066535
ALLEN40-0.8012247906768953
CLARK49.49747468305833-0.4279919714449212
BLAKE53.38539126015655-0.5442234412178194
JONES54.5435605731785740.08812847214728746
FORD54.7722557505166140.21918997428281808
KING70.71067811865476-0.9879664387667768



任意の条件で並び替えるSQL文

2024-06-01 17:15:04 | SQL
というSQL学習サイトを利用してみた。

サンプルデータのHIREDATEカラムの日付が新しくなる順で並べ替えてみた。
SQLプログラムは・・・

SELECT *
表示して下さい (何を?)全部
FROM EMP
どこのデータから? EMPテーブルから
ORDER BY HIREDATE
並べ替えて下さい  (何で?) 雇用日付で

結果は・・・


EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO
7369SMITHCLERK79021980-12-1780030020
7499ALLENSALESMAN76981981-02-20160030030
7521WARDSALESMAN76981981-02-22125050030
7566JONESMANAGER78391981-04-02297520
7698BLAKEMANAGER78391981-05-01285030
7782CLARKMANAGER78391981-06-09245010
7844TURNERSALESMAN76981981-09-081500030
7654MARTINSALESMAN76981981-09-281250140030
7839KINGPRESIDENT1981-11-17500010
7900JAMESCLERK76981981-12-0395030
7902FORDANALYST75661981-12-03300020
7934MILLERCLERK77821982-01-23130010

SELECT *
で全てのカラムを表示する。
任意のカラムのみ、例えばJOBカラムのみ表示したければ
SELECT JOB
と書けば良い。

なぜいきなりこんなSQL文をネタにしたのかというと、現在働いている現場のピット・基礎・外周部埋立の再生砂とドロコン(流動化処理土)の日付ごと、使用した工区や箇所ごとの使用体積記録を作っておけと指示されたからだ。
自分が納入時や使用時に立ち合い、記録したものは分かるが、他人が担当した時のものは調べないと分からない状態にあった。
調べていくと、日付がバラバラになって割り出された。これをEXCELに判明した時にその都度書き込んでいったら日付がバラバラになってしまった。 
いちいち並べ直していたら時間がかかるのでなんとかしたいと思ったのがきっかけだ。

ちなみにMySQLでEXCELデータを操作する方法の本を見つけたので、即ポチった。



有料のアドオンも出ていたが、そんな単純な下らないことでいちいち金を取るな!と思った。
後日、俺様がChatGPTを使ってアドオンを作ってみたい。
成功&完成の暁には、無料でソースコードを公開する。

ムラマツDN

2024-06-01 16:09:35 | 音楽・楽器
ヤフオクでかなり使い込まれたDNを入手した。約170000円。
50年前に製造されたらしい。
管体が厚く、重めで結構ズシリとくる。

使ってみたら低音・中音が全く鳴らないので、キーが歪んでいるのだろうと思い、新宿のムラマツに修理の見積もりに出したら、左手親指のHキーのタンポが虫食い状に欠けているので、これを直せば音は出せるようになると。

修理代はわずか4000円。

他のタンポはもうそろそろいい加減交換したほうが良いかも、というくらい変色してトーンホールの跡も深目についていた。 
※ムラマツの新型タンポには残念ながら対応していないとのこと。キーカップが小さいから合わないらしい。

しかし、応急処置ということで一旦、Hキータンポのみの交換で引き取ってきたのだが、恐ろしいくらいの爆音でダークで重厚な音を奏でた。

緻密というか極めて濃厚というか、表現し難い音色だ。

所々錆びてメッキが剥がれて見窄らしいが、そこまで使い込まれた理由がよく分かった。















ムラマツは抵抗感が強く、使いこなせなかったので、15年前位にPTPを手放してしまった。

今はEXとDNがあるのだが、EXはヤフオク行きになるだろう。

今ならムラマツを吹きこなせる状態になった。息圧も肺活量も十分、息の効率の良い使い方も身についた。

いずれPTPを再び手に入れたい。



プラットフォームエンジニアとは?

2024-06-01 15:39:17 | C / Visual C++
某問答サイトで秀逸な回答が出たので転載する。

アプリケーションプログラマーは何かしらのOS、SDK、フレームワーク等のシステムソフトウェアの上でプログラミングをしますが、プラットフォームソフトウェアエンジニアは、これらプラットフォーム側を開発します。

具体的には、
OSの移植
デバイスドライバーの開発
API、SDK、ライブラリー、フレームワーク等を開発します。

特にOSの移植やデバイスドライバーの開発では、ソフトウェアの知識に加えて、ハードウェアの知識とOSの知識が必要になります。

回路図を読み、それを動作させるデバイスドライバーやOSの下層部分をプログラミングして、適切にOSに組み込み、その環境をアプリケーションプログラマーに提供します。

なるほど。
じゃあ、
アスキー出版局の
WDMデバイスドライバプログラミング完全ガイド

とか

秀和システムの
作りながら学ぶ
OSカーネル
保護モードプログラミングの基本と実践

みたいな本を読んだり、Githubで関連するソースコードを漁ったりすればよいのだな?






3Dスキャナー scaniverse

2024-06-01 07:17:13 | アイデア起業・アイデア売買

Scaniverse - Apps on Google Play

Scaniverse - Apps on Google Play

Capture Life in 3D. Scan, edit, and share meshes or gaussian splats with ease.

3Dスキャナーのscaniverseを試してみた。

便所のドアノブをスキャンしてみた。

こちらは撮影した写真。

スキャンした対象物を点群データ化し、3Dレンダリングするらしいが…



















生成された3Dスキャンデータを動かしてみた所をキャプチャーしてみた。

数日前にwebの広告記事で知ったから早速インストールして試した結果はイマイチ。

やはり無料のアンドロイド用アプリに高品質を求めるのは酷だと思った。

仕事等で本格的に使いたければ、有料のPC版を使うべきなのだろう。もちろん、専用の機材でスキャンしなければならないはず。