国際的なプロジェクトの管理って・・・

10年ちょっと前に、手伝い的に関わったプロジェクトがある。カナダ発の技術を使ったサービスの実証実験だった。カナダ発だけど、拠点はアメリカにもあり、技術開発はカナダで、営業とシステム構築はアメリカが担当していたように記憶している。

私が担当したのは、電話会議(英語)でのメモ取り、簡単な通訳や翻訳等。技術的なことはほとんせず、プロジェクト管理に関しても大したことやっていないのに、アメリカ出張までさせてもらった。

そして、この会社の技術を使った実証実験の場所は東京ではなく、某地方都市だった。

実証実験サービス開始前のシステム構築のため、大勢(7名くらい)のエンジニアと営業担当者が1名がその某地方都市にやって来た。

東京でないだけに、いろんな問題が起こった。システムの不具合でもなく、言葉の壁でもなく、開発の遅れでもなく・・・。

  • 構築期間は1ヶ月くらいあり、その間、ホテル滞在だと大変、ということで、日本側の担当者がウィークリーマンションを紹介。先方には経費削減になると喜ばれたが、作業場所とそのウィークリーマンションが地理的に離れており、仕事の行き帰りにタクシーを呼ばなければならず、不便だった。
  • 問題にはならなかったが、プリペイド携帯や通信カード(当時PHS)の準備も数人分となると大変だった。
  • 作業場所での食べ終わった後の弁当の空き容器と食べ残しの分別。分別の文化は北米にはないらしく(当然か!?)、残飯の入った弁当容器をゴミ箱に捨て、掃除の人にすごい怒られた(らしい)。だから、私達は、誰が食べたかわからない弁当の残飯(エビチリがあったのを覚えている)を素手で”燃やすゴミ”に、弁当の空き容器を”燃えないゴミ”に分別。
  • クーラーかけすぎで、体調を崩し、途中で本国に帰ったエンジニアが一人。(ホテル滞在なら、こんなことにならなかったかも!?)
  • アメリカのATMカードが使えないと大騒ぎになった。(当時、ほとんどのATMカードは郵貯のATMで使えたが、あるエンジニアだけ、ATMでお金をおろすことができずなかった。) 結局、銀行に行って、クレジットカードか何かで、現金を手にすることができた。

でも、極めつけ、というか、一番苦労した思い出があるのは、ある一人のエンジニアが厳格なベジタリアンで、彼が食べられる食事を準備するのが大変だったことだ。

どんなレストランに行っても、魚は入っていないか、肉は入っていないか、逐一、確認したがる。例えば、ある中華料理屋で、野菜の具しか入っていないのを頼んだが、実はスープには肉が使われていた。それがわかったら、もう食べないと言う。毎日、彼に振り回されていた食事時間だった。日本では、完全なベジタリアン料理を食べるのは難しいんだと、気付かされた。

で、プロジェクト完了が近づいたある晩、打ち上げで、和風イタリアンぽい創作料理的なレストランで食事をした。ベジタリアンの彼の前に揚げ出し豆腐が出された。豆腐だから、もちろん、野菜。出汁にはたぶん、動物性のものが入っているけど、言わなきゃわからない。で、彼も自信たっぷりに食べた。

でも・・・、

実は、揚げ出し豆腐の上に、鰹節がたっぷりかかっていました。「これは何だ」と聞かれ、fish powderと言いたくなったけど、当然、黙っていた。もうこれ以上のトラブルはイヤだー、と思い。そして、私だけでなく、日本人もカナダ人もアメリカ人もみんなで魚ではない、と、嘘をついた。

今でも、時々、その嘘のことを思う。

プロジェクトのスムーズな推進のために、仕方なくついた嘘だ

本人にとっては、動物性のものを食べるかどうかは一大事だろうが、実際、肉を食べようと魚を食べようと死ぬことはない、と言う意味で、大したことはない。

そして、ベジタリアンの人にはベジタリアン料理を食べさせてあげたいと思う一方で、この経験以来、外国では食べ物のことでまわりを振り回してはいけない、出て来たものを喜んで食べよう、とも思うようになった。

先日、ある打合せでプロジェクト管理とは?という話になり、何て言うべきか困り、お客様の要件の把握、実装、納期の管理、なんて薄っぺらい答えをした。でも、プロジェクト管理の本質というのは、プロジェクトメンバー一人一人が気持ち良くプロジェクトを遂行できるよう、支援することかもしれない。そういう意味では、このプロジェクトでの一見雑用にしか見えなかったゴミの分別もタクシーの手配も、野菜しか入っていないと言ってついた嘘も、技術面、スケジュール面での管理と同様に重要なことなのかもしれない。

最後に、ベジタリアンの彼がよく言っていた言葉。(まだ確立されていない新しい技術を使ったプロジェクトだったから、ということもあり)

“Everyday is a learning process. ”

日々、勉強、それだけは本当にその通りだと思う。

 

サイバー攻撃に備える – パスワード管理

最近、サイバー攻撃として、メディアを賑わしている手法がある。

  • リスト型攻撃(リスト型アカウントハッキングとも言う)による不正ログイン
  • マン・イン・ザ・ブラウザによる銀行口座からの不正送金
  • 標的型攻撃による国家機密、個人情報などの漏洩  等々

標的型攻撃は、政府、官公庁などの公的な組織、民間企業をターゲットとしているものの、他のどれもが、我々一人一人の個人的な活動の中で、攻撃に遭遇し、直接的な金銭的被害を被る恐れがある。

でも、数年前は、システムの停止や混乱を目的とした、愉快犯と言うと言い過ぎだろうが、腕試し的なハッキング活動の方が多かったと思う。

ウィルスも、2000年に流行った「LOVELETTER」もしくは「I LOVE YOU」として知られるメールウィルスは、当時、世界中で4,500万台が感染したという。被害内容は、Outlookのアドレス帳に登録されたメールアドレスすべてに、自動的に自分の複製を送りつけ、特定の拡張子のファイルをハードディスクの中から探し出し、自分の複製を上書きすることで破壊したという。<参考: http://ja.wikipedia.org/wiki/LOVELETTER>

21世紀に入り、金銭的目的のサイバー攻撃が増えた。それに加え、最近では、ハクティビストと言い、社会的や政治的な目的のためにハッキング活動をするような攻撃も増えている。ハクティビストとしてはAnonymousと呼ばれる集団が有名である。

さて、本題に戻ろう。自分のPCがウィルスに感染しないようにするためには、アンチウィルスソフトで対策をして、かつ、怪しいメールの添付ファイルは開かないということでほぼ防ぐことができる。でも、それだけでは、攻撃への備えは十分ではない。

今年の6月に、ニコニコ動画やmixiへの不正ログインの問題が報道された。これは、リスト型アカウントハッキングまたはリスト型攻撃といって、他のサイト等から不正に入手したID(メールアドレス)とパスワードのリストを使って、攻撃者がニコニコ動画やmixiへ不正にログインを試みた。ログインができてしまうと、自分の登録情報(名前、住所、性別、生年月日、クレジットカード情報など)が閲覧され、それをもとに、なりすまし、金銭の盗難などの被害に遭ったり、新たな攻撃の対象になったりすることが考えられる。ニコニコ動画の場合、ポイントの不正使用という被害が実際に報告されている。

不正ログインの被害に遭わないためには、パスワードの使いまわしをしないことが鉄則と言える。これは、何年も前から言われていることである。(←なのに、ほとんどの人は使いまわししているのではないだろうか。)

普通の人が覚えられるパスワードの数は3つとか4つ、せいぜい、5つくらいまでと言われている。自分自身、覚えようと思えば、覚えられるのだろうけど、実際には、たぶん3つを使いまわしている。そして、「これはどのパスワードだっけ?」と忘れることもよくある。そして、重要なサイト(金銭がからむ、とか、仕事で重要、とか)については、パスワードをメモっている。

そして、今年の始めから、某社のパスワード管理をするソフトウェアをPCにインストールしている。登録したサイトのIDとパスワードを記憶しておいてくれて、各ブラウザにプラグインが入っていると、代理入力してくれるというソフトウェアである。便利は便利だが、もっと素晴らしいソリューションはないだろうか!?と日々、考えている。と言うのは、セキュリティレベルが上がっていると思えないから。だって、結局パスワード変更しないから。

企業向けであれば、弊社で取り扱っている、i-Sprint社のAccessMatrix USOであれば、社内で利用する各アプリケーションのIDとパスワードをデータベースに安全な形で記録し、そのアプリケーションを起動すると、USOクライアントと言うソフトウェアが検知し、自動的にIDとパスワードを代理入力する。また、パスワード変更画面にも対応しており、現在のパスワードが自動で代理入力されるから、新しいパスワードだけ入力すれば良く、かつ、この新しいパスワードもUSOが覚えていてくれる。そして、USO経由でログインしたログが残るから、誰がどのアプリケーションを利用したか簡単に確認できるようになる。

とは言っても、AccessMatrix USOを使うには、AccessMatrixu USOにログインする必要があり、この最初のログインのIDとパスワードは厳重に管理するとか、二要素認証を導入するとかの工夫は必要だろう。

最後に、パスワード管理だけではサイバー攻撃に備えることはできない。ただ、個人ユーザーとしても、企業ユーザーとしても、比較的簡単に実施することができるという意味では是非対応すべきだと思う。私自身も、パスワード管理ソフトを使って満足するだけでなく、パスワードメモ帳の整理・管理に加え、各サイトで同じパスワードを使わないことと、定期的なパスワードの変更を実施しようと思う。

<参考> 2014年版 情報セキュリティ10大脅威(IPA)

  1. 標的型メールを用いた組織へのスパイ・諜報活動
  2. 不正ログイン・不正利用
  3. ウェブサイトの改ざん
  4. ウェブサービスからのユーザー情報の漏洩
  5. オンラインバンキングからの不正送金
  6. 悪意あるスマートフォンアプリ
  7. SNSへの軽率な情報公開
  8. 紛失や設定不備による情報漏えい
  9. ウィルスを使った詐欺・恐喝
  10. サービス妨害

 

jpaについてInsetとSelectについて調べてみました。

Java eeとかJSFとかについて調べてみるとデータベースにアクセスするためのJPAという技術を使っているようです。

java ee, JSFの簡単なチュートリアルから始めてみました。

実際に試してみるとコードをほとんど書くことなく、データベースの一覧の表示からデータの投入ができるので本当にびっくりしました。

ただ、JPAではSQL文をそのまま使うのではなくjpqlで書くようです。

ちょっとネットで役に立ちそうなページを探してみました。

Using Java Persistence API for Java SE 7 Desktop applications in NetBeans 7

JPQLでのデータベースの参照および更新方法

ここで一番目のページからソースをとってきて2番めのページに書いてあることを試してみました。

試して作ったコード

Netbeans 8であれば動作すると思います。一番目のページを元にDerbyでデータベースを作成したあと試してみてください。

InsertについてはCreatePlayers.javaを実行すれば新しいデータを追加します。

情報の検索についてはselectPlayers.javaを実行すればSelectを使用できます。

まず試してみたのは、IDを元にデータを取る方法です。selectPlayers.javaでは以下のように書きました。

        Query q = em.createNamedQuery("Player.findById").setParameter("id", 1);

        Player p2 = (Player) q.getSingleResult();

        System.out.println(p2.getFirstname());
        System.out.println(p2.getId());
        System.out.println(p2.getLastname());

クエリーの指定は “Player.findById”にしていますが、これは自分で作ったものではなく、Netbeansで「データベースからのエンティティクラス」により新規作成した時に生成されたものになります。

@NamedQueries({
    @NamedQuery(name = "Player.findAll", query = "SELECT p FROM Player p"),
    @NamedQuery(name = "Player.findById", query = "SELECT p FROM Player p WHERE p.id = :id"),
    @NamedQuery(name = "Player.findByLastname", query = "SELECT p FROM Player p WHERE p.lastname = :lastname"),
    @NamedQuery(name = "Player.findByFirstname", query = "SELECT p FROM Player p WHERE p.firstname = :firstname"),
    @NamedQuery(name = "Player.findByJerseynumber", query = "SELECT p FROM Player p WHERE p.jerseynumber = :jerseynumber"),
    @NamedQuery(name = "Player.findByLastspokenwords", query = "SELECT p FROM Player p WHERE p.lastspokenwords = :lastspokenwords")})

ここで生成されたものから、必要に応じて利用しています。ここでjpql文については自分で作成することもできるのでJoinしたものやLikeなどを使用したものを利用できるみたいです。これについてはまた改めて調べてみたいと思います。

ここでidによる検索を選択し、IDをsetParameterで指定することで検索します。IDはユニークなキーなのでgetSingleResult()を指定しました。

複数の結果が出てくる場合にはこのような方法ではなくListでデータが渡されるようなのでまた違う方法が必要になります。

selectPlayers.javaでは以下のように書きました。

        Query q2 = em.createNamedQuery("Player.findAll");
        List results = q2.getResultList();
        if (!results.isEmpty()) {
            Iterator itr = results.iterator();
            while (itr.hasNext()) {
                Player p3 = (Player) itr.next();
                System.out.print("ID:" + p3.getId());
                System.out.print("   NAME:" + p3.getFirstname() +":" + p3.getLastname());
                System.out.println();
            }
        } else {
            System.out.println("There is no any record.");
        }

getSingleResult()の代わりにgetResultList()を使用しています。またデータの方がlistなのでIteratorを利用して複数のデータを処理しています。

他にも方法があれば調べてみたいと思います。

あとはUpdateと複雑な検索について調べてみたらまたアップしたいと思っています。

java ee ログインでのユーザー名の表示とログアウトさせる方法について

ユーザーログインを必要とするサイトを作るときにJava EEだと比較的に簡単に作れると思います。

Java eeでユーザー認証の機能を試してみました。

java ee でユーザー認証をderbyを使って行ってみる

これらのサンプルを試してみて、疑問に思うことがありました。

  • ユーザー名の表示はどうするのだろう。
  • ログアウトする方法

jsp /Servletで作った時はユーザー名は変数に割り当てていまししたし、ログイン状況の確認はクッキーを使用していたので特に何も考えなくても問題はありませんでした。

java eeの場合、ある程度その辺りについては部品化されているので、それを行うのにはコードが用意されているようです。

jspの場合

Java eeでユーザー認証の機能を試してみました。」を試してみるとadminでログインをした後にuserにログインし直したい場合、ブラウザーを閉じるなどしないとログインしなおせませんでした。

また、ロールごとに表示させるページを指定するのはweb.xmlでできるのですが、ユーザーごとに表示させる内容を変えたい場合にはユーザー名をシステム側で認識する必要があります。

ユーザー名を表すもの

私が試したのは

  • request.getRemoteUser()
  • request.getUserPrincipal().toString()

で、どちらもユーザー名が表示させることが出来ました。

HttpServletRequestを利用しているようですがjspの場合だと、明示的にインポートしなくてもそのまま利用できました。

ログアウトの方法

ログイン状態の管理はクッキーか、ローカルに何か情報を持っているのかとChromeで調べてみましたが、見つかりませんでした。

インターネットで調べてみたところ、

  • session.invalidate();

を実行することで、ログアウトはできるようになるようです。

セッションで管理していてセッションごと無効にすることで対応するみたいです。

JSFの場合

java ee でユーザー認証をderbyを使って行ってみる」の場合、JSFで作成されています。ユーザー名を調べる場合には

ログインユーザ名:<h:outputLabel value=”#{request.userPrincipal.name}”/>

とすることでユーザー名が表示されます。

このチュートリアルではログアウトでは、「<h:commandButton value=”ログアウト” action=”#{indexPage.logout()}”/>」で実現しています。このIndexPage.javaのlogout関数では

    public String logout() {
        ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
        externalContext.invalidateSession();
        HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
        try {
            request.logout();
        } catch (ServletException ex) {
            Logger.getLogger(IndexPage.class.getName()).log(Level.SEVERE, null, ex);
        }
        // return "index.xhtml?faces-redirect=true";
        return "/faces/login/index.xhtml?faces-redirect=true";
    }

コードを読んでいくとJSPと同様にセッションを無効にしたあと、HttpServletRequestにはlogoutという関数を実行しているようです。

jspでもこの関数が使えるか試してみました。

<% session.invalidate();%>の代わりに<% request.logout(); %>を入れてみたところ想定通りに動きました。

まとめ

Java EEだとログインとそれに伴うログイン管理は入っているので開発は楽だなと思いました。

これらの情報は自分にとってはまとめられているようにも見えないのでちょっとずつ自分でも調べていきたいと思います。

関連リンク

glassfish – How can I get j_username on my index.jsp after successful authentication with j_security_check? – Stack Overflow

java – How to get login attributes from a servlet/jsp – Stack Overflow

How do I log out of an application that uses Form authentication? – Web Tutorials – avajava.com

外資系企業(IT業界)との付き合い方

外資系企業の日本法人との付き合い方が難しいのは、おそらく、

  • 本社の意向に振り回されやすい
  • 本社の製品の開発計画や技術情報など入手しにくい
  • 日本独自のニーズを理解してもらいにくい
  • 売上目標を到達しない状態が続くとクビになる → 営業の離職率が高い

といったあたりだろうか。

買収企業との付き合い方の話にも通じるところがあるが、日本法人が絡むより、海外の企業と直接取引する方が、何かとビジネスがスムーズだ。理由としては、外資系のIT企業の多くの日本法人は、結局のところ営業拠点でしかなく、決定権がそれほどないということが挙げられる。

つまり、外資系企業の本社と直接コミュニケーションを取ることができれば、双方、情報がスムーズに行き来し、こちらの要望も理解され、相手側の事情もよく理解できる。それがその間に日本法人が入ってしまうと・・・、もう一社増えることにより、伝言ゲームの参加者がもう一人増えるような状態になることもある。

当然、いいこともある。例えば、日本と海外の違いを吸収し、双方の言い分をよりソフトに”翻訳”し、トラブルにならないよう円滑に進めてくれることもあるだろう。

結構残念なのは、製品開発計画や、技術情報のやり取りだ。日本法人はいろいろとある製品を網羅して担当しなければならないから、ある製品のスペシャリストがいなかったりする。そうすると、長く代理店をやっている会社の技術者の方がその製品に関して言えば、歴史を含め、理解が深い。日本法人経由で情報をもらっていると、なんだか、だまされているような、十分な情報が来ていないような気になることがある。

販売後の技術サポートでも、本社のサポートに聞けば、すぐに解決することが、日本のサポートに聞くと、まず発生している問題について日本のサポートが理解するのに2-3日かかり、それから、本社側にエスカレートされるというようなことがあった。つまり、日本法人を経由するだけで、2-3日無駄な時間を過ごしてしまったということになる。

それ以外に残念なのは、日本法人の営業担当者をお客さんに紹介して、その後、すぐに直接コンタクトされることだ。そんな非常識な人はあまりいないけど、営業へのプレッシャーがきついという某社は、アカウント営業も製品担当の営業も、そういうことを平気でする人達がいて(多数派ではない)、本当にがっかりだった。

ところで話が反れるが、外資系企業との付き合い方も難しいが、日本の企業の情報システム部門との付き合い方もなかなか難しい。(特にストレート&ダイレクトにものを言いたい私には)

一つの理由はカスタマイズに関する考え方が日本と海外では大きく異なるからだとよく言われる。我々が販売しているソフトウェアは、所謂パッケージ製品と言って、購入してインストールして設定すれば、使える。新たに何かプログラミングすることがない。ただし、そのままでは、もしかすると業務にぴったりしないかもしれないから、使い方を工夫してもらったり、企業側のルールなどシステム以外のところで対応してもらう。これを運用で逃げる、などと言う。現実的で賢いお客様は大体対応してくれる。それが、どうしても、現時点での運用方法を変えたくないというお客様は製品をカスタマイズする。すると製品本体の数倍もするカスタマイズ費用がかかったりする・・・。そして、時には、パッケージ製品を買わずに、自分達の会社向けにシステムをゼロから開発する方が安くなり、それを選択する場合もあるらしい。そのあたり、海外とは大分違うと、日々実感する。

そんな日本と海外との違いをうまく説明して、吸収してくれるような営業&技術が必要だけど、案外足りないのが現実だと思う。

そして、現実的に、外資系企業とのビジネスで私が心がけているのは、

  • 技術情報等は積極的に入手する努力をする。
  • お客様への同行訪問はお願いしない。(直接コンタクトされないよう)
  • 本社側への交渉が難しそうな場合は、交渉手順というか、ロジックまで考えて、日本法人の担当者に依頼する。
  • 本社側の人(例えばプロダクトマネージャー、サポート担当者)を紹介してもらえる時は、紹介してもらう。

といったところか。

Benodet

 

 

 

java ee, JSFの簡単なチュートリアルから始めてみました。

Java eeでユーザー認証の機能を試してみました。」と「java ee でユーザー認証をderbyを使って行ってみる」でJava eeでできる認証について調べてみましたが、そもそも基本がわかっていないので、細かいところがわかりませんでした。

最初は「Java EE 7 入門 〜 NetBeansで始めるJavaEE7 First Tutorial #javaee7 #jjug #j…」をみてやったのですが、色々盛り込み過ぎていて理解しきれなかったのと、コードを見ながら書いたのですが、どこかで間違ったのか正常に動かなかったので、githubにあるソースを使い検証しました。jsf でのデータベースアクセスとwebsocketを利用したものでチュートリアルとしては素晴らしい物でした。

けど簡単なところから始めよう。

続きを読む java ee, JSFの簡単なチュートリアルから始めてみました。

java ee でユーザー認証をderbyを使って行ってみる

この前書いた記事ではglassfishにあるfile realmを利用してのログインを検証しました。fileベースなのでユーザーが増えた時や、利用者がパスワードを変更したい時などは何かと運用が難しいと思いました。

そこでjava ee でDerbyを利用したユーザー認証の例があるか検索したところ簡単に見つかりました。

たかがレルムされどレルム GlassFish で始める詳細 JDBC レルム | 寺田 佳央 – Yoshio Terada

またgithubなどでコードもあるので利用しました。

結果から言うと無事に動きました。以前、「エンタープライズシングルサインオン USO」の動作を説明するために動画を作ったのですが、その際にはJSP + Derbyで認証システムを構築しました。

デモ用なのでパスワードの暗号化などは行っていませんが、データベースと接続するための仕組みや、パスワードの変更などはDerbyと接続してSQL文で命令を作りました。

その時と比較するとJSFとかmavenとかの機能を利用したことは殆どなかったのですが結構簡単にできるのかなと思いました。

このチュートリアルで迷ったところ

とりあえずチュートリアルを作った時期にはNetbeans 8ではなかったので動作環境が違うからなのかちょっと変更した部分がありました。

うえの動画の認証の仕組みはとりあえずSQL文を直接実行する形になっているのでサーバー側の設定は必要がありませんでしたが、こちらのチュートリアルのP.29ではデータベースとの接続には接続「jdbc/__default」をしていたのですが私の環境ではなぜかうまくいかなかったのでデーターソースを作りなおしました。

20140521-s01

チュートリアル通りにしようと思うと上の画面が出てくました。そこでNetbeans データ・ソースを指定するとき「新しいデータ・ソース」を選択することで解消しました。

20140521-s02

ここから実際のデータ・ソースを選択してください。20140521-s03

ここで設定した内容についてはGlassFishの管理コンソールで簡単に確認できるかと思います。Web管理コンソールはNetbeansから起動できるのですがhttp://localhost:4848/にアクセスすれば利用できます。

そこで、左側のメニューから リソース→JDBCリソース、JDBC接続プールで確認できます。

なぜ上のようなエラーが表示されたのかはわかりませんが、今度またしらべて見たいと思います。

もう一つはp.94あたりで権限がないユーザーがアクセスした時に通常であれば403エラーが表示されるのですが、それは利用者にとってわからないのでそのエラーページ用のページを作成しています。

私が試してみたところ、このページが表示された時でも権限のないユーザーとしてはログインしているのでログインページに戻ってもこのページにアクセスすることになります。

そこで、このページが表示された時にログオフすることが必要だと思いました。

error-403.xhtmlに「<h:commandButton value=”ログアウト” action=”#{indexPage.logout()}”/>」を追加し、ログオフボタンを表示させました。

この場合、ボタンを押したらログオフができるのですが、ページが見つからないとエラーが出たので「IndexPage.java」のlogout()関数を調べると、「return “index.xhtml?faces-redirect=true”;」とありましたが、error-403.xhtmlがあるディレクトリーにindex.xhtmlがないのでエラーになるはずです。そこで「return “/faces/login/index.xhtml?faces-redirect=true”;」 としたところ期待した動きになりました。

チュートリアルでわかったこと

JSPとサーブレットだけでゴリゴリ書けば同じことができるのはわかっていたのですが、これほど高度なことをつくろうと思うと結構な手間がかかるような気がします。

ログインのパスワードもパスワードを生で入れているわけではなくハッシュで対応し、パスワードの検証ができるのは結構驚きました。

このチュートリアルでJSFやmavenなどに触れてみましたが、やはりいろいろなことをするのであればこのような技術について勉強したほうがいいなと思った次第です。

このチュートリアルでは認証だけでなくデーターベースへの追加の方法なども書いてあるのでコードを見てみて勉強してみたいと思いました。

 

Java eeでユーザー認証の機能を試してみました。

仕事柄「AccessMatrix USO」を扱っているのでユーザー認証の仕組みの作り方は知っているのですが、GlassFishでJava eeで比較的簡単にユーザー認証の仕組みが作れるようなので試してみました。

とりあえず認証ができたらということで「Securing a Web Application in NetBeans IDE」を参考にしてみました。

環境は、Netbeans 8.0/ GlassFish 4/ JDK 1.8.5で行いました。 続きを読む Java eeでユーザー認証の機能を試してみました。

#偽2ch騒動 西村博之はどこまで2chに依存しているのか考察してみる。(確認編

西村はネットで2ちゃんねるがなくてもそれ以外にもすることがあるとネットで語っています。

雑 談 専 用 ス ッ ド レ ★ 24
(http://sweet.2ch.sc/test/read.cgi/patisserie/1398291398/)

156 名前:ひろゆき@どうやら管理人 ★:2014/04/24(木) 15:14:26.43 ???
削除人を専業の人にするのが良くないって話もそうなんだけど、
2chの作業しか出来ない人って人として駄目だと思うんですよね。

157 名前:ひろゆき@どうやら管理人 ★:2014/04/24(木) 15:15:39.14 ???
おいらは、ニコ動にかかわってみたりとか、
ブラジルは、検索エンジン作ってたり、ガジェット通信やってたりとか、
社会といろんな接点を持っていたりとか、
2chが無くても困らないようになってたりするわけですよ。

311 名前:名無しさん:2014/04/24(木) 16:27:11.51 LUfIm1Slq
>>156-157
西村博之は長期にわたって2chを放ったらかしてたのに、
2chの作業すらできてなかったね

薬違法板の件は依頼メールを放置してたからああなったわけだと思うし、
scみたいな本来不要なものを作る羽目になったのも、
抜け道みたいな邪道なことばかりやってたからかなと

んで、2chが無くても困らないと言いつつ、急に権利がどうこうとか主張してておかしな話だ
個人にしろ企業にしろ、無くなったら困るから裁判どうこう言ってるんだろうに
確かに権利はあるのかもしれないけど、
あまりにも2ちゃん住民を軽視しすぎてる気がするわ

ここで冷静にじゃなんで「急に権利がどうこうとか主張してておかしな話だ」と返されています。ここまで検証しているのと同様西村はいつもの様に質問者が求めている回答には程遠い回答をします。

335 名前:ひろゆき@どうやら管理人 ★:2014/04/24(木) 16:32:03.31 ??? ?S★(1144903)
>>311
依頼メールって実際に存在したんですか?
削除の窓口も複数あって、警察の人も知ってたのに、
誰一人、そのメールは見てないんですよね。

引用;省略

質問者に一番の疑問はなぜ今になって権利を主張するのだということだと思うのですが、実際にあったであろう事柄についてのみ回答しています。

西村は常に回答に困ると話をはぐらかしますが、はぐらかすということは逆に彼が触れてほしくないところについて質問しているとも取れます。

2ちゃんねる以外にも仕事はあるが、2ちゃんねるは重要なパートであるからこそ、今になって権利を主張しているのだろうと考えています。

今回の騒動で西村が失う収益の確認

続きを読む #偽2ch騒動 西村博之はどこまで2chに依存しているのか考察してみる。(確認編

wordpressのGoogle XML Sitemaps プラグインの設定をちょっとだけ変えました。

当ブログはご覧になって分かる通りwordpressを利用しています。

ブログで記事を上げるたびに、httpdとmysqlがメモリーを食いつぶした結果最終的にはhttpd/ mysqlが自動的に再起動になっていましたが、その再起動がかかるまで1時間ほどダウンタイムがありました。

詳細については検証していないので理由までは突き止めていないですがタイミングがブログを書いて「公開」ボタンをクリックしたタイミングで発生していたことから、そのタイミングで実行される「Google XML Sitemaps」がおかしいのではないかと思い設定を変更しました。

ログをみるとメモリーを食いつぶして、処理が終わらず永久ループになっていたのでメモリーと実行時間の長さを指定できる項目があるのを確認したので設定を追加しました。

20140518-xml-sitemap-config

とりあえずメモリーの上限を16Mにして実行時間を10秒にして試したところハングアップはしませんでした。

とりあえずこれでしばらく試してみたいと思います。この設定でしばらく立って良かったらまた報告したいと思います。

アイディネットワークス株式会社 技術検証メモ

%d人のブロガーが「いいね」をつけました。