サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
c9katayama.hatenablog.com
2018/6/20にJJUG主催で行われたJJUG ナイトセミナー 「緊急特集! Javaの無償版はなくならないぞ!」の前半まとめです。個人的に気になるところだけまとめています。 Javaのリリースモデル(Java8まで) OpenJDKのソースをもとに、OracleがOracleJavaをビルドしてリリースしていた。OpenJDKとOracleJavaの差分は以下の通り。 JavaFX Java Plugin/JWS Flight Recorder/Mission Control バージョンアップ機能、インストーラー つまりコアライブラリやコアレベルは、OpenJDK/Opracleはベースは一緒。ただしセキュリティアップデートについては、Oracleが開発。セキュリティパッチやバグフィックス、機能追加はOracle側からOpenJDKにも還元していたが、同期は不完全だった。 Javaの
この記事は SORACOM Advent Calendar 2017 12/20 分のエントリーです。 ビットの海 古くは金属線から始まり、光ファイバー、ナノカーボンファイバーと進化した人類の情報伝達経路である物理線、そして「のろし」からはじまり、音や光、電波を利用した無線網は、かつて地球上に張り巡らされ、まるで神経のように人類に情報を振り撒いていた。 このネットワーク技術の発展によって、人類は過去にない速度で情報を伝達し合えるようになった。ひとたびつながりだした人類は、より多くの情報を求め、人だけではなく、ありとあらゆる物質に対してその触手を伸ばしていき、そしてそこから得られた情報により、生活や仕事、人間関係、そして国と言った概念さえ、急速に変えていった。 ネットワークの触手が、より末端の物質に手を伸ばすにつれ、ネットワークを構成する装置の物理的な制約が足かせになりはじめた。より小さく、
この記事は SORACOM Advent Calendar 2015 12/22 分のエントリーです。 IMSI 440903115977777 「15桁のIMSIなんて、聞いたことがないよ。そもそも15桁って少なくないか?」 秋晴れの骨董市で男が見つけたのは、表面が金色にコーティングされ、鈍く光る2センチ角ほどのプラスチックチップだった。 裏には製造番号らしき文字と、そしてうっすらと北斗七星のマークが書かれているのが見える。 "IMSI"というのはこのチップに書き込まれているIDで、同じIDのものは2つ存在しない。 「これは売り物じゃないんだけどね。珍しいでしょう。祖父からもらった物なの。祖父も、父親か誰かにもらったみたい。」 そう言いながら、店番の女は懐かしむようにチップを見つめる。男は、きれいな瞳をもったその女を、その少し興奮した面持ちで見つめる。 「これ、"SIMカード"っていう名
少し前の話ですが、アマゾンデータサービスジャパン(ADSJ)を退社しました。 ADSJ 見返すと、入社したのが2011年7月だったので、丸4年働いたことになります。元々はJavaデベロッパーをしていましたが、入社時のブログにも書いたのですが「みんなこれ(AWS)を使ったら楽になるのにな」という思いがありました。自分自身がデベロッパーだったので、AWSが当たり前に使えるような環境があれば、開発をする時に楽になるし、そんな環境がいいよな、と思っていました。 私は以前は金融系のフロントエンドシステムを開発していましたが、LinuxやJavaは分かりやすい例で、以前はプロジェクトを始める際に、それ自体を導入するかどうかを詳細に調査する所から始まっていましたが、メリットが理解されたり採用事例が増えるとその過程は無くなって、当たり前のように使われるようになりました。AWSを触っていると、これはLinu
いくら@Componentが便利だかといって、 @Component public interface TestMock{ public void test(); }勢いでインターフェースに@Componentつけても、Springではコンポーネント登録されない。 従って、こいつに@Aspectを引っ掛けようとしても、うまく引っかからない。 やっぱり実体を登録しないとだめだ==どこかでうまくBeanFactoryに介入しないと、という話になる。 BeanFactory自体を拡張するのは容易だが、そうするとBeanFactory自体の設定に手間がかかる場合(例えばSpringMVCを使うときなんか)だとイマイチなので、出来れば設定ファイルに1行書いただけで済むようなやり方が好ましい。 そこで期待されるのがBeanPostProcessor。このインターフェースをつけたクラスをSpringの設
この記事は AWS Lambda アドベントカレンダー 20日目の記事です。 前回19日目は、 Keisuke69さんによるAWS LambdaのPricingを読み解く - Qiitaでした。 はじめに S3でファイル授受をする場合、S3のsigned urlを使うケースが多いかと思います。 しかしながら、たとえば会社の規則でダウンロードURLとパスワードを別のメールで送ることになっているような場合、signed urlが使いにくい場合があります。S3でベーシック認証やDigest認証が欲しいという要望が根強いのはこういう理由も多いようです。 そこで今回は、LambdaとS3を使って、パスワード認証の出来るファイル便を作ってみました。 デモサイト:https://lambda-passwordauth.s3-us-west-2.amazonaws.com/upload.html 仕組み
はじめに 片山まさゆきと苗字が同じ、というだけで麻雀を始めた男、片山です。 JAWS-UGメンバーであれば一度は目にしたことのある「AWSカルタ」(クラウドパック吉田さん謹製)を見て、麻雀も作りたいなぁ、と前から思っていたところ、今年の社内忘年会でカジノが開かれることになり、ディーラーとして参加するチャンス!と思い、AWS麻雀牌作製への道に乗り出しました。 調査フェーズ 「麻雀牌 自作」などのキーワードで検索したところ、オリジナル牌を作ってくれるお店が1件出てきました。 市川屋 オリジナルデザインの牌を削ってくれるそうで、かなり本格的です。しかしながらやはり高い。今回はフルスクラッチになるため、削って色を入れてもらうところまですると7万円近くかかってしまいます。さすがにこれは無理ということで、白牌だけを144枚購入して、自分で絵柄を入れることにしました。 白牌だけを探す いくつか白牌だけで
Lambdaからのjava呼び出しで描画系が使えることが確認できたので、Lambda内で画像に描画してみます。 Lambdaコード Lambda Functionは、先日のエントリとほぼ一緒です。Java実行後に、/tmpに生成された画像をS3に吐きだす部分を追加しています。 var aws = require('aws-sdk'); var fs = require('fs'); var javaBucket = "lambda-java"; var javaBucketRegion = "us-west-2"; var mainClass = "GraphicsTest"; exports.handler = function(event, context) { loadAllFiles(function() { var spawn = require('child_process')
JAWS-UG名古屋での発表用に、顔認識をするようなアプリをLambdaで作りました。 内容としては、アップロードした画像を顔認識して、両目の座標を取得したのち目線を入れる、というものになります。 仕組み 仕組みとしては、以下のような構成になります。 この処理のポイントとしては、クライアントサイドでGUIDを生成して、そのGUID名を使ってデータをやり取りするところになります。クライアントはGUIDを生成して、AWS SDK for Javascriptを使ってデータをアップロードします。その後、クライアントサイドはGUID名/result.jsonをポーリングします。 通知を受けたLambdaはサーバサイドで顔認識を行い、結果をGUID/result.jsonの形で吐き出します。 クライアントサイドで作ったIDで、Lambdaと個別やりとりをする形になり、こうすることでEC2を使わずに、
Lambdaを使うとS3アクセスログの処理が出来るので、EC2を使わずにちょっとした動的サイトとして使うことが出来そうです。簡単そうなところで、簡易的なアクセスログカウンタを作ってみました。S3のstatic website hostingのアドオンとしてどうでしょうか? 仕組み S3のログ更新があったあと、Lambdaでログをパースして、index.htmlへのアクセス数をカウントします。カウントした数字は、S3上に「counter.txt」という名前のファイルでおいておきます。新規でログが来た場合に、このファイルの数字を更新していきます。 index.htmlの方には、このcounter.txtの数字を読み込んで、カウンター画像を作るコードをjavascriptで入れておきます。こうすることで、counter.txtが更新されると、カウンターがアップしていく仕組みです。 0.pngから
来週JAWS-UG名古屋でAWS LambdaのLTをするためにいくつかデモ案を作っていますが、実用的なものも必要だろうということで、表題の通りLambdaを使って、CloudTrailログをCloudSearchに入れて検索するサンプルを作成しました。 CloudTrailのログはS3に上がってきますが、ログが出来た通知をLambdaで受けて、そのログを整形してCloudSearchに入れます。従来ではEC2などから定期的にログ確認をしないといけなかったので、非常に楽ですね。 事前準備(入力側) はじめにLambdaコンソールから、新しいFunctionを登録します。適当な名前をつけます。 コードの中身は後で変えるのでサンプルのままにしておき、つぎにIAMロールを設定します。これはLambdaが実行されるときのロールなので、アクセスするサービス(今回はS3とCloudSearch)への権
先日Linux女子部で、「AWSではじめるGlusterFS」というお題目で話をする機会を頂きました。 デモンストレーションとして、EC2インスタンスを複数使ってGlusterFSのレプリケーション構成を一発で作れるCloudFormationテンプレートを作成しましたが、Geo-Replicationについては試すことが出来なかったので、ひとまずその足がかりとして、EC2上でGer-Replicationを構築してみました。 Geo-Replicationとは? GlusterFSが持つレプリケーション機能のうち、遠隔地へのレプリケーションを目的とした機能です。 遠隔地へのレプリケーションのため、通常のレプリケーションとは異なり、非同期でのレプリケーションを行ないます(通常のレプリケーションは同期処理)。GlusterFS本体に加え、Geo-Replicationモジュールをインストール
前回のBlogがエイプリルフールのネタで、このままだと不真面目と思われかねないのでAWSネタでフタを。 AWS SDKでEC2を起動するためのコードを書く場合にAMIのIDを指定しますが、一度IDを埋め込んでしまうとAMIの更新があって古いAMIが消えてしまう場合(往々にしてAmazonLinuxを使っている場合に発生)、正しくコードが動かなくなってしまいます。 過去に客先デモでこのシチュエーションにハマって今は自前AMIのIDを使用する事で事なきを得ていますが、常に直近のAMIが使いたい場合には対応出来ません。 ということで、試しに直近のAmazonLinuxのAMI-IDを取得するコードを書いてみました。コードは例によってJavaです。 public static void main(String[] args) throws Exception { AWSCredentials cr
久々のblogです。片山です。 先日@suz_labさんと、ENI出たけどAZは越せませんねー、という話をしていたときに思いついたアイデアを試してみました。 ENIについて 先日発表されたAWSの仮想ネットワークカード機能、Elastic Network Intarface(通称ENI)ですが、プライベートIPはもちろんのこと、セキュリティグループやグローバルIP、さらにMACアドレスまで別のサーバにつけたり外したりできる、かなりイケてる機能です。 EC2インスタンスにENIをひっつけることで、元々持っているeth0と合わせて複数のネットワークカードを持つことが出来るようになるので、マルチホームを実現できます。またあるEC2インスタンスから別のEC2インスタンスへ付け替えできるので、たとえばDBサーバにひっつけたENIに対してWebサーバからアクセスさせておけば、DBが死んだときにも別で立
H2のJDBC接続文字江列のサンプル(本家HPより拝借) PureJavaの組み込みDBはたくさんあるけども、一番使いやすいのはH2ですかね。 いろいろ接続方法がありますが、暗号化とかも選べてお得な感じです。 個人的にはクラスパス表記(jdbc:h2:classpath:/data/sampleとか)をサポートして欲しいなと思いました。 接続方法 表記 Embedded (local) connection jdbc:h2:[file:][] jdbc:h2:test jdbc:h2:file:/data/sample jdbc:h2:file:C:/data/sample (Windows only) In-Memory (private) jdbc:h2:mem: In-Memory (named) jdbc:h2:mem: jdbc:h2:mem:test_mem Remote us
JAWS-UGに「EC2のLargeインスタンスはディスクを850G使えると書いてあるけど、EBSインスタンスだと使えない!」という投稿があったので、調べてみました。 早速Windowsインスタンスを起動してみると、確かにCドライブ(35G)しか利用できません。 「ディスクの管理」で確認しても、利用可能なディスクはありませんでした。 Ephemeralディスクはインスタンスを停止すると消えてしまいますが、計算用のテンポラリであるとか、キャッシュなんかには利用できるため、使いたいケースも多いかと思います(一時的にでも、850GもEBSをマウントするとお金かかるので) ということで少し調べてみたところ、どうやらEBSタイプのインスタンスを起動するときに、-bオプションをつけないといけないことがわかりました。-bはブロックデバイスオプションで、起動時に任意のディスクをデバイスにマッピングするため
春の全国勉強会巡業のまっただなかのJAWS-UGですが、皆様いかがお過ごしでしょうか。 京都でも、4/15に@tksmdさん@yeharaさんが中心となり、JAWS-UG勉強会が開催されました。 東京からはid:shot6とid:yone098と私で参加し、私はAWS SDK for Javaについて発表をしてきました。 発表内容 タイトル「AWS SDK for Java」とそのまんまの内容です。 AWS SDK for Java デモ せっかく京都に行くので何か興味が沸くようなデモをと思い、流行のCMに便乗したデモを作成しました。 コンセプトは ということで、Twitterでつぶやくとインスタンスが増えるというデモです。 Twitter4Jを使用して@c9katayamaのアカウントを監視して、あいさつが来た時にAWS SDK for Javaを使ってインスタンスを起動するという仕掛け
SpringJdbc経由でOracleのストアドプロシージャを呼んでみた。 // JdbcTemplate作成 JdbcTemplate template = new JdbcTemplate(getDataSource()); // 戻り値をcaseInSensitiveで扱う template.setResultsMapCaseInsensitive(true); // 呼び出し用SimpleJdbcCall作成 SimpleJdbcCall callProcedure = new SimpleJdbcCall(template); // プロシージャ名セット callProcedure.withProcedureName("PROCEDURE_NAME"); //引数パラメータ作成。 IN の宣言をしたものに対して、値をセット MapSqlParameterSource in = n
あまりJBossを触ったことがなかったですが、タイトルの件を知りませんかと言われて調査したので、それのメモです。 JBossの構造 ところでJBossの構造ってどうなってるの、という話ですが、JBossのドキュメントにこのような図が載っています。 JBoss MicroContainerというのが、その上に乗っかる各種サービスを管理するコンテナです。 WebコンテナやEBJコンテナもこのMicroContainerに乗っかっています。 JBossは、MicroContainer上に乗っけるものを選んで、「プロファイル」という単位で管理できるようです。 TomcatはいるけどEJBはいらない、みたいな構成を作れる感じです。 JBossのダウンロード http://www.jboss.org/jbossas/downloads からダウンロード可能。最新の安定版は5.1。ライセンスはLGPLで
@dateofrockさんのつぶやき CaaS!! : ISID、パッケージソフトのクラウド展開にベライゾンのCaaSを採用 http://bit.ly/bqOC0R に対して、@sparklegateさんが もはや名前空間の奪い合いですな。 というリプライを返していて、そもそも「なんとかaaS」ってどのぐらい埋まってるのかがとても気になったので、検索してみました。 結果は以下の通り。 aaS 読み方 該当したaaS 説明 AaaS アアース 該当なし BaaS バース 該当なし CaaS カース Computing as a Service サービスとしてのコンピューティング Crimeware as a service サービスとしての犯罪ソフト DaaS ダース Development as a service サービスとしての開発環境 Desktop as a Service サー
巷でうわさのTomcat7ですが、新しい機能として Generic CSRF protection Web application memory leak detection and prevention という気になる機能が入っているね、とT2チーム内で話題になっていました。 Tomcatのサイトを見るとバイナリ版配布が開始されていたので、とりいそぎJadってみることにしました。 Generic CSRF protection CSRFについては高木先生などの専門家に解説をまかせますが、要はサイト外からのリクエストによって不正な処理が行われてしまう、というセキュリティホールです。(リンクを押すと、mixiに勝手に書き込まれてしまうとかありましたよね) これを防ぐには、リクエストデータがサイト外からきているかどうかを判定する(=リクエストがサイト内から来ていることを判定する)ことが必要です
咳が流行ってますね。みなさまお気をつけを。でおなじみのかたやまです。 はじめに 株式会社サイブリッジさん主催の、第2回クラウド勉強会というイベントが開催されたので、参加してきました。(http://atnd.org/events/5767) 関係者の皆様、またご来場くださった皆様、ありがとうございました。 当日は青山のオラクルさんに会場をお借りして勉強会が行われましたが、あまりのビルの立派さに、普通にホテルかと思いました。 あと入り口にExadataの筐体があるので、皆さん見に行ったほうが良いと思います。 発表内容 今回はJAWS-UGの端くれとして参加しました。当日はid:yone098が風邪でダウンしてしまったため、私一人の発表となりました。yone098ファンの方すみませんでした。 内容として、本当は最近調べたAWSのJavaSDKについての説明やデモなどを行いたかったのですが、勉強
シンガポールに新しいEC2リージョンが出来たそうです。 http://aws.amazon.com/about-aws/whats-new/2010/04/29/announcing-asia-pacific-singapore-region/ AWS is excited to announce the launch of its first Asia Pacific Region in Singapore. Starting today, Asia Pacific-based businesses and global businesses with customers based in Asia can leverage AWS’s cloud infrastructure platform to build their businesses and run their applic
JSR315のJava Servlet3.0 Specificationがようやくファイナルリリースされ、昨年末から少しづつ仕様を読んでいます。 仕様書とAPI実装は以下のURLにあります。 http://jcp.org/aboutJava/communityprocess/final/jsr315/index.html アノテーション対応、非同期処理対応、プログラマブルなServlet/Listener/Filterの追加、あとはweb.xmlのフラグメント辺りが特徴的ですね。 まず気になるのは追加分 ServletAPI3.0では、新しいクラスやインターフェース、アノテーションが追加されているのは当然ながら、従来からあるクラス/インターフェースにもメソッドの追加があります。 どれが新しいのかぱっとわからなかったので、上記URLから実装を落として、SDLoaderに入れてコンパイラーに教
仕事の兼ね合いもありつつ、いつの間にかベータが取れていたので、Elastic Load Balancerを調べてみました。 Elastic Load Balancerとは いわゆるロードバランサーのサービス。Elastic Load Balancerに対して複数のEC2のインスタンスを紐つけることで、リクエストを各インスタンスに分散できます。 料金 US-EASTだと、1時間当たり$0.025。またデータ通信量が1GBあたり$0.008かかります。 例によって、EUやカリフォルニアは若干高いです($0.028/hour,0.008/GB) 使用方法 SOAPとRESTのAPIが用意されています。またAWS Management Consoleから操作することも可能になっています。 コンソールでは以下のような手順になります。 はじめに、コンソールのNavigationから「Load Bala
シーサーカンファレンスの時に、id:taediumさんに「俺、戦争が終わったらDomaのサンプル作るんだ」と宣言していたので、T2+Spring+Domaのサンプルを作成しました。 ソース SVNを使用する場合は、「http://t-2.googlecode.com/svn/trunk/samples/t2-spring-doma」からチェックアウトできます。 またアーカイブ形式のものは、「http://t-2.googlecode.com/files/t2-spring-doma-0.6.1-ga.zip」からダウンロードできます。 いずれもeclipseプロジェクト形式になっています。 eclipseを使用する場合は、eclipse3.5以上を使用してください。(domaのapt機能が3.5以上でないと動作しないため) ダウンロード後にリビルドして、bootstrap/samples/
皆既日食エンジョイしてますか? 早速写真がアップされているようなので、とりあえずeclipseのアレを作ってみました。 鹿児島県喜界島で撮影された写真です。 元ソースはこちら http://headlines.yahoo.co.jp/hl?a=20090722-00000009-maiall-soci.view-000
フルネスさんの会場をお借りして、知っ得納得Webフレームワークの第5回を開催しました。 参加していただいた皆様、ありがとうございました。また会場を貸して頂きまして、ありがとうございます。 今回はid:yone098さんがGoogle Guice2.0,私がAmazon EC2を発表しましたので、資料をアップしておきます。 AmazonEC2は資料が多くなってしまい、ちょっと時間超過してしまいましたが、デモも無事動いたので良かったです。 デモではインスタンス起動、EBSおよびElasticIPの割り当て、S3のエイリアス割り当てなどを行いましたが、結構簡単に使えるという印象は持って頂けたかと思います。 EC2はアプリ実行の本番環境としてはちょっとなぁ、という方も、例えば負荷テスト環境としてEC2を使ったり、コンテンツ配信の1部分だけをS3にしたりというような使い方はあるのかなと思っています。
Flexのアプリで入力したデータをPDFの帳票にして出したい!とか、「商品説明へ」のボタンを押したら別ウィンドウで自社サイトを表示したい!というようなシチュエーションて、結構あると思います。 ポップアップを出すには、AS2の場合は「getURL」関数、AS3の場合は「navigateToURL」を使用しますが、最近AS3でnavigateToURLを使ってみたところポップアップブロックが出てきてしまい、若干イラっとしたので、調査してみました。 ひとまずネットを検索して、いろいろと情報を入手しました。ここら辺を参考にしました。 http://d.hatena.ne.jp/os0x/20070812/1186941620 http://d.hatena.ne.jp/os0x/20080212/1202825631 http://www.adobe.com/cfusion/communityen
次のページ
このページを最初にブックマークしてみませんか?
『カタヤマンがプログラマチックに今日もコードアシスト』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く