Posts

お手軽にステータスページを作成できるStatupを触ってみた

  • POST
Statupを使ってみる Statusページをお手軽に作成するツールStatupを触ってみました。自分参照用にお試しに設置してみた動作例のサイトはこちらです。 できること httpとTCPのConnectivityを確認できます。 httpの場合は、GETリクエストだけでなく、POSTリクエストなどにも対応しており、REST APIのエンドポイントの応答確認にも対応できるようになっています。 TCPの場合は、IPアドレスとポート番号を指定して、応答の確認をします。 HTTPの場合 httpの場合、以下のようにレスポンスタイムの情報と一緒に表示されます。 TCPの場合 tcpの場合、同じような感じで以下のように表示されます: 設定について 基本的には起動させて、所定の設定ファイルが存在しなければ設定画面が表示されます。その画面に必要事項を指定していけばOK。 私の使用用途だとSQLiteがあっているため、SQLiteを利用するように設定しました。設定ファイルの中身をのぞいてみると、こんな感じになっていました: kazu634@itamae-test% cat config.yml connection: sqlite host: "" user: "" password: "" database: "" port: 3306 location: . Prometheusとの連携 このStatupですが、Prometheusと連携ができます。PrometheusをGrafanaに連携させることで、お手軽に各サイト・APIエンドポイントのステータスを時系列で確認できるようになります。こんな感じになります: まとめ お手軽にウェブのエンドポイントやポート監視ができるので、色々と活用できそうです。 参考 GitHub - hunterlong/statup: Status Page for monitoring your websites and applications with beautiful graphs, analytics, and plugins. Run on any type of environment.

APIサーバを作ってみた: Pocketの記事をアーカイブするよ

  • POST
GolangでPocketの記事をアーカイブするAPIサーバを作ってみました。 困っていたこと 通勤中などにiPhoneで読んでいて気になった記事は、一度Pocketに ブックマークすることにしています。その後は、Workflowを用いて色々と行なっています。 ここで困ったことに気づきました。その色々行なった後にPocketに登録した記事をアーカイブしたいのですが、WorkflowからはPocketの記事をアーカイブできませんでした。。。 ただ、Workflowからは任意のHTTPリクエストを送信できることに気づいたので、簡単なAPIサーバを立てて、Pocketの記事をアーカイブすることとしました。 検討したこと 色々と検討したことのまとめです。 言語選定 お仕事柄色々なOSに触る機会があるので、お手軽に各種OSのバイナリが生成できるGolangで作成して、習熟することにしました。 ライブラリ ウェブサーバのライブラリには、ginを使って見ることにしました。こちらはお仕事で、HTTPリクエストを受け取るためのモックWebサーバを立てる時にお世話になったので。 また、Pocket用のライブラリは、go-pocketを使うこととしました。 書いてみた とりあえず書いてみます!APIサーバは、2つの部分からなります: HTTPリクエストを受け付ける、ウェブサーバの部分 HTTPリクエストに応じて、実際の処理を行う部分 ひとつずつ進めていきます: ウェブサーバ部分 ウェブサーバ部分はginを用いているので、こんな感じで書けるみたいです: package main import ( "os" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() // http://localhost:8080/delete で HTTP POSTリクエストを受け付けるよ r.POST("/archive", func(c *gin.Context) { // POSTリクエストに付随するフォームデータからデータを取得するよ auth := c.PostForm("auth") // authからデータ取得 url := c.PostForm("url") // urlからデータ取得 // authで送られてきたデータが”password”だったら if auth == "password" { // レスポンスとしてステータスコード200とJSONを返す c.JSON(200, gin.H{ "auth": auth, "url": url, }) // authが”password”でなければ } else { // ステータスコード401を返すよ c.

Linuxサーバでディスクキャッシュを説明する

  • POST
なぜメモリ使用量などを意識する必要があるのかについて説明するとした場合の簡単な案です。ディスクへのアクセスという観点でメモリがどのように利用されているかを考えて見る内容で説明してみます。Software Design 2018年1月号|技術評論社を参考にさせていただきました。 最近は自分で手を動かしながら、実際の挙動を見ることができるような書籍・記事が増えてきたので、実際にやってみることができて嬉しいです。 はじめに 一般的なOSでは、物理的なディスクにアクセスする際、以下のようなフローでアクセスする: メモリ上にファイルが読み込まれている場合、メモリからファイルを読み込む メモリ上に存在しない場合、直接ディスクにアクセスする 当然ながら、ディスクへのアクセス速度 <<<<< メモリへのアクセス速度のため、基本的な戦略としては「メモリにファイルを読み込ませる」こととなる。 ここではディスクキャッシュの有り無しでどのようにディスクへのアクセス速度が変化するかを見てみます。 メモリについて まずはLinux上でのメモリ管理について簡単におさらいします。 ディスクキャッシュに関する情報を参照する freeコマンドを実行することで、メモリ上にキャッシュされているファイルサイズを確認できます。freeコマンドを実行した際の、buff/cache列を参照します: kazu634@bastion% free -m total used free shared buff/cache availableMem: 488 130 27 5 330 324 Swap: 1023 58 965 メモリに格納されているディスクキャッシュを削除する /proc/sys/vim/drop_cachesに3を書き込むことで、メモリ上に格納されているキャッシュをドロップできます: kazu634@bastion% echo 3 | sudo tee /proc/sys/vm/drop_caches [sudo] kazu634 のパスワード: 3 kazu634@bastion% free -m total used free shared buff/cache available Mem: 488 131 275 5 81 322 Swap: 1023 58 965 kazu634@bastion% ファイルへのアクセス速度を計測する すでに説明してきたように、OSがファイルにアクセスする際は、メモリ上のキャッシュ経由のアクセスと、直接ディスクにアクセスする場合の2つのパターンがあります。

日本で免税ショッピングを楽しむよ

  • POST
「免税」という言葉があることは知っていましたが、よくわかっていなかったので、今回調べてみました。海外で働いている日本人は、日本に一時帰国中でも免税ができるそうなので、日本に帰国して実際に試してみたよ。 免税とは 「どうして安い価格で買えるの?免税店の仕組み | お金の教室 |ジャックス」を参考にみてみると、免税店とは「税金が免除される店のことで、関税や消費税がかからない商品を置いてい」るお店とのこと。 免税店には2種類あって、 空港型免税店(Duty Free Shop) 市中免税店(Tax Free Shop) があるそうです。空港型免税店では関税、酒税、たばこ税などが免除され、市中免税店では消費税が免除されるそうです。 要するに、一時滞在をしていることが明確な人の場合は、国内であれば支払う必要のある税金を免除するよ…という仕組みのようです。 試してみた シンガポールで働いている私は、日本に帰国している場合は一時滞在をしていることとなり、免税できる権利があります。やった。というわけで試してみました。 大まかな流れはこちら: 日本に入国するタイミングでパスポートに帰国スタンプを押してもらう 免税店で購入する際に、免税店の店員さんは一時帰国中の人かどうかを確認する必要があります。そのため、免税店で購入する際はパスポートを持参して、日本には一時帰国中であることを証明する必要があります。 店員さんは日本帰国時に押されるスタンプを見て判断しているのですが、最近の空港では自動改札などが導入され、スタンプが押されない場合があります。その場合は係員さんに「押してください」と言うと、スタンプを押してくれました。 よく目を凝らしていると、自動改札を過ぎたところで、「スタンプが必要な人は係員に申しつけください」といった掲示がありました。 免税店で買い物をする 免税店で買い物をします。「Tax Free」とか「Duty Free」と書かれているお店です。レジで「免税で」と言えばいいようです。 店員さんからパスポートの提示を求められるので、みせてあげます。そして必要書類を作成してもらい、パスポートに貼り付けてもらいます: 消費税が課税されていないのがわかります! 出国する際に税関の窓口に行く 成田空港の場合は、手荷物検査の後、出国審査の前で税関の窓口があります。そこに向かい、パスポートに貼り付けられたレシートなどを渡します。 厳密には購入した商品の確認を求められるようですが、今回は求められませんでした。とはいっても、規則に従えば確認が求められるので、手荷物で持参すべきなのだとおもいます。 まとめ 私の実家は仙台なのですが、学生時代に比べると、免税店がとても多くなっていました。仙台駅前のAEONでも免税できるとは驚きです。 東京オリンピックもあることから、外国人旅行客の取り込みにも熱心のようです。仙台駅にSIMカードの自動販売機を見つけた時には驚きました。

Metabaseをお試しで使ってみた

  • POST
Metabaseという、オープンソースのお手軽BIツールがあるということで試してみました。これぐらいお手軽だと、エンジニアじゃない人にも「触ってみて」と言えそうです。 この記事で説明すること・しないこと この記事で説明するのは、 Metabaseの使い勝手 Metabaseの見え方とか この記事で説明しないのは、 Metabaseの構築手順など です。 用意した環境 MariaDBにヒストリカルデータ | みずほ銀行のページから、外国為替公示相場ヒストリカルデータ/日次データ (2002年4月1日~)をダウンロードして、インサートしました。 このMariaDBをMetabaseから参照させました。 Metabaseの使い方・見え方 Metabaseの使い方ですが、とても簡単でした。以下の赤く囲った部分で必要な条件を入れていくと、お手軽に線グラフができます。 上の例では、米ドルのレートを各週平均をとって線グラフにしました。 色々とグラフを見てみた 現在住んでいるシンガポールドルのレートを過去5年分、各週平均をとって線グラフにするとこんな感じでした: 2015年4月にシンガポールに来たので、その時点のレートを仮にGoalと置いてみました。シンガポールに来たときは、日本円が弱く、シンガポールドルが強いタイミングだったみたいです。 もう一つのグラフはタイバーツのグラフです。同じように過去5年、各週平均をとって線グラフにすると、こんな感じでした: 線の形的にはシンガポールドルと似たようになっていますが、金額がぜんぜん違うので、ここらへんはどのように判断すべきなのかなぁ…といったところです。日本円の価値はあまり変わらずにずっと来ているということなのかな。 まとめ 元になるデータさえ用意できれば、お手軽に可視化できて良さそうです。 参考 Metabase OSSのデータ可視化ツール「Metabase」が超使いやすい

数学ガール ポアンカレ予想で気になった部分

  • POST
数学ガール/ポアンカレ予想 (「数学ガール」シリーズ6) で気になった部分を引用しておきます: 「音楽は時間芸術、時間は不可逆」と彼女は言った。「どんなミスしても、鳴らした一音は取り返せへん。ミスしても、音楽では先に進まんとあかん。音楽を進めんとあかん」 「先に進む……」 「音楽は時間芸術、時間は一次元」と彼女が繰り返す。「でも人には記憶があって、聞いた音を覚えてる。音の記憶が連なって、心にパターンが生まれる。いい音楽を作りたかったら、いい音を重ねていくしかあらへん。《一音は一曲のため、一曲は一音のため》ーーってお師匠さんは言わはる」 (省略) 「いい音を重ねていくしかない……いい音ってなんだろう」 「音楽は時間芸術、時間は連続」と彼女はもう一度繰り返す。「音楽では、一音だけを取り出して『いい音はこれ』なんて言えへん。鳴らすべきタイミングで鳴らした音がいい音。そして、鳴らすべきタイミングは、他の音との兼ね合いで決まる」 (省略) 「語るべきタイミングで、語るべきセリフを言えるんかいな、未熟王子は」 数学ガール/ポアンカレ予想 (「数学ガール」シリーズ6)posted with amazlet at 18.05.20結城 浩 SBクリエイティブ 売り上げランキング: 6,988 Amazon.co.jpで詳細を見る

バックパッカーの聖地ということで有名なカオサン通りを訪ねてきました

  • POST
カオサン通りを訪ねてきました。バンコクにはカオサン通りという通りがあります。バックパッカーの聖地ということで有名と知り、行ってみました。 行き方 今回私が宿泊したのはNana付近のホテルでした。そこから向かう方法としては、 タクシー テュクテュク 船 という3つの選択肢があるようでした。今回は船で向かいました。地図で見るとこんな感じで向かいました: まずは電車でSathornまで向かい、そこからChao Phraya Tourist Boatに乗ります。N13のPhra Arthitで降ります: 船からの街並みはこんな感じになります: 街並み 船着き場から降りて、カオサン通りまでたどり着くには少しだけ歩きます: 落書きもありました: そしてついにカオサン通りに到着。カオサン通りはバーや酒場などの飲み屋が数多くありました。想像していたようなバックパッカーの聖地というよりかは、普通の繁華街という印象を受けます: 1つ隣の通りの方が、バックパッカー向けのように思いました。こちらの通りはホテルやマッサージ屋さん、レストランが並んでいて、それっぽい感じです: 感想 後で学生時代からアジア放浪していた友だちに聞いたところ、バックパッカーが多く集まるということで有名だったのは過去の話。若い時にカオサン通りに滞在していたバックパッカーが、歳をとり、子供もできて、訪れている…というのが最近の実態のようです。