orangeliner.net BLOG logo

 アーカイブ: 2020年

1 / 2 (全 11 件)

PythonでJSONを整形&記法チェック

Pythonの標準ライブラリである「JSONエンコーダ・デコーダ」のCLIを使って、JSONデータの整形表示や記法が正しいかをサクッとチェックすることができます。

LinuxやPowerShell等で、Pythonを実行出来る環境があればOK。
Pythonのプログラム外でも簡単に実行出来て便利です。


[Go] JSONファイル(ネストあり&配列型)を読み込む

Goでネスト構造を持つ&配列型のJSONファイルを読み込む方法

読み込むJSONデータ

Twitter APIからのレスポンスを模したJSONをGoで読み込んでみます。
(実際のTwitter APIからのレスポンスにはもっと多くのデータが含まれていますが、ここでは簡略化しています)


WSL2+Docker+VSCodeでGo言語環境構築

VS Code (Visual Studio Code) のRemote Containers拡張機能をWSLやDockerと組み合わせることで、自分でDockerfileを書かなくても、開発環境コンテナをサクッと立ち上げることができます。
今回はGo言語の環境を作ってみました。


西鉄バス完全復活祭バスツアー #11 中谷ローカル編

去る11月22日(日)、西鉄バスの廃止路線を巡るバスツアー「西鉄バス完全復活祭」第11回・中谷ローカル編に参加させていただきました。

今回の車両

西鉄バス筑豊 9111号車
西鉄バス筑豊・飯塚営業所 9111号車(筑豊200 か・326)
日産ディーゼル KK-RM252GSN+西日本車体工業 B-Ⅰ 96MC(2004年式)


WordPressやめました(Middlemanへの移行)

2017年からWordPressで運用してきたこのブログですが、次のようなデメリットが目立ってきたこともあり、SSG(静的サイトジェネレータ)へ乗り換えたので、メリット・デメリットや仕組みについてまとめてみました。
SSGにはRubyをベースとした Middleman を採用しています。

WordPressで感じていたデメリット

  • アップデート時の仕様変更
    • 特に、投稿画面がよく変わるので嫌
  • セキュリティリスク
    • Webアプリケーションである以上、どうしても脆弱性を持つ
    • 後方互換重視のため、内部設計も古い
  • レスポンスが遅い
  • 誰でも使える
    • 一般的にはメリットなのですが、エンジニアとしてはさすがにWordPressを卒業したかった

一周回って WebサーバにはHTML/CSS/JS/画像を置くだけ のシステムになったわけですが、個人の趣味ブログなのでこれで十分だと感じました。


Ruby中級者を目指して「チェリー本」を写経してみた

9月に「Ruby技術者認定試験 Silver」を受験し、90点台で無事に合格できました。

しかしながら、Silver試験はどちらかと言えば”覚える”要素が多かったような印象があり、特にクラスやモジュールについての理解が足りてないのでは?と自分自身で感じていました。

そんな中、「チェリー本」の前書きの

「Rubyプログラミングを始めてしばらく経ったが、まだまだ自信が持てない人」を想定

の部分を読んで「これだ!」と。

Ruby の知識が付け焼き刃にならないよう理解を定着させてから Gold試験にも臨みたいと思い、「チェリー本」の写経に取り組んでみました。



[Middleman 4] カスタムヘルパの作成

Rubyベースの静的サイトジェネレータ「Middleman」では、主要なHTML要素を生成するためのヘルパーメソッドが予め用意されています。
ヘルパーメソッドの引数にオプションを指定することによって、id や class 等の属性値を指定することができますが、頻繁に使用する組み合わせがあるならば専用のヘルパーメソッド(カスタムヘルパ)を作ってしまった方が便利です。

例として、今回は Middleman に予め用意されている <a>タグを生成する「リンクヘルパ」 link_to メソッドを元に、リンクを新しいタブで開くようにする link_to_blank メソッドを作成してみました。


Python 3 開発環境構築 (Windows & VS Code)

Windows環境での Python 3 開発環境構築手順 自分用まとめ

  • Windows 10 Pro バージョン 2004
  • Python 3.7.8


Ruby標準モジュール「benchmark」で簡単に処理時間計測

Rubyで特定の箇所の処理に要する時間を計測したい場合、これまでは

1
2
3
4
5
start_time = Time.now
  # ・・・
  # (計測対象の処理)
  # ・・・
puts Time.now - start_time

なんてコードを書いたりしていたのですが、Rubyには標準モジュールとして benchmark が用意されており、これを使えば簡単に計測が可能なのでした。

複数の処理を一度に計測でき、余計な代入処理が無いのでコード的にも心理的にも(?)良い感じです。
複数の結果もそれぞれ任意のラベルを付けて、見やすい形で出力可能です。

検証環境

Ruby 2.7.1 / 2.1.1


広告募集中!
1 / 2 (全 11 件)