2017年7月5日水曜日

社会人3年目

このツイートはフィクションです。

2017年1月1日日曜日

2016年 to 2017年

お疲れ様です、芝生です。
ブログの存在をすっかり忘れていましたが、いかがお過ごしでしたか。
自分用の備忘録を兼ねて、この1年どんな感じだったか書いておこうかと思います。


仕事が数回炎上

様 式 美
い つ も の
知 っ て た
実 家 の よ う な 安 心 感
て お く れ

様式美じゃないんだよ辛い。
これのせいかどうかはさておき、精神的に大いに削られました。タイムラインの人たち、よく生きてるなぁと本当に思います。すごい。

思考力の低下

元からだよ。元からなんだけど、悪化した気がします。最近何も考えてない気がするし、全ての物事をペンディングしてる。
考えてると、すぐ仕事に意識とられて仕事とか理由とか考えちゃってきついんですよね。なぜWordではなくExcelで文書作るかとか、なぜVCS利用全盛の時代にコメントアウト履歴かとか、もにょもにょ……いやちゃんとそれらは多少は理由ついてくるんだけど……というか本当にそれらが原因だったか今思い出せない……
うーんクズ。

Yukari for Android 1.3のリリース

ちまちま作っていたら方向性がまったく定まらなかった1.3系ですが、OSC2016 Tokyo/Fall合わせで無事リリースできました。
最終的には悲願であった設定インポート・エクスポートも搭載できたので、意義のあるリリースになったのではないでしょうか。
まだアップデートしていない方は、ぜひお試しください。

そして、2016年12月22日をもってYukariでのAndroid2.3~3.xサポートを完全に終了しました。最初のリリースから2.x固有不具合に悩まされるなど、長い長い付き合いでひたすら頭を痛めました……。
Yukari 1.3.2からはAndroid 4.0以降対応となります。しかし、大事なことですが、4.0も早期に切る予定です!!!
これはなぜかと言うと、Android 4.0~4.0.xが搭載されたスマートフォンの多くが、2.3からの更新サポートの機種だったからです。
OS的には多少近代的であっても、アップデートでスペックが上がるわけではありません。むしろ、ICSはリソース大食いで有名です。
結局、今度はスペック的な限界が来てしまうわけで、近年のYukariを動かすにはもう厳しいかな……とかそういう判断です。
動くことは知っています、でもいつまでも面倒を見ることはアップデートの妨げになることすらあります。私は超人ではない為に手厚いサポートをする余裕はないので、頃合いを見て捨てるしかありません。

さて、

2017年です。今年は何か新しいものを習得したいですね。
世間的に新しいかは置いといて、今まで自分がちゃんと触ってなかったものとかがいいですね。もっとも、今の気力でできるかどうかは分かりませんが。

あと、Yukari for Android 2.0のアルファテストを開始しました。今年はMaterial化とかやりますよー!

2015年12月22日火曜日

Yukari for Android 1.2

この記事は「Twitterクライアント開発マン Advent Calendar 2015」 22日目の記事です。


結月ゆかりさん、お誕生日おめでとうございます。心よりお祝い申し上げます。

長い長い混迷の期間を経て、ついに時間切れです
2015年の最後に、Yukari for Android 1.2.1をお届けします。


Yukari 1.2.1の新機能

正直、Yukari 1.2alphaが長かったので皆さん飽きているでしょう。というか、1.1からの差分をまとめていたらキリがありません。1.2.0alphaの最終一般リリース(r.244)からの差分をお届けします。

  • フィルタシステム / Yukari Query β
  • QRコードのテキストプレビュー機能
  • 再生不能な動画リンクを極力避けるように判定を修正
  • ページングの状態がタブ切り替えによってリセットされるバグの修正
  • ブックマーク上でプラグインを起動する際、表示と1つずれて起動されてしまう(最悪落ちる)バグの修正
  • 5インチ以上の端末で使うとサムネイルが極端に小さくなるバグの修正
  • ナルシストオプションの可否に関わらず、TLタッチ拡張で自己ふぁぼが行えるバグの修正

フィルタシステムについて

以前より長らく予告していた、ツイートの高度フィルタリング機能の実装です。
名前は「Yukari Query」と言います。ベースとなった言語をもじりました。
時間とやる気、他様々な要因によって、まだβ段階です。

ベースはSQL, Krile Query (StarryEyes), Lispです。これらを参考として、大枠にはSQL, KQ形式の表現で見やすさを、条件評価式の記法にS式を用いることで実装の手軽さを取りました。

どのような言語になっているか。最低限、何でも表示するとしたらこうです。
from * where (t)

大枠として from や where といったSQLライクな記述が見られます。これは存じている方であればその通り、ツイートの取得元、その抽出条件をそれぞれ表します。
from句の * は「全ての受信ツイートを対象とする」といった意味を持ちます。ちょうどKQのそれに近い性格を持ちます。
では、where句はどうでしょう。(t) はS式由来の記法となります。
この場合、(t) の t とはブーリアン値のTrueを指しますので、結果は真ですね。それだけですので、ツイートは全て真と評価され、TLに表示されることでしょう。

詳しい説明は、Yukari Wikiの以下ページを御覧ください。
Yukari Wiki / Yukari Query

Yukari Queryを使用するには、以下の方法があります。

  1. Filter タブを作成する
    タブの編集画面で、Filterタブを作成してください。
    作成後、エントリを長押しするとクエリ編集画面が開きますので、クエリを入力して保存して下さい。
    再起動後、保存したクエリでタブが有効になります。
  2. 「クエリを実行」コマンドを実行する
    検索メニューに新設されています。これをタップすると、クエリ編集画面が開きますので、クエリを入力して実行して下さい。新規タブで実行されます。


このエントリの残りでは、Yukari Queryのサンプルを幾つか紹介します。Wikiと被るかもしれませんが大目に見てください。
見やすさのため、改行とインデントを加えていますが、実際の入力の際には適当なスペースが空いていればだいたい解析してくれます。

from home:"<screen_name>" where (in ?text "ゆかり")
Home TLから、本文に"ゆかり"という語句が含まれているツイートを抽出します。ごく基本的な形です。

from home:"<screen_name>" where (or
  (in ?text "ゆかり")
  (in ?text "Yukari")
)
"ゆかり"だけでは飽きたらず、"Yukari"も含めてしまいましょう。このように、or関数を用いることで複数の条件を指定することが出来ます。もちろん、and関数もありますよ!
orが"いずれかが真"、andが"全て真"、ですね。

from home:"<screen_name>" where (regex ?text "(結月)?(ゆかり|ユカリ|[Yy]ukari)")
たとえば本文でいずれか、のような条件が多くなってきたら、正規表現を検討するのもありかもしれませんね。この場合、"ゆかり""Yukari""yukari""結月ゆかり"なんかが該当しますかね。
regex関数では、Javaの標準ライブラリが扱える形式の正規表現を使用することが出来ます。詳細はJava SE6のJavadocとか読んでください。
パフォーマンスは計測してないので、まぁなんというか無理はしないでくださいね。

from * where (and
  (= ?source "Yukari for Android")
  (or
    (in ?text "ユッカリーン")
    (regex ?text "(ゆかりさん){2}")
  )
)
まぁ、なんだ。アレだ。y4aで様々な愛情表現を行っているツイートを抽出する例です。

Krile Queryなどを使ったことがある人なら、すぐにどんなことができるかピンと来るかもしれません。そうではない人は、あまりピンと来ないかもしれません。
要するに条件をつなげて俺だけのタイムラインを作るぜ、という夢がモバイルでも始まったということです。

Yukari Query実装の最大の理由は「モバイルでも妥協しない、デスクトップクライアント並のことをするための機能を載せる」ってことです。
操作しにくくスペックも劣るモバイルだからこそ、できる範囲でスマートにこなせるようにする。それは方向性としてとても正しいと思います。
ですが、昨今の端末はどうでしょうか。昔と比べたらスペックも上がりました。3Dモデルがわいわい動きまわるリッチなソーシャルゲームをしている人も増えました。例えば白猫や乖離性、一昔前と比べたらだいぶすごいですよね。それを支えられるだけの力を持った機種がたくさん出回っているのです。
なら、テキストの大量処理なんて、できないわけないですよね?
じゃあ、やってみましょうよ。ってことです。

これからヒマな時に、徐々にfromソースなどを増やして実用的にしていきます。

バグ報告や要望は@yukari4aで受け付けております。
それでは、これからもよろしくお願いします。そして良いお年を!

2015年6月28日日曜日

Yukari 1.2 開発進捗状況

お久しぶりです。なんとかかんとか生きています。
仕事は難しいわけではないのですが、とにかく疲れと辛さが蓄積されます。

Yukari 1.2

進捗ダメです。
この状況では、2ヶ月連続正式版アップデート無しです。悔しいです。
今までほとんど月に1回は更新してきたのに……。

最も大きな理由としては、フィルタシステムの実装が難航していることが挙げられます。
y4a1.2では、条件式を記述してフィルタリングを行うタブを作成できるようにするつもりです。
何を目標にしているかは、Krile StarryEyesあたりを想像していただければだいたい合っています。私がWindowsを使用している時、愛用しているものです。
もっとも、それほどまで洗練されたレベルに持っていける気はしていません……。
とにかく好きなタブが作れるようになったら良いなという考えで進めています。単なる理想ですけど。

他には、単にy4a1.1でレポートされたバグが割と多くて手が回っていないなど、いつも通りの理由です。
この辺りに関しては、修正ができそうなものは極力手を付けますが、フィルタシステムにリソースを割いているためにそれほど手が回る気がしていません。
また、フィルタシステムの実装が済み、アルファテストでクリティカルなバグを潰したら早めに正式版に昇格させたいと思っているので、いつも通り1.2.0ではバグ満載となる予定です。

更新が途絶えている間にTwitterでは様々な事件が発生し、多くのクライアントの存亡が危ぶまれました。
ほとんどは元通りになりましたが、それでも多大なショックを与えましたね。
その関係もあってか、Yukariユーザも増えたり減ったり、トータルでは結構増えたようです。ご利用ありがとうございます。

ユーザが増えたところで、もしかしたらメイン張らせている人がだいぶ増えてしまったかもしれませんが、このクライアントはそもそも安定アプリではありません。
皆様と問題点を探して改良できたらと思っています。
1.2.0ではバグ満載となる予定です、と書きましたが、配信の際には恐れずにアップデートを適用し、だめだった場所を教えていただけたらと思います。

私だって人ですから時には荒れてたり適当なこともありますが、基本的にはバグや疑問点を問い合わせてもらえることはありがたいと思っています。
どうか今後もよろしくお願いします。



まあ、1.2全然できてないけどね。

2015年5月6日水曜日

就職して1ヶ月

ちょうどゴールデンウィークに直撃する感じで体調崩しました。
(正確には2日前くらいから鼻水がひどく職場でずっと鼻をかんでいた)

お仕事はまだつらくないです。
今つらくないから数ヶ月後が余計に心配になります。業種が業種だから……ね。

d250g2しなければいいなあ。するんだろうなあ。

Yukariについては、最近1.2開発ブランチを切りました。
ちまちまと拡張していって、5〜6月を目処にリリースできればと考えています。
お仕事が私の想像を超えていきなり派手に燃えれば夏になりますが、極力その前に……。

2015年3月1日日曜日

OSC2015 Tokyo/Springに行った

2/28 日曜日、明星大学にて開催された「オープンソースカンファレンス 2015 Tokyo/Spring」の2日目に行ってきました。
高校のコンピュータ部合宿の直後ということで、なかなかハードな週末となりました。

当日はとりあえず11時に間に合うように行動。今回は後輩である@raven_38_君と共に行きました。

到着してすぐ、raven君の希望でConoHaブースへ行き、raven君とこのはちゃんの写真を撮影。その後はとりあえずコミュニティブースへ行きました。

まず見たのはProject Vine、ちょっと前からLinux触ってる日本人なら誰でも一度は触ったことがあるであろうVine Linuxのブースですね。
何となく覗いてみたらおかのさん(@okano_t)に勧誘を受けた形です。atelier-wmとかVineで動くかな、とか考えながら聞いていました。



ここでは、リリースから間もないVine Linux 6.3のセットアップディスクとロゴステッカーをいただきました。

次に向かったのはmikutter ユーザ会やRasPi、NetBSDの並ぶ一角!ずっと大混雑でした。
シールをたくさん収集し、mikutterの薄い本 Vol7も購入。本で手に入れたいと思っていたのでよかったです。




この後、ぱらつり氏(@paralleltree) kb10uy氏(@kb10uy)らと合流し、食事をとりました。今回はカツカレーです。カツは切られているのかと思いきや、半分ほどまで切り込みが入っている感じでした。カツのユーザビリティについて話しながら食べていました。



食事後、Android WearからRecotw Explorerが見れるよなど披露してみました。

そうこうして適当にふらふらしていると、わかめそば氏(@wakamesoba98)が登山を終えOSCを散策している情報をキャッチ。しかも私の名刺情報があるじゃないですか……。



ということで、合流!F-07CでArchLinuxが実際に動いている姿や、Android 1.6エミュレータでSobaChaを実行する話、などなど盛り上がりました。



この後はまたmikutterユーザ会のところへ。「atelier toshi_a」というこの世に1つしかない名著を読ませていただけるなど、大変貴重な経験ができました。
としぁさんがツイートすると盛り上がる一角、おもしろかったですw




しばらくふらふらしたり、休憩をして最後はLT会場へ移動。ここではmikutter on Nexus7を広げ積極的な危篤患者アッピルに努めました。



上海OSCの話やあひる焼き、また、あっきぃさんのラズパイ発表でバーコードリーダーでページ送りをしていた姿は印象に残っています。


正直な話、今回は合宿の直後に来たということもあり、体力不足や体調の不安さがありました。実際、日中ずっと喉の調子が優れませんでしたし、帰りは電車内で寝まくっていました。万全な体調で行きたいものです。

また、つい先日アップロードしていたatelier Window Managerのことをふと思い出し、いずれWindow Managerの分野でOSCに出展側で出てみるのも面白いかも知れない……!なーんて考えたりもしました。今は全く自信がありませんが、もう少し経験を積めていればWMの事でLTに挑戦するのもまた楽しそうです。
WM分野に手を出そうとする日本人を少なくとも自分のTLでは見かけないため、この分野にはまだ試せることがあるかなあといった感じです。

ともかく、OSC楽しかったです。でも角度を変えてもっと楽しみたいです。そんな感じです。

2015年1月3日土曜日

Yukari Link Accelerator について

Yukari Link Accelerator とは

Yukariのツイート詳細画面、Linkタブに列挙されるURLにアクセラレータボタンを付加することができる機能です。 いわゆるプラグインです。 Yukari for Android 0.120alpha 以降で使用することができます。

どんな風にボタンが付くの?

y4a 0.120以降で「ツイートのパーマリンク」が入った発言を開いてください。 URLの左に、吹き出しボタンが付いていると思います。 そして、それをタップすると即座にYukariでツイートが開かれます。 このようにボタンと機能を付加することができます。

作り方

以下のIntentを受け取ることができるアプリを作成してください。


Action shibafu.yukari.ACTION_LINK_ACCEL
Category android.intent.category.DEFAULT
Extra
  • String user_name  ツイートを受信したユーザのユーザ名
  • String user_screen_name  ツイートを受信したユーザのScreenName
  • long user_id  ツイートを受信したユーザのID
  • String user_profile_image_url  ツイートを受信したユーザのプロフィール画像URL
  • String status_url  呼び出し元ツイートのパーマリンク
Intent#getData() でアクセラレーション対象のUriを取得できます。
これは結果をYukariに返す種類のプラグインではないため、setResult()等を行う必要はありません。適当に戻ってきてください。

サンプル

https://github.com/shibafu528/y4a_ShindanAccelerator
ライセンスは MIT License です。

蛇足

このAPIは、私がツイートの直接呼び出しや、診断の即時実行を呼び出すことを目的に実装されたものです。そのため、機能不足や不親切な点が目立つのは否めません。
もし、興味を示していただける方がいれば、提案があればExtraで提供するデータの追加なども検討します。