サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
TGS2024
kurukurupapa.hatenablog.com
前回の記事では、HTML5のBlobを使用して、動的データのダウンロードを行いました。非常に簡単に実装できたのですが、ひとつ残念だったのは、ファイル名を指摘できないことでした。 今回、HTML5のFile API:Writerを使って、ファイル名を指定して、動的データのダウンロードを行なってみました。難しいことなく、出来上がったのですが、現状では、対応ブラウザがGoogle Chromeだけとなってしまいました。File API:Writerは、各種ブラウザの実装が普及していないようですね。 では、作成してみたサンプルプログラムを説明します。 画面イメージ 作成したプログラムをブラウザで表示した画面イメージです。ダウンロード時のファイル名と、ファイルの内容を指定するテキストボックスがあります。ダウンロードリンクから、ローカル環境にダウンロードする事ができます。 プログラム HTMLです。
MacのSafariで、多数のデータ入力を行う機会がありました。一つの画面で、繰り返し同じような入力を何度も行う作業です。自動化向きの作業だと感じましたので、いくらか試行錯誤し、AppleScriptで半自動化することにしました。 「半自動化」です。「完全自動化」ではありません。1件入力するごとに、画面表示内容などを確認しながら作業を進めたかったので、1件自動入力後、ユーザの応答待ちとなり、問題なければ、次の1件を自動入力するようにしました。 なお、AppleScriptは今回はじめて作成しました。なんとか私の環境では動作するレベルになりましたが、お作法的に正しい作りになっているのかなどは全く自信無いです。綺麗に作られているとは、夢にも期待しないで下さい。 AppleScirptによる半自動化 実施手順 操作方法は、こんな感じになります。 1.自動入力データを作成 後述するように自動入力用
JavaScriptなどにより、クライアント側で動的なデータを作成し、それをローカル環境に保存したいと思い、サンプルプログラムを作成してみました。実装技術として、HTML5のFile API機能におけるBlobを使いました。 わずか3行で実装できてしまうのですね。便利ですね。さらに、HTML5なので、最近の主要ブラウザ(IE 10.0以降、Firefox 13.0以降、Chrome 20.0以降のはず)では動作しますし、現在動作していないブラウザ(Safari?)でも、HTML5対応が進めば、動作するようになるはず。 では、作成してみたサンプルプログラムを説明します。 ポイント ポイントは、この3行です。content変数には、ダンロードしたいファイルのテキストデータが入っています。id変数は、ダウンロード用リンクのaタグを特定するid属性です。 var blob = new Blob([
数年前になるかと思いますが「世界一やさしい問題解決の授業」という書籍が発売され、いつか読んでみようかな、と思っていて忘れていました。そして、数カ月前、本屋さんで見つけ、読んでみました。確かに分かりやすかったので、話のポイントをメモしておきます。 世界一やさしい問題解決の授業―自分で考え、行動する力が身につく 作者: 渡辺健介,matsu(マツモト ナオコ)出版社/メーカー: ダイヤモンド社発売日: 2007/06/29メディア: 単行本購入: 92人 クリック: 1,213回この商品を含むブログ (242件) を見る 問題解決の考え方 原因分析 原因を洗い出す 「分解の木」で洗い出し、いくつかのグループに分ける。 原因の仮設を立てる どんな分析をするか考え、情報収集する 前の手順でグルーピングした原因に対して、「課題分析シート」を使って、課題、仮説、根拠、分析・作業、情報源を考える。 分析
Visual C# 2010 Expressにて、NUnit 2.6.1を、外部ツールとして起動する方法をメモします。NUnitは既にインストール済みで、「C:\Program Files (x86)\NUnit 2.6.1」にインストールされている前提とします。 1.[ツール]→[設定]→[上級者設定]を選択します(既に選択済みの場合、操作不要です。) 2.[ツール]→[外部ツール...]から、外部ツールダイアログを起動します。 3.追加ボタンをクリックして、次のように入力します。 タイトル:NUnit コマンド:C:\Program Files (x86)\NUnit 2.6.1\bin\nunit.exe 引数:/run $(TargetName)$(TargetExt) 初期ディレクトリ:$(BinDir)4.ソリューションエクスプローラーから、テストケースを記述したプロジェクトを
C#.NETで、日本語文字列を英語に翻訳してみたくなったので、少し調べてみました。そして、Microsoftが公開している翻訳API(無償プランあり)を用いて、C#.NETによる翻訳サンプルアプリケーションを作成してみたので、メモしておきます。 はじめに 翻訳APIを公開している主な会社としては、マイクロソフトとGoogleがありました(他にも私が知らないだけで有名なAPIがあるかもしれません。)どちらも以前は無料で使えていたようですが、2012/6/9現在は次の料金体系になっていました。 Microsoft Translator API 2,000,000文字/月までは無料。月額3,140〜618,552。 料金ページ Google Translate API 1,000,000文字あたり$20。無償プランなし。 料金ページ とりあえず触ってみたいだけだったので、Microsoftの無償
Jenkinsを軽く使ってみました。隅々までユーザのことを考えてくれているようで、非常に使いやすく、感動を覚えました。素晴らしいです。さらに詳しくJenkinsのことを知ろうとして、書籍「Jenkins実践入門」を購入し読みました。 今後、自分自身がJenkinsを活用するために、メモをとっておきます。 インストール方法 簡単な方法 1.次のURLからJenkinsのWARファイルをダウンロード http://mirrors.jenkins-ci.org/war/latest/jenkins.war 2.次のコマンドでJenkinsを起動 java -jar jenkins.war 3.ブラウザから次のURLへアクセス http://localhost:8080/ ※上記以外に、Tomcat上で動作させる方法などもある。 外部ツールとも連携して色々なことが出来る! Jenkinsでは、ビル
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子出版社/メーカー: 翔泳社発売日: 2011/04/09メディア: 大型本購入: 19人 クリック: 1,360回この商品を含むブログ (124件) を見る 社内の有志と一緒に「エリック・エヴァンスのドメイン駆動設計」を読んだので、簡単なまとめと、私がドメイン駆動設計を実践する際の考慮点にも触れてみたいと思います。色々勝手な事を書いています。間違い、勘違いなど多々あるかもしれません。 ドメイン駆動設計とは 業務担当者(ドメインエキスパート)の知識を図式化(ドメインモデル)し、業務担当者と開発メンバーの全員が意思疎通を図りながら設計を行うための手法です。ポイントは以下になると思います。 全員が理解できるようにするため、図は分か
Viewをドラッグ・アンド・ドロップするというと、どのように実装するのか直ぐには思い浮かばなかったので、調べたところ、Viewをドラッグするだけなら、非常に簡単に実装できることがわかりました。私が作成した実験プログラムを紹介してみます。 画面イメージ 作成したプログラムの画面イメージは、次のようになります。画面内のドロイド君アイコンをドラッグすることが出来ます。 プログラム構成 画面のレイアウト構成、実装するクラスの構成を図にしました。レイアウトは、ドロイド君アイコンを表示するImageViewと、そのImageViewを自由に配置可能なFrameLayoutで構成してあります。実装するクラスは、図中の緑色のボックスで、DragActivityとDragViewListenerの2つです。ピンク色のボックスは、継承元となるAndroidのクラスです。 プログラム詳細 レイアウトXML(dr
先日の記事(こんなに簡単だとは思わなかった!Viewのドラッグ方法)で、Viewをドラッグ・アンド・ドロップしてみました。今回は、発展させて、ListViewの項目をドラッグ・アンド・ドロップして並び替えられるようにしてみました。少し長いですが、作成したプログラムを紹介します。 画面イメージ 作成したプログラムの画面イメージは、次のようになります。画面中央の背景色が白っぽくなっている矩形部分がドラッグ中の項目です。 プログラム構成 画面とJavaクラスの構成を図にしました。DragListViewは、AndroidのListViewを継承し、ドラッグ・アンド・ドロップの主な制御を行なっています。DragListAdapterは、ListViewに表示する項目とその並び順を管理しています。PopupViewは、ドラッグ時に選択項目をポップアップ表示するビューです。 プログラム詳細(レイアウト
Visual C#で、Excelファイルを読み込むようなことを考えています。Excelファイルの読み込み用のライブラリは、ExcelアプリケーションをCOM経由で呼ぶ想定です。この場合、使用するライブラリ(Microsoft Excel 12.0 Object Libraryなど)は、動作環境によって切り替える必要があります。 Excel2007がインストールされている環境では"Microsoft Excel 12.0 Object Library"、Excel2003の環境では、"Microsoft Excel 11.0 Object Library"など。 動作環境が複数あり、各々のPCにインストールされているExcelのバージョンが異なる場合、インストール済みのExcelバージョンを判断する方法を調査してみました。 次のようにすると、Excelバージョンによって、処理を分岐することが
Androidで、PhoneGapとjQuery Mobileを勉強しています。jQuery Mobileのリストビューを動的に生成し、リストビューの選択項目を取得する処理を作成しましたので、メモしておきます。 概要 次のように、リストビューの画面と、リストビューで選択された項目を表示する画面を用意しました。 プログラム HTMLファイル(抜粋) <div data-role="page" id="jslistview"> <div data-role="header"> <a href="#index" data-icon="arrow-l" data-direction="reverse">TOP</a> <h1>動的なlistview</h1> </div> <div data-role="content"> <ul data-role="listview" id="jslistvi
Windows環境で、複数ファイルに対して、一括処理を行うようなバッチファイルの書き方を調べてみました。 バッチファイルの名前を「foldercmd.bat」、ファイルに対する処理を「filecmd.bat」として、次にサンプルを記述しました。 @echo off rem 指定フォルダ配下のファイル/ディレクトリを再帰的に rem 処理するバッチファイルサンプル rem 指定フォルダ直下のファイルに対する処理 for %%a in (%1\*) do call filecmd.bat "%%a" rem 下位フォルダを再帰的に処理 for /d %%a in (%1\*) do call foldercmd.bat "%%a"注意点 for文について、オプションなしの場合は、「(%1\*)」がファイルの一覧に展開されます。オプション/d付きの場合は、フォルダの一覧に展開されます。 for文
Java6から、APT(Annotation Processing Tool)と呼ばれる便利な機能があることを知りました。とりあえず使ってみようと思い、AndroidのSQLiteでDBアクセスするための、O/Rマッパーのような処理を題材に、APTで実現してみました。 APTで自動生成するクラス APTを使用する側が、テーブルの1レコードを表すデータクラスを作成した際に、次のようなDB操作用クラスを自動生成するように考えました。メソッドには、テーブルを作成・削除するメソッド、データを検索するメソッド、レコードを更新/削除するメソッドがあります。 public class RecordDao { private SQLiteDatabase db; public RecordDao(SQLiteDatabase db) { this.db = db; } public List<Record
今まで、QRコードのエンコードについて探したことはあったけど、デコードはあまり気にしたことがありませんでした。デコードは、手元の携帯電話の付属のQR読み取り機能を使っていたので困ることがなかったのです。 今回は、少し特殊なデコード、バイナリ情報が含まれたQRコードのデコードに挑戦したいと思っており、まずはQRコードデコードツールについて調査してみました。 注意:動作確認はしていません。 フリーソフト QR Code Editor 次からダウンロードできます。 フリーソフト -> QR Code Editor | Psytec http://www.psytec.co.jp/freesoft/01/ 次のページに説明が載っていました。 QRコードエディター−IT・PCスキルアップ - ワンダー・オーパ http://ohpa.net/modules/leaf/details.php?bid=
「ごろーさんスペシャル」というロムを使用すると、次のことが出来るそうなので、早速試して見ました。 純正仕様 日本語フォント(モトヤマルベリ3等幅) *arcと同じ ドコモ化(SPモード配信&絵文字) Mobile Bravia Engine(写真とムービーをくっきりあざやかに映像表現する) wi-fi fix(繋がりやすさ改善) GPS fix(衛星の掴みやすさ改善) Xrecover-fix(USBストレージ接続関連ののfix) 前提 Android 2.3化済み Root化 「ごろーさんスペシャル」ロムを使用するため、まずはRoot化を行いました。少し手順が多いですが、次のページを参考に、なんとかRoot化に成功しました。 Xperia SO-01B 2.3.3Up Root化 http://homebase.gotdns.org/home/index.php?option=com_c
APR(Apache Portable Runtime)のTable機能を使ってみました。Table機能を利用する場合の手順は次のようになるようです。 apr_pool_create関数を使用して、Table機能で使用するメモリプールを作成します。 apr_table_make関数を使用して、apr_table_tを作成します。 次の関数を使用して、要素を操作します。 apr_table_tを使い終わったら、apr_pool_clearまたはapr_pool_destroy関数を使用して、メモリプールを破棄します。 主要な要素操作の関数 関数 概要 apr_table_add 要素を追加します。キーが重複しても場合、異なる要素として追加します。キーと値は内部的にコピーされます。 apr_table_addn apr_table_addと同様ですが、キーと値は内部的にコピーされません。 ap
Visual C#にて、Excelファイルを読み込む処理を書いてみました。 ここでは、遅延バインディング方式と呼ばれる方法を使っています。これにより、実行時に、アプリケーションと、ExcelのDLL(Microsoft Excel XXX Object Library。XXXはバージョン)との参照設定が解決されることになるため、開発環境と実行環境にインストールされているExcelのバージョンが異なっていても動作する可能性があります。 たとえば、下記に紹介するプログラムは、Excel2007の環境で開発したのですが、その環境でビルドした実行ファイルを、Excel2003がインストールされている環境で動作させても正常に動きました。 ただし、Excelのバージョンが異なることで、プログラムの仕方も変わるような場合は、どこかで例外が発生すると思います。(試してはいないですが・・・) using S
アプリケーションが動作しているWindows環境について、Windowsの種類(Windows XP, Vista, 7, Server 2003, Server 2008など)とService Packを取得する方法を調べたのでメモしておきます。 まず、バージョン判定の考え方ですが、これはMicrosoftのサイトに載っていました。 OSVERSIONINFOEX Structure (Windows) http://msdn.microsoft.com/en-us/library/ms724833%28VS.85%29.aspx Operating system Version number dwMajorVersion dwMinorVersion Other Windows 7 6.1 6 1 OSVERSIONINFOEX.wProductType == VER_NT_WORKS
Chromium版EdgeのIEモードを使用して、IE専用のイントラのWebアプリケーションを表示していると、人によって、もしくは端末によって、表示や動きに違いがありました。あるWebアプリケーションのページを表示する際、ある人のEdgeではIE11で描画されるのに対して、私のEdgeではIE7として描画されました。調べてみると、人/端末によって、互換表示するIEバージョンが異なっているようです。この動作の差異について調べてみました。 前提 本記事は、Windows10/11において、Chromium版Edgeを使用していることを前提としています。 ポイント Chromium版EdgeのIEモードにおいて、ページ描画時に使用するIEのバージョンには、Edgeの「IEモード」とIE11の「互換表示設定」が関連する。 Edgeの「IEモード」 Edgeの「IEモード」を有効にする方法はいくつか
GAEでは、1アカウントで作成出来るWebアプリの数が、10個に制限されています。あまり使い勝手が良くないですが次のようにすると10個以上のWebアプリを同時に動作させることが出来そうです。 考え方は簡単です。GAEは、10個のWebアプリに対して、各々複数バージョンを登録し、同時動作させる機能があるので、それを使うだけです。 下記では、Rubyを前提に手順を書きましたが、考え方はJava版などでも同じはずです。 手順1.ローカル環境でWebアプリを作成する際、config.ruのバージョン指定に、作成したアプリを特定する名前を記述する。 AppEngine::Rack.configure_app( :application => "application-id", :version => "sub-application-id") 手順2.通常通りデプロイする。 手順3.次のURLでブラ
前回のエントリーに引き続きGAE/JRubyで、Webアプリを作ってみます。今度はRails2を使ってみました。 GAE上でRailsを動かす方法は、バージョンや環境によって、いくつかの方法があるようで、上手く理解できませんでした。でも苦労して何とか動かすことができました。ネット上に有用な情報を書かれていた皆さんに感謝です! 手順概要 google-appengineがインストール済みの状態からの手順です。 ライブラリのインストール スケルトン作成 ローカルPC環境で動作確認 config.ruファイル編集 データストア作成 ローカルPC環境で動作確認 GAEへデプロイ GAE環境で動作確認 手順詳細 次のページを参考にしました。Unix系の記述を、Windows用に変更したぐらいで、ほぼそのまま実施できました。 appengine-jruby+DataMapperでRails2を設置する
Javaから使えるCSVライブラリを探してみました。 下記のようにいくつか見つかりましたが、どれを使うべきか、決め所に迷っています。 Googleの検索結果から判断すると、どれもヒット件数が大きく変わることはなく、どれが普及しているかわかりませんでした。 詳しく見ていませんが、どれも次の機能は備えているようです。 読み込み/書き込み機能 JavaBeansやString配列へのマッピング 区切り文字や改行文字を指定 SuperCSV Version 1.52 http://supercsv.sourceforge.net/ ライセンス:Apache License Version 2.0 高機能ですね。さらに独自拡張できるような仕組みも用意されています。 opencsv Version 2.0.1 http://opencsv.sourceforge.net/ ライセンス:Apache L
APR(Apache Portable Runtime)のハッシュ機能を使ってみました。ハッシュ機能を利用する場合の手順は次のようになるようです。 apr_pool_create関数を使用して、ハッシュ機能で使用するメモリプールを作成します。 apr_hash_make関数を使用して、ハッシュテーブルを作成します。 apr_hash_set関数を使用して、ハッシュテーブルに要素を追加します。 apr_hash_set,apr_hash_get,apr_hash_first,apr_hash_next,apr_hash_this,apr_hash_count関数などを使用して、各要素にアクセスします。 ハッシュテーブルを使い終わったら、apr_pool_clearまたはapr_pool_destroy関数を使用して、メモリプールを破棄します。 プログラム例 ハッシュテーブルへ、文字列のキーと
Eclipse 3.4で、RSE(Remote System Explorer)を使ってみました。 RSEは、クライアント(Eclipse)とサーバの構成となるシステム環境において、Eclipse上からサーバ上のファイルやプロセスなどを操作するプラグインです。こんなツールがほしいな〜と思っていると、やっぱり出てくるものですね。でも、あまり聞き慣れないものなので、本当に動作するのか心配でしたが、杞憂でした。 Windows(Eclipse)、Linuxサーバの環境で少し使ってみたのですが、簡単に動作するものですね。すばらしい。どんどん使い込んでいきたいですね。 サーバ側の準備なし(独自デーモンなし)に次のことが可能 FTPプロトコルでファイル操作 SSH、SFTPを使用して、ファイル操作、ターミナル操作 サーバ側に独自デーモンを起動することで可能なこと ファイル操作 プロセス操作 上記の「フ
はじめに Subversionを使用しています。リポジトリにセキュリティ情報などを誤ってコミットしてしまいました。これを削除する方法を考えています。 通常の削除では、履歴が残ってしまい、セキュリティ情報がリポジトリに残ったままとなります。履歴自体削除する方法を考えています。 Subversionでは、通常、履歴自体を削除する事は出来ないようですが、少し考え方を変えて、現状のリポジトリのバックアップを取り、新しく空のリポジトリを作成し、バックアップからセキュリティ情報部分以外をロードすると目的を果たせそうです。 手順 次のようになるはず。まだ実践していないですが・・・。 1.svnadmin dump <リポジトリパス> | svndumpfilter exclude <パスのプレフィックス>... > dump_yyyymmdd.dat 2.mkdir <新規リポジトリパス> 3.svna
このページを最初にブックマークしてみませんか?
『kurukuru-papaのブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く