旧ブログの記事をこちらに移行しました
Posted 10. November 2020
今回はちょっとしたお知らせです。
随分前からzeroclock.devを始めてはいたのですが、旧サイトのビボログの記事はほったらかしだったのでこっちに持ってきました。 ...
READ MORE
Time to read 1 min
Posted 10. November 2020
今回はちょっとしたお知らせです。
随分前からzeroclock.devを始めてはいたのですが、旧サイトのビボログの記事はほったらかしだったのでこっちに持ってきました。 ...
Time to read 1 min
Posted 30. October 2020
共通鍵関連で、DES暗号化をRustで実装しているんですが、そのときにちょっとハマりかけたのでメモ。
fn main() {
let mut src = "abc".to_string();
let mut s = src.as_bytes();
println!("{:08b}", &s[0]);
set_bit(&mut s, 0);
println!("↓");
println!("{:08b}", &s[0]);
}
fn set_bit(bytes: &mut [u8], bit: usize) {
bytes[bit / 8 as usize] |= 0x80 >> (bit % 8);
}
処理自体は単純で、文字列をbyte配列に変換後、指定されたビットを立てるような感じです。
!--more--> ...Time to read 1 min
Posted 2. September 2020
Infrastructure #AWS #Lambda #lambci #img2lambda #PHP #CustomRuntime #serverless
これまでLambdaを構築する際には、ソースコードを決め打ちで書いてzipで上げたり、コンソール上のエディタでポチポチ開発していたりしてました。
PythonとかNodejsとかなら、それでも簡単なAPIくらいなら作れるのですが、ちょっと複雑なことになったり、PHPみたいにCustom Runtimeを使いたい場合とかは、何度もデプロイし直してトライアンドエラーするのは効率が悪いです。 ...
Time to read 6 min
Posted 12. August 2020
Axiosで外部APIを叩いてデータを取得したいと思い、下記のコードを書いたとします。
import axios, { AxiosPromise } from "axios";
interface CatApiResponse {
name: string;
age: number;
parents: string[];
}
const client = axios.create({
baseURL: "https://example.com/api/v2/",
headers: {
"Content-Type": "application/json"
}
});
const fetchAllCat = (): AxiosPromise<CatApiResponse> => client.get("cat");
const hoge = () => {
const data = fetchAllCat();
data.then((data) => {
data.data.parents.map((parent) => {
console.log(parent);
return "hoge";
});
});
};
IDEで型推定を確認すると、確かに CatApiResponse
になっている。
Time to read 1 min
Posted 11. July 2020
EmacsのLSP-modeは非常に快適で、言語サポートの追加も簡単にできるので重宝しているのですが、動作がカクついたりしてストレスになる場合がありました。ドキュメントを確認したところ、パフォーマンスチューニングの方法があったのでまとめておきます。
今回対応するチューニングが正常に適用されているかどうかは、 M-x lsp-diagnose
で確認できます。
Time to read 3 min
Posted 8. July 2020
作っているアプリのサーバサイドをGOで書いているので、Realizeでhot reloadを実現しようと思ったのですが、 GO111MODULE=off
にしないとgo getできなかったり、いざdocker-composeで realize start --run
しようとすると下記のようなエラーが出たりと色々あれだったので、他に使えそうなパッケージが無いか探してみました。
...
[01:09:01][SRC] : Running..
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4cf2fb]
goroutine 8768 [running]:
os.(*Process).signal(0x0, 0xad7a20, 0xe34878, 0x0, 0x0)
/usr/local/go/src/os/exec_unix.go:56 +0x3b
os.(*Process).Signal(...)
/usr/local/go/src/os/exec.go:131
github.com/oxequa/realize/realize.(*Project).run.func1(0xc000175698)
/go/src/github.com/oxequa/realize/realize/projects.go:581 +0x5c
github.com/oxequa/realize/realize.(*Project).run(0xc0001fa000, 0xc000133ab8, 0x7, 0xc000342300, 0xc000110540, 0xad2c20, 0xc00011c8d0)
/go/src/github.com/oxequa/realize/realize/projects.go:646 +0xc2d
github.com/oxequa/realize/realize.(*Project).Reload.func3(0xc0001fa000, 0xc000342300, 0xc000110540)
/go/src/github.com/oxequa/realize/realize/projects.go:262 +0x147
created by github.com/oxequa/realize/realize.(*Project).Reload
/go/src/github.com/oxequa/realize/realize/projects.go:260 +0x297
調べたところ、go-task が中々シンプルで良さそうだったので試してみました。
!--more--> ...Time to read 3 min
Posted 6. June 2020
Electron の Render プロセスでクロスオリジンのリクエストを投げた際、通常の Web と同様 CORS エラーでブロックされます。通信先が自前の API サーバだったりした場合にはそちらの設定でAccess-Control-Allow-Origin
を許可すれば OK です。
この制約はセキュリティ上必要なものですが、どうしてもクロスオリジンのリクエストを投げたい場合もあるかと思います。私の場合は、ある markdow エディタに、貼り付けた URL から自動的にページのタイトルを fetch して挿入する機能を実装するときに遭遇しました。 ...
Time to read 2 min
Posted 28. May 2020
この記事では、Rust(cargo)と npm は導入済みを前提としています。 知識的にはRust の公式 WebAssembly チュートリアルを一通り読んだくらいで、今回は Wasm と React どう組み合わせるのよってところを重点的に。
wasm-pack
Time to read 3 min
Posted 25. May 2020
個人的に今取り組んでいるプロジェクトで、画像の差分を取得する必要があったのですが、いまいちそれっぽいライブラリが見つかりませんでした。
lcs-image-diffもありましたが、ちょっとイメージと違う。 ...
Time to read 1 min
Posted 14. May 2020
.storybook/config.js
に下記の通り import 文を記述します。
import '!style-loader!css-loader!sass-loader!../src/styles/normalize.css';
現場からは以上です!!
Time to read 1 min