snippet

【JavaScript】marked.jsを無理矢理拡張してオレオレパーサーを作る

最近例のクソアプリのマニュアルを書いているんですが、なんだかHTMLを書くのが面倒になってきました。 GitHub Pagesですし、jekyllを使えば比較的簡単にMarkdown記法でガリガリ書けるらしいんですけど、使い方を覚えるのが面倒です。また、Rubyの環境がない…

Oauth認証をServiceで行う(あるいは、Serviceの結果をBroadcastReceiverで受け取る)

AndroidでTwitter4Jを使ってOauth認証を行う方法は以前[Android][Twitter4J]AndroidでTwitter4Jを使うときのノウハウまとめ(前半)と言う記事で紹介したんですが、何と言うか、単刀直入に言うとバグっています。 具体的にどのような事象が発生するかと言う…

【Android】アイテムクリック時にイベントを発生させるListPreferenceを作成する

相変わらずこのような愚にもつかないクソアプリを作っています。まぁ、楽しいんですが…。それなりには。 設計上Preferenceを多用するのが一番楽だと判断しましたし、それは恐らく間違ってないんですが、PreferenceそのものがAndroid SDKにおけるBad Partの一…

【Android】PreferenceActivityで使えるPreferenceを自作する

つい先日、むしゃくしゃしてこのようなアプリを作成、公開しました。 このアプリ自体は内輪ネタの極みなので死ぬほどどうでもいいんですが、色々と個人的に初めての試みがあり、その辺のノウハウをメモしていきたいなと。 と言うわけで、今回は自分でPrefere…

【Android】XmlPullParserでHTMLをパースする

pixivだとかgyazoだとか、あの辺のサイトの画像もプレビュー表示できたらいいなと思ったはいいものの、どうしてもスクレイピングしないと画像のURLがわかりません。 以前AndroidでWebスクレイピングをやった時はJerichoのAndroid版を使ったんですが、(当時…

【Android】android.widget.Filterがひどすぎるので作り直す

ListViewのデータをフィルタリングするのであればFilterを使うのが一番簡単です。 簡単なんですが、使い物になりません。と言うわけで、継承して作り直します。 android.widget.Filterの挙動 AndroidにおけるFilterっていっぱいありすぎるのでandroid.widget…

【Android】非同期通信で画像を取得する際のノウハウまとめ(2)

HTTP経由で画像を取得、ついでにサイズを自動で補正するメソッドを作成しました。 public class ImageUtil { public static Bitmap getBitmapFromHttp(String url, Point maxSize, boolean isSaveCache) { HttpURLConnection con = null; InputStream in = n…

【Android】非同期通信で画像を取得する際のノウハウまとめ(1)

以前AndroidでTwitter4Jを使うときのノウハウまとめとか言う記事でさらさらっと、お茶漬け感覚で解説したんですが、色々といい方法を新たに見つけたのでまとめておきます。 以前の方法での問題点 ざっと列挙すると、こんな感じです。 端末のサイズより大きい…

【Android】端末の方向やディスプレイサイズから色々なものを動的に変更する

ようやく忙しさが(多少)やわらぎました。 相変わらず時間を見てはのんびりと自作のTwitterクライアントのためのコードを書いており、ちょっとしたネタもたまってきたので吐き出していきます。 端末の方向を動的に取得 / 固定する Androidの端末の回転に関…

【SSIS】フラットファイル接続マネージャーをテキストファイルから生成する

SSISのデータ型はなるべく接続マネージャー or SQLで合わせておいた方がいいみたいな話をしたんですが、SQLはともかくフラットファイル接続マネージャーの設定は結構面倒です。 列名ぐらいなら定義時にヘッダをつけておけばいいんですが、データ型はちまちま…

【C#】Windows資格情報を操作する

以前C#でWindows資格情報を列挙すると言う記事で試しに作成したソリューションをGitHubに公開したんですが、相当手を加えて列挙だけでなく操作も全部できるようにしたのでした。 したんですが、それを紹介する記事を書いてなかったので書きます。とは言え、…

【SSIS】スクリプトコンポーネントでStream(BLOB)を扱う

SQLのデータ型の中でも最も影が薄いと言うか、使うタイミングがよくわからないBLOBなんですが、SSISも一応対応しています。 SQL Serverだとntext、text、image(それぞれnvarchar(max)、varchar(max)、varbinary(max)の方を使うよう推奨されている)あたりが…

【C#】StreamReader#ReadLineの改行コードを明示的に指定する

ExcelやAccessのデータをコピペしてExcelで保存、それで「CSVを作った」と言い張る輩が日本社会には巣食っているわけですが、あんなものはCSVに対する冒涜です。 と言うのも、セル内改行されているデータが「ダブルクォーテーションで括り、セル内改行部分は…

【Android】AsyncTaskLoaderをもっと便利にする(実践編)

前回の続き…ってもう一ヶ月以上前なんですね。時の流れは早いものです。 別に書くのをサボっていたわけではなく(サボっていたけど)、まぁあの内容で大体なんとかなるので別に書かなくてもいっかなーと後回しにしていました。とりあえずもうクローズしてし…

【Android】クリック可能なToastをつくる(実装編)

Toastを作りなおそう。 androidのソースのライセンスがApache License 2.0じゃなかったら詰んでましたね。 とりあえずソースをコピペする 継承してどうにかなるものでもありません。ToastのソースをコピペするなりDLするなりして引っ張ってきて適当なプロジ…

【Android】Serviceとのプロセス間通信でデータを送受信する

AndroidではServiceを実装することでプロセス間で通信することが出来ます。 今回はMessengerを使ったServiceとActivityのデータの送受信方法について説明します。 Serviceとは? ドキュメントによるとこう説明されています。 サービスは、ユーザが異なるアプ…

【Android】FragmentPagerAdapterを実装し直す

以前「FragmentPagerAdapter is クソ」と言う話とともにとりあえずの対処法を書いたんですが、全然対処できないケースがあることに気づいたので、ちょっと本気を出してPagerAdapterを継承して実装しなおしました。 GitHubに動作確認用のActivityとFragmentも…

【Android】Androidプロジェクトでjavax.annotation.processing(APT)を使う

Sqliteを使っていると一々テーブル名やカラム名を文字列で書かないといけません。コード補完も効かなくて面倒です。 そんなわけで無理矢理コード補完が使えるよう、「テーブルのメタ情報だけを持ったクラス」を作成し、そっから参照するようにします。 が、…

【Android】AsyncTaskLoaderをもっと便利にする(準備編)

大昔に「AsyncTaskLoader便利じゃね?いっぱい使うんじゃね?」みたいなことを書いたんですが、全然使ってません。以前作ったこの子が便利すぎるからです。 とは言えちょっと不満なところもあります。再帰の処理を組み込むと、結構読みにくいんです。AsyncTa…

【Android】Viewが表示された時のイベントを設定する

Viewが表示される瞬間のイベントを設定したいことがあります。 例えば、ListViewのフッタが表示されたら自動で次のデータを取りに行く、なんて処理。 世の中の人はこれを「最後尾までスクロールされたかどうか」を調べて実現するんですが、ちょっとクールじ…

【Android】Fragment単位でキーイベントを管理する

Androidのキーイベントの管理はActivity#onKeyDownで行うことが出来ます。 が、Fragmentにはそれに該当するメソッドがありません。呼び出したActivityのonKeyDownを実行してしまいます。 まぁ色んなActivityで再利用されることを前提にしているので、「Activ…

【Ruby】RubyでもGoogle APIを使うためにOauth2.0認証する

C#でGoogle APIを使う時にも説明しましたが、各言語のライブラリが公開されています。当然Rubyにもあります。 そんなわけでRubyでもGoogle APIが使えるようにしておきましょう。前回の使いまわしなのでInstalled applicationです。Web applicationとかは(省…

【サクラエディタ】選択した行をコメントアウト/解除するマクロ

(function(){ function hasStr(str) { str = str.replace(/\s/g, ""); return str.length > 0; }; if(Editor.IsTextSelected() == 1 || Editor.IsTextSelected() == 2) { var lineTo = GetSelectLineTo(); for(i = GetSelectLineFrom(); i <= lineTo; i++) {…

【Ruby】Tumblr Clientを使って記事一覧を取得する

RubyでTumblrのAPIを使用するのはTumblr Clientを使用するのが一番簡単みたいです。 記事投稿のサンプルはネットに色々転がってるんですが、全記事を取得するサンプルは見当たらなかったのでメモ代わりに載せておきます。 Tumblr Clientを使用するための準備…

【Ruby】非同期処理の継続を作ってみる

一年に一つは知らない言語を触ってみよう、と言う自分ルールがあって、今年はRubyにしようかな、と環境を構築しました。 個人的にRubyのコミュニティに属している人たちの色々な言い方があんまり好きじゃない(解説サイトでもすぐに「驚き」とか「魔法」みた…

Knockout.jsを使ってTumblrの情報をバインドする(2)

前回はこちら。 Model-View-ViewModelを紐付ける(最新記事一覧) 駆け足でコードだけ載せていきましたが、ここからは肝心のModelの処理と併せてまったりと解説していきます。 でもまずはコードね。 TumblingDice.prototype.getRecent = function (displayCo…

Knockout.jsを使ってTumblrの情報をバインドする(1)

そんなわけでサイト内スクリプトのKnockout.jsの完全適用が終わりました。 まだ微妙にCSSを書ききれていないところがあるんですが、そのうち直します。多分ね。 MVVMパターンって初めてやってみたんですが、どう考えてもViewModelでやるべきことなんだけどMo…

【Dynamics CRM 2011】ワークフローやプラグインを動的に有効 / 無効化する

Dynamics CRMに登録されているワークフローやプラグインも、エンティティのレコードとして内部で保存されています。 どちらもStateCode / StatusCodeを所持しており、SDKのAPIで有効 / 無効を切り替えることも可能です。 ワークフローはともかく、何らかのバ…

【C#】Google APIを使うためにOauth2認証する

GoogleのAPI Consoleにプロジェクトを登録すると、Googleの膨大な資産で遊べたり、Googleアカウントを利用して各サービスのAPIを叩いたりすることが出来ます。 更に各言語でGoogle APIを叩くためのライブラリが無料で公開されているため、自分の好きな言語で…

【SQL Server】ストアドプロシージャを作成するための基礎知識

前書き 私はSQLを書くこと自体は別に嫌いじゃないんですが、ストアドを作ったり使ったりするのは大嫌いです。理由は性にあったIDEを知らないからです。逆に言うとそれだけです。 とは言え、やむにやまれぬ事情で何らかの関数を自作しないとやってられないこ…