brand new note

ジャズお兄さんの技術メモ

Linuxでブログを書くときに使う画像編集技術

linuxで画像編集する方法ですが、windowsを使う時とはアプリもいろいろ違うので、自分である程度調べないとうまくいきません。普段こんなことしてるよっていうだけの記事ですが参考になれば。

windowsのPCやスマホとの画像データ共有

スマホで撮った絵や写真、PCで撮ったスクリーンショットを全部共有するのにクラウドを使ってます。個人的にはMicrosoft OneDriveを使います。過去に書いた記事があるので詳しくはそちらを見ていただければと思います。

Microsoft OneDriveを使ってみる - brand new note


スクリーンショットの取得

みんな使ってるんでしょうけど、linuxでスクショを撮るときはgimpを使います。そういえば最近アップデートが入ったらしいですね。スクショについては作業中のウィンドウを指定する、画面全体を指定する、選択した範囲を指定する、という3つの方法がありますが、だいたい操作は同じです。で保存する時はエクスポート。このへんの詳細は現在でもこの記事が参考になります。

CentOS7でGIMPを使ってスクリーンショットを保存したり編集したりする - いろいろやってみるにっき


画像データを縮小して軽くする

スマホで撮影した写真をそのままブログにアップロードすると、1枚3MBとかいっちゃうんですね。そんなに高画質ででかくなくてもいいよ、今月のアップロード量の制限に引っかかるし大したもの映ってないし。。。画像を縮小したいけどgimpじゃめんどい。

という悩みにはimagemagickが有効です、コマンドラインで画像編集ができます。自分はこの記事を読んでインストールしました。

CentOSにImageMagickをインストールする - Qiita

で、自分の場合スマホで撮影した写真は2976x3968になります。つまり3:4です。なのでこの比率を守りつつ、適当に縮小するコマンドを打てばいいわけですね。例を出すとこんな感じ。

convert IMG_20180501_151903.jpg  -resize 303x404 shoten3.jpg

convertコマンドで変換前の画像を指定、resizeオプションを指定してサイズを調整、別の名前で保存。変換前の画像と変換後の画像、convertコマンドなら両方残ります。

f:id:frazz:20180505201644p:plain

ちなみにコマンドで画像を表示するにはeog(eye of GNOME)コマンドを使います。この絵からちゃんとリサイズされた状態で保存できていることがお分かり頂けるかと思います。

それだけ

分かれば大したことないですが一応記事にしてみました。普段使いのlinux、初期投資こそありますがそこから先はなんでも色々勉強になるのでオススメです。


日本語入力についてざっくり調べてみる

普段CentOSでslack使って色々メモしてると、windowsIME(input method editor)に比べてありえないくらい変換ミスが多いんですね。そんな漢字の使い方しねえだろみたいなのが未だにゴロゴロしてて、中身どうなってんだと。もっとましにならんのかと。あんまり実装力はないけどさすがにこれは困るなあと。というわけで純粋に日本語入力を支える技術が気になって、とっかかりの部分を調べることにしました。


日本語入力技術の祖は40年前

www.toshiba-clip.com

www.atok.com

世界初の日本語入力対応ワープロが登場したのは40年ほど前。「JW-10」は事務机ほどの筐体で、当時の価格で630万円。当時はそもそも漢字を専用システムの画面に出力するための研究もしなければならず、日本語入力の開発は困難を極めたそうです。英語と違うので同音異義語をひとつひとつ辞書データに登録しなければならないし、最適な用語に一発で変換する為の技術開発はそこから何年もかけて行われたものなのです。


本もあるっぽい

日本語入力を支える技術 ?変わり続けるコンピュータと言葉の世界 (WEB+DB PRESS plus)

日本語入力を支える技術 ?変わり続けるコンピュータと言葉の世界 (WEB+DB PRESS plus)

実装に向けた本ではないんですがこんなのもあるようで。2012年の本ですが、評価を見る限り流行の機械学習の入門としても良さそうです。とはいえ中身は結構難しいので読むには多少の数学力が必要です。


キーワード

そもそもなんですが、IMEの開発や変換機能というのは自然言語処理技術の応用なんだそうです。そういえば、ここ数年はスマホだけでなくPCでも予測入力機能が使いやすくなってきましたよね。あれはクラウドからネットの流行語なんかを拾ってくる技術と組み合わせることによって行われるものです。時代の波に合わせて様々な技術が組み合わされてより便利に、しかしより複雑になっているんだなあという印象を受けます。

また、現在自然言語に関する研究の最先端でホットな部分は翻訳機能で、来る東京オリンピックに向けた翻訳技術の改善が進められているようです。調べてて出てきたキーワードがこんな感じ。

自分のCentOSの変換機能の中がどうなっているのか確かめたかっただけなのに、世界は広いですね。なんだか無知すぎてだいぶしんどい。。。

Linuxの日本語入力の実装

本題に戻ります。日本語入力の実装に関する記事が全然見つからない。linuxの日本語入力の設定方法に関する記事はいくらでも出てくるのに。。。

...などと考えてたんですが、結局聞いたことのある単語をふわっとしか理解していなかったのが良くなかったみたいです。

このへんの記事が参考になりそうですね。

そもそも日本語入力を支えている技術には大きく「インプットメソッド」と「変換ツール」の2つがあります。インプットメソッドというのは、文字の種類が多すぎてキーボードが足りない現象を打破するために作られたものです。例えば「sa」って入力したら「さ」になる、これがインプットメソッドの仕事。ツールで言うとibusとかfcitxとかです。で、これだとひらがなしか打てないので入力を変換ツールに渡します。ここで「さ」が「差」になる。これをやってるのがmozcとかkkcとかAnthyです。

f:id:frazz:20180504180100j:plain

恥ずかしながら動けばいいやの精神でやってて、ここが頭の中でぐちゃぐちゃだったんでちょっとすっきりしました。自分の環境ではibusとkkcが使われています。変換ソフトの変遷については上のページにスライドが載せられていますので、そちらが参考になります。

で、実装の部分についてはここを参考にすればいいんだなということが分かりました。はあーなんでここまで来るのにこんなに時間かかっちゃったんだろ。奥が深いですね。

情報の入出力が増えて思うこと

読みたい技術書が多くなってきて、今までと同じ読み方では全く時間が足りなくなってきているこの頃です。どうやって乗り切ろうかなーとかいうただの独り言です。

限界との付き合い方

誰しも自分の能力には限界があると思うんです、でもいかに限界と向き合うかが大事だと思うんです。自分がそう思っているというよりも、自分の尊敬する人が皆そういったことを言って下さるので、こういう言葉は常に頭の隅にあるんですけど。。。

例えばどれだけ頭の中に高速に知識やら技術やらを詰めこめるかというのは、自分の要領が悪いので日頃考えることが多くなりました。技術書もネット上のドキュメントも専門用語のオンパレードですし、理屈が分かれば楽しい反面理解できないものは苦痛になります。特に「そもそもどう動かしたらいいか分からない」という次元の悩みに関しては今も少なからず頭が拒否反応を起こします。

で、こういうのを「インプット」「アウトプット」に分けて考えると、インプットは読む、話を聞く、ですね。アウトプットは読んだものを理解して検証する、実装する、あるいは人に教える、になります。

で、これらを自力でうまくコントロールするにはある程度のテクニックが必要なんじゃないかと最近思っていて、「ふわっとわかる」「ちゃんとわかる」の切り分けとか、本の読み方の使い分けが大事なんじゃないかと。


自分の専門とする技術はもちろん他の技術領域に比べて深い造詣がありますね。でもそこに達するには専門用語のオンパレードがある、という世界にまず慣れないといけません、まず一度地面に深く穴を掘るようなイメージです。これがつらい。

でもそれができると、技術の背景やアーキテクチャを理解するのが比較的容易な脳になってきます。つらかったことが易しくなる。でも実装となると別の努力が必要です、これもつらい。

でもそのうちコマンドを覚えたり構文を覚えたりして、少しくらいなら実装やらリソース管理やらができるようになってきますね。こうするとまた次のつらそうなインプットに戻っていく。

で、ある程度の所に達するとインプットもアウトプットも、そんなに苦労せずそこそこの文章が読み書きできるようになると思うんです。専門じゃないこともやりたくなるかもしれない。そこまで来たら、自分の力が今どの程度なのか、いまやってることは自分にとってどの位つらいのか、あるいは楽なのか、このへんのバランス感覚を持って動くことがうまくやっていく上で重要かなーと思うんですね。つらいことばっかりやって心がしんどくなってもしょうがないですし、かといって広く浅く楽なことばっかりしてると、ある程度の深さから先の知識に拒否反応を起こす体になってしまうので。。。

f:id:frazz:20180504031245j:plain

レベルアップが早い人は、深い領域に突っ込んでいくつらさに向き合える時間が長い人、あるいは何か一つを既に極めていて、同じ要領で頑張れる人のような気がします。で、そういう人たちは相対的に、広く浅く技術を網羅するスピードも高速になります。そこには個人の意志とかバイタリティとか環境とかテクニックとか、色々関連している気がするので、目指すなら自分にどれが足りないのか意識する必要があります。

それでも個人的には、例えば技術書を一字一句漏らさずに読むことしかできなかったのが、パラパラ読みでも知ってる用語が随所に出てきたとか。あるいはコマンドをググらずに頭で思い出して打てたとか。そういう自分の引き出しが増えた瞬間を楽しめることが大事なのかなーと思います。


未熟者なんで偉そうなこと言える身じゃないんですが、自分にかけるつらさの割合が足りないなーと感じて、自戒も含めだらだら書いてしまいました。個人的に6月がやりたいこともやることも盛り沢山なので、少しずつエンジンかけていきます。進捗がありましたらできるだけ書いていきますね。

技術書典4にお邪魔してきた

4/22にUDXにて行われました技術書典4に行ってきましたので軽く報告です。

techbookfest.org

技術書典

技術書のみが出展される同人誌の即売会です。コミケは行ったことないのでよくわかんないんですが、あれの規模を小さくしたものというイメージなんだそうです。去年の秋頃に第3回があって、そこで本イベントの存在を知り今回初参加することとなりました。

f:id:frazz:20180429143625j:plain

中は撮影していませんが大盛況でした、おそらく6000人くらい来場したと思われます。行った時間が遅めだったのでピーク時の行列には並ばずに済んだんですが、ちょっと売り切れが出てたのが悔しいですね。今度は朝一で向かわないといけないかも。また、全然面識はありませんがtwitterのTLにいる方々も何人か参加していたようで、一人で感動していました。。

f:id:frazz:20180501152559j:plain

買った本たち。アプリは詳しくないのでインフラ周辺の本をいくつか買って来て、紙媒体のほうが売り切れていたものについてはPDFで購入。あまりペースは早くないですが少しずつ読んでます。中には実際に本を出してみないか?という内容のものもありまして、作業会とか出版までのやりかたとかも頑張れば調べられそうだな、という感触を得ました。技術力に自信があるわけではないですが、書くのは好きなので自分も出版してみたいですね。。。それまでにアウトプットの質を上げておこう。

皆さんも是非一度行ってみてはいかがでしょうか?

倉庫のPCを再生させようとして色々詰まった話

倉庫から引っ張ってきたみたいなPCをもう一度使えるようにしたくて色々やってたんですが、結構躓いたので以下をメモしておきます。同じミスをしないように。


起動時に赤ランプが点滅する理由

結論メモリが差さってなかった。

拾い物のPCの電源を入れたらいつも緑色で点灯するところが赤点灯になりました。このとき機種によって反応は異なりますが、総じてOSが起動できないエラーを教えてくれるものだとまずは覚えておくといいと思います。

それってとてつもない問題なのかというとそうではなくて、ハードウェアやbiosに関連するエラーを教えてくれるんだと思えば大丈夫です。


HPデスクトップPC - コンピューターが起動せず、LEDが点灯したり、ビープ音が鳴る | HP®カスタマーサポート

PCのランプが5回ずつ赤く点滅し起動しなくなった。 -PCの右の起動ラン- デスクトップパソコン | 教えて!goo


結構迷ってる方いらっしゃるんですね。。。

具体的に言うと自分の場合は赤ランプからの長めのビープ音が5回、そこからファンが全力で回転し始めました。これはやばいと思ったのでひとまずPCの蓋を開けたところ、中にメモリが入っていませんでした。これが赤ランプの原因だと思います、周辺にあったメモリ(2GB)を差したらちゃんと緑ランプになりました。


起動時にファンが全力で回転する理由

結論HDDが差さってなかった。

緑ランプに戻ったはいいもののファンは相変わらず全力で回転するし起動もしません。最初はファンが回る理由が埃のせいだと思っていて、(丁度長い間倉庫に入ってて汚かったのもあったので)掃除してみたんですが変化はなし。

で、後から気付いたんですがHDDが入っていませんでした...。そりゃOSも起動しないわけですね。


windows10のPCをログインせずに初期化する方法

2回強制終了する。

結局倉庫に入ってた別のPCを掃除して立ち上げた所、中身もばっちりで起動も一発クリアしたのでそのまま使うことにしました。中の個人データが残っていたので初期化させていただきましたが。。。

Windows 10 をリカバリー ( 初期化 ) する手順 | ドスパラ サポートFAQ よくあるご質問|お客様の「困った」や「知りたい」にお応えします。

ちなみにログインできないPCを完全に初期化するには、windows起動時に2回強制終了するといいらしいです。こうするとOSが勘違いして自動修復モードに入ってくれます。そこからリセット。


ライブファイルシステムとマスターの違い

ミスってDVD-RWを1枚お釈迦にしました。。。

https://pc-karuma.net/windows10-iso-install-media/

windows10のインストールメディア(DVD)を作って再インストール。

ISOファイルを書き込む場合は、CDやDVDをフォーマットしないよ... - Yahoo!知恵袋

富士通Q&A - [Windows 7] CDやDVDにデータを書き込む方法を教えてください。 - FMVサポート : 富士通パソコン

OS(ISOファイル)をDVDに焼くときはマスター形式の書き込みでないといけないらしくて、それを知らずにライブファイルシステムを指定してしまいました。一度しか書き込めない形式をマスターというようで、USBのような読み書き自由なものとは扱いが違うようです。CD,DVDのほかにISOファイルもマスター形式に分類されます。

一度でもライブファイルシステムを指定したりフォーマットしてみたりすると、それはもう使用済みディスクと認定されるのでOSは焼けなくなります、気を付けましょう。USBにlinuxのOS焼いたときはこんなことなかったんだけどな。。。

JANOG41.5 Interim Meetingにお邪魔してきた

4/20に行われましたJANOG41.5 Interim meeting に参加してきたので軽く報告です。

JANOGとは

ネットワーク界隈の方からすると有名だと思うんですが、JANOGはJapan Network Operator's Groupの略で、国内のネットワークおよびインターネットを支える企業、研究者が集い、最新技術や運用について報告し議論するといった内容のイベントです。お話を聞きたかったので今回初参加してきました。

www.janog.gr.jp

ちなみにjanogをはじめとするこういったイベントの中では、同士の集まりのことをBoF(Birds of a Feather)というようです。かっこいいですね。

おはなし

様々なネットワークベンダーさん、ISPさん、大学のネットワーク管理者さんが数分の持ち時間で調査、研究、活動の宣伝を行っていました。

内容としては某W大学の無線ネットワーク構築は多数のキャンパスがある為、WLCを使うと逆に大規模な無線環境の更改しかできなくなって悩みどころなんですよねー、とか、JPNAPは広島でBoFやってきました、とか、conbuでイベントの無線LAN環境構築に参加してみませんか、とか、テレメトリネットワーキンググループが発足しました、とか、JANOGスタッフやってみませんかー、とか、AnsibleをPlaybook無しで気軽に使う方法、とか。。。他にも各ベンダーさんや企業のインフラエンジニアさんのお話を多数伺ってきました。twitterでもちょっと盛り上がりを見せていましたね。。

そんな感じ

初参加でしたが非常に活気のあるイベントでした。

twitterハッシュタグを追うと詳細がまだ見られるのかな?少なくともjanog公式サイトには当日の講演資料が一部掲載されていますので、興味のある方はご覧になるといいかもしれません。また、次回のjanog 42は三重県での開催です。ハッカソンもやるかもしれないそうですよ。

https://www.janog.gr.jp/meeting/janog42/

おまけ

めっちゃオフィスとセミナールームは綺麗でした。。日本にこんな職場があるんだなって思った。

f:id:frazz:20180429002943j:plain

node.jsの3つめのメモ

node.jsの最初のメモ - brand new note

node.jsの2つめのメモ - brand new note

前回(というか昨日の夜)の続き。とりあえずなんか画像を出してくれるやつを考え中です。記事書いて頭の整理をしながらでないとうまくいかないので、もはや他人様の読み物じゃないです。

記事一覧

使えそうなリンクのメモ。

node.jsを使ってサーバサイドで画像合成してみる (node-canvas編) |

ウェブでの画像ファイルの取り扱いについて (Node.js * javascript)

Node.jsで画像アップロードと表示 - Qiita

Expressことはじめ - Qiita

イマドキのJavaScriptの書き方2018 - Qiita

メモ

まず前回の記事と同じ手順をもっかい踏んで環境を作ればいいんですかね、ポートを変えて。写経の繰り返しなのでどこからが自分の実力なのかはっきりしないですね。。。自分の頭の中だけで完結できるもの、手が勝手に動く状態を少しずつ増やしていく感じでしょうか。

npm init して npm install express --save. モジュールをロードする、ポートを指定して待ち受けを開始する、アプリケーションの処理を書く。

app.get()はappオブジェクトのgetメソッド。

resはレスポンスを返す。res.json(picturelist)はjson形式で画像のリストを返す。()の中は var picturelist のことを指すのでここで名前を揃える。

ちょっとずつサンプルを変えて動かしてみてうまくいかなかったら原因を考える。

というか画像なりテキストなりをちゃんと読み出せているかの確認が出来てないんですよね。これをやって。。。

できない。。。。

constが変わらない数でletが変わる数

アップロードしたら、したものの画像をリスト化して出してくれるようなやつがいいですかね。アップロードボタンが必要。

app.jsと同じディレクトリに画像があれば良くて。

...あれだな、他のサンプルコードからも学習できることがありそうなのでそれからだな。。