J2SE 1.4からはJCEやJAASなどの各種セキュリティパッケージが標準で組み込まれ,暗号化や復号化などは簡単に行えるようになりました。ここでは秘密鍵を用いた手軽な暗号化を紹介します。 暗号化は気を遣う プログラムで暗号を使いたいとき,自前で実装するのは非常に気を遣います。なぜなら,バグがあったときにデータが復元できなくなるため,慎重に実装したうえで十分にテストしておく必要があるからです。 前述のとおり,J2SE 1.4ではセキュリティパッケージが多数組み込まれたため,これらのロジックを自前で記述する必要性は大幅に低下しました。そこで,ここで簡単な利用法を紹介します。 暗号化・復号化は一般にバイト列を暗号化してバイト列にする,というのが標準的な使い方です。しかし,ここでは動作を確認しやすくする目的で,「テキスト→暗号バイト列→テキスト」という流れにしましょう。 手軽に暗号化 暗号関係の
String型にはアルファベットの小文字を大文字に変換するtoLowerCase()、大文字を小文字に変換するtoUpperCase()があります。ですが、半角を全角に変換、全角を半角に変換するメソッドは現時点(Java1.4.2)でのString型にはありませんし、他のクラスにも用意されていないはずです。なので、どうしてもそういったメソッドが必要ならば、自分で作る必要があります。 『百聞は一見にしかず』なので、とりあえず例を見てみましょう。 String toHalf(String S){ StringBuffer SB=new StringBuffer(); for(int i=0;i<S.length();i++){ SB.append(Half((int)S.charAt(i))); } return(SB.toString()); } String toFull(String S
SecureRandom = new SecureRandom(byte[] seed) byte[] seed 任意 KeyPairGenerator = KeyPairGenerator.getInstance(String algorithm) String algorithm 標準名のドキュメント Cipher (暗号化) アルゴリズム KeyPairGenerator.initialize(int keysize, SecureRandom random) int keysize 任意 KeyPair = KeyPairGenerator.generateKeyPair() PrivateKey = KeyPair.getPrivate() PublicKey = KeyPair.getPublic() Cipher = Cipher.getInstance(String tra
UnicodeBlockを使うと平仮名やカタカナの判定ができる。うまく使えば指定サイトが何語で書かれているか判定したりできる。 各ブロックの説明や、漢字を判定するにはどのブロックを使えばだいたい網羅出来るかなど、細かい話は現在確認中。(漢字はブロックが複数あるんで面倒です) とりあえずJavaのUnicodeBlockのサンプルコード。 // 平仮名判定(UnicodeBlock.HIRAGAN) System.out.println( UnicodeBlock.of( 'あ' ) == UnicodeBlock.HIRAGANA ); // => true System.out.println( UnicodeBlock.of( 'ア' ) == UnicodeBlock.HIRAGANA ); // => false // カタカナ判定(UnicodeBlock.KATAKANA) S
ブログのIDを変えました。今後ともよろしくお願いします。 新しいブログのURL http://d.hatena.ne.jp/arcanum_jp ツイッター arcanum_jp サイト http://arcanum.jp コミッターのサイトに載っていたので、広まるようにメモ Twitterj4を使っていて、ダイレクトメッセージを流すところでこんなエラー Exception in thread "Twitter Stream consumer-1[Receiving stream]" java.lang.NumberFormatException: For input string: "2156851464" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.la
Phormは、かつて121Mediaとして知られていた、米国デラウェア州を本拠とする広告ソフトウェアで知られるデジタルテクノロジー企業。2002年に設立され、スパイウェアと見なされるプログラムを配布して、それにより何百万ドルもの収益を得ていた。これらのプログラムは、米国とカナダの団体から苦情を受けて配布を停止したが、今度は、ユーザーが訪れるウェブサイトに基づいた行動ターゲティング広告の配信のため、英国の複数のインターネットサービスプロバイダ(ISP)と話し合っていると発表した。 Phormの提案した広告システムは、Webwiseと呼ばれ、NebuAdやFront Porchと同様、ページ内容の検査にディープパケットインスペクションを使用する行動ターゲティングサービスである。Phormは、収集されるデータは匿名のものであり、ユーザーを特定するのには使用しないし、サービスにはフィッシング(ユー
非通知を拒否していても、通知不可能と公衆電話からの着信はちゃんと受けれるのでしょうか?こんなコメントがあったので、参考までに*1 「発信確認ほか」には、非通知からの着信を切断する機能があるのですが この非通知には公衆電話と通知不可能*2も含まれます 現状のAndroidの仕様では、これらを判別する方法がありません と、ここまではマーケットにも書いたので、以下ちょっと詳細を... まず電話の着信を判断する方法ですが 「AndroidManifest.xml」にこんな感じなのを書いてます <?xml version="1.0" encoding="utf-8"?> <!-- 各タグの中身(定型なので)および不必要な箇所は長くなるので削ってます --> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <a
ここ1年くらい、僕はソースコードなどを github で公開しています。 つい先日まで書いていた連載記事 GAE for Flasher のサンプルソースコードや、 東京てら子で発表したデモ、今まで作ったライブラリや便利クラスなど なんでもかんでも github で公開しています。 しかし、プログラムに慣れた人ならともかく、これから AS3 をガシガシ勉強していこう! といった方や、AS3 自体はガシガシかけても基本的に SVN 等バージョン管理システムを 使わない方にとっては github 自体がやはり少し敷居が高いイメージがあるという話を聞きました。 GAE for Flasher の記事自体、ある程度 AS3 に関する知識のある人を想定していたとはいえ 流石に当たり前のように使い過ぎたかなと反省の意を込めて github 超入門( for Flasher ) を書く
2010年7月24日土曜日 android CursorJoiner アンドロイドSDKに含まれるCursorJoinerではまったので記録を残しておこう。 まず、何をしようとしたかというと android.provider.ContactsContract.Groupsテーブルからグループ一覧をひく →GUIでグループが選択されたときこのグループIDから所属するユーザ一覧をあいうえお順で取得 →GUI上に表示 グループIDがあれば、GroupMembership.CONTENT_ITEM_TYPE を使ってandroid.provider.ContactsContract.Data.テーブルからメンバー一覧をひくことができるが、これには名前はあるがヨミガナが登録されていない。そのためヨミガナをContactsContract.CommonDataKinds.Structured
Androidアプリから、端末の通話ログを取得する方法は? Androidアプリでは、他のアプリケーションの情報を、コンテントプロバイダと呼ばれる機構を使って取得する事が出来ます。(用意されていれば。) 通話ログとは、着信履歴、発信履歴、不在着信履歴の事ですが、この通話ログの情報も、自分で作るAndroidアプリケーションから取得する事ができます。 Androidアプリの通話ログの取得方法 それでは、サンプルコードとともに、通話ログの取得方法を見てみましょう。 以前の記事でもちらほらと紹介していますが、getContentResolver().query()というメソッドを使います。 Cursor c = getContentResolver().query( CallLog.Calls.CONTENT_URI, projection, selection, selectionArgs,
2010年7月24日土曜日 android CursorJoiner アンドロイドSDKに含まれるCursorJoinerではまったので記録を残しておこう。 まず、何をしようとしたかというと android.provider.ContactsContract.Groupsテーブルからグループ一覧をひく →GUIでグループが選択されたときこのグループIDから所属するユーザ一覧をあいうえお順で取得 →GUI上に表示 グループIDがあれば、GroupMembership.CONTENT_ITEM_TYPE を使ってandroid.provider.ContactsContract.Data.テーブルからメンバー一覧をひくことができるが、これには名前はあるがヨミガナが登録されていない。そのためヨミガナをContactsContract.CommonDataKinds.Structured
Contactsクラスでコンタクトリストを取得する処理が非推奨(deprecated)と警告されるけど、推奨方法は? Android SDK1.6までは、コンタクトリスト(電話帳のデータ)を取得したり設定したりするのに、android.provider.Contactsクラスを使用していました。 しかし、Android SDK2.0(API Level5)以降は、このクラスは、クラス毎、非推奨になりました。 Android SDK付属のAPIリファレンスを見れば、何を使えばいいかわかります。 android.provider.Contactsクラスの冒頭に、以下のような記述があります。 私のつたない英語力で読むと、、、 新しいAPIでは、複数のアカウントや、似た名前?のコンタクトリスト内の複数のアカウントにアクセスが出来たりする。 これまでのAPIでも動作するけど、最初に作られたGoogl
ようこそお出で下さいました。 システムトラブルにより、プログラミングメモの記事を中止しています。 復旧の目処はたっていません。 ⇒プログラミングメモの記事を復活させました。 まだ試運転中ですが、HOME - 愚鈍人をご参照ください。
androidアプリと、GAE(Python)の連携です。 共円チェッカーでステージを送信するときのコードです。 String url = context.getString(R.string.upload_url); HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(); nameValuePair.add(new BasicNameValuePair("data", params[0])); try { httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair, HTTP.UT
[開発環境] ・Eclipse Indigo ・Android 2.3.3 ・Slim3 Version 1.0.13 (検索結果はJSON形式でクライアントに返す) [サーバ(GAE)側のソース(Slim3を使用)] [src\jp\co\hoshisoft\slim3sample02\controller\ListController.java] package jp.co.hoshisoft.slim3sample02.controller; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.util.List; import jp.co.hoshisoft.slim3sample02.meta.MemberMeta; impor
価格:3,150円(税込)、480ページ 著者:中垣健志 出版:翔泳社 発売:2011年4月22日 ISBN-13:978-4798123028 SE Shop | Amazon | セブンネットショッピング | ビーケーワン | 全国書店にて発売中! Google App Engine 1.4.3対応(1.6.1でも動作します) サンプルダウンロード | 正誤表 | 書籍内リンク集 本書は、「習うより慣れろ」をコンセプトに、10のクラウドアプリケーションを作りながら、Google App Engine for Javaのプログラミングを習得できる入門書です。主に、Javaの経験はあるもののGoogle App Engineは初めて、という方を想定していますが、Java初心者の方にも読んでいただけるようにJavaの基礎的な事柄についても折に触れて解説しています。 本書の構成はいたって明快で
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
ぐうたらプログラマの不定期更新日記。 最近さっぱり記事を書いていませんが、近々再開予定です。サークル名に合わせてタイトル修正しましたが、まだどちらにするか悩んでいます。 皆様大変お久しぶりです。日本に帰国後、色々と忙しくしていた隠者でございます。 まぁ、ツイートをごらんになった皆様はご存知のように、昨日、常駐先での業務を完了し、同時に退職となりました。 当時、十数人の創業10年目の技術者集団に、2年以上にもわたり勧誘を受け、ぜひ一緒に仕事をしたいという言葉に誘われて、入社を決意したのが2002年末。当時は、「会社なんかいつ無くなっても仕方ない」といい続けてきた技術集団を、きちんとした会社にしなければと感じた最年長の経営にいた技術者が、「ビジョンがある」という営業出身者に代表権が移ってから10年。 結局、会社への変革はできず、技術者の稼ぎから行った投資が実らず、いつの間にか当時の技術者が一人
_ Android開発を行う際の eclipse の便利設定 今日は Android Advent Calendar 2011 参加のエントリです。Advent Calendar って何という方は こちら をどうぞ。 多くの方が Android 開発に eclipse を使用していると思いますが、eclipse の機能を使いこなして快適な開発・効率のよい開発をしているでしょうか。今日は、わたしが普段使っている開発環境で行っている eclipse の設定を紹介したいと思います。まぁどっちでもいい好みの問題といえるような設定から、是非皆さんに使って欲しいお勧め機能までいろいろ紹介します。 今回のエントリでは eclipse の設定画面がたくさん出てきますが、どこにある設定であるかを示すのに [ aaa > bbb > ccc ] という表記をします。一番左が設定画面(Preferences)
最近なにかとAndroidアプリを作る機会があるのだが、その最中にある出来事の一つとして、”ググっても解決方法が分からない”というのがある。クラス名、メソッド名でググってもリファレンスしか検索結果に表示されないなど。特にマイナーなAndroid Frameworkのクラスを使おうとしている時がそう。イライラが頂点に達する瞬間でもある。 あと、Android フレームワークの使い方を調べるときは、大抵Android developersのリファレンスマニュアルを見ているのだが、”説明がまったくないメソッドに出くわし”たり、”マニュアル通りに設定しているのに、その通り設定されなかった”という出来事もあったりする。 そんな時はAndroid フレームワークのソースコードを読んで解決している。先の”マニュアル通りに設定して動かなかった”原因は、設定したパラメータが実はAndroidフレームワークの
[In English] Previously on my last blog. <string name="remaining_time_message">Only %d minutes left.</string> String.format(getResources().getString(R.string.remaining_time_message, 10); In most cases this code works well except in case of singular. When minute value is singular, the message 'only 1 minutes left.' will be created. It's wrong message to be accurate. We hope the message 'only 1 minu
統合翻訳環境Bentenとは? Bentenはオープンソースで開発されている翻訳支援ツールだ。もともとはEclipseのドキュメントの日本語化をコミュニティベースで行うためのツールとして開発されたものだが、Eclipseに限らずさまざまなHTMLの翻訳に利用することができる。翻訳メモリを使用することで複数人での翻訳を効率的に行うことができるようになっている。 すでにインストール済みのEclipseにプラグインとして導入することも可能だが、必要なリソース一式を一括インストール可能なWindows向けのインストーラが提供されている。Windows環境の場合はこちらを利用するのがオススメだ。インストーラは基本機能を提供するものと、拡張機能を提供するものの2つに分かれているので注意してほしい。 Bentenを使ってみよう それでは実際にBentenを使ってみよう。Bentenは翻訳作業用に翻訳パー
Benten はオープンソースの翻訳支援ツール、翻訳ワークフロー支援ツールです。 Benten を利用することにより、翻訳メモリおよびグロッサリーを利用して HTML、Microsoft Office (.docx, .xlsx, .pptx)、OpenDocument Format (.odt, .ods, .odp)、gettext PO (.po)、Java プロパティ、そしてテキストファイルを効果的に翻訳することができるようになります。 また、Benten は優秀な XLIFF エディターでもあります。 さあ、Benten を使って高品質な翻訳作業を実現しましょう! システム要件 Java SE 実行環境 1.5 以降 Eclipse 3.4.2 または 3.5.1 以降 Eclipse WTP などなど。 インストール Benten は Eclipse プラグインとして提供されて
github を Windows で使ってみる という記事を 2008 年に書いたのですが、未だにそこそこ需要もあり見ていただいているようなので 2011 年版として新たに書いてみます。GUI で色々ごにょごにょ出来るようになっていたり感動しました。進化してる! Help.GitHub – Welcome でざっと手順を眺める。書いてある手順を引用すると以下の通り。 Getting started with Git and GitHub Getting up and running from scratch is easy: 1. Take a quick crash course on git 2. Install Git 3. Generate a keypair – If you have troubles 4. Set your user and email in git 5. C
Google Developer Day will be coming soon to a city near you! Stay tuned for updates via the Google Code blog, as we work to update our 2011 website. In the meantime, check out the highlights from 2010. Sep 16: Sao Paulo, Brazil Sep 19-20: Buenos Aires, Argentina Oct 10: Moscow, Russia Oct 18: Prague, Czech Republic
このウェブサイトでは、コンピュータ サイエンス (CS) の学生や指導者が現在のコンピューティング技術やパラダイムについてより多くを学べるようにチュートリアルやコース コンテンツのサンプルを提供しています。特にこのコンテンツは、CS の指導者が授業で使いやすいように、クリエイティブ コモンズのライセンスにより公開されています。 コース セクションには以下のさまざまなトピックについてのチュートリアル、授業のスライド、問題集などが含まれます。 AJAX プログラミング アルゴリズム 分散システム ウェブ セキュリティ 言語 ツールの入門セクションには、バージョン管理システムやデータベースなどコンピュータ サイエンスで一般的に使われているツールについての概要が含まれます。 CS カリキュラム検索では、世界中の CS 学科の教授陣からウェブに投稿されたさまざまな教育資料を検索できます。講義、課題の
飯塚さん 若手を主要ポストに積極的に採用しているサイバーエージェントが先日、世間をあっと驚かせる人事を発表した。iPhone向け写真SNSアプリ「My365」を運営する新会社「シロク」を昨年12月1日付けで設立し、その社長や役員に4月入社予定だった内定者の大学生4人を据えたのだ。 My365は4人が「学生生活最後の思い出に」と開発したもの。予想以上のヒットを受け、会社として収益化を目指すことになった。社長に就任した慶応義塾大学4年生の飯塚勇太さん(21)は、まさかの展開に「正直すごく驚いた」と話す。就職活動からアプリの開発とヒット、社長になるまでの劇的な道のりを聞いた。 「1日、1枚」だから楽しい「My365」 My365は、写真を撮影・加工し、共有できる無料アプリ。「フィード」画面にはフォローした人の写真が流れてくる。と、ここまでの説明ではInstagramそっくりだが、My365最大の
2012/1/15 をもちましてサイボウズ・ラボ株式会社を退職することになりました。 お世話になったみなさん本当にありがとうございました。 各分野でのトップレベルのエンジニアに囲まれた 4 年間は本当に刺激的でした。ラボでは良い上司(畑さん)に恵まれラボのミッションに沿う形で、比較的自由に研究・開発に取り組むことができました。外に出ているだけでも Mosh / Mio / outputz など。どのプロジェクトでも自分が実現したいこと、自分の能力と真摯に向き合う必要のあったかけがえのないプロジェクトでした。この 4 年間に学んださまざまなことは、今の自分を形成する「成分」の中でも大きな割合を占めていることを感じています。サイボウズ・ラボおよびサイボウズのみなさま本当にありがとうございました。 1 月末から新しい職場でソフトウェアエンジニアとして新たな一歩を踏み出します。みなさま今後ともよろ
1月17日、東京電力は4月から企業向けの電気料金を値上げすると発表した。写真は会見に臨む西沢俊夫社長(2012年 ロイター/Toru Hanai) [東京 17日 ロイター] 東京電力<9501.T>は17日、4月から企業向けの電気料金を値上げすると発表した。平均の値上げ幅は約17%で増収効果は年間で約4000億円。 福島第1原子力発電所の事故に伴う原発の稼働停止により火力燃料費が増大しており、収支構造の改善を図るのが狙い。西沢俊夫社長は記者会見で、「現在の状況が継続すると経営がさらに悪化し、電気の安定供給に影響に及ぼしかねない」と強調し、値上げに理解を求めた。 契約電力50キロワット以上の「自由化部門」が対象で、大・中規模工場やオフィスビル、商業施設などが含まれる。値上げは1980年以来。家庭向けなど小口の電気料金は国の認可が必要になるが、同社は、経済産業省で行っている電気料金の見直し議
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く