動かざることバグの如し

近づきたいよ 君の理想に

テレコムクエストって本を探している

テレコムクエストって本

昔、「テレコムクエスト」という漫画があった。漫画と言ってもバトルモノやアクションではなく、教育系漫画である。

自分が小学生の頃、近くのごみ焼却施設のフェスで図書館の破棄本が無料でもらえるイベントがあった。

そこで「テレコムクエスト」を手に入れた。こういうやつ

picture 1

引用: https://twitter.com/k_e_i_ta/status/878894231305072641

正直あまり内容は覚えてないんだけど、1990年出版しては未来の通信について具体的な予想をしていて、

  • テレビ電話
  • トイレに通信機能がついていて、便の結果をリモートで健康判断
  • テレビで遠隔授業

とかめっちゃハイテクだった。

とはいえ高校生くらいに捨ててしまったので、再度見たいと思って調べたけど全然見つからない。メルカリにもない。

国立国会図書館サーチで調べてみると以下がヒットした

テレコムクエスト通信 (光村教育図書): 1990|書誌詳細|国立国会図書館サーチ

国立国会図書館サーチで表示されているデータは以下の通り

  • タイトル: テレコムクエスト通信
  • 出版社: 光村教育図書
  • 大きさ、容量等: 175p ; 21cm
  • ISBN 4895722023
  • 出版年(W3CDTF) 1990
  • NDC(8版) 694
  • 資料の種別 図書

ISBNもあるのに国会図書館にはないっぽい。。。

宮城県図書館にはあるらしいけど。。。

ISBN振ってあるような本でも絶版になって二度と見れない本ってあるんだなと実感しつつ、

うかつに本捨てられないなと思った。まる。

参考リンク

ArgoCD2.7にアップデート失敗する件

環境

私はk8sのデプロイにargocdを使用しており、今回2.7がリリースされたのでアップデートしてみました。しかし、アップデートの際にエラーが発生してしまったため、修正方法をメモしておきました。

エラー内容

Argocd 2.7がリリースされたのでアップデートしてみる

https://github.com/thr3a/kubernetes-manifests/blob/master/argocd/kustomization.yml

- - https://raw.githubusercontent.com/argoproj/argo-cd/v2.6.7/manifests/install.yaml
+ - https://raw.githubusercontent.com/argoproj/argo-cd/v2.7.2/manifests/install.yaml

が、いっこうにアップデートされない。デプロイメントを確認してみると無限に起動に失敗している。。。

エラー内容は以下

"Error: unknown command "/usr/local/bin/argocd-server" for "argocd-server""

試しに再起動してもだめだった

原因

--insecure の設定をしていたため。2.7で指定の仕方が変わった

2.6まで

apiVersion: apps/v1
kind: Deployment
metadata:
  name: argocd-server
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-server
  template:
    spec:
      containers:
      - command:
        - argocd-server
        - --insecure
        name: argocd-server

2.7以降

commandからargsに変わった

apiVersion: apps/v1
kind: Deployment
metadata:
  name: argocd-server
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-server
  template:
    spec:
      containers:
      - args:
        - /usr/local/bin/argocd-server
        - --insecure
        name: argocd-server

参考リンク

Railsで簡単にデバイス判定できるライブラリ「rack-user_agent」

やりたいこと

Railsを使用して、user-agentからPCかスマホかを判断したり、OSやデバイス名を抽出したいと思っています。しかし、これらを自分で実装するのは手間がかかります。

そこで、「rack-user_agent」というライブラリを使用してみました。

k0kubun/rack-user_agent: Rack::Request extension for handling User-Agent

インストール

gem 'rack-user_agent'

bundle install

使い方

Railsの場合、インストールすればrequestsオブジェクトにメソッドが勝手に生えてくれる

# Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
[2] pry(#<PostsController>)> request.device_type
=> :pc
[3] pry(#<PostsController>)> request.os
=> "Mac OSX"
[4] pry(#<PostsController>)> request.browser
=> "Chrome"
[5] pry(#<PostsController>)> request.from_pc?
=> true
[6] pry(#<PostsController>)> request.from_smartphone?
=> false
[7] pry(#<PostsController>)> request.device_variant
=> :pc

スマホの場合

# Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1
[2] pry(#<PostsController>)> request.device_type
=> :smartphone
[3] pry(#<PostsController>)> request.os
=> "iPhone"
[4] pry(#<PostsController>)> request.browser
=> "Safari"
[5] pry(#<PostsController>)> request.from_pc?
=> false
[6] pry(#<PostsController>)> request.from_smartphone?
=> true

更新頻度が高くないし、厳密なチェックには向いてないだろうけど軽く確認する場合には良いかも

参考リンク

RubyでIPからリモートホストを取得するとSocketだと怒られる件

環境

RubyでIPからリモートホストを取得したい

以下は、Rubyを使用してIPアドレスからリモートホスト名を取得する方法についての情報です。

例えば、133.159.148.245から245.148.159.133.rev.vmobile.jpを取得することができます。

以前はSocketライブラリを使用していましたが、現在は非推奨となっています。そのため、新たにAddrinfoライブラリを使用する方法をメモしておきます。

コード

require 'socket'

ip = '133.159.148.245'
hostname = Socket.gethostbyaddr(ip.split('.').map(&:to_i).pack('C*'))[0]
p hostname

ただこれだと実行時に以下のような非推奨WARNINGが表示される。rubocopでも怒られる。

a.rb:9: warning: Socket.gethostbyaddr is deprecated; use Addrinfo#getnameinfo instead.

そこでAddrinfoライブラリを使ったバージョンに変える。

require 'socket'

ip = '133.159.148.245'
addr_info = Addrinfo.tcp(ip, 0)
p addr_info.getnameinfo[0]