ここの放置具合も酷いものですが、別の場所に新しくブログを解説しました。
authorも別名で、いまのところ特にここからリンクも張らないので、しばらくひっそり運用するつもりです。
まっさらな所から色々いじるのは楽しい。
No tags for this post.Notice: get_currentuserinfo の使用はバージョン 4.5.0 から非推奨になっています ! 代わりに wp_get_current_user() を使ってください。 in /var/www/html/blog/wp-includes/functions.php on line 3831 Call Stack: 0.0000 227848 1. {main}() /var/www/html/blog/index.php:0 0.0001 228288 2. require('/var/www/html/blog/wp-blog-header.php') /var/www/html/blog/index.php:17 0.1231 6207296 3. require_once('/var/www/html/blog/wp-includes/template-loader.php') /var/www/html/blog/wp-blog-header.php:19 0.1240 6213872 4. include('/var/www/html/blog/wp-content/themes/zbench/index.php') /var/www/html/blog/wp-includes/template-loader.php:74 0.1240 6213904 5. get_header() /var/www/html/blog/wp-content/themes/zbench/index.php:1 0.1240 6214488 6. locate_template() /var/www/html/blog/wp-includes/general-template.php:45 0.1240 6214728 7. load_template() /var/www/html/blog/wp-includes/template.php:647 0.1240 6228432 8. require_once('/var/www/html/blog/wp-content/themes/zbench/header.php') /var/www/html/blog/wp-includes/template.php:688 0.1253 6244328 9. wp_head() /var/www/html/blog/wp-content/themes/zbench/header.php:8 0.1253 6244376 10. do_action() /var/www/html/blog/wp-includes/general-template.php:2589 0.1253 6245048 11. WP_Hook->do_action() /var/www/html/blog/wp-includes/plugin.php:453 0.1253 6245144 12. WP_Hook->apply_filters() /var/www/html/blog/wp-includes/class-wp-hook.php:323 0.1345 6399776 13. call_user_func_array:{/var/www/html/blog/wp-includes/class-wp-hook.php:298}() /var/www/html/blog/wp-includes/class-wp-hook.php:298 0.1345 6400384 14. add_google_analytics() /var/www/html/blog/wp-includes/class-wp-hook.php:298 0.1348 6401168 15. ga_current_user_is() /var/www/html/blog/wp-content/plugins/google-analyticator/google-analyticator.php:1116 0.1348 6401200 16. get_currentuserinfo() /var/www/html/blog/wp-content/plugins/google-analyticator/google-analyticator.php:1289 0.1348 6401424 17. _deprecated_function() /var/www/html/blog/wp-includes/pluggable-deprecated.php:49 0.1348 6401912 18. trigger_error() /var/www/html/blog/wp-includes/functions.php:3831
ここの放置具合も酷いものですが、別の場所に新しくブログを解説しました。
authorも別名で、いまのところ特にここからリンクも張らないので、しばらくひっそり運用するつもりです。
まっさらな所から色々いじるのは楽しい。
No tags for this post.EclipseでAndroidアプリケーション開発が許されるのは小学生までだよねと言われて久しいですが、それでもEclipseを使い続けていた先月、次の記事が。
Google、「Android Developer Tools in Eclipse」サポートを年末に終了へ
米Googleは6月26日(現地時間)、Androidアプリ開発ツール「Android Developer Tools(ADT) in Eclipse」の開発と正式サポートを年内に終了すると発表した。
こうなってはもうEclipseでAndroid書いて許されるのは牛や豚のみとなってしまうため、これはすこし頑張ってみようかと既刊の書籍を物色してみるも、AndroidStudioを使ったAndroidアプリ開発入門ばかりでAndroidStudio入門がないんですね。Activityとは、とかFragmentとは!みたいなのは求めてないのです。AndroidStudioに入門したいのに。
仕方がないのでWebをあたります。
Android Studio最速入門~効率的にコーディングするための使い方
やや古い連載ですが、イメージに近い事が書かれていました。
とりあえず、AndroidStudioの事はWebで情報収集することにして、放置してたリポジトリを建て直しました。
GitHub:ivoryworks/PGMA
試練場。
Eclipseのプロジェクトを削除して、AndroidStudioのプロジェクトをcommitします。
とりあえず毎日なにか書いてれば自然と身に付くんではないかなと。
今僕はgitのリポジトリをGitHub、Bitbucket、個人サーバの3箇所に置いていて主にBitbucketを使用しています。
Bitbucketにはプライベートリポジトリしか置いてなくて割と節操ない感じなのですが、そのリポジトリに対して「Bitbeaker」というAndroidアプリを使ってます。これ何するかというと、もちろんcommitとかしないんだけど、出先でToDoやメモレベルのissuesを打ち込んだりするのに重宝しています。
で今現在、Google Play上に同じ名前のアプリが2つ存在しています。
これ、パクリアプリとかニセアプリとかそういうのではなくて、開発体制を別の人に移管したためこういう事になってるんですね。Google Playではパッケージの更新や配布に証明書を用いるのですが、おそらく譲渡できなかったためこのような関係になっているのだと思います。たぶん。
現時点では、まだ両者の間に機能的な乖離はほとんどないのですが、使用するなら後者を選んでください。
ちなみに、このアプリはBitbucket上にリポジトリを公開しています(前者のリポジトリは既に閉鎖)。
あと、GitHub謹製のGitHubアプリもあって、これもインストールしてますが、これはどちらかというと参照にしか使ってなくて起動率も低い感じ。
日本語版2007年の本ですが、レビュー高評価だったので福袋欲しさに買いました。
第1章より、数学と物理学の復習的な内容から始まっていて、すこしずつ読み進めています。
サンプルはC/C++言語で書かれていて、ダウンロードできるソースコードはVC、同じものがVS環境向けにも用意されてます。
VS環境を用意する気がないので、別の言語に書き移しながら勉強していくつもり。
今月は福袋がつきます。去年は何を買ってたかなと思ったら同じくゲーム関連書籍でした。
正月明けても即ポチせずに一呼吸置くのがプロの業。
「曲がるiPhone」を実現する技術の特許をAppleが取得 – GIGAZINE
現地時間の2015年1月6日にAppleが「Flexible electronic devices(自由に曲げられる電子機器)」の特許を取得しました。ディスプレイやケースだけでなく、内部パーツまで曲げられるという、かなり画期的な内容になっています。
先日、appleの曲がるiPhoneの特許について報じられたとき、やわらか携帯の事を思い出した。
薄くなっていく携帯。さすがにどこかで歯止めがかかるはずだが、薄くなればなるほど強度が心配になってくる。今度は「やわらかい携帯電話」が出てきたりしてね。いや、やわらかいと言うより「しなる携帯電話」かな。
この少しあとに、やわらか電池を書いている。
当時(2009年)は、バッグの中で不意に圧がかかっても壊れないような、しなる携帯電話が出てくるかもしれないなあと考えていたのだけど、結局現在までにそういった端末が市場に並ぶことはなく、「携帯電話」は減少の一途をたどっている。
このエントリで「携帯」と言っているところが時代を感じるけれど、その半年後にdocomoの初Androidを紹介していて『2009/07/10『docomo PRO series HT-03A』発売』、翌年にはIS03を買っているから、ちょうど転換期だったのかもしれない。『ZaurusとIS03』
曲がるiPhoneが登場するかどうかわからないけど、5年もしたらスマートフォン持ってないかもしれないなあ、とぼんやり考えています。
このエントリのタイトルは、『 Komodo Markdown Aidを公開したらKomodo Editの中の人が見つけてくれてissueやpull requestもらったりして感激したけど最終的にGitHubのリポジトリを壊した』という風にしたかったが長いので省略した。
先日、Markdown文書を書きながら閲覧するためのKomodo IDE/Edit マクロをリリースした。Komodo Markdown Aidという。
[Komodo Edit] Komodo Markdown Aidをリリースしました
このマクロは、GitHubで公開していて誰でも使える。
GitHub : ivoryworks/komodo-markdown-aid
Komodo Editには個人的にいくつかの不満点があり、その中に『Markdown文章を手軽にプレビューする手段がない事』があった。
かなりの時間をかけて『KomodoEditでMarkdown文章をプレビューする何か』を探しまくったのだけど、これが全世界的に存在しない。
マクロを書いた。
おそらくは世界にこれしかないので、GitHubで公開するにあたってReadme.mdは英語で書いた。
英語で書いた、と書くとあれだけど、はっきり言って英語力が皆無なので、Google翻訳を駆使しながらも、最低限の情報を載せた。
今までGitHubには『公開しても差し支えの無いもの』を置いていて、見られたくないコードは、自前のVPSにリポジトリを作っていた。
『公開しても差し支えの無いもの』と『公開するもの』の間には大きな隔たりがある。だから、今までReadmeなんて日本語ですらまともに書いたことがなかった。
リリース後しばらくしてissueが届いた。
今までGitHubを単なるコードの保管場所に使っていたので、issueなんてもらったことない。
Hi there, awesome macro! I had been thinking of creating one just like it, glad I don’t have to :) I look forward to using yours.
I think many users will appreciate your work on this, so why not submit it to the Komodo Resources section? :) https://github.com/Komodo/Komodo-Resources
端的には、Komodo IDE/Editのマクロやアドオン、スキンなんかを取り纏めているKomodo ResourcesというサイトにKomodo Markdown Aidを登録したい、と書いてある。
調べたら、Komodo Editの中の人からのissueだった。
Google翻訳の全面的な協力のもと返信した。
翌日、Komodo Resourcesに”Markdown Preview”という名前で、Komodo Markdown Aidが登録され、issueはcloseとなった。
同時に、Komodo Markdown Aidへpull requestが来た。
最初のissueには「僕もこういったものを作ろうとしてたんだ」と書いてあって、社交辞令だろうと思ってたけど、コード読んでくれてて良かった。
落ち着いてから投入しようと思い、保留にした。
これまでのコミットに気にくわない個所があって、Komodoの中の人からpull requestもらって調子に乗っていた僕は、最悪なことに歴史の改ざんに踏み切った。
何をしたとか省くけど、リポジトリがきれいになったと思ったらpull request投入できなくなっていた。関連が切れた状態になっていたのだと思う。
しかたなく泣きながら手動マージしてcommitした。
Google翻訳の全面的な協力のもと謝罪した。
Komodo IDE/EditでMarkdownを書きながらプレビューするための支援ツールを作りました。
ファイルの保存をトリガに実行されるpythonマクロです。
GitHub: https://github.com/ivoryworks/komodo-markdown-aid
zipをダウンロードするか、git cloneしてプロジェクトを保存します。
次に、Komodo IDE/EditのToolboxメニューからインポートします。
拡張子が.mdのファイルに対して有効です。
保存をトリガにプレビューが開きます。
これで使えるのですが、Markdownの変換処理を高速化するために、後述するStrapdown.jsのダウンロードを行ってください。
Strapdown.jsは同梱する事にしました。これにより、ダウンロードしてそのまま使えます。
Markdownのコンバートには、Strapdown.jsを用いています。
これはJavaScriptによる実装で、プレビュー画面表示時にMarkdownからHTMLへと変換しています。
初期設定では、Strapdown.jsがホストしているURLが設定されており、そのままですと、コンバート時にネットワーク接続が必要であったり、また変換処理がもたつくため、Strapdown.jsをPCにダウンロードして用いることを強くお勧めします。
ダウンロードの際には、Strapdown.jsだけでなく、他の関連ファイルも合わせてダウンロードするようにしてください。
README.mdにはまだ書いていないのですが、Strapdown.jsは任意のBootstrapテーマを適用することが可能です。
カスタマイズ方法については後日解説します。
前回は、SciMozの属性値を実際に使用し一覧化した。
このエントリでは、Komodo Edit 8.5のマニュアルに記載されているSicMozのメソッドを実際に使用し、その動作についてコメントを付けて一覧化する。
属性値とこのメソッドを利用することで、ユーザがテキストに対して行える操作の全てをマクロから実施することができる。
ここにscimozのメソッド一覧を記述する。しかしたら捉え違いをしているものもあるかもしれない。
一部のメソッドについては、動作を理解できなかったものがあり、コメント部はマニュアルのままとしている。判明次第修正する。次の5メソッド。
また、注意点を最初に記載しておく。
Undoスタックについて以下に概略を記述する。詳しくはマニュアル記載の”The Undo Stack”を参照の事。
ScintillaはUndo履歴をスタック管理している(scimozはScintillaのプラグイン)。
マクロからテキストに対して操作を行うにあたり、その操作単位を意図的に区切りる場合はbeginUndoAction()/endUndoAction()を用いる必要がある。
またその場合、例外発生時にも必ずendUndoAction()が実行されるよう注意する事。正しく用いられない場合には、その情報が失われる可能性がある。
※ beginUndoAction()/endUndoAction()を用いずとも、各操作はスタックに積まれるが、その単位は1操作毎となる。
scimozはKomodo Editにバンドルされているエディタプラグイン(おそらくScintillaのプラグイン。MozはMozilla?)。
Komodo Editでは、マクロからscimozを利用することで、エディタに対して様々な命令を実行する事ができる。
scimozはPython/JavaScriptどちらでマクロを書いても利用できる。以下はPythonでscimozオブジェクトを取得する例。
from xpcom import components
viewSvc = components.classes["@activestate.com/koViewService;1"]\
.getService(components.interfaces.koIViewService)
view = viewSvc.currentView.queryInterface(components.interfaces.koIScintillaView)
sm = view.scimoz
最後のsmがscimozオブジェクトとなる。sm.textとすればエディタ上の全文が得られる。
属性値の多くは上書く事が可能であり即時反映される。
ファイル固有のプロパティに関わるもの(ホワイトスペースの可視設定など)については、属性値を上書くと、その場でプロパティが再設定・保存される。
以下は、Version 8.5のマニュアルを元に、実際に動作を確認した結果を記載している。もしかしたら捉え違いをしているものもあるかもしれない。それと、targetStartとtargetEndについては、動作について理解できなかった点があり、マニュアルの文章をそのまま載せている。動作が判明したら修正する予定。文字列置換に関連するようだが。
scimozには上記属性の他に、各種多様なメソッドが実装されている。
それらについては別のエントリとするつもり。