私は、アマチュア無線を行うサークルに属しているため、無線局の情報を調べることが多くあります。1局や2局なら手で調べてもよいが数が多くなってくると面倒極まりありません。数が多くなってくると、やはりプログラムの力を借りる必要があります。幸いにも日本の無線局情報は総務省がAPIを提供しているため、APIを叩けば情報を取得できます。そこで、毎回APIのリクエストを組み立てるのは面倒なので、Go言語の練習を兼ねてクライアントライブラリを作成することにしました。できたものは次のリポジトリで公開しています。↓の感じで無線局の登録件数が取得できます。LastUpdateDate:2019-11-03}}APIの仕様は総務省のウェブサイト内で公開されています。SOTAを参考にしました。APIのクライアントの部分については、ほぼ上のとおりになっています。デバッグ用のロガーについては、logger.goで宣言をしており、仕様する側でSetLogger()で自前のLoggerを指定するか、DebugEnable()でロガーを有効化してログを出力できるようにしています。APIから取得できるJSONデータではタブ文字や改行がそれぞれ\tや\nとしてエスケープされていたり、周波数の表記がMHz、HzやkHzが混在しており扱いにくいので、そのためのヘルパー関数を作っていこうと思っています。周波数と電波形式のリストは、オブジェクトの配列とかで表す仕様にしてほしかった....また、作成したAPIクライアントの使い方が簡単にわかるようにexampleディレクトリに使用例としていくつか簡単な実際に動くソースコードを置いています。READMEにもざっくりとした使い方を書いています。exampleディレクトリにあるサンプルコードとREADMEを参考にすれば使用方法はわかるようになっていると思います。Go言語でコマンドラインツールを作成したことはありましたが、packageの実装はしたことがなかったため非常に勉強になりました。Qiitaの15日目の記事です。key}"を実行したところ、設定ファイルの作成できないというようなエラーとなりました。詳しく調べると、設定ファイルが保存されるディレクトリが存在している場合はファイルが作られ、そうでない場合はエラーとなり実行が停止されることが分かりました。内容としては、設定ファイルの場所として指定されているパスを見て、ディレクトリが存在していない場合は新規に作成するという処理を追加するものです。これを追加するのに合わせて該当の場合に対するテストも追加しました。どの程度便利になったのかは分かりませんが、初期化の際にディレクトリを作らなくて良くなった点は個人的によかったです。出せたのでかなり恵まれていたと思います。関わったプロジェクトなので、今後もコミットしていけたらと考えています。本当は新しくやったことを書こうと思っていましたが、想定以上に時間がとれなかったためインターンのときのことを書くことになってしまいました。アドベントカレンダーも残すところ1週間と少しになってしまいましたが、これからどんな記事が投稿されるのか楽しみです。友人に載せられて登録してしまったので、Go言語でWasmに入門しました。単純にチュートリアルをやるだけだとつまらないので、ちょっとだけ実用的なボタンをクリックしてメニューをトグルできるようにしました。通りにして作成します。タグを次の内容に変更しました。divの子要素をWasmから操作してメニューの表示非表示を切り替えます。links.html)も適当な内容で作成します。その後、メニューを表示するための関数ShowMenu()と非表示にする関数HideMenu()を実装しました。menu型の配列に入れた情報を使ってメニューのDOMを生成しています。nil}次に、作成した関数をmain関数でボタンのイベントリスナーに登録します。{}}ビルドは次のようにします。main.wasmHTTPサーバは、goexecが入っていなかったのでPythonで一時的に建てました。localhost:8000をブラウザで開いてボタンをクリックするとメニューの表示・非表示を切り替えられます。以上、Wasmへの入門でした。いえば、これを書いてるときにvimplsにsyscall/jsが見えていなかったようなんですがどうしたらいいのだろう。明日も、Go言語とWasmらしいので何が出るのか楽しみですね。第一世代にインストールした。インストールしてから、メインのノートPCとして使い続けています。LinuxをメインPCとして使うようになってから感じたことを紹介します。いった用途で使用しているか。視聴などに使用しています。Go言語開発をしています。ゲーム用ではないので快適に暮らせています。作成し、適宜友人と共有ができるようにしています。開けることが要求されることが多いのでこのような運用になっています。いった個別のソフトウェアのインストールスクリプトは用意していますが環境全体を整えるためのスクリプトは用意していません。開発環境の整備は好きなので、壊れたときは環境をアップデートする良い機会と考えることにしています。標準で簡単に使用できることが最も大きな利点だと感じています。プログラミングを行っており、ターミナル上で操作をしている時間がほとんどを占めています。標準で多くのリッチなコマンドを使用できることは重要な要素の1つです。軽く起動できることも嬉しいです。版がないため使えず不便です。持ち出してきています。動かない/動作が不安定なソフトウェアがあるので注意が必要です。多くのサービスは、ブラウザで利用できるためあまり困ってはいません。キー配列が正しく認識されないこれは私の端末に固有の問題だと思われますが、デスクトップにログインする前は、英字配列として認識されてしまいます。一度ログインすれば日本語配列として認識されますがシャットダウンするとリセットされてしまうのでパスワードの入力の時に混乱するときがあります。デスクトップにして良かったと思っています。人に進めるかというとその人のライフライフスタイルに依る部分が大きいので、積極的には薦めませんが聞かれたら可能な範囲で相談には載るつもりです。書ききれなかったこともありますが、残りはまたの機会に書こうと思います。今日は、日常で使用しているリポジトリ移動用に作成したシェルスクリプト関数の紹介をします。本文ソースコードの管理は、Go言語のフォーマットに従って次のようなディレクトリ構造としています。ルートして、${gowork}を指定しています。説明に不要なディレクトリは、省略しています。...この方式は、ソースコードが1箇所にまとめられて管理が楽なのですが、リポジトリ間の移動が少々不便です。起動したプロセス内にいるのか、最初に起動したシェルのプロセス内にいるのか分からなくなってしまいSSH等でリモートから接続している際には誤って接続を切ってしまうことがあります。ような文字列を表示する方法もありますが、私は普段次のようなシェルスクリプト関数を定義して同一のプロセス内で移動するようにしています。コマンドに流し込んでいるだけの簡単なものです。ディレクトリを除いて検索をしたいのですが、うまくできなかったので今はこれで妥協しています。コマンドは、はてなサマーインターンに行ってから使うようになりました。コマンドを初めて使ったのですが便利ですね。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。