2022.06.21 WEBシステム開発 Go WebAssemblyでブラウザ上でGoを実行する その2 Go側からJavascriptを操作する 前回の記事「GoのコードをWebAssenblyにコンパイルしてブラウザ上でGoを実行する」では、コンパイル済みのGoのプログラムをブラウザ上で実行しただけでした。 今回は、さらにGoのプログラム側からJavascriptを操作してみようと思います。 syscall/js Goのプログラム側から [...]
2022.04.25 WEBシステム開発 GoのコードをWebAssenblyにコンパイルしてブラウザ上でGoを実行する 今回は、GoのコードをWebAssenblyにコンパイルしてブラウザで動かす方法を試してみたいと思います。 WebAssemblyとは WebAssembly(wasm)はブラウザが解釈できる専用のバイナリ形式で、低レベルなアセンブリ風言語です。 Web標準として開発されており、現在では様々な言 [...]
2022.02.22 WEBシステム開発 【Go】go.modのreplaceでローカルのモジュールを参照する goで複数のモジュールを組み合わせて機能を実装する場合にgo.modでモジュールをimportして使うのですが、importしたモジュール側に実際にどんな値が渡されてきているのかを調べたい場合にモジュールにデバッグコードを追加してpushし、利用側で変更したモジュールを更新する必要があります。 1 [...]
2021.12.15 WEBシステム開発 goでHTTPリクエストボディのサイズを制限する「MaxBytesReader」 webアプリケーションを作成していると、ユーザが誤って、もしくは悪意を持って巨大なリクエストを送ってくる場合があります。 何も対応しないとリクエストを受け付けてしまい、アプリケーションが不安定になったり無駄にメモリを確保してしまいます。 そこで今回はgoでHTTPのリクエストボディを制限するMax [...]
2021.10.17 WEBシステム開発 【Go言語】jsonデータをstreamで扱うEncoder、Decoder型を試してみる goのjsonパッケージには、jsonデータをstreamで扱うEncoder、Decoder型があります。 今回はこのEncoder、Decoderについて紹介します。 Encoderの定義 Encoderの構造体は以下のように定義されています // An Enc [...]
2021.08.19 WEBシステム開発 goでデータ形式を識別するためのMIMEタイプを判定する方法 業務でアップロードされた画像ファイルのMIMEタイプを判別する必要があったので調査しました。 httpパッケージのDetectContentType 調べてみるとgoのhttpパッケージにDetectContentTypeという関数がありました。 func DetectContentTypeh [...]
2021.06.16 WEBシステム開発 goでデータベースから取得したデータをcsvにして出力する 最近業務で大量のデータをcsvに出力する必要があり、goでのcsv出力方法を調べたのでまとめます。 goでcsv出力のサンプル goでcsvを出力するために「encoding/csv」が用意されています。 参考:Package csv 「encoding/csv」を使って簡単なcsvを出力する公 [...]
2021.04.15 WEBシステム開発 【React.js入門】関数コンポーネントで百マス計算を生成してみる 現在進行中のプロジェクトの為、goに入門して半年以上が経ちました。 goには多少なれてきたのですがこのプロジェクトでのフロントエンドにはReact.jsを採用することが決まっています。 vue.jsなどは多少触ったことがありますが、React.jsは初めての挑戦です。 React.j [...]
2021.02.18 WEBシステム開発 gomockでGoのインターフェースのmockを作成してテストを実行する 今回はGoのmockフレームワークであるgomockの使い方を紹介したいと思います。 gomockとは、Go言語用のmockフレームワークで、組み込みのテストパッケージと合わせて利用するライブラリです。 golang/mock ドキュメント インストール方法 [...]
2020.12.21 WEBシステム開発 GoのMarshal/Unmarshalの基本的な使い方とプライベートフィールドを持つ構造体での利用方法 アーティスではGoを使ったプロダクトの開発を進めています。 筆者も今年Goを始めたばかりの新参物です。 Goの文法はシンプルでわかりやすいのですが、開発を進めていくなかでjsonパッケージのMarshal/Unmarshalの使い方で悩んだので記事にまとめておきます。 Package json [...]
2020.10.19 WEBセキュリティ Cloud Functionsで機密情報の管理にSecret Managerを利用する 最近GCPのCloud Functionsを利用するようになり、Cloud Functionsで利用するAPIキーなどの 機密情報を環境変数に入れようとしたのですが、公式のドキュメントに以下の記載がありました。 シークレットの管理 環境変数は関数の構成に使用できますが、データベースの認証情報や A [...]
2020.08.05 BUSINESS仕事効率化ツール 簡単で安全なリモートアクセスを実現する「シン・テレワークシステム」の設定方法 昨今では新型コロナウィルスにより新しい生活様式への移行が求められ、 政府も「三密」回避の施策としてテレワークを推奨しています。 新型コロナウィルスの第二波がきている現状から今後もテレワークの重要性は増していくと考えられます。 現在筆者自身もテレワークを行っており、本社のVPNルーターの機能を利用し [...]
2020.06.18 LIFEIT活用 子どもでも無料でプログラミングを学べる「Hour of Code」を使って、楽しくプログラミングの基礎を学ばせてみよう 2020年から小学校でプログラミング教育が必修化されるそうです。 全員がプログラミング出来る必要はないと思いますが、確かにプログラミング的思考を身に着けることは今後重要になりそうです。 我が家の娘はまだ幼稚園児ですが、コロナの影響で幼稚園にいけない日が続き、暇を持て余していたので子供向けのプロ [...]
2020.04.30 BUSINESS仕事効率化ツール 【2020年版】Chromeリモートデスクトップで外出先から自宅や会社のPCを遠隔操作してみる この記事は、2017年5月15日の記事を2020年4月30日に再編集しています。 最近サポート詐欺などで悪用されている話を耳にする遠隔操作ソフト(リモートコントロールソフト)ですが、正しい使い方をすればとても便利なツールです。 以前は導入するための敷居が高くシステム管理者の手を借りるなどしないと [...]
2020.04.16 BUSINESS仕事術 新社会人に送る“おすすめタイピング練習サービス”5選 4月から新社会人になってキーボードでの入力機会が各段に増えた方もいるのではないでしょうか?オフィスワーカーにとってタイピングは避けて通れず早めの習得が重要です。 さらに、コロナウィルスの影響でリモートワークも増えチャットツールでコミュニケーションをとる機会が増えていきます。そのため今後も益々タイピ [...]
2020.02.15 WEBシステム開発 ノーコードでアプリケーションを構築できる「AppSheet」を使って業務支援アプリを開発してみよう 先日Googleは業務支援アプリ開発プラットフォームの「AppSheet」を買収しました。 この「AppSheet」の特徴はノーコードでアプリケーションの開発が行えることだそうです。いつもコードを書いてアプリケーションを作成している筆者としてとても気になります。 そこで今回は「AppSheet [...]
2019.12.18 WEBWeb全般 GoogleStreetViewが勝手に動く!?GoogleMapAPIを使った自動再生プログラムを作ってみる。 webの制作のなかでよくGoogleMapを利用しているのですが、ストリートビューもGoogleMapAPIから操作できることを知りました。 そこで今回はGoogleMapAPIでストリートビューを操作して付近を散歩するプログラムをつくってみようと思います。 事前準備 GoogleMapAP [...]