Line[]から無駄な点を除くDynamoノード

Unionを繰り返して生成したSurfaceをPerimeterCurvesで直線にばらすと、 線分が無駄に細かく刻まれていて面倒な時がある。 まっすぐな線分をつなぐDynamoノードのためのPythonスクリプトを書いた。以下。 # Python 標準ライブラリおよび DesignScript ライブ…

ESRIのArcGSI Onlineで座標系を変換する方法

ESRIのArcGSIで特定の地点を中心に指定した寸法の形状などを生成しようとして調べていたのだけれど、 緯度経度ではもちろん、WebMercatorでも当然だが、うまくいかず困っていた。 具体的には、特定の点から10m東に移動した点などを算出したい場合などである…

Javascriptのプロジェクトに段階的にTypescriptを導入したい。

Javascriptが標準のプロジェクトにおいて、Typescriptに移行したいとする。 一気に移行するのはリスクも大きいし、成功する気がしない。 なので、現実的には、Javascriptをできるだけ小さくTypescriptに切り出すのを繰り返して、段階的に移行していくのがよ…

プロを目指す人のためのTypeScript入門、読書メモ

読み終えた。入門~中級という感じだったかな。Typescriptの本なのでJavascriptの深いところまでの説明はなかった。 忘れそうなことメモ TypeScript の数値はIEEE 754 倍精度浮動小数点数 数値(仮数部)の精度が53 ビット Falsyな値は、0, NaN, 0n, "", nul…

ArcGIS Javascript APIでのLat, LngとXYZとの相互変換

距離を考慮した計算が必要なときは、XY座標系に直してから計算しないと多分だめなので、 現在表示している地図上のXY座標系と、Lat, Lng(緯度経度)とを相互変換する方法を調べてみました。 緯度経度からXY座標へ import * as webMercatorUtils from "@arcg…

とげとげジオメトリの生成

threejsの基本geometryは、indexバッファ使ってなかったから簡単にとげとげにできた。#threejs pic.twitter.com/T1rvlU4ZEp— ma38su (@ma38su) 2022年4月23日 コードはこんな感じ。正二十面体の各面に対して、まず面の法線と重心を求めて、重心から法線方向…

Viteに乗り換えるときのメモ

環境変数の扱いが変わる。 process.env ではなく、 import.meta.env で定義する。 また、Prefixは、VITE_APP_になる。 vitejs.dev

Viteでthreejsを使うときのメモ

Viteはthreejsで使うときも、基本、そのまま使えますが、 多少のご作法は理解しておく必要がありましたので、メモを残しておきます。 JSのコード中で読み込むアセットの取り扱い jsでimportなどせずにパスやURLを指定して読み込むテクスチャやフォントなどで…

ForgeViewerでの同一モデルの複数配置

Extensionなどのコードを読んでやりたいことの実現方法を調べた結果をまとめています。 どこまでが公式に保証されている動作かは把握できていないので、今後のバージョンで動く保証はできないです。 同一モデルの複数配置 同一モデルを位置を変えて複数配置…

Forge Viewer上でモデルの色や位置を変更したい場合

Extensionなどのコードを読んでやりたいことの実現方法を調べた結果をまとめています。 どこまでが公式に保証されている動作かは把握できていないので、今後のバージョンで動く保証はできないです。 モデルの色を変更したい場合 以下でできるが、コードをみ…

Forge Viewerでの断面図表示

Extensionなどのコードを読んでやりたいことの実現方法を調べた結果をまとめています。 どこまでが公式に保証されている動作かは把握できていないので、今後のバージョンで動く保証はできないです。 前提条件 予め断面図を設定しておいたRevitモデルをForge …

入力されたモデルのサーフェス上に点があるか判定する

与えられた点がモデルの平面上にあるかどうかを判定するコードをthreejsで書いたのでメモしておきます。 三角形ポリゴンを前提としています。 geomにはTHREE.Geometry、ptにはTHREE.Vector3が渡されるとします。 (THREE.Geometryは公式ではもう廃止されてた…

RustでL2からTCPプロトコルを自作する

マスタリングTCP/IPは何度か読んではいるけれど、レイヤーとかいわれても面白くないし、ネットワークあんまりわかってない気がしていたので、もうちょっと理解するために、L2レイヤであるEthernetからL4のTCPまでをRustでだいたい自作してみた。だいたいとい…

pingのコードを読みたい。

ネットワークの勉強がてらpingのソースコードをみたくなってしらべてみた。 環境はWSL2のUbuntuとする。 まずはpingのパッケージを調べる。 $ which ping /bin/ping $ dpkg --search /bin/ping iputils-ping: /bin/ping iputils-pingだとわかった。 次にapt…

Rustの開発環境を整える

Hello, Worldが終わったら最低限の開発環境を整えるのがよいとおもったので、メモ。 いまどき無難なVSCodeで書くとしても最低限の拡張機能のインストールや最低限の設定は必要だった。 Rust Analyzer 公式のLanguage Serverが不安定なようなので。とりあえず…

書評:詳解Rustプログラミング

年末年始にざっと読んだので一言残しておく。 www.shoeisha.co.jp システムプログラミングを題材にRustを説明してくれる本、という感じ。 ただ、システムプログラミングといっても表面的なところで終わっているので、そっちを期待するとちょっと期待外れかも…

自作キーボード1年目。沼の入口をうろうろする。

Advent Calendarを書くころにはもうちょっと沼にはまっていると思っていたのですが、思ったより沼の浅いところにいます。 自作キーボードに至るまでを振り返りたいと思います。 自作前のキーボード歴 覚えている範囲で。 Microsoft Ergonomic Keyboard 数台…

点群データのLAS形式への変換について

点群データのフォーマットとして、LASがよくつかわれているフォーマットなようなのだけれど、LAS以外の形式からLASに戻す方法があまりないようなので、LASに出力する方法について調べてみた。 自作する。 LASのフォーマットはバイナリなのだけれど、オープン…

ForgeのModel Derivative API v2を試す。

ForgeのModel Derivative API v2を試した内容をメモしておく。 一言でいうとデータ変換のAPIです。 事前準備 最初にBucketとモデルのファイルを環境変数に設定する。ここだけそれぞれの環境に合わせた編集が必要。 アップロードするファイルと同じディレクト…

OKDO LIDAR HAT FOR RASPBERRY PI / Lidar Module with Bracketを試してみる。

Okdoに安いLidarを見つけたので試しに買ってみることにした。 www.okdo.com OkdoはRS系列らしく、日本国内ではRSコンポーネンツから購入できる。 Okdo Lidar Module with Bracket開発キット LiDAR_LD06 54.010012 | RS Components Lidar初心者なので、とりあ…

Raspberry PIの設定備忘録 / Raspbian OS

Rasbperry PI 4B / RasbianOSの場合の備忘録。 普通にWebサーバとして使うくらいであれば、RasbpianOSを使っておけばよい。 (と、あとからUbuntuの設定でちょっと苦労してわかった。) サーバとして使うので、X Windowは使わない。 Raspberry Pi Imager (執…

express-sessionのセッションIDの生成を浅く確認する。

expressセッションIDの生成についても読んでみる。 var uid = require('uid-safe').sync (中略) function session(options) { var opts = options || {} // get the cookie options var cookieOptions = opts.cookie || {} // get the session id generate…

Pythonの開発環境を整える

だいたいColabで十分なので、ローカルに環境作りたくないのだけれど、たまに必要な時があってpipenv面倒と思って調べたら、pyenv + direnv + venvがよさそうだった。 前提 Pythonはインストール済みとする。 環境構築 公式通りにdirenvをインストールして設…

Amazon RDS Proxy(MySQL)にTLSで接続する。

RDS ProxyでTLS接続を試した。 TLSを有効にすると、証明書を設定する必要がある。 Lambdaの場合は以下のようなコードになるかな。 const fs = require('fs'); const mysql('mysql2/promise'); exports.handler = async (event) => { let con; try { con = aw…

distrolessを試す。

軽量なコンテナを作るにはdistrolessのイメージをベースにするのがよいらしい。 distrolessは、Googleが管理しているイメージで、Google Container Registryで管理されているっぽい。 github.com 当たり前だけどdockerhubで検索してもでてこない。 とりあえ…

JNIのはじめの一歩

たまに必要になるJNI。ノート替わりにメモしておく。 例えばこんな感じのSample.javaコードを用意して、ここからヘッダファイルを生成する。 public class Sample { public static native int readValue(); } javac Sample.java -h . javacのヘルプみればわ…

「12ステップで作る組み込みOS自作入門」の写経を終えた。

OS

とりあえず本の内容は写経し終えた。 「ゼロから~」ので汎用OSの自作の入門は終えていたけど、組み込みOSの自作ということで学びが多かった。 ma38su.hatenablog.com できあがるもの、という意味ではecho コマンド一つなのだけれど、個々の説明もかなり詳し…

「12ステップで作る組み込みOS」を始めた。

メモ。 WSL2はUSBが認識できないので、VirtualBoxにUbuntu20.04をセットアップした。 セルフコンパイラのインストール。とりあえずバージョンとか意識せずにインストールしてみた。 apt install binutils make gcc curl クロスコンパイラのインストール。 bi…

インフィニティnumpyの演習221問やり終えた。

Twitter眺めてたら見つけた、インフィニティnumpy。numpyは、ちょっとはわかるけど、ちゃんとわかってなかったので、ちょうどよさそうと思いやってみた。 一か月くらいかかった気はするけど、夏季休暇期間中にやり終えることができた。 booth.pm 1章 基礎。…

「ゼロからの自作OS入門」を一巡した。

OS

一応、1行1行確認しながら写経して30章まで終えた。ただし、画像ビューアとテキストエディタは省略したけど。 いちおう30章まで終わり!写経だけでも長かったー。#ゼロからのOS自作入門 pic.twitter.com/MYxqfiPl8W— ma38su (@ma38su) 2021年7月9日 つぶやい…