サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
akabeko.sakura.ne.jp
メイン PC に VMware Player と CentOS を入れなおす機会があったので、その手順を記録しておく。 今回は VMware Player の VM 作成と CentOS のネットワーク インストール機能を利用したので、前に比べると、セットアップ手順が大幅に簡略化されている。 もくじ VMware Player の入手 CentOS の入手 VM の作成 ネットワーク インストール CentOS のインストール ソフトウェア更新と VMware Tools のインストール TeraTerm で CentOS に接続 VMware Player の入手 VMware Player に用意されているソフトウェア更新は、どうやらメジャー バージョンの更新は対象外のようだ。 そのため、これまで使用していた 3.x から最新の 4.x へ移行する場合、再インストールが必要らしい。
iPhone でユーザー通知や警告などに使われる UIAlertView について、代表的と思われるカスタマイズをまとめてみる。 もくじ セレクターをボタン毎に設定する 単純なボタン テキスト フィールド テーブル プログレスバー インジケータ サンプル プログラム セレクターをボタン毎に設定する UIAlertView の内容やボタンが複数あるとき、標準の UIAlertViewDelegate – clickedButtonAtIndex でハンドリングするのは非常に面倒だ。 内容を判定するには UIAlertView の tag プロパティを利用するか、オーナーとなるクラス側に状態を持つことになるし、押されたボタンについてはインデックスしか情報がないため、それが可変長の場合に困る。 tag に設定する値をビットフラグにすれば、組み合わせの複雑さも多少は緩和できるだろう。願わくば直感的
iOS で SQLite を簡単に扱うためのライブラリ、FMDB についてまとめる。 もくじ FMDB とは? FMDB の仕様準備 データベース作成と open/close CREATE INSERT DELETE SELECT トランザクション 型 サンプル プログラム Lita FMDB とは? FMDB は、SQLite を iOS の Objective-C で扱いやすくするための Wrapper ライブラリ。 GitHub で公開されている。 GitHub – Social Coding ccgus/fmdb インターフェースや使用感は、JDBC や ADO.NET に近い。よって、これらを利用したことがあれば、スムーズに理解できるだろう。 FMDB の仕様準備 まず、FMDB を利用したいプロジェクトで SQLite 用のライブラリを有効にする。手順は以下。 Xcode 左
App Store で購入した iDraw がよくできてたので、レビューを書いてみる。 iDraw カテゴリ: グラフィック&デザイン 価格: ¥2,200 もくじ iDraw 歯車のピクトグラムを描いてみる おまけ: App Store アプリを紹介する方法 iDraw の特徴 iDraw の特徴を簡単にまとめてみる。 洗練された UI iDraw のメイン UI は固定レイアウトになっている。表示の切り替えもなく、常に定位置にある。 これは Inkscape や FreeMind などでも採用されているが、レイアウトで戸惑うことがない、実によい設計だと思う。 ポップアップやモーダル ダイアログが登場する機会も、ファイルの読み込みと保存時ぐらいである。常にすべてを一望でき、それらだけで、あらゆる操作がおこなえるようになっている。 半端にカスタマイズさせるぐらいなら、ベストな配置を提
Xcode 4 の SVN 連携がうまくゆかず、はまったのでメモ。 まず、Subversion ( 以下、SVN ) のリポジトリは、さくらのVPS 上のサーバーに用意した。主な設定としては、mod_dav_svn により HTTP でアクセスできるようにし、BASIC 認証をかけている。 URL は http://example.com/svn/example のようになる。 Xcode でバージョン管理システムと連携する機能は、SCM ( Software Configuration Management ) と呼ばれている。 システムには SVN か Git を選べる。プロジェクト作成時の設定から察するに、Xcode 的には Git 推しなようだが、慣れているので SVN を選んだ。 Organizer によるプロジェクト登録 ( 正常系 ) Xcode 4 の SCM では Org
iPhone アプリで多用される、UITableViewCell のカスタマイズにチャレンジしてみる。 セルを作成するにあたり、可変長で適度な複雑さを持ったデータが欲しいので、サンプルには簡単な Twitter のタイムライン ビューアーを選んでみた。 もくじ プロジェクトの準備 Twitter のタイムライン取得 セルの作成 セルの利用 プロジェクトの準備 まず、プロジェクトを作成する。 UITableViewCell を手っ取り早く試したいので、Xcode のプロジェクト テンプレートは Navigation based Application にした。プロジェクト名は TestTwitterClient としておく。 既定で作成される RootViewController は TimelineViewController にリネーム。今回のサンプルでは、この画面に Twitter の
iPhone には、バッジという通知用の UI が用意されている。 ただしコントロールとしては提供されておらず、今のところ、これを利用できるのはホーム画面のアイコンとタブバーだけのようだ。もし、それ以外の場所に表示したい場合は、似たようなコントロールを自作する必要がある。 バッジは標準提供されないのが不思議なぐらいよくできてるし、用途も広そうなので、さすがに誰か自作しているだろうと探してみたところ、MKNumberBadgeView というコントロールを見つけた。 ひと組みのヘッダとソースだけで構成された、実にシンプルなコントロールである。ライセンス形態も Apache License 2.0 なので、アプリに取り込みやすい。 UIView から派生しているので、プロジェクトにヘッダとソースを組み込むだけで使用できる。Interface Builder を使って設置するなら、以下のような手
さいきん書いた、Android の ImageView をスクロールさせるで作ったサンプルは、移動範囲を一定に留めるという実装にしたのだが、これは一般的な挙動ではないようだ。 多くのアプリ、特に iOS 向けの画像ビューアーや電子書籍アプリで採用されている挙動を見ると、だいたい以下のようになっていた。 コンテンツの表示モードがフィット、原寸のいずれでもスワイプ移動を実行できる 画面に指が触れている間はスワイプ移動、離すと移動が終了する 移動が終了した時点でコンテンツが画面に収まるならば、その位置へ移動 移動が終了した時点でコンテンツが画面に収まらないなら、収まるように位置を補正する 移動が終了した時点でコンテンツが画面に収まらないとき、余白のサイズが一定以上なら、前 or 次のコンテンツを選択 この動きを再現すべく、前回のサンプルを改造してみる。 移動と位置の補正 移動を Android
Android の描画リソースによるグラデーションは粗い。 表示領域を広げてゆくと、16bit カラーのディスプレイが主流の頃によく見られたマッハバンドのような縞が発生してしまう。仕事で作ったアプリでグラデーションを多用したのだが、それをタブレット端末でテストした時、この縞が気になってた。 はじめは省メモリやパフォーマンスの観点から、Android OS 自体の制限事項として品質を落としているのだと諦めていた。しかし気まぐれに、「Android gradient quality」かでググってみたら、以下の記事を見つけた。 Fancy UI High Quality Radial Gradient In Android 記事中のサンプルコードでは、Activity.getWindow メソッドで得られたウィンドウに対し、Window.setFormat メソッドを呼び出している。 パラメー
画像ビューアー系アプリなどでよくみる、画面に収まらないサイズの画像をスクロールする方法について調べてみた。 スクロール Android には ScrollView という標準コントロールがある。これは入れ子にしたコントロールのサイズに応じて、適切なスクロール機能を提供してくれるので、これに ImageView を入れれば、今回の目的を達成できそうに思える。しかし ScrollView は縦スクロール専用なので、横に大きな画像には対応できない。 横方向の場合、HorizontalScrollView が用意されているので、これと ScrollView を入れ子にすれば大丈夫そうだが、その場合、斜め方向のスクロールがおこなえない。縦横の 2 軸を個別に組み合わせているため、連携することができないのだ。 というわけで、自前でスクロールを処理する方法を検討する。 まず、既に実装例があるかもしれない
待望の Titanium Mobile 入門本が発売されたので、さっそく購入。 Titanium Mobileで開発するiPhone/Androidアプリ (Smart Mobile Developer) Titanium Mobile とは、スマートフォン ( Android/iPhone/iPad ) 向けアプリをクロス開発するためのツールである。 無料で始められる気軽さ、開発言語として広く普及している JavaScript を採用したことなどが評価されたのか、昨年あたりから急激に注目を集めている。 そんな感じで人気の Titanium Mobile だが、いざ開発しようとしても情報が少なく、また、いろいろとハマリどころも多い。そのため、網羅的な入門書を待っていた開発者も多かったことだろう。かくいう私もその一人である。 本書をひととおり読んでみたところ、そのような期待へは十分に応えられ
仕事の Android 開発でタブを使ったレイアウトが必要になったので、サンプルを作りながら使用方法を学んでみる。 もくじ タブの約束事 カスタマイズ 状態によって描画方法を変える タブを画面の左右に置く サンプル プログラム タブの約束事 タブを使った画面を作る場合、レイアウト指定には約束事がある。例えば画面の上側にタブのつくレイアウトの場合、以下のように指定する。 <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:background="#0094FF" android:layout_width="fill_parent" android:la
スマートフォンなどでよく見かける、光沢のあるグラデーションを持ったツールバーを画像なしで作成してみる。 Android ではコントロールの描画方法を drawable リソースから指定できる。これは画像と XML に大別できる。 画像はデザインの自由度が高く美しいのだが、解像度 ( ldpi、mdpi、hdpi、…etc ) と引き延ばし ( 詳しくは Draw 9-patch を参照のこと。有志による日本語訳はこちら ) を意識する必要がある。 一方、XML はデザイン指定の方法がかなり限定されるため、希望どおりの描画結果を得るのが難しい。 しかし dp ( または dip。密度非依存ピクセル。詳しくは Supporting Multiple Screens を参照のこと。有志による日本語訳はこちら ) によるサイズ指定と標準で用意されている形状・塗りは解像度に依存しないため、様々な端末
Android で CoverFlow 仕事の調査で見つけた Neil Davies 氏による CoverFlow コントロールが面白かったので、使い方を学ぶべく、簡単なサンプル アプリを作ってみる。 参考資料 Interfuser: Android Coverflow Widget Interfuser: Android Coverflow Widget V2 CoverFlow コントロールは Neil Davies 氏のブログに掲載されているサンプルをベースに実装する。 まず、com.example.coverflow.CoverFlow を元に、CoverFlowGallery というクラスを作成する。ソースは Apache ライセンス 2.0 で公開されているので、その記述は残す。 元がよくできているので、変更点はインデント付けやコメント追加、パッケージ名の書き換え程度である
インストール先の選択。初期状態ではユーザーの AppData 以下になっている。ここにアプリを入れるのは何となく嫌なので Program Files に変更しておく。 セットアップしている環境は Windows 7 Professional 64bit 版だが、このプログラムは 32bit ( この時は推測だったが、いまタスクマージャーで TitaniumStudio.exe を見たら *32 表記があるので予想的中 ) なので Program Files (x86) を選んだ。
Titanium の WebView で HTML をホストする方法の覚え書き。 目次 WebView アプリと WebView 内ページの連携 リソース HTML の表示 サンプル アプリ WebView のバグ WebView WebView は Titanium.UI.WebView として定義されるブラウザ コントロールである。URL か HTML ソースを指定することでページが表示される。例えば以下のように使用する。 var window = Titanium.UI.createWindow(); // URL var webView = Titanium.UI.createWebView( { url: "http://www.example.com/" }); // HTML を直に指定 var webView2 = Titanium.UI.createWebView( {
待望の Titanium Studio プレビュー版がリリースされていたので、さっそく入れてみた。 Appcelerator Titanium Studio 1.0プレビュー版とデバッガをリリース – Appcelerator Developer Center インストール まずは以下のページからインストーラを入手する。 Appcelerator Download Titanium Studio Preview 私のマシンは Windows なので Download for Windows を選択。サイズは 141MB もある。 インストーラ せっかくなのでインストールの全行程を記録しておく。 インストーラを起動してセットアップを開始。はじめに Welcome 画面が表示される。Next を選択して次へ。 Welcome EULA が表示される。I Agree を選択して次へ。 EUL
恥ずかしながら、ユニット テストをまともに使ったことがない。 重要性は理解しているつもりで、興味もあったのだけど、仕事で触れず、趣味の開発にも取り入れることはなかった。しかし、プログラマが知るべき 97 のことのテストに関するトピックを読んで、関心度がモリモリ上昇。何かをはじめる時は、こういう気分に乗るのがよい。 あと、仕事でユニット テストの採用を提案するとして、自分で使っていないものを勧められようはずもない。使うにしても、簡単なスニペットを書いて、それをテストして…ではダメだ。ユニット テストを考慮していないものに取り入れるほうが現実的だろう。 というわけで、まずは趣味のプロジェクトにユニット テストを導入してみる。プロジェクトは .NET 製なので、ツールには NUnit を選ぶ。 もくじ レガシーコード改善ガイド NUnit のインストール テスト プロジェクトの作成 テスト コー
昨年末に話題になっていた「プログラマが知るべき 97 のこと」を読み終えた。 プログラマが知るべき97のこと まず、大半の項目が見開き 2 ページ ( ごく一部、3 ページの項がある ) に収まっている点に感心させらる。 前に読んだ Head First SQL でも見られた工夫で、ページをめくる事なく、必要十分な情報を一望できて爽快だ。見開き単位で統一されているため読了時間も予測しやすく、空き時間や就寝前などに少しずつ読み進めることができた。また、読書を中断しても、再会するトピックは見開きで完結しているため、中断前の状態を思い出さなくて済むのもよい。 もちろん、本編もすばらしい。 「~べき」という表現には啓蒙とか求道的な厳しさが感じられ、思わず身構えてしまうものだが、この本の論調は一貫して優しい。啓蒙より提案であり、求道のかわりに目標の提示を主眼に置いているようだ。技術ネタを肴に、よき先
さくらのVPS への作業メモ 9。 Redmine をアップデートするためにデータベースのバックアップを取ろうと思った。このブログのバックアップに使用している phpMyAdmin が便利だったので、これを導入しつつ Redmine 更新をおこなってみる。 もくじ phpMyAdmin とは? PHP 関連のインストール phpMyAdmin のインストール Redmine のバックアップ Redmine の更新 phpMyAdmin とは? phpMyAdmin とは、Web ベースの MySQL 管理ツールである。ブラウザからアクセスしてデータベースの操作をおこなえる。 MySQL の状態がグラフィカルに表示されるので、コマンドラインツールに比べて分かりやすい。GUI から操作をおこなうと、それに応じた SQL が自動実行される。もちろん任意の SQL も指定できる。 なんだかいいこと
MySQL の公式 GUI クライアント「MySQL Workbench」を使ってみる。 かつては mysqlcc、少し前までは MySQL Administrator が公式ツールだったようだが、前者は既に MySQL のサイトには公開されておらず、後者は MySQL Workbench の一機能として吸収されたようなので、現時点では MySQL Workbench が公式ツールなのだと思う。 MySQL の GUI 操作にどのぐらい需要があるのかは分からないが、私には必要だった。そして情報の少なさや使いにくさに散々振り回されたので、使い方メモを書いておく事にした。 目次 インストール 接続 編集 インストール MySQL の日本語公式から、いつの間にかダウンロード ページが消えていた ( なぜか紹介ページは残っている ) ので、まずは以下のページへ行く。 ページ右上の Download
Titanium というクロスプラットフォーム向けフレームワークがある。 ではじめの頃にすこし触れてみたものの、当時は使い道がなくすぐに飽きて、そのまま放置していた。しかし最近、仕事でスマートフォンアプリを手がける機会がありそうで、そうなればクロスプラットフォームが望ましいと考えていた。 そこで再び Titanium に白羽の矢を立てることになったのだが、環境構築にけっこう厄介な箇所があったり、Titanium 自体にない編集機能を補う必要があるなど、案外、開発の入り口に立つまでが大変だと思ったので、私なりの手順を覚え書きとしてまとめておく。 なお、完全なクロス開発をおこなう場合は Mac OS X が必要なのだけど、私は Mac を持っていないし、Titanium のプロジェクトはプラットフォームに依存しないので、この記事では Windows と Android を対象とする。また、開発
Visual Studio 用の Subversion 連携プラグイン、AnkhSVN についての覚え書き。 Redmine と Subversion をさくらのVPS 上で稼働させて TortoiseSVN から操作していたのだけど、Eclipse のように Visual Studio からリポジトリ操作をおこないたくなったので AnkhSVN というプラグインを導入してみた。 まず Visual Studio だが、Express Edition ではプラグインが利用できないので上位エディションにしなければならない。Eclipse に比べるとちょっとなあ、と思いつつ Professional アップグレード版を購入。 追記 2010/10/04 表現が正確ではないので訂正。Visual Studio 2010 Express Edition でも拡張マネージャーを利用できる。ただし一
さくらのVPS への作業メモ 8。今回は Subversion のインストールと Redmine 連携設定などをおこなう。 Redmineを利用するなら必携の書。私は Chapter 4 「システム管理者編」を読むために購入したのだが、他の章もスクリーンショットや設定例が満載。Redmine だけではなく、Apache や Subversion の連携についても丁寧に解説されている。 チケット駆動についてピンとこない人も、Chapter 1 ~ 2 を読むうちに有用性を理解できそう。Trac との比較も面白い。次の版を出すときは、Remember The Milk や Toodledo のようなタスク管理サービスとしての側面も掘り下げて欲しい。 Apache モジュールの設定を httpd.conf から分離する 前回まで Passenger の設定を httpd.conf の末尾に記述し
以前、「ニコニコ動画の貼り付け」という記事を書いたのだが、この時に作成したプラグインは使いにくいと感じていた。 WordPress のショートコード機能は、大別すると「囲み型」と「自己完結型」に分けられる。 前に作成したプラグインは、この分別に当てはめると「自己完結型」になるのだが、この方式の場合、パラメータを「パラメータ名=”値”」というように記述する必要があって、ニコニコ動画のように単純な ID ( sm****** 形式 ) だけ指定したい場合は、とても面倒である。 そこで前のプラグインを単純な「囲み型」として作り直してみた。プラグインと PHP 学習を兼ね、以下のように設計してみた。 テンプレート ( HTML/CSS ) による表示カスタマイズに対応 管理画面によるプラグイン設定の読み書きに対応 PHP のクラス機能を使用してみる また、Google 検索から前の記事に来られる
初期設定 よく Apache の初期設定として、稼働専用のユーザーを作成する手順が紹介されているが、yum でインストールした場合は自動的に apache というユーザーが作成されていた。 ユーザーについては以下のコマンドで確認できる。 $ cat /etc/passwd | grep apache apache:x:48:48:Apache:/var/www:/sbin/nologin シェルに /sbin/nologin ( 存在しないもの ) が指定され、ログイン不可。つまり稼働専用となっているので、これをそのまま使用する。 次は Apache の設定ファイルとなる httpd.conf を編集してゆく。インストール直後で 992 行もあるので、vi に不慣れならユーザーホームにコピーして、WinSCP で編集してから書き戻すのもよいだろう。 今回は vi でサーバー上のものを編集す
さくらのVPS への作業メモ 7。今回は Redmine のインストールをおこなう。 ただし前回で入れた Ruby 1.9.1 だとデータベースに初期設定をおこなうところでエラーになるという致命的な問題が起きるので、1.9.1 を消して Ruby Enterprise Edition を入れ直す。実にひどい問題だと思うのだが、直る見込みはなさそうなので受け容れることにする。 もくじ ソースからコンパイルした Ruby のアンインストール Ruby Enterprise Edition をインストール Passenger と Apache の設定 Redmine 用データベースとユーザー作成 Redmine のインストール Redmine 用データベースの初期化 Redmine を動かす エラーを解決して admin のパスワードを変える ソースからコンパイルした Ruby のアンインストー
もくじ sudo を設定する パスを通す SSH のポート変更 sudo を設定する 前回は root 権限が必要なコマンドなどは、su で root になってからおこなっていたが、root は万能なので、思いがけず重要なファイルやディレクトリを破壊する危険性がある。よって、コマンド単位で root 権限を与えるために sudo を利用する。 まずは sudo がインストールされていることを確認する。 $ yum list installed | grep sudo sudo.x86_64 1.7.2p1-7.el5_5 installed インストールされているので、wheel グループの設定をおこなう。wheel は root 権限を得られるユーザー グループである。これは usermod コマンドで設定できるのだが、root 権限が必要なので以下のように実行する。 $ su - Pa
次のページ
このページを最初にブックマークしてみませんか?
『akabeko.sakura.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く