Typescriptを使用したサーバレスWebsocketチャットサーバーの構築
Posted 6. June 2021
チャットサーバーの見積もり相談で、Websocket使った場合の実装を整理したので、メモっておきます。
動作確認
以下のURLで動作確認できます。
!--more--> ...READ MORE
Time to read 4 min
Posted 6. June 2021
チャットサーバーの見積もり相談で、Websocket使った場合の実装を整理したので、メモっておきます。
以下のURLで動作確認できます。
!--more--> ...Time to read 4 min
Posted 3. June 2021
所属会社にて、内定者向けのインターン(っていうのか?)を開催することになり、急遽環境構築をすることになりました。
内容も結構本格的で、ほぼ実案件のソースを使ってバグ改修とか機能追加とかさせたいね ということでした。まあソースとかは一応持ち帰りで作ってる案件のソースもあるし、バグについても過去のバグチケットを漁れば良いな と。 ...
Time to read 3 min
Posted 24. May 2021
Infrastructure #AWS #Terraform #Serverless #CICD #Lambda #Laravel
デプロイを自動化するのがMustになりつつありますが、なかなか完璧な自動デプロイ環境を作るのは難しいなーと感じています。
で、最近、所属会社の経営層へのプレゼンのネタとして、中途半端にデプロイ自動化しているプロジェクトを、全リソース自動デプロイ化したら面白いんじゃね?という点で色々検証してみましたので、それについての記事になります。 ...
Time to read 5 min
Posted 23. May 2021
ブログ更新サボってる間に色々ネタがたまってしまったのでちょこちょこ放出していきます。
いくつか作ったツールなどありますので、しばらくはそのあたりの紹介だったり、最近開発リーダー(PLじゃないよ)周りの仕事でアプリ設計だったり新しめのFWを使ったりしてるのでその辺の知見等も書けたらと思います。 ...
Time to read 3 min
Posted 15. November 2020
Infrastructure #Rust #Github #TravisCI #Codecov #Lambda #AWS #rusoto
最近実務でもプライベートでもLambdaを使う機会が多いのですが、毎回悩むのが開発環境とCI/CD。
ちょっとしたLambdaならブラウザコンソール上のエディタを使って作るとか、zipで固めるとかでいいんですけど、それなりに大きなLambda関数だとやっぱり ...
Time to read 12 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