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を知らないからです。逆に言うとそれだけです。 とは言え、やむにやまれぬ事情で何らかの関数を自作しないとやってられないこ…

【SQL Server】テーブルのメタデータを取得する

色々と作業していたらテーブル設計書とレイアウトが全然違うテーブルが存在することに気づきました。 流石にテーブル名ぐらいはあってるんですが、見たことないカラムがもりもり追加されています。一体何を見てこのテーブルが作られたのか皆目検討もつきませ…

【Android】FragmentPagerAdapterの中身を動的に変更する

注意 この記事はFragmentAdapterの使い方と言うよりは、FragmentPagerAdapter is クソみたいな話をします。 結論から言うと、FragmentPagerAdapter / FragmentStateAdapterの実装では内部のFragmentに対するreplaceやremoveは実質不可能です。 また、この記…

AndroidでTwitter4Jを使うときのノウハウまとめ(後半その2)

先に後編その1をよんでね! UserStreamを使用する 先に言っておくと、Twitterのガイドラインでは「携帯電話で使うならwifiかなんかに繋がってる時以外はやんないほうがいいよ。」と書かれているんですが、じゃあREST APIの使用回数制限もっと増やせやって話…

AndroidでTwitter4Jを使うときのノウハウまとめ(後半その1)

思った以上に間があいてしまいましたが、後半戦です。前半はこちら。 目次 後半はこんな話をします。 アイコンのURLをBitmapに変換しキャッシュする Timelineそのものをキャッシュする UserStreamを使用する 前半はこんな感じでした。 Twitterとの通信を行う…

【SQL Server】DB内で発行されたSQLを確認する

うっかりSQL Server Profilerを起動し忘れてたとか、ちょろっと確認したい時に便利です。 発行されたSQLをキャッシュから取得する 実際に発行されたSQLはsys.dm_exec_sql_text関数で取得することが出来ます。 引数となるsql_handleはsys.dm_exec_query_stats…

【C#】引数として渡したいTypeに制約を設ける

AttributeからリフレクションをキメるためにTypeを渡すようなメソッドを作ることは割とよくあることなんですが、渡すTypeにジェネリクスっぽい制約(境界)を設けたくなることもあると思います。 まぁそもそも「あるインターフェースを実装している場合は特…

【C#】StdRegProvを使用してレジストリを操作する(90%ぐらいの完全版)

最近IEの右クリックメニュー拡張に手を出していて、その辺の絡みでレジストリを自分で作る必要が出てきました。 当然面倒なのである程度自動化しようと思ったら前に書いたやつが読み込みしか出来なかったので、もうStdRegProvのメソッドを全部ラップしてしま…

AndroidでTwitter4Jを使うときのノウハウまとめ(前半)

とても今更ですが、意外とこの手のまとまった記事を見たことがないので、自分なりにまとめてみます。 私がAndroidの話をするとほぼ100%の確率でこのライブラリが絡んでくるんですが、この記事では頑張って封印します。超めんどくせー。 目次 前半はこんな感…

【JavaScript】そこそこ精度の高い乱数を手に入れる

最近Google Analyticsを導入してみたところ、何故かGoogleでの検索結果で上位に引っかかってしまう割と頻繁に読まれてるページに関連記事のリンクがないので「これこの後もっと詳しく書いたんだけどなぁ…。」と思うようになりました。 で、折角なので記事に…

【Android】ListViewのHeader/FooterのViewに直接イベントを設定する

ListViewのHeader/FooterはAdapterを操作するのではなくListView#addHeaderViewもしくはListView#addFooterViewを使用するのが定石となっています。 ListViewにAdapterをセットする前にこのメソッドを呼ばなきゃいけないとか、上記のメソッドを呼ぶとListVie…

【Android】Activityの内容を動的に生成する

こう、Activityのレイアウトとしては結構違うんだけど、まぁ大体要約すると「onCreateでProgressDialogを表示し、その裏でDBかWebから何らかのリソースをとってきて整形してListViewに表示する」みたいなのって、よくあるパターンじゃないですか。 こんだけ…

【JavaScript】Tumblrのタグ一覧を取得する

段々とタグクラウドが遅くなってきたし、元々話題があっちへいったりこっちへいったりするせいで、そもそもタグクラウドとの相性が悪いです。 で、ちゃんとタグの一覧が欲しいなぁと思ったので作りました。 Tumblrのタグの一覧を取得する方法 前にも言いまし…

【JavaScript】Web Storageを使ってTumblrの最新記事一覧をキャッシュする

なんでも世の中にはWeb Storageなる技術があって、そいつを使うとセッション単位でデータを保存しておけるらしいじゃないですか。 上記の記事にはまるで最新技術のように扱われていますが、2011年の記事ですし、3年弱も経ってれば十分枯れた技術です。 そん…

【JavaScript】Tumblrの最新記事を取得する

JavaScriptは人生で5回ぐらいしか書いたことがなくて、jQueryを使ったのはそのうち2回ぐらいです。 しかしまぁ、いい加減覚えてみるのもいいかなと思って(と言うか仕事で必要になるので)とりあえず練習してみようかなと。 今までつけていた最新記事取得の…

【C#】System.Data.SQLiteを使ってみる

このTumblrの更新は自作のTumblr更新ツールから行われているんですが、既に書いた記事のタグを取得して候補に出す、なんてことをしています。 が、TumblrのAPIにはタグ一覧を取得するものがないので、とりあえずHTTP飛ばして記事を取ってくるだけ取ってきて…

【Android】ListViewのレイアウトを動的に切り替える際の問題点

以前[Android](Expandable)ListViewで各データごとに表示を切り替えると言う記事で作ったアイテムごとに動的にレイアウトを切り替えられるListViewですが、ViewHolderを使った時にちょっとした問題が起こったので、メモしておきます。 [2013/03/28追記] なん…

【Android】SQLiteDatabaseの定形処理を作る

SQLiteDatabaseの処理は、SQLiteOpenHelperからDBをもらって、selectならカーソル開いて、更新ならトランザクションかけて…と、大体決まりきったものが多いです。 ちょっとしたことなら別にいいんですが、SQLiteをフル活用しようとしてDAOを作ってるとこの辺…

【Android】(Expandable)ListViewで各データごとに表示を切り替える

以前作ったやつを使っているうちに、「データの表示も動的に変更出来ないもんかなぁ…。」と思うようになり、まぁクロージャ使えば普通に出来るよね、ってことで、作ります。 親要素と子要素に追加するコード 要はExpandableListAdapter#getGroupViewとExpand…

【C#】端末のシステム日付を変更する

やはりエンジニアたるもの、出来る限り定時で帰りたいので、PCを起動する際にHTTP経由で毎日時間を合わせようと思います。 使用するWeb API NICT(情報通信研究機構)が提供しているAPIを使用します。 タイムスタンプはどれでもどうにでもなるんですが、POSI…

【Android】TextViewの文字列にリンクを設定する

TextViewにはautoLinkと言うAttributeがあって、これをつけておけばURLを自動でリンクしてくれるんですが、内部で使っている正規表現がお粗末なのか、単純にテストパターンに含まれてないのか、日本語URLも受け付けるつもりなのか、ともかく2バイト文字も平…