プログラマってこんなかんじ??

アプリ作ったり歌ったりしてます

ジャズスケジュール配信サービス(LINE BOT) を 10ヶ月 運用して思うこと (ライブ情報の収集)

daichan4649.hatenablog.jp jazzspot-fukuoka が配信している「ライブ情報」。これはどこかにまとまっているものを単純に出しているわけではなく、管理人が自力で 収集したデータをもとに配信しています。 今回はどうやってこれを実現しているかを書いてみま…

ジャズスケジュール配信サービス(LINE BOT) を 10ヶ月 運用して思うこと

趣味でこんな LINE BOT を作って運用してます。 https://jazzspot.jp/fukuoka/ 基本機能は ほぼ 開発完了 実運用も ぼちぼち 安定してきた LINE BOT Awards にもエントリ済 と、なんとなく最近ひと区切りしたので、いろいろと思うことをまとめてみました。 …

AndroidStudio+GAE/J+JAX-RS(Jersey)

Java でサーバサイド書きたいけど Eclipse に戻りたくない、という理由で、まずは GAE/J+JAX-RS(Jersey) の環境構築手順を調べてみた。 手順 module 作成 [File > New > New Module] を選択 [Google Cloud Module] を選択 [App Engine Java Servlet Module] …

Google Apps Script で spreadsheet から Googleカレンダーへイベント一括登録(2016/3/23 時点)

GAS

Googleカレンダーにイベントを一括登録したい事案が発生したので調べてみた。Calendar 系は使ったことなかったけど、予想以上にお手軽だった。 このデータ達がー こうなる。 手順 データ登録(spreadsheet) date: イベントの日程 title: イベントのタイトル d…

Google Apps Script で spreadsheet のデータを JSON として読み込む

Android アプリに限らず、JSON データを表示するようなアプリって作ること多いですよね。で、自分はその時いつもサーバサイド作るのがめんどくさくなっちゃう。なので、spreadsheet のデータをそのまま JSON として返すようなサーバーサイドアプリを GAS(Goo…

Android Design のパターンを実装してみた(Patterns - Multi-pane Layouts)

Android Advent Calendar 2012 12/18(裏) 担当の @daichan4649 です。 よろしくお願いします\(^o^)/ 経緯 Android Design のサイト、ありますよね。Android公式から提示されてるガイドライン。アプリはこう作ってねとか、画面遷移はこういう風に、とか、ア…

LruCache 使ってみた(android.util.LruCache)

GoogleI/O 2012 のセッションで LruCache の話が出てたので使ってみた。 Doing More With Less: Being a Good Android Citizen pdf(右側の 「Session presentation」 リンク) の p.8 くらいから。 LruCache(android.util.LruCache) Least Recently Used アル…

ビルド時にエラー発生(Error generating final archive)

また出た。 毎年恒例のこのエラー。 対応策は 「debug.keystore」 の削除。 去年の自分のエントリにも書いてた。 Error generating final archive(Debug Certificate expired on~) が発生する このエラーが出たということはー 自分の場合は 「Androidアプリ…

画面回転してもFragment再生成しないでレイアウト変更したい+取得したデータ使い回したい

お題 画面回転させて、縦/横で別のレイアウトを表示する 縦画面のときは ListView を表示 横画面のときは GridView を表示(1行2列) ただし、一度取得したデータは使いまわしたい 縦画面 横画面 実装のポイント Activity コンフィグ変更のたびに毎回 再生成 F…

はてなblogに移行しました

一括インポート機能を使用して移行してみました。 idが dai4649 だったり。 URLは daichan4649 だったり。 いろいろとややこしいのですが、こちらでも4649お願い致します!

Activity再生成時のデータの保存・復元(Fragment#setRetainInstance)

ネットワークからデータ取得(画像とか) データ取得完了したら画面にデータ反映 こういうパターンってよくありますよね。このときに画面回転等のコンフィグ変更(縦横切替とか)が行われると 「Activity のインスタンスが破棄->再生成」 されるので、何も考えて…

DialogFragment使用時に画面の回転で例外発生(InstantiationException)

DialogFragment を private なインナークラスで定義してたら、 画面の回転(Activity再生成) でアプリが落ちてしまった。出力された例外はこれ。 Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment ErrorCaseDialogFr…

Android UI Cookbook for 4.0 輪講会 vol.1

Androidの会福岡支部メンバー数人で輪講会をはじめました。今回のお題は通称 yanzm本2 と言われている、 Android UI Cookbook for 4.0 ICSアプリ開発術 です。実はちょっと前に Effective Java 第2版 の輪講をやってみたのですが、 それがまたなかなかおもし…

AsyncTask の挙動(AsyncTask#executeOnExecutor) その2

前回のエントリで AsyncTask#execute の挙動がAPI Levelによって違う、とわかりました。 では、どこで切り替えているのか。 てなことを twitter上 でぎゃーぎゃー言ってたら @zaki50さん から情報をいただきました! (@zaki50さん、ありがとうございます!) …

AsyncTask の挙動が異なる(AsyncTask#executeOnExecutor)

AsyncTask の挙動が Gingerbread と ICS で違う、という話を聞いて調べてみた。複数AsyncTask実行=バックグラウンドで並行処理 と考えてると、実は並行処理になってなくて処理が遅い、ってこと。結論を言うと、ソースをここだけ修正すればよさそう。 修正方…

ListViewの高速スクローラまわりをカスタマイズ(AbsListView#setFastScrollEnabled)

前回 のエントリに引き続き、さらに ListView の高速スクローラまわりをカスタマイズしてみました。 (ついでにタイトル変更) 環境 2.3.3(API Level10)before after スクローラもいじったりましたwここで疑問。 ICSではどうなるのだろうか。 とりあえずソー…

ListView の高速スクロール時ガイドを編集する(AbsListView#setFastScrollEnabled)

Android Advent Calendar 12/18 担当の @daichan4649 です。 豪華メンバーがものすごく有意義なネタを記載されている中で、 空気を無視して ListView について誰得なネタを書いてみるとします。 ListViewには項目が多い場合に 「高速スクローラ」 を表示する…

Android Make Days in 明星和楽 にスタッフとして参加してきました

11/11金 - 12土 で行われた Android Make Days in 明星和楽。 今回自分はスタッフとして参加させていただきました。メイン作業は司会。 部屋が複数あるので3人で交代しつつ、とのことだけども。 こんなでかいイベントで司会とか!!不安でガクブル。 と、自…

12歳の頃

12歳の子どもが独学でプログラミングをおぼえ, ついにiPhoneアプリの会社まで設立 12歳。。だと。。。 自分が12歳の頃を思い出してみた。 「unk!unk!」言ってキャッキャしてただけのただのガキンチョだった。 正直今もあまり変わってません。 がんばります…

アイコン変えてみた

明星和楽 に参加した際に 100face さんにフェイスアートしていただきました! さっそくアイコンに使わせていただいてます!

Intentの作り方

Activity/Service起動用のIntentを作るとき、 皆どうやってるのだろう、とふと疑問。 例えば Activity#onCreate 内で 「Service(test.intent.TestService)起動用のIntent」 を作るとする。 基本的な作り方はこんなかんじになるのかな? @Override public voi…

別スレッドでキュー管理(Handler, Looper, HandlerThread)

非同期処理を組んでると、 「別スレッド上でも Handler みたいなキュー管理がしたい」 って時があったりしますよねー。(きっと) そんなとき、HandlerThread を使うとわりと簡単に実装できたりする。 HandlerThread(公式) HandlerThread は java.lang.Thread …

東日本大震災から半年経って思うこと

実は母親と祖父が福島に住んでいたりする。 原発から半径数十キロとかそのレベル。 直接的な津波の被害にはあっていないのだが、 震災が起きた際にはもちろん電話も通じず、物流も止まってた。 ただ、わりと早い時間で電気/ガスも復旧し、 今は普段どおりの…

スマホアプリ開発について考えたこと

先日、某社のスマホ事業部の方々とお話しする機会をいただき、 その場に来られていた皆さんといろんなお話をさせていただいた。 自分のモチベがものすごく上がったと同時に、 ネタをすぐに実現する行動力 ネタをすぐに実現できる開発力 この2点を高めること…

デバッグとは

なんで「デバッグ」って言うのだろう、とふと考えてみた。 バグ (英: bug) とは英語で虫(成虫)の意であり、転じてコンピュータプログラムの製造(コーディング)上の誤り・欠陥を表す。ソフトウエア・ハードウエア開発における契約文書など、法的な文書で…

Error generating final archive(Debug Certificate expired on~) が発生する

androidプロジェクト をビルド時に突然こんなエラーが出るようになった。 Error generating final archive: Debug Certificate expired on 〜 調べてみると「デバッグ用証明書の期限切れ」で発生するエラー、とのこと。 対処方法は2種類あるみたい。 debug.k…

例外catch漏れ対策(UncaughtExceptionHandler)

全ての例外を自前でcatchしていれば何の問題もないんだけれども、 もしアプリ内で例外catch漏れしてしまった場合、 Dalvik VM まで例外が通知されて 「〜が予期せず停止しました。やり直してください」 のダイアログが出てアプリが強制終了してしまう。 これ…

処理時間測定方法(android.util.TimingLogger)

例えば、アプリ内のボトルネック調査するとき、 重そうな処理にアタリつけて処理時間測定しますよね。 ベタにやるとこんな感じ。 // 測定開始 long start = System.currentTimeMillis(); // 測定したい処理 // 測定終了 long end = System.currentTimeMillis…

Android技術者認定試験制度

自分の Android に関する知識がすごく狭い範囲に偏っているなぁーと 意識することが最近よくあって。 全体を知るために何したらいいのかなーと考えたときに この Android技術者認定試験 を思いだしたので 試験内容を改めてチェックしてみました。 試験は以下…

NativeDriver

Google謹製のテストフレームワークが! Introducing Native Driver サンプルではGoogleMapのテストが記載されとりますね。これはおもしろい。 Android Zaurusさんの日本語訳はこちら。 【超訳】AndroidのUIをUnitTestできるNative Driver テストコード書くの…

iOS5

androidで見たことある機能が多い?という感想。 notificationとかモロじゃないすか。 iOS5 世の中パクりパクられ。切磋琢磨。でも android と iOS が同じことすると iOS がまだまだ優位になるんだろうなーと思う。 androidはやっぱりまだまだ開発者向けとい…

コーディングルール

androidのコーディングルール。 公式ではこんなかんじで書いてあった。 Code Style Guidelines for Contributors(日本語訳) #日本語訳されてる方に感謝! 衝撃を受けたのはこれ。 クラス内のフィールドの命名規則。 staticフィールド名には「s」をつける 非…

ソース内の改定履歴

バージョン管理にコメントを残したとしても、ソースコードに改訂履歴のコメントを残す必要があるという主張 - プログラマとSEのあいだ 考えさせられた。 今の職場は svn 使用してます。 このあたりの意見は個人によってさまざま。 むしろコミットログ詳細を…

ADTのレイアウトエディタがすごい件

いつのまにか ADTのレイアウトエディタ が恐ろしく進化している!! 11(preview版)では xml を直接いじらなくても エディタ上だけでこんなことができたりする。 (正確には 10.x でも動作する機能が一部あり) 共通レイアウトの抽出 アニメーションのプレビュ…

ダイアログの縦横切替でメモリリーク(XxxActivity has leaked〜)

AlertDialog.Builder#show〜 でダイアログ表示した状態で、 画面の縦横切替 を行うと例外発生してアプリ終了してしまった。 ログを見るとこんなエラーログが出力されている。 XxxActivity has leaked window com.android.internal.policy.impl.PhoneWindow$D…

OSC2010福岡 にスタッフ参加してきました

恒例のオープンソース祭、オープンソースカンファレンス2010 福岡 に参加してきました。 今回は友人の @ryuring が中心となって作成している、 「コーポレートサイトにちょうどいい」BaserCMS のブースのスタッフとして 朝から全力でお手伝い。 自分の役割と…

宇宙兄弟

「宇宙兄弟」を友人に勧めるときにまちがえて 「宇宙刑事おもろいからおもろいから読んでみーよ」と言ってしまい、 「ギャバン?」という的確なツッコミがかえってきた自分です。 歳はもうすぐ33になります。こんばんは。 いろんなところでおもしろいーと聞…

無料WiFiを求めて

仕事以外でプログラム書きたいとき。自宅では誘惑が多くてぜんぜん作業できない。いつもお世話になっているAIPカフェでは知り合いが多くて集中できない。。どうしよう!!という集中力のなさに定評のある自分です。こんばんは。そんなに外で作業したいならイ…

文化の違い

クラス内のインスタンス変数名に「mXXX」みたいに「m」をつけるいまの職場の文化。たとえばこんなコンストラクタがあったとする。 private int value = 0; public Test(int value) { this.value = value; } これがー private int mValue = 0; public Test(in…

端末起動時に起動する常駐serviceのデバッグ(ACTION_BOOT_COMPLETED)

表題のような常駐serviceを作成しようとすると BroadcastReceiver が intent(ACTION_BOOT_COMPLETED) を受けたらそれを契機にservice起動する という仕組みが主流だと思う。(自分はこれしか知らない)こんなserviceをeclipseで修正/動作確認しようとすると、 …

macでエミュレータ動かしてみる

mac上にandroid環境構築する手順が以外とヒットしなかったので、 チラ裏的なかんじで書いてみる。 1. jdk(java開発環境)入れる macの場合、javaは最初から入っていると思われる。 ターミナルでjavaのバージョンを確認し、java5か6が入っていればとりあえずお…

最近の生活

平日は朝10時出社-終電、で帰宅が1時前くらい。ひさびさにこんな生活してるんだけども、やっぱり体力があからさまになくなったなーと実感。とにかく疲れがとれない。気持ちが若いつもりでも身体がついてこない。それが続いたせいで週末は完全にヒキコモリ状…

ジョギング用防水イヤホン

ジョギング中に音楽聴くことが多いんだが、自分は汗かきなので、防水イヤホンじゃないとやだなーと思い。なかなかいいのがなかったのだが、オーディオテクニカから運動用に考慮されたイヤホンが発売されているのを見つけて、さっそくヨドバシで買ったった。a…

クラス間インターフェース

クラス間のinterface設計の初歩的なところで考えさせられたので書いてみる。 経緯 ServerとClientという2つのクラスがあり。 Serverクラスはこちらで、Clientクラスは別の方が作る。 というわけで ServerClinet間 を相互やり取りするためのinterfaceを提供し…

福岡市地下鉄 料金比較(定期券 vs Fカード) その2

バトル1回目はこんなかんじ。 5月から通勤場所が変わったため、通勤ルートが以前と変わったので、 あらためてお得度チェックをしてみるとする。 計算内容はものすごく自分基準なのはスルーでw 前提 平日は 姪浜 博多 間を仕事で往復 週末は 土日のどちらかは…

訃報

福岡でコミュニティ活動等いろいろな活動に尽力されていた、 @sugmak こと 杉山誠氏 が 2010/7/25 に永眠(享年44歳)されました。 自分が初めて参加した PHP in Fukuoka。 webのいろはもよくわかっていない、 コミュニティのこともよくわからない。 知り合い…

ヨガ、はじめました

5/30(日) に 友人の @clipdesign 主催の初心者ヨガスクールに参加してきました。インストラクターは @clipdesign 姉妹と AYAさん。参加者は10名くらい。いままでヨガに興味はあったけども全然やったことなくて。むしろ、ヨガ=ダル○ム的なベタな発想してまし…

サト研花見2010

花見の様子は参加者の皆様が書いてくださっているので、 幹事サイド目線で当日の動きを書いてみる。8:30 舞鶴公園そばの大手門近くを歩いていたら、目の前で女性が倒れる。 近くにいた方と救急車呼んで救助。朝からびっくり。 9:00 場所取り組 兼 幹事の @Ya…

xp上に xampp + BaserCMS の開発環境を構築する

php初心者がローカルPCに「xp + xampp + BaserCMS」の環境構築してみた。 phpやってる方からすればなんてこたない話なのかもしれないが(笑)まず、構築しようとしている環境はこんなかんじ。 XAMPPとBaserCMSは 2010/3/26時点での最新版。 windowsXP(SP3) XAM…

flickrでGuestPassつき写真(オリジナル)を一括ダウンロードする

みんなで撮った写真を共有するとき、みんな何のwebサービス使ってるのだろう。 自分はオリジナル画像を手元に残しておきたい派なので、 ULしている画像を簡単に一括DL可能なPicasaを使用してて。 まわりのメンバーがよく使用しているflickrには一括DLする方…