HARMONICOM

ただいま考え中……

Zig言語のOSSを二つ作りました -- I've released 2 Zig OSS projects!

投稿日 # Zig # Horizon # Dig

先日、Zig言語のOSSを2つ公開しました。

Zig言語のWebフレームワーク「Horizon」

一つ目はWebフレームワークの「Horizon」です。
Zig言語には今活発なWebフレームワークが無いようだったので作ってみました。
個人的に、TypeScriptのWebフレームワーク「Hono」が好きだったので、こんな感じで単純軽快なものをコンセプトに作成しました。

ネーミングは完全に思いつきです。何となく思いついたワードを付けました。
でも、何もない地平線にここから物を建てていくんだ、という感じのイメージで、個人的には気に入っています。

GitHubはこちら。
https://github.com/HARMONICOM/horizon

Zig言語のORMマッパー「Dig」

二つ目はORMマッパーの「Dig」です。
こちらも、Zig言語に良さそうなORMマッパーが少なかったため作ってみました。
TypeScriptのORMマッパー「Drizzle ORM」を参考にして作っています。SQLを書くようにメソッドチェーンで繋いでいけるのが面白くて採用しています。

こちらもネーミングは思いつきですが、結果として、Horizonに対してデータを掘っていく、というイメージになりました。

GitHubはこちら。
https://github.com/HARMONICOM/dig

いずれも、基本的にはAIにコーディングさせていますが、設計思想を反映させたり手直ししたりは私の方でやっています。
AI便利ですし早いですよね。一つ一つ調べながらちまちまコーディングしていたのが、一気に片付けてくれるので、とっても助かってます。
今後はもうコーディングはAI任せになって行くような気がしますね。

ZigのWebアプリコーディング例もあります。
よかったら見てみてくださいね。



I recently released 2 Zig language OSS projects.

Zig language Web Framework "Horizon"

The first one is the web framework "Horizon".
I created it because there didn't seem to be any active web frameworks for Zig at the time.
Personally, I liked TypeScript's web framework "Hono", so I created it with the concept of something simple and lightweight like that.

The naming was completely spontaneous. I just attached a word that came to mind.
But I personally like the image of building things from nothing on an empty horizon.

GitHub is here.
https://github.com/HARMONICOM/horizon

Zig language ORM Mapper "Dig"

The second one is the ORM mapper "Dig".
I also created this because there weren't many good ORM mappers for Zig.
I'm building it with reference to TypeScript's ORM mapper "Drizzle ORM". I adopted it because I find it interesting that you can chain methods together like writing SQL.

This naming was also spontaneous, but as a result, it became an image of digging data for Horizon.

GitHub is here.
https://github.com/HARMONICOM/dig

Both are basically coded by AI, but I'm the one who reflects the design philosophy and makes adjustments.
AI is convenient and fast, right? It's very helpful because it takes care of everything at once, whereas I used to code little by little while researching one thing at a time.
I feel like coding will be left to AI from now on.

There's also a Zig language web app coding example.
Please take a look if you'd like.

ネットトラブルを防ぐために

投稿日 # 社会のお話

日々ニュースが絶えない「ネットトラブル」ですが、どうしたら防げるでしょうか?
ちょっと考えてみましょう。

オイシイ話

もしあなたが「オイシイ話」を知っていたら、普通、赤の他人には教えないですよね。
ネットで「オトク」「もうかる」などの話があったら、ほぼ全てサギ目的だと思って良いと思います。
華麗にスルーしましょう!

コミュニケーショントラブル

ネットの向こう側には人がいます。ロボットがやっているわけではありません。
だから、リアルと同じく、ネット上でも相手に悪いことはしてはいけません。

ネットの会話は文字が中心。相手に伝えられる情報量は会話の時の半分以下です。
だからすぐケンカになります。ちゃんと話し合いするのも難しい。最初からそう考えて使いましょう。

ネットでは名前が出ないからといって、悪いことをするのはやめましょう。
殺害やテロ等の予告・違法アップ/ダウンロードなど犯罪捜査の場合は、IPアドレスなどから誰がアクセスしたかを調査する権限がありますので、確実にバレます。

ネット情報はウソかホントか?

ネットの情報はウソかホントか?実はウソ情報とか、実はダマそうとしているとか、さまざまな考えが動いています。
ホントかウソかは、自分で見極めなければなりません。最初は疑ってかかるのが一番安全です。

個人情報の重要性

ある日突然知らない人が「ネット見ておまえん家来たんだけど」と押しかけてきたらどうしますか?突然イタズラ電話されたりドロボウにあったりしたら?
「プライバシー(個人情報)」を守るというのは、こういったことを防ぐということです。

IDとパスワードは、あなたであることを証明するためのもの。
これが人にばれると、誰でもあなたになりすませる、ということ。
絶対に人には教えない。人にばれないようにする。これはネットを使う上で大事なことです。

ネットで何かに登録するときは、

  • 「信用できるところ(会社)か」
  • 「いくらかかるか」
  • 「自分の個人情報がどうなるか」

がはっきり確認できてからにしてください。
一つでもわからないことがある場合、トラブルに巻き込まれる危険性があります。

個人情報というと名前や住所、電話番号などが思い浮かびますが、「行動記録」というのも重要な情報です。
たとえば、自分がいつどこに居たとか、何を買ったとか、何をレンタルしたとか。
こういった情報が束になると、その人の趣味や性格などが割り出せてしまいます。

パスワードはちゃんと考える

パスワードを考えるのは面倒だけど、いくつかバリエーションも加えて、ちゃんと考えておいた方がいい。

  • 年月日に使える数字の組み合わせは犯罪者も想定するのでNG。
  • 名前の一部や英単語なども同じくNG。
  • キーボードの並び文字列もNG。
  • まんべんなく散らして、英数記号8文字以上がいい。

ダウンロードするときの注意点

普通は、よく名前を聞くような企業やサービス以外からダウンロードすることは無いはずです。
それ以外のところからダウンロードする場合は、まずウィルスや法律違反を疑ってください。

ウィルスに感染しないために。

  • どんな効果があっても、信用できなそうなファイルはダウンロードしない
  • Windows Updateやブラウザーなどのアップデートをいつもやる
  • ウィルスチェックソフトを入れておく
  • 怪しいWebサイトを見ない

売っているもの、たとえば曲やマンガのデータなどが、タダでダウンロードできるのは、違法(犯罪)の可能性がかなり高いです。
ダウンロードすると逮捕される危険性がありますので、「タダより高いものは無い」と肝に銘じておいてください。

Hなことに注意!

ネットでは、Hなことには手を出さない方が良いです。
サギや犯罪まがいのことがあまりにも多いので、イタイ思いをすることになります。

アクセスしただけで請求された!?

ネットでは、名前やアドレスなどの個人情報を入力し、売買契約に合意しなければ、お金を取られることはありません。
個人情報は入力しなければ知られることはありませんので、アクセスしただけで「金を払え」といわれるのは、ほぼサギといって間違いないでしょう。

普通にWebサイトなどにネットアクセスしただけでは、IPアドレスやブラウザー・携帯電話のID程度しか、Webサイト側には伝わりません。
名前や住所、メールアドレスなどは、わざわざ入力しなければ知られることはありません。

アヤシイWebサイトを見分ける

「怪しいWebサイト」を見分ける方法

  • メールなどで送られてきたサイト (まず全て疑った方がいいです)
  • 検索で見つけたサイト (一見有益でも変なところに誘導されることも)
  • URLを見て怪しいところがある (知ってるサイトを装っているかも)

ネットでの課金について

ネット・ソーシャルゲームにお金を払う基準を考えましょう。
ゲームは開発・運用・設備などいろいろお金がかかっているので、利用料の範囲としてなら悪くは無いと思います。
それを超えてしまうなら、将来泡と消えるものにお金を払うべきか、考え直してください。

筋肉とスジのお話

投稿日 # 健康のお話

ある日突然手が上がらなくなったり、肩や背筋・内臓が痛くなったりすることがあります。
部位によっては深刻な病気を疑ってしまうこともありますよね。

でも、大体のケースでは、これらは筋肉やスジの問題で起こることが多いです。
筋肉やスジと言っても表に見えているものだけではなく、身体の奥深くにある「インナーマッスル」が大きく関わってきます。
四十肩五十肩や、肩こり腰痛、原因不明の痛み、顎関節の異常などは、総じて体の筋肉やスジが張ったり違えちゃったせいで起こる症状だと思われます。

我々現代人は、一日中座ってコンピューターを使っていたり、足を組んだり、片側でバッグを持ったり、片側で物をかんだりと、身体に偏りが生じがちです。
体が左右・前後に曲がっていることで、体の筋肉やスジが偏って張ってしまったり、ズレて変な所に引っかかったりして、痛みの原因になります。

では、改善するにはどうしたら良いでしょうか?

簡単にできることは、普段の姿勢と逆の姿勢にすることです。姿勢を均等にしてバランスを整えます。
カバンを持つ手を逆にしたり、足はなるべく組まない、組んでも左右入れ替える、縮こまる姿勢が多いならぐっと伸ばしてストレッチする、などが有効です。

それでも痛くてどうしようもなくなったら、骨盤矯正や体幹ストレッチなどをうたっている整体にかかると良いと思います。
普通の指圧マッサージでは届かないインナーマッスルももみほぐしてくれたり、調整してもらえると、一気に改善したりします。

変な痛みがあったら、まず体の歪みを疑ってみてください。

WiFiの不調を直した話(3)

投稿日 # インフラとか

なんかえらく長くなってしまいましたね……

前回、「WiFiの不調」にどんな要因が関わっているかを挙げていきました。
それを元に、どうしたら解消できるか考えていきたいと思います。

まず、多少良くできる方法はありますので、ひとまず一度下記を試してみてください。

  • WiFiを使っている機器の数を確認する
  • DHCPのリースIPアドレス状況を確認する
  • ログを確認してDFS検知の頻度をチェックする
  • チャンネル選択を自動にする
  • 機器のファームウェアをアップデートする
  • ステルスSSIDをやめる
  • 一つのSSIDに2.4GHz帯(b/g)と5GHz帯(a/c)を同時設定しないで分ける
  • 2.4GHz帯(b/g)のSSIDには「slow」などと付けると、そういうものだと思われるので良い
  • ローミングせず場所ごとにSSIDを分ける
  • 電波の強度を調整する(強くするだけでなく弱くもしてみる)

これでダメなら……

これで解消できないようなら、もう、家電量販店などで売っている市販の機器では解消できない規模にまでなってきています。
特に、オフィスが広くて、どこでも同じSSIDで接続したい、途切れないようにしたい、となると、市販の機器では手に負えません。
市販の機器であーだこーだやって無駄な時間を使うより、その分の時間をかけて別の手段を取った方がスッキリすると思います。

で、どうするかというと、専門の業者に頼んで業務用の機器を導入する、というのが一番確実です。
はい、ありきたりの対応ですね……

ただ、専門なだけあっていろいろな知見がありますし、電波の調査やネットワーク構成、ヒアリングなどから規模感・環境・使用頻度などを鑑みて、機器の選定や設置位置の指定などをしてくれます。
特にCiscoやArubaなどの業務用の機器になると、詳しい人がずっと居てくれるような所でなければ、おいそれと導入なんてできません。

ということで、まじめな話、端末50台を超えるぐらいの会社規模になってきたら、業務用の機器に切り替えていくことをオススメします。

WiFiの不調を直した話(2)

投稿日 # インフラとか

前回、「WiFiの不調」についていくつかの症状を挙げてみましたが、これには実に様々な要因が関係しています。
実際私が遭遇した事例を挙げていきます。

・DFS検知

5GHz帯(a/c)では、周辺の気象レーダーの電波を検知すると、動作を停止して気象レーダーのチャンネルを回避するようになっています(法律で定められています)。
これに遭遇すると、突然切れたり繋がらなくなることがあります。
オフィスの場所にもよりますし、回避する方法は無いので、特定のチャンネルだけ使わないようにする、などの対応が必要になります。

・機器の不調

機器のバグなどで、たとえば頻繁に接続・切断を繰り返すと反応しなくなる、などの症状が出る場合があります。
この場合は機器の再起動で治りますが、また同じ症状を繰り返します。
また、気づかぬうちに機器が壊れていることもあります。

・DHCPの不具合

意外に盲点なのが、DHCPの割り当てIPアドレスが枯渇して、IPアドレスが割り当てられないケースです。
50人ぐらいでノートPCもスマホも使う会社では、100IPアドレス以上は使いますし、WiFiが不調で有線と無線を両方使っている人もいたりで、実は結構消費します。

・電波妨害

いわゆる、電子レンジや複合機、ワイヤレスマウス・キーボード、Bluetooth機器などの電波干渉によるものです。
また、人通りが多い道路沿いの低層フロアにオフィスがあると、通行人のスマホの電波を受けすぎてアクセスポイントの調子が悪くなることがあります。
アクセスポイントの置きすぎも要注意です。使用チャンネルが被ると使える帯域が減って速度が落ちます。

・2.4GHz帯(b/g)を使っている

2.4GHz帯(b/g)は使用できる帯域が少ないうえ、電波妨害が多い、電波が飛びすぎて周囲のWiFiを拾ってしまう、など、どう頑張っても速度が出ません。

気を付けなければならないのが、5GHz帯(a/c)と2.4GHz帯(b/g)を同じSSIDで設定している場合です。5GHz帯(a/c)を使っているつもりで、いつの間にか2.4GHz帯(b/g)に切り替わっていることがあり、速度が出ないと感じることがあります。

・ステルスSSID

昔、SSIDを表示しないようにしてセキュリティ対策を、とうたわれたステルスSSIDですが、今では逆にセキュリティに問題があるといわれ、iPhoneなどではエラー表示されるほどです。
また、ステルスが故に端末がWiFiを見失う原因にもなります。

・電波が弱すぎる

文字通り、電波が弱くて届かないケースです。壁や障害物があると、確かに電波は到達しにくくなります。

が、実は思っているほど電波は弱くありません。意外と遠くまで飛んでいますし、普通のパーティションなら通り抜けます。
特に2.4GHz帯(b/g)は周波数が少ないため、遠くに飛びやすくなっています。
設置場所についても、たとえば天井につけた方が望ましい、と言われますが、置く場所に困らないだけで、正直あまり効果を実感したことはありません。

・電波が強すぎる

で、意外と気づかないのがこちらです。必要以上に電波が強いと、遠いところのWiFiを拾ってしまい、かえって調子が悪いくなってしまいます。
盲点なのが、EPSなど他フロアと金属製のパイプ等が繋がっているところです。EPSの近くにアクセスポイントが置いてあると、金属を伝って他フロアの電波が飛んできたりしますので要注意です。

・ローミング

複数のWiFiアクセスポイントを用意して各地に配置し、SSIDを同じにすることで、移動しても同じSSIDで切れずに使い続けられる、という夢のような機能です。
おそらく、広い社内を一つのSSIDで、となったときに、まず実行する対応だと思います。

ただし落とし穴があります。WiFiアクセスポイントがそれぞれ独立している場合、どちらに繋がるかは端末側でなりゆきに制御することになります。
特に複数のアクセスポイントが拾える場所だと、その時の状況であっちに繋がりこっちに繋がり、ということになり、逆に調子が悪くなります。
ローミングを快適に利用するには、どの端末をどのアクセスポイントに繋げるか、という管理を行うべきです。

・アクセスポイントへの端末の接続数

一つのアクセスポイントに接続できる端末が限界に達していると、それ以上処理しきれなくなってしまいます。
これは仕様値を過信しない方が良いです。もっと少ないところで限界は来ます。

・実は光回線の調子が悪い

WiFiかと思っていたら、実はネット自体がダメだった、ということがよくあります。

数人のベンチャーだと、家庭向けのプロバイダーを使っていたりすることがありますよね。そういったところは、公称では1Gbpsといっても実際は200Mbps出ればいい方、夜間の混雑時間帯は1Mbpsも出ないことがあります。
そのまま会社規模が数倍になっていたらなおさらです。

ではどうしたらいいか、についてはまた次回……