Articles in the Tips tag

  1. Python3.6のfリテラル文字列(f-string)が便利なのと怖い面について

    久々にpythonネタで、今年の2月に気がついてほったらかしにしてた話。

    fリテラル/フォーマット済み文字列リテラル/f-stringとは

    PEP-484で定義, 承認されてpython3.6に入った新しいリテラル表記です。簡単な例はこちら

    >>> name = "f-string"
    >>> f"{test} death!"
    'f-string death!’
    

    中身はstr.formatをそのまま使えるっぽいですが、変数名を直接かいて呼び出せるのが新しいです。

    使い方は公式ドキュメントを見たほうが早いです。

    2. 字句解析 — Python 3.6.3 ドキュメント

    辞書はどうする?

    良く辞書を展開する時があるのでfリテラルでも使えるのか試してみました。
    公式ドキュメントを見たところ、ダブルクオーテーションの中でシングルクォーテーションを使えば展開できます。

    >>> td1 = {"name":"suzuki", "age":"32"}
    
    >>> f"{td1['name']}. age:{td1['age']}"
    'suzuki. age:32’
    

    が、いちいちクオーテーションを二種類使うとかっこ悪いですね。。。辞書の場合はstr.formatを使ったほうが楽かも。引数の展開が使えるので …

  2. Gitlab CI とgitlab-ci-multi-runnerのwindows版を使ってwindows側にビルドを走らせるCIを作る

    趣味、仕事のgitリポジトリやイシュー管理はGitlabを利用しています。最近のバージョンにはGitlab CIというCI(継続的インテグレーション)が搭載されていまして、適切な設定が用意できればGitlabのプロジェクト内でビルドをさせることができるようになります。

    仕事ではWindowsが対象で、Windows上でビルド作業が出来ないと困るため、unix向けのCIツールは使えず、以前からjenkinsを使ってみたいなーと言いながらすっかり対応をせずに放ったらかしにしていました。 が、最近はzc.buildoutでワン・コマンドでビルドできるようになったし、Gitlab CIのRunnerという概念を知り(jenkinsだとスレーブですね)、WindowsでもRun nerを動かすことができるらしいので試してみました。若干ハマりどころがありますが、動かすことは可能です。

    TL;DR

    • Gitlab CIのビルドはWindowsを使うこともできる
      • RunnerはGo製らしい
    • Windowsサービスとして実行できるがハマりどころがある
    • とりあえず試して動いた

    Gitlab CIのビルドはWindowsを使うこともできる

    Gitlab CIのビルドはRunnerというアプリ、サービス(デーモン)で実行されるようです。CIと予め接続したうえで、gitのclone(fetch)を行い、.gitlab-ci.yml というYAML文法の設定ファイルをリポジトリのルートに置くことで、commitした段階でビルドしてくれます。

    GitLab.org / gitlab-ci-multi-runner · GitLab

    GitLab Documentation …

  3. サンワサプライ はがせる耐水透明フィルムラベル を使って貼ってはがせるステッカーを作ってみた

    カンファレンスや勉強会などでスポンサーがよく配布しているロゴのステッカーをペタペタ貼るのって何故か憧れていまして、Macbookを持ったらやりたいなーと憧れていました。あとMacbookはその手の界隈に行くと持っている人が多くて、個人差を出すためにってこともありますね。

    数年前にMacbook airを手に入れ、勉強会でステッカーをたくさん頂いたのでそろそろ貼りたいなと思っていました。 ステッカーも一期一会で、そのまま貼り付けておくも良いのですが、貼って剥がして、新しいMacbookに貼りたい時もあると思います。Macbookは美品なら中古でも高く売れるし

    そういう需要はあると思いますが、意外とそれを叶えてくれるようなステッカーってありません。市販の専用ステッカーならあると思いますが、こういったノベルティグッズでは費用の面もあって採用されることは少なそうです。

    ということで、作ってしまおうと思いったのでやってみました。ちなみに1年前ぐらいに個人的にDIYしてまして、最近手に入れたステッカーでもうまくやれていたので、紹介したいと思います。

    道具、材料

    こういう工作をするなら大抵必要なものだらけです。

    オルファ デザイナーズナイフ ブラック(文具台紙) デザイン アート ナイフ 216BSBK
    B00GOO55GA

    ASIN : B00GOO55GA
    Amazonで詳しく見る
    Powered by Amazon Quick Affiliate (JP …

  4. vagrant-parallels + ubuntu 14.04 でDHCP環境上でDNSサーバーを変更(追加)する方法

    Macbookでvagrant+parallelsの組み合わせでvagrantを大変便利に利用していますが、各ゲストのdnsサーバーを変更したいときにちょっと困って何とかした話です。

    問題

    DHCPでアドレスを貰っている状態で、DHCP側で貰ったDNSのアドレスを変えたい時があります。今回はvagrant上のUbuntuマシンにsamba4 Domain Contorollerを実験的に入れて試している最中で、DNSだけをsambaで使うDNSサーバーへ変えたくなりました。
    (なおvagrantのpublic networkの設定でstaticにはしていないです。)

    普段、Ubuntu serverの固定IPで設定した時のDNSを変えたいときは、 /etc/network/interfaces ファイルにdns-nameserverを加えるだけです。自動的にresolvconf/etc/resolv.conf を書き換えてくれます。

    $ sudo vim /etc/network/interfaces
    iface br0 inet static
            address 192.168.3.50
            netmask 255.255.255.0
            network 192.168.3.0 …
  5. Zabbix 2.4を使ってみた - セットアップ編

    最近になって、事務所にいろんなネットワーク機器を入れましたが、監視できるツールを使ってみたくなりました。だいぶ前にMuninを使っていましたが、syslogも取れたり、設定しやすいものはないかなと探していましたが、Zabbixという監視サーバーアプリが良さそうだったので使ってみてます。

    Zabbixとは

    監視サーバーアプリです。専用のエージェントを使ってLinuxやWindowsの監視、SNMPの監視も出来ます。 業界的にもよく使われているようです。

    公式サイト

    ドキュメント

    日本語は2.2まで提供されていました。2.4もそこまで変更は無いので2.4のドキュメントとセットでみると理解が深まりそう。

    参考

    統合監視ツール「Zabbix」によるサーバー監視 - さくらのナレッジ

    (さくらのナレッジに2.4対応版の記事もあったのですが、中身がそっくり消えてしまっているのでリンクしませんでした。)

    環境 …

  6. オリジナルテーマのアップデート:Googleカスタム検索やDisqus,google analyticsのコードの復活など

    早速アップデートしました

    前回、オリジナルテーマを適応しましたが、早速色々と問題がわかったのでちょっと直したり追加したりしました。大体は入れ忘れていたものです。

    Googleカスタム検索の追加

    こちらは追加したものです。Googleカスタム検索を追加しました。ナビゲーションバーの中にあるものです。

    Googleカスタム検索は、現在はJavascriptで動的に生成するコードが主流のようですが、Bootstrapとコンフリしてしまうらしいです。何度か適応させてみましたが見栄えが悪すぎたのでやめようか悩んでいました。

    何とか出来なかなと調べていたところ、HTMLフォームとしての検索フォームの追加が出来ることが分かりました。

  7. ASUSTOR AS-204TEレビュー: Rsyncサーバーを動かしてデータを復元してみた

    AS-204TE関連の記事一覧はこちらより

    引き続きAS-204TEを使っていきます。まずは(やっておかないと仕事的に終わる)データの復元から

    手っ取り早くRsyncを使います。AS-204TEにはrsyncサーバーがあります。サービス内にある再同期サーバーというのがそれです。

    早速設定します。rsyncのバックアップ先を決めます。AS-204TEでrsyncサーバーへ同期させたいときはは、モジュールという、バックアップサーバーの位置と名前と予め決めて行う方法を使うそうです。今までssh経由で行っていたので知らなかったです。

    追加したあとはこうなります。

    あとは、データがおいてあるサーバー上でrsyncします

    $ rsync -av /path/to/backup-data/* rsync://as-204te-host/back-to-data
    
    • aオプションはアーカイブモードで、権限も含めてなるべく構造を保持した状態で同期してくれます。
    • vオプションは同期したファイルを標準出力します
    • cオプションもあります。checksumモードでファイルの中身で差分を取ります(チェックサムしてる)

    zオプションで圧縮とかも出来ますが、余計なことをさせないで丸々同期させました。cオプションをつけるとチェックサムに偉い時間がかかってしまったので、最初はcを付けないで丸頃コピーし、二度目でコピー漏れなどないか確認のためにcをつけています。

    rsyncのルールとして、フォルダの末尾に …

  8. pebbleで利用できる有志による日本語パックを入れてみました

    ちょっと前に見つけたのですが、日本のPebbleコミュニティが集まるGoogle+のコミュニティに韓国のpebbleユーザーの方が、日本語パックを公開するとのポストがあり、最近公開されたようなのでインストールしてみました。

    Pebble 日本語言語パック / Pebble Japanese language pack

    Heejun Kim - Google+

    日本語, CJK界隈の歴史

    Pebbleのマルチバイトは長らく対応出来ないとの話が続いてまして、それでも対応したいユーザーが独自の対応を試みていました。

    • Android限定な方法として、Android側でマルチバイト文字を画像形式に処理して送る方法
      • 自分はこの方法を使っていて、YaCN Proというアプリを使っていました
    • 非公式ファームウェアにマルチバイト文字同梱する

    ともに一長一短があり、特にiOSデバイスにはつらい状況でした。

    Pebble側でも、複数の言語対応を進めていたようで、フランス、ドイツ、スペイン語の対応がされていました。去年終わりの話です

    ちょっと前に、kickstarerで公開されたPebble Time/Pebble Time …

  9. mdadmを使ったRAID1のディスクを解除して普通のディスクとして使う

    Ubuntu 14.04 にてmdドライバー(mdadm)を使って作成したRAID1ディスクを解除して普通のディスクにするまでの履歴です。完璧にメモ書きです。

    mdadmを使ってRAIDの構成を解除

    参考: カラスはデスクに似ているか? » md RAID deviceの削除

    利用している環境からアンマウントする, fstabに書いてある場合は削除しておこう

    $ sudo umount /dev/md0
    

    mdデバイスをストップ

    $ sudo mdadm --misc --stop /dev/md0
    

    ディスクのスーパーブロックを削除。数秒かかるはず。

    $ sudo mdadm --misc --zero-superblock /dev/sd**
    # *はそれぞれ必要な文字や数字
    

    cat /proc/mdstat/ でmdデバイスの解除を確認

    /etc/mdadm/mdadm.confの内容を消す もしくはmdadm —detail —scanの内容で上書きする

    ばらしたディスクの中身を空にして普通のディスクにする

    普通のディスク …

  10. uvtoolのネットワークをブリッジ接続させる

    書き残しです。気が付かなかったので。

    KVM+libvirtを動かしているマシンをubuntu 14.04にアップグレードしてから、uvtool が利用できるようになったのでkvmでマシン作りたいときはこれで作ってます。

    イメージがクラウドで利用されているのもの(Ubuntu Cloud Images)が手に入るので、一度必要なイメージをダウンロードしたら次はそれをリンクしてマシンを生成してくれるようで、OSのインストール作業というのが無いんです。非常に気が楽にマシンを作れます。

    何かを試す程度ならいいんですが、ちょっと問題が

    ネットワークがNATになってしまう

    ubtoolのデフォルトのネットワークはvirbr0というインターフェースを指すようで(libvirtが自動で生成するインターフェース)、これはNATのようです。

    libvirt: Wiki: Networking

    何がまずいかというと、例えばGitlab試したい!とかDocker試したい!とかで必要なサービスへアクセスさせようとした時に、NAT超えする設定を書く必要があるから。

    ブリッジで出せるといいなあと思ってました。できるのかな?と思ってたのですが出来ましたのでメモ書き。

    --bridgeオプションを使う

    $ uvt-kvm create example-bridge release=trusty --bridge br0 --package avahi-daemon
    

    これはlibvirt側のオプションです。uvtoolはlibvirtのオプションも使えるんですね。

    何も引数を渡さないでuvt-kvm createを使うとuvtoolが定義しているテンプレート(libvirt側に登録させるxml …

About Me

実家の自動車プレス金型設計業(sano-design.info)に所属。
また東海大学石井研究室(ishiilab.net)でたまにお手伝いしてます。
サイト制作/python/Ubuntu 作ったり扱います。 小さいガジェットがとっても好き。
最近は諸事情で家事業が多めです。

スポンサードリンク