TwitterFacebookRSS Feed

Anti-Pattern Inc. Engineering Blog

Anti-Pattern Inc.(株式会社アンチパターン)のエンジニアブログです。

Go, golang

【Go】os.OpenFileのフラグについて

Photo by Markus Spiske [https://unsplash.com/@markusspiske?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit] / Unsplash [https://unsplash.com/?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit] ※go version go1.19 darwin/amd64 ファイルを作成するGoの関数os.OpenFileは、3つの引数を取ります。 https://pkg.go.dev/os#OpenFile func OpenFile(name string, flag int, perm FileMode) (*File, error) 第2引数のflag intは以下のような値を入れられます os.OpenFile("filename.txt", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) この縦棒でつない
Ami Yamamoto
Ami Yamamoto
2 min read

都税事務所に納税証明書を取りに行ってみた

法人事業税と法人都民税の納税証明書を取得する為に、都税事務所に行った時に調べた事、行ってみて分かった事をまとめました! 納税証明書の取得方法は? 電子申請(郵送で受け取り) 【メリット】 ・都税事務所に出向く必要がない ・発行手数料と証明書郵送料は「Pay-easy(ペイジー)」で支払える 【デメリット】 ・東京共同電子申請・届出サービス [https://www.shinsei.elg-front.jp/tokyo2/navi/index.html]に登録が必要 ・窓口申請よりは証明書の受け取りまでに時間がかかる(郵送申請よりは早い) ・郵送で受け取りのため郵送料がかかる 【どんな人に向いてる?】 電子申請は、窓口には行けないけど早めに書類が欲しい人に向いてそう 郵送申請 【メリット】 ・都税事務所に出向く必要がない 【デメリット】 ・証明書の受け取りまでに時間がかかる(申請受付から証明書の発送までに1週間~10日程度) ・往復の郵送料がかかる ・発行手数料は「定額小為替(ていがくこがわせ)」で支払う必要がある 【どんな人に向いてる?】 郵送申請は、窓口にも行けないし電子申請
Sumomo Moriguchi
Sumomo Moriguchi
4 min read
Go

Goのcontextのkeyについて

はじめに Goの標準パッケージの context.Context は context.WithValue 関数を使って任意の値を格納することができます。 context.WithValue には以下のようなコメントが書かれています。 // WithValue returns a copy of parent in which the value associated with key is // val. // // Use context Values only for request-scoped data that transits processes and // APIs, not for passing optional parameters to functions. // // The provided key must be comparable and should not be of type // string or any other built-in type to avoid collisions between // packages using c
Yu Takahashi
Yu Takahashi
6 min read

Codespacesを使ってブラウザで開発をしよう

Codespacesとは クラウド上で、開発ができる機能。 VSCodeやブラウザを使って開発が可能。 ブラウザで開発可能なので、自身のPCのスペックに関係なく(タブレットでも)スムーズに開発ができます。(PWA化もされているので、Vimのプラグインなどを入れても、ブラウザのショートカットキーとかぶらず、快適に開発ができます) CodespacesYour instant dev environmentGitHub [https://github.co.jp/features/codespaces]※2022/07/03時点でβ版の機能です。 このように、開発環境のスペックをそのつど選ぶことができます。 重い処理をする際に気軽にスペックを上げることができるのは非常に魅力的。 料金はこちら Codespaces の支払いについて - GitHub Docs 価格を見て、OrganizationでのCodespacesの支払いの管理方法を確認してください。GitHub Docs [https://docs.github.com/ja/billing/managing-
Kohei Kondo
Kohei Kondo
5 min read

Browsersyncを非Docker環境とDocker環境の両方で使いたい

お世話になっております。矢ヶ崎です。 最近、とあるシステムのヘルプをするにあたって、既存の React プロジェクトの開発環境を Docker 化させたときに、 Browsersync がうまく動かずハマったので、ここに記しておきます。 もともと、 Docker を使わずに開発していたのもあり、 Docker を使わないでの開発環境も引き続き必要という状況だったため、 Browsersync 側にはなんの変更も加えずに動くようにするのに苦労しました。 SPAベースでできているため、 nginx の裏にはフロントエンドとバックエンドの両方を配置し、パスベースで振り分けるようにしております。 Browser => nginx => /api/ => port 3000 Backend => / => port 2000 Frontend ただ、これだけだといい感じに Browsersync が動きません。既存のBrowsersyncの設定(抜粋)はこんな感じです。 new BrowserSyncPlugin( { http
Akihiro YAGASAKI
Akihiro YAGASAKI
1 min read

SaaS.tech #2 で LT させていただいたお話

こんにちは!矢ヶ崎です! 2022/04/20 に、「SaaSにおけるマルチテナント設計の悩みと勘所 | SaaS.tech #2 」 [https://saas-tech.connpass.com/event/243204/] というイベントにてLTをさせていただきました!このイベントは、SaaSのTech領域に特化したイベントになっていて、いままでありそうでなかったイベントだと思います。ここ数年はSaaSとクラウドのことばっかりをやってきたので、個人的に激アツです!日本でもSaaSビジネス系のお話は、書籍もイベントもそこそこある感じがしますが、Techのものはほぼ皆無だと思いますので、とっても貴重なイベントだと思っています! ここに登壇させていただいてとても嬉しかったのでブログにしてみました。 このときのテーマは「マルチテナント」ということでしたので、「マルチテナントにおけるデータ分離(仮)」のお話をさせていただきました。もちろん、ぼくじゃない登壇者のみなさまのお話も、全てとても参考になるものだったのでぜひ見ていただくことをオススメします! ぼくの登壇資料はこちらです! h
Akihiro YAGASAKI
Akihiro YAGASAKI
2 min read
Go

Goでsliceの一部を抽出する時の注意点

sliceの構造 Goのsliceは 配列へのポインタ 長さ 容量 を持った構造体として定義されています。 go/slice.go at go1.18 · golang/goThe Go programming language. Contribute to golang/go development by creating an account on GitHub.GitHubgolang [https://github.com/golang/go/blob/go1.18/src/runtime/slice.go#L15-L19]type slice struct { array unsafe.Pointer len int cap int } sliceの構造については以下の記事が分かりやすかったです。 実装して理解するスライス #golang - Qiitaはじめに この記事はGoアドベントカレンダーの1日目の記事です。 スライスの実態 runtimeのコードをみるとGoのスライスは以下のように定義されています。 type slice struct { arr
Yu Takahashi
Yu Takahashi
4 min read
visual studio code, GitHub, posse

Visual Studio Code de GitHub

今までGitHubはCLIで使っていて、まずはコマンドを覚えましょう!ってお話をしてたのですが、Visual Studio Codeからぽちぽちやってみたら思った以上に便利だったので、CLIあまり使わなくなっちゃいました。 Gitわかりません、コマンドわかりませんというのもあれですので、Visual Studio Codeでしか使えないという状態は良くないと思ってます。便利機能のご紹介という前提で読んでいただければ幸いです。 現在のブランチを確認 左下の赤枠部分に書いてあります -------------------------------------------------------------------------------- ブランチをチェックアウト 左下の赤枠部分をクリック、上の赤枠部分にブランチが表示されます 表示されているブランチを選択するか、テキストボックスに対象のブランチを入力すると検索できます リモートのブランチが表示されないんですけど!という場合は、 フェッチしてから確認すると表示されると思います ------------------------
yuichi.kotani
yuichi.kotani
3 min read
caddy

Caddy 2を触ってみる

Caddyとは Caddy 2 - The Ultimate Server with Automatic HTTPSCaddy is a powerful, enterprise-ready, open source web server with automatic HTTPS written in GoThe Ultimate Server with Automatic HTTPSCaddy Web Server [https://caddyserver.com/] HTTPSを簡単に自動的に使えるようにしてくれる唯一のweb server (2022/05/03) 証明書を自動更新してくれる機能があり、defaultではLet's Encryptを使用。 A(AAAA)レコードを設定したあとに、Caddyfileに下記を書いておけば、あとはよろしくやってくれるというすぐれもの。 ※ちなみにGo製 example.com respond "Hello, kohe!" Amazon EC2 (Amazon Linux2) & Let's Encrypt で試してみた
Kohei Kondo
Kohei Kondo
2 min read

TypeScript: Array.prototype.mapでundefinedを取り除いた配列を作成する

こんにちは、いわむらです 今回はTypeScriptを使ってundefinedが含まれない配列を作成する方法をご紹介しようと思います 今回はtypescript v4.6.2で動作検証を進めるのでもし上手く動かない場合はバージョンを確認していただきたいです u ndefinedが含まれない配列を作成したいにいたった理由なんですが、あるオブジェクトの特定プロパティのみの配列をループ処理を使って作成したい時に上手くいかずはまってました サンプルのためにあるオブジェクトを名前プロパティが任意のユーザー型とします type User = { /** * * @type {number} * @memberof User */ id: number; /** * * @type {string} * @memberof User */ name?: string; } ユーザーのリストを作成して名前を抽出した配列を作ろうと思います まずはユーザーリストを作ります c
Jun Iwamura
Jun Iwamura
1 min read

MySQLでテーブルのカラムのNULLと空文字を同等に扱いたい場合の書き方

NULL許可しているカラムに空文字列が設定されており、 作成したSQLがうまく動いてなかったのでゴニョゴニョやってたけど、 ちょっと調べてみたらいい感じのやつ見つけたので忘れないよう残しておきます。 IFNULL(引数1,引数2) と NULLIF(引数1,引数2) という関数がありました。 IFNULLについては、引数1がNULLだった場合、引数2の内容を返す仕様となっています。 SELECT IFNULL('hoge', 'hoge hoge') hoge, IFNULL('', 'hoge hoge') 空文字列, IFNULL(NULL, 'hoge hoge') NULL; 実行すると以下結果となります。 +------+--------------+-----------+ | hoge | 空文字列 |  NULL | +------+--------------+-----------+ | hoge | | hoge hoge | +------+--------------+-----------+
Hiroki Kooriyama
Hiroki Kooriyama
1 min read

Amazon QuickSightと仲良くなるためのTips

こんにちは。小笹です。 最近は、Amazon QuickSightを使って事業の分析を行って経営に活かそうと頑張っています。 QuickSightとはAmazon Web Servicesが提供しているビジネスインテリジェンスツールです。詳しくは公式サイトをご覧くださいませ。 https://aws.amazon.com/jp/quicksight/ 結論 Amazon QuickSightと仲良くなるにはデータセットの「計算フィールド」を上手く使うのが大事。 やりたいこと AWSエンジニア特化型のマッチングプラットフォーム「engineed」では弊社独自の実技試験を提供させていただいています。その実技試験結果をもとに利用企業はユーザーに対してスカウトを送ることができるので、よりその人に合った良い機会をエンジニアに届けられると思っています。 その中で受験済みのユーザーと未受験のユーザーで、どういう差異が生まれているのかを分析したい気持ちになりました。(ex.スカウトの受信率など。) なのでAmazon QuickSightでも受験しているかどうかのフラグを見たい気持ちになりま
YukiOzasa
YukiOzasa
1 min read