たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。
以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
このエントリは絵文字Advent Calendar 2016とのクロスポストです。(→Qiitaの方の投稿)
この記事では、自分が絵文字込みのテキストを楽に編集するために作ったEmoji Editorという簡単なツールを紹介します。
唐突ですが皆さん、どうやって絵文字を入力されてますか?
Android版のGoogle日本語のように絵文字のパレットが付いていたり、macOSの日本語入力のように標準辞書に入っていて普通に「すし」と入れて変換すれば「🍣」になったりする環境もあるようなのですが、自分が主に使っているWindows 7+ATOK2016の環境とUbuntu 16.04LTS+ATOK X3の環境では良い方法がなさげです。自分は絵文字はパレットから選択したい派、というか顔文字に対応する読みをいちいち覚えてられない派なので、やるなら一覧の中からぽちぽちクリックして選びたいです。しかしATOKに付属の文字パレットというユーティリティの分類には「顔」みたいなグループ分けが無いため、Unicode絵文字を使おうと思うとUnicodeの表のあっちこっちを行き来しながら探さないといけません。(最新のATOK2017ではこの辺どうなんでしょう?)
また、これはカラー絵文字のフォントが無いという古い環境だからのようですが、文字パレット上だけでなくテキストエディタ上でも絵文字は白黒表示です。自分が絵文字を使いたいのは主にTwitterでの投稿なので、見るならTwitter上でどう見えるかが分からないと安心して使えません。
元々絵文字を使う習慣が無かった自分が絵文字に触れる機会が増えたのは、「シス管系女子」の広報用Twitterアカウント(みんとちゃんbot)がきっかけです。いつもの自分のノリでやると堅すぎると思ったので、みんとちゃんbotの発言についてはあえて絵文字を入れて柔らかい印象を持ってもらえるようにしたい、という下心ドリブンです。
当初はAndroidのGoogle日本語入力から絵文字を入れていましたが、運用のためのbotスクリプトを作成して、発言データにするためのテキストを大量に用意する段階になってPC上で作業に入ろうとしたときに、前述のような状況に気が付きました。
そこでとりあえずTwitter絵文字が使えるパレットを探してみた所、テスト用にちょっと投稿するだけならTwitterの絵文字をデスクトップPCから使おう! Ver2というサービスで絵文字の入力自体はできる事が分かりました。が、このページは既に作成済みのデータの編集には使えません。やはりここは、Twitter絵文字を含んだプレーンテキストをWYSIWYGで編集できるツールが欲しくなるところです。
探し方が悪かったのかもしれませんが、自分はその時「まさにこれだ!」と思える物を見つけられなかったため、無いなら作るか……という事で作りました。その名もEmoji Editor(名前が安直すぎる)。HTMLファイル1つだけで完結する、フレームワークも何も使ってないSPAとも呼べないような代物です。
このエントリの公開を機に、GitHubにリポジトリを作りましたので、forkしたりプルリクしたりして頂ければ幸いです。
妻・夫を愛してるITエンジニア Advent Calendar 2016その2をご覧の皆様、はじめまして。Piroといいます。
自分は現職のITエンジニアですが、会社の仕事とは別に、日経LinuxというLinux関係の技術情報の月刊誌でシス管系女子と題した漫画形式の記事を連載しています。
基本的に話も技術面での検証も作画も全部一人でやっているのですが、そのせいで内容を冷静な目で見られなくなってしまうことがあります。そんな時、幸いなことに妻も現職のITエンジニアなので、「話の展開に無理が無いか?」とか「この解説で通じるか?」とか不安を覚えると度々、妻に下描きを見せて率直な感想を聞かせてもらっています。率直に言って大変助かっています。 だというのに、最近は連載の〆切に追われて平日も休日も一杯一杯になってしまっている事が多く、妻には迷惑をかけてばかりで申し訳ない限りです。
さて。「シス管系女子」はとある企業の新米システム管理者の女の子「みんとちゃん」が主人公なのですが、今日の話はみんとちゃんの衣装の話です。
自慢じゃないですが、自分はファッションセンスがありません。そんな自分が女性キャラの衣装を自分でゼロから考えても碌な事にならない、しかし巷のファッション誌を参考にしようにも色々ありすぎてどんな服を着せればいいか分からない、ということでみんとちゃんの衣装はもっぱら妻の私服を参考にさせてもらっています。
<script src="http://source.pixiv.net/source/embed.js" data-id="58957204_7f2f3332231d9e925534c71343fcecc9" data-size="medium" data-border="on" charset="utf-8"></script><noscript>
シス管系女子 利奈みんと 作画設定(2016年版) by Piro/結城洋志 on pixiv
</noscript>(そんな訳なので、たまに読者の方に「みんとちゃんの服装かわいいですね!」と言っていただけると、「でしょ!?かわいいっすよね!!」と全力で同意して間接的にのろけているのです。)
実をいうとみんとちゃんの衣装には単純にデザインのみならず、ポリシー面についても妻から学んだ事が反映されています。 それは、「男にウケるためでもなければ、周囲に文句を言われないためでもない、自分(みんとちゃん自身)のために自分(みんとちゃん)が好きな服を着る」ということです。
聞いた所によると、妻の最初の就職先は色々とお堅い会社で、服装規定も結構厳しかったそうです。 女性社員は私服であっても地味目のおとなしい服でなければならず、そのため妻も本人の好みに合わない服を買って着ていたそうです。 そんな訳なので、転職して服装既定の厳しくない会社に移ってからはその頃の服はほとんど全くと言っていいほど着なくなってしまい、結局、クローゼットの中を整理した時にそれらはほとんどすべて処分してしまいました。
社会人、特に普通に会社に通勤するという働き方の人にとっては、人生の中でもそれなりの長い時間を会社で過ごすことになります。 そんな長時間を、いたくもない姿の自分でいることを強いられるというのは実に不毛なことです。
せっかくなら、周囲の目を気にして好みに合わない格好を我慢してするのではなく、自分が本心から「可愛い!」とか「格好いい!」とか「楽だ!」とか思えるような格好でいられる方がいいに決まっていますよね。 一度きりの人生なのですから、しなくてもいい無理をせずに自分の生きたいように生きるのに越したことはないです。
実際に作品中で描いてる服のチョイスは妻の好みと僕の好みの論理積なので、どうしても偏りが生じてしまっているのは否めない(実際には妻はジーンズをはいている時も多々あります)のですが、それでも描き手の思いとしては、(ネタのコスプレ以外では)少なくともみんとちゃん本人が着たいと思わないであろう服は着させないようにしたいし、本人が見せたくないであろう物は見せないようにしたいと思っています。
例えば、みんとちゃんは丈の短いワンピースやミニスカートを着ていることが多いですが、下に短パンをはいているので絶対にパンチラしないということにしています。これには「掲載誌がお堅いのでえっちなのはNGだから」という理由もありますが、それより何より、彼女はかわいい服を着たいだけであってパンツを見せたい訳ではないのです。周囲の男性社員に対するサービスでかわいい服を着ているのではなく、彼女自身がその服を好きだから着ているのです。
「シス管系女子」は技術の話の学習漫画ですが、それとは別のささやかな裏テーマとして、みんとちゃんというキャラクターのありようを通して、女性エンジニアが当たり前に自分の生きたいように生きられている様子を描きたいという思いが自分にはあります。
それが妻の仕事環境や生活環境に何か直接影響を及ぼすわけではありませんが、「そういうのが当たり前」という様子を描いて、そういうコンテンツが増えていくことで、妻や後に続く人達が少しでも生きやすい世の中になってくれれば。 そう思って自分は今月号も、誰に頼まれたわけでもないのにみんとちゃんに先月号とは違う衣装を着せている次第です。 (そして絵を使い回せなくなり、また自分で自分の首を絞めているのでした……)
以上、飛び入りで妻・夫を愛してるITエンジニア Advent Calendar 2016その2の8日目に参加してみました。 明日の記事もお楽しみに!
このエントリはShell Script Advent Calendarとのクロスポストです。(→Qiitaの方の投稿)
前回は自作のBashスクリプト製Twitterクライアントをネタに実装を解説しましたが、今日は他の言語で多少のプログラミング経験はあるんだけど、どうにもシェルスクリプトは苦手だ……という人のための、シェルスクリプトによるプログラミングの勘所を解説してみようと思います。多分、プログラミング入門レベルの人や上級レベルの人よりは、中級レベルにいる人や、初級から中級以上に成長したいという感じの人にとって役に立つ話だと思います。
結論から先にいうと、「引数」と「配列」の事を忘れればシェルスクリプトはグッと書きやすくなります。というおはなしです。タイトルからして期せずして前の日の方の話の全否定になっちゃいました。ごめんなさい、他意は無かったんです……
このエントリはチャットボット Advent Calendarとのクロスポストです。(→Qiitaの方の投稿)
チャットボット Advent Calendarをご覧になっているような方々はフレームワークやニューラルネットでディープラーニングなAIといった最新のbot事情に関心の強い方が多いと思うのですが、今日の記事は時代に逆行しまくって、Bashスクリプトで昔ながらの人工無脳botを作りましたというお話です。
この記事では以下のことを書いています。
このエントリはShell Script Advent Calendar 2016とのクロスポストです。(→Qiitaの方の投稿)st
Linux Advent Calendarの方にGUIアプリのスクショを定期的にSlackに流すシェルスクリプトの話でエントリーしたのですが、Shell Script Advent Calendar的にはそれをこっちを投稿した方が良かったかもと今更思いつつ、今日は別の話題です。
シェルスクリプト製Twitterクライアントには恐怖!小鳥男やtweet.sh(同名の別実装)などいくつか実装例がありますが、自分も2015年末頃からtweet.shという汎用のTwitterクライアントを開発しています。この記事ではtweet.shをネタに、以下の事を解説します。
nkf
といくつかの一般的なコマンドでURLエンコードするキー1=値1,キー2=値2,...
の形に変換するこのエントリはさくらのアドベントカレンダー(その2)とのクロスポストです。(→Qiitaの方の投稿)
この記事では自分で自由に使えるLinuxなサーバーかPCがあるという事を前提として、さくらのレンタルサーバーのライトプランで静的コンテンツだけのWebサイトを公開・運用する際のノウハウをご紹介します。
なお、自分では調べていませんが、スクリプト内で使用しているlftp
等のコマンドがHomebrew等でインストール可能なのであれば、macOS(OS X)でもこの方法をそのまま使えるかもしれません。
このエントリはLinux Advent Calendar 2016とのクロスポストです。(→Qiitaの方の投稿)
連載の方で書くには粒度の大きい話題だったので公開するのにいい場所はないかなあと思っていたらLinux Advent Calendarという名前を見かけて、まだ空きがあったので「これや!」と思って勇んでエントリーしたのですが、埋まってみると皆さん当たり前ですがカーネルの話中心で、そんな中で一人だけディストリビューションより上のレイヤの話でなんかほんとごめんなさい……シェルスクリプトアドベントカレンダーとかの存在を知ったときにはもう後の祭りでして……
そんな感じで空気まるで読めてない内容ですが、生暖かい目で見て頂けましたら幸いです。
先日参加したイベントの懇親会で、「シス管系女子」の本をご覧になった方から「Google Analyticsのグラフを何分間隔とかでスクリーンショットとってSlackに流したいんだけど、本にはそういう話は書かれてなかった……」というご相談を頂きました。
本の中では主にSSHでLinuxのサーバーにリモート接続してコマンドで操作する時の話を取り扱っているため、GUIアプリの話はあまり、というか全然取り扱っていません。しかし、何かしら方法はありそうな気がします。
という話をつぶやいたところ、フォロワーの方にヒントを教えて頂けて、最終的にそれらしいことを実現できる筋道が立ちました。なのでこの場を借りて、得られた知見を共有したいと思います。
自分で立てたやつ
参加中・参加予定
見てるだけ
見ようと思ってそれっきりになってたやつ(ってもう2年前……)
他にもめちゃめちゃいっぱいあるので、自分がやってる事なんて埋没してしまいそう。アドベントカレンダーでアピールしてみようっていう狙いがもう出遅れてたなと今更後悔してる……
Let's note CF-SX3をUbuntu 14.04LTSで使ってたんだけど、16.04LTSへのアップグレードではこういう所で詰まりましたという話。
ATOK X3を使っていたUbuntu 14.04LTSから16.04LTSにアップグレードしたら、ネットワークに繋がらなくなった。 これは、Ubuntu 16.04でATOK X3を使うに記載がある「ATOK X3のインストールスクリプトが/var/runを壊す」という問題がこのバージョンで表面化したせいだった。
リンク先の記事では正常な環境で新規にATOK X3をインストールする場合について書かれてるけど、既に過去のバージョンでATOK X3をインストールしていた場合 /var/run が既に壊れた状態になっていて、しかもロックがかかっていてそのままでは手の施しようがない。なのでリカバリモードで強制的に修正する。
ls /var/run
とls /run
を実行し、それぞれの結果を比較する。両者が同一なら問題ないが、内容が異なっている場合、その環境は壊れているので次のステップに進む。rm -rf /var/run
で今ある/var/runを消す。
……と言いたい所なのだが、そのままやっても以下のようなエラーになる。
rm: cannot remove `/var/run/vmblock-fuse/dev': Function not implemented
rm: cannot remove `/var/run/vmblock-fuse/blockdir': Function not implemented
これは、/(ルートディレクトリ)以下が読み込み専用でマウントされているせい。
なのでmount -o remount,rw /
というコマンド列を実行して、読み書き可能な状態にしてから、改めてrm -rf /var/run
で今ある/var/runを消す。
ln -s /run /var/run
を実行し、/var/runを/runへのシンボリックリンクにする。exit
でログアウトする。以上の手順で、壊れた/var/runを正常な状態に戻す事ができた。 ATOK X3を使っていなかった環境ではこの作業は不要です。
Ubuntu 16.04でATOK X3を使うという記事に色々情報がある。ただ、環境の違いのせいか、自分の環境ではそのままではうまくいかなかった。また、一部の手順はUbuntu 14.04 LTSをインストールした直後に行う設定という別のページを参照するように書いてある。全部転記すると余計に訳が分からなくなりそうなので、適宜リンク先を参照する前提で手順をまとめる。
必要なパッケージをインストールする。リンク先の記事でも同様の手順があるが、そこに書かれていないパッケージが必要になるので先に入れておく。
sudo apt-get install libpangoxft-1.0-0:i386 libpangox-1.0-0:i386
自分の環境はUbuntu 16.04LTSの64bit版なんだけど、これらの32bit版パッケージが無いとATOK X3がエラーで起動しなかった。ATOK X3のインストールスクリプトの実行時点で「libpangoxft-1.0.so.0: cannot open shared object file」というエラーが出ていて、このメッセージを検索した所、同様のエラーで詰まっている事例 が複数見つかったので、それらの事例で解決策として紹介されていた手順に従った。
/opt/atokx3/sample/iiimf_status_hide
と追記する手順があるが、これも飛ばす。(ここに書いても期待通りの結果は得られなかった)上記「変更点3」で作成したファイル「~/.xinputrc」の末尾に、さらに以下の2行を書き足す。
/opt/atokx3/bin/atokx3start.sh
/opt/atokx3/sample/iiimf_status_hide
これをやっておかないと、ウィンドウの左下のインジケータがいつまでも出るとか、ATOK X3が起動せずATOKパネルが表示されないとかの問題が起こる。
GNOMEの既定の配色でツールチップが黒背景・白文字になっているが、この状態だとATOK X3の補完候補のツールチップ等が「黒背景・濃いグレーの文字」になって読みにくいため、以下のファイルを管理者権限で編集して配色を変える。
tooltip_bg_color:#000000
→ tooltip_bg_color:#f5f5b5
にするtooltip_bg_color:#ffffff
→ tooltip_fg_color:#000000
にするtooltip_bg_color:#000000
→ tooltip_bg_color:#f5f5b5
にするtooltip_bg_color:#ffffff
→ tooltip_fg_color:#000000
にするtooltip_bg_color #000000;
→ tooltip_bg_color #f5f5b5;
にするtooltip_bg_color #ffffff;
→ tooltip_fg_color #000000;
にするsedでやるなら、こう。
sudo sed -i /usr/share/themes/Ambiance/gtk-2.0/gtkrc -r -e "s/tooltip_bg_color:#[0-9a-f]+/tooltip_bg_color:#f5f5b5/i" -e "s/tooltip_fg_color:#[0-9a-f]+/tooltip_fg_color:#000000/i"
sudo sed -i /usr/share/themes/Ambiance/gtk-3.0/settings.ini -r -e "s/tooltip_bg_color:#[0-9a-f]+/tooltip_bg_color:#f5f5b5/i" -e "s/tooltip_fg_color:#[0-9a-f]+/tooltip_fg_color:#000000/i"
sudo sed -i /usr/share/themes/Ambiance/gtk-2.0/gtkrc -r -e "s/tooltip_bg_color #[0-9a-f]+/tooltip_bg_color #f5f5b5/i" -e "s/tooltip_fg_color #[0-9a-f]+/tooltip_fg_color #000000/i"
システムを再起動する。
以上の手順で、Firefoxやgeditなどでは問題なく日本語入力できるようになった。
ただ、Linux版SkypeのようなQtアプリや、Wine上で動かしてるWindowsアプリでは、日本語入力ができなくなってしまった(以前はibus-mozcで一応は入力できる状態だった)。 これは解決の方法が無いっぽくてお手上げです……
ホットキー(Fn+ファンクションキー)でというか、そもそもUbuntu上で画面の輝度を変えられなくなっていた。Ubuntuの画面の明るさの調整を有効にする - ’s blogによると、これはGRUBの設定を変更すればいいようだった。 リンク先のページの後半にある通りにやったらホットキーが機能するようになった。
sudo vim /etc/default/grub
のようにしてファイルを開く。GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
とある箇所をGRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor acpi_osi="
に書き換える。sudo update-grub
でGRUBを再設定する。14.04ではgpointing-device-settingsでこの設定ができたんだけど、16.04ではパッケージが提供されなくなっている。
検索したら、設定ファイルを直接編集すればいけるという情報があった。Let's Noteのタッチパッドの回転スクロールがログアウトすると無効になってしまうのを改善した。 - ここはひとつ、当て推量で。の記述を見つつ、
sudo mkdir -p /etc/X11/xorg.conf.d/
sudo cp /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/50-synaptics.conf
sudo vi /etc/X11/xorg.conf.d/50-synaptics.conf
という感じで設定ファイルをテンプレートからコピーして用意した上で、
Section "InputClass"
Identifier "touchpad catchall"
というセクションの最後に
Option "CircularScrolling" "on"
Option "CircScrollTrigger" "0"
EndSection
という設定を加えてから再起動すれば、回転スクロールできるようになった。 各設定の意味はSynaptics タッチパッド - ArchWikiに詳しい情報がある。
何かあったらまた追記するかも。
Firefox用アドオンは現在、Mozillaによる署名が必須となり、未署名のアドオン=Mozillaによる内容のチェックが行われていないアドオンはインストールできない、インストールしても有効化できなくなっています。
Firefox 47までのバージョンおよび法人向けの長期サポート版(ESR版)ではxpinstall.signatures.required
という隠し設定を使って未署名のアドオンを強制インストールできるようになっていましたが、この設定はFirefox 48で削除されました。
そのため、リリース前に自作アドオンを自分で使って試したい(ドッグフーディングしたい)人は、正式リリースされたFirefoxでアドオンを試す方法がなくなってしまっています。
この問題に対する救済措置として、上記隠し設定が利用可能な「ノーブランド版Firefox」がアドオン作者向けとして公開されています。 このエントリでは、ノーブランド版Firefoxの使い方と注意点をまとめておきます。
ノーブランド版と通常リリース版の違いは以下の点です。
xpinstall.signatures.required
をfalse
に設定すると、アドオンの署名チェックを無効化できる。Mozilla Wikiの、アドオンの署名に関する情報のページ内の「Unbranded Builds」という項目にインストーラのダウンロード用リンクがあります。 2016年8月3日現在ではリリース版Firefox 48.0相当の物へのリンクがありませんが、親ディレクトリから辿っていくとインストーラを入手できます。
このインストーラを実行すると、通常のFirefoxとは異なり、構成ファイル一式は「C:\Program Files (x86)\Mozilla Developer Preview」のようなフォルダにインストールされるようになっています。 インストールしたはずの物が見つからない!という時はインストール先を確認してみて下さい。 カスタムインストールすれば今までと同じ位置(「C:\Program Files (x86)\Mozilla Firefox」など)にインストールする事もできます。
xpinstall.signatures.required
を再設定してアドオンを有効化する。
今まで通常版のFirefoxでxpinstall.signatures.required
をfalse
にして使っていた人が、Firefox 48に自動アップデートされてアドオンが無効化されたという場合、「このアドオンは署名チェックに引っかかって無効化された」という情報がプロファイル内に保存されます。そのため、その後でノーブランド版を入れて起動しても、アドオンは無効化されたままとなります。
xpinstall.signatures.required
を1回true
に設定して、もう1回false
に設定し直すと、この情報がリセットされてアドオンが再び有効になります。自分はこれに気付いていなくてハマりました。browser.tabs.remote.autostart
=true
(これは設定ダイアログにあるチェックボックスに対応する項目)browser.tabs.remote.force-enable
=true
(アクセシビリティ機能によるe10s無効化を抑止)extensions.e10sBlocksEnabling
=false
(アドオンがあることによるe10s無効化を抑止extensions.e10sBlockedByAddons
=false
(同上)