読者です 読者をやめる 読者になる 読者になる

山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

ポジティブな書き込みだけを抽出する

オイシックスのサイトでは商品の感想を書き込むことができます。地味な機能ですが創業からずっと今でも社内では重宝されています。お客様のニーズや不満がよくわかるからです。ここに書き込まれた内容はstaffというメーリングリストに即座に流れます。通称「…

PCセキュリティ対策

先日イベントに行っていろいろな会社さんとセキュリティ対策について話し合ってきました。主に標的型攻撃対策どうするかということです。うちも大きくなってきたと思いますが大企業さんとはいろいろ違うなと思いました。大企業さんはいろんな先進的なツール…

ロシア人と面接しました

初ロシア人です。どこか日本語がロシア語っぽい響きでした。冬は、日本のほうが寒いそうです。新しい発見です。

iPhoneアプリの通信データを調べる

私はダイエットのために体重を毎日アプリに記録しています。気づいたらもう3年もやっています。アプリで昔のデータも参照できますが今までで一番少なかった体重を調べるにはひたすら何回もタップして全部のデータを見ていかないといけません。ここはデータを…

削除フラグ

削除フラグってアンチパターンだったのですね。 SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 from Takuto Wada www.slideshare.net オイシックスではもろに使っています。大して深く考えず盲目的にやってました。言われてみれば昔ながらのSIerの…

JavaScriptでスコープを限定する方法

JavaScriptだと変数がグローバル変数なのでライブラリを使ったり提供したりするときに変数名がバッティングしそうで困るなあと思っていました。Javaだとパッケージで区切られていてそれもかぶらないように命名規則が決まっています。持っているドメイン名を…

JavaScript研修2回目

本日2回目を実施しました。今日はそんなに難しくなさそうでした。関数が一番複雑で難しいようですね。確かにこっちに飛んであっちに飛んでややこしいですからね。こちらはすっかり脳が慣れているので瞬時に頭のなかでコンピュータが動いているということに改…

オンライン学習

オンライン学習といってもネットでやるお勉強のことではありません。機械学習の手法です。 参考サイトビッグデータ時代の機械学習アルゴリズム:オンライン学習www.nttdata.comなるほど。 機械学習の典型的な例だと迷惑メールフィルターがあります。それで考…

福岡行ってきました

出張で福岡行ってきました。台風がすごかったです。飛行機は過ぎた後だったのでちゃんと飛びましたが福岡に近くなると結構揺れてました。着いたら電車が途中までしか動いておらず。急遽レンタカーしました。通過して結構経っていたのですが風も強く台風が残…

第1回JavaScript研修

先ほどデザイナーにJavaScript研修をやってみました。参加された方お疲れ様でした。予想通り結構難しそうでした。if、forあたりはまだ大丈夫でしたが関数から急に複雑になったという声がありました。そうなんですね。関数のreturnをどういうときに使うかわか…

Android UI Automatorを試してみました

AndroidのUI AutomatorはGoogleが提供する自動テストツールです。Androidのテストは単体レベルはJUnit、単一ActivityのテストはEspresso2もしくはRobolectric、そして一連の画面遷移を通しでテストするのはUI Automatorが向いています。webでのSeleniumに相…

トラブル再発防止

私はシステム部門の責任者ですが執行役員の役割として会社全体のトラブル再発防止も担当しています。トラブルの再発防止は奥が深いです。1回起こったトラブルは2度と起こさないようにできるとトラブルが少ない状態を維持できるので業績アップの活動に集中で…

SQLite tips

tracのレポートを作るのにいろいろ調べたこと。カウントして率を出したい場合はreal型にキャストする必要があります。 round(cast(sum(c.value) as real)/cast(count(id) as real),4)*100 さらにパーセントの文字をくっつけたい場合はtextにキャストしなけれ…

デザイン盗作とSTAP細胞

最近デザインの盗作疑惑が話題ですね。1つ思い出したのが一連のSTAP細胞問題です。両者に共通しているのはコピペと加工ということです。最近は論文もコピペして組み合わせて作るのでそれを防止するのが大変とかニュースで言っていました。これを頭ごなしに手…

Androidの変数名のm

Androidのプログラムの変数名はmで始まるものをよく見かけます。このmは一体何なんでしょうか。調べてみると元ネタはこちらのようです。 Code Style Guidelines for Contributors | Android Open Source Project 本家Googleが推奨しているコードの書き方なの…

Javaのenumのメリット

Javaには列挙型というものがあります。 enum Color { RED, BLUE, YELLOW } といったふうに宣言してColor.REDというふうに使うことができます。赤は1,青は2,黃は3というふうにルールづけだけでコードを書くと、何番が何色だっけ?といつも考えないといけない…

Macのテキストエディタ

Macのテキストエディタって何がいいんでしょうね。標準のテキストエディットは純粋なテキストエディタでなく書式もばりばり使えたりしてワードみたいです。そういうのでなく純粋なテキストエディタがいいのです。試しに使ったのはMacVim。viは多少慣れている…

今更ながらjQuery

デザイナーに教えるために改めてjQuery勉強していますが面白いですね。eqという何個目の要素か指定するフィルタや、属性をワイルドカードでマッチできるattr*=なんてのもあるんですね。これはjQueryというよりCSSセレクタの仕様でしょうか。アニメーションも…

Androidテストの記事

よくまとまってます。Androidオールスターズでテストの話をしましたblog.recruit-tech.co.jp 特にリンク先にテスト関連ツールがたくさん紹介されています。しかしあんまりありすぎてもうんざりしますね。JUnit、Robolectric、Espresso2、mockito、UI Automat…

ユーザビリティテスト

今日はユーザビリティテストがありました。UXを担当するチームが今年度からできて定期的にユーザビリティテストをしてくれています。最近システム部門や商品開発部門も呼んでもらっています。本物のお客様に来て頂いて注文をしてもらいます。その様子をみん…

外からスマホでクーラーをつける

夏真っ盛りですね。猛暑が新記録です。暑いです。私の家は熱がこもりやすく毎日帰るとサウナ状態です。さすがにかなわないので暑さ対策を始めました。まず温度計を導入しました。帰宅後、夜なのに34度を超えています。そこからクーラーをつけてもなかなか室…

「一人でシステムを全部作った」の詳細

時々私は一人でオイシックスのシステムを全部作った人として紹介されることがあります。ぶっちゃけていうと誇張です。まあ話しとしてはそういうことにしておいたほうが面白いし否定してもつまらなくなるのでそういうことにしていますが実際のところはいろい…

誕生日プレゼント

毎年誕生日が来るのが怖いです。今年は特に怖かったです。できればなかったことにしたいくらいです。しかし現実は現実。受け入れなければなりません。 さて今日はシステム部のみなさんからプレゼントをもらいました。ヘルシープログラマ ―プログラミングを楽…

オイシックス内でbacklogが流行っています

Backlog - Backlog [バックログ]www.backlog.jp プロジェクト管理ツールですね。tracやredmineの類だと思えばよいと思います。これがオイシックス内で流行っています。いろんなプロジェクトでこれが使われています。システム開発以外もそうですし利用者もエ…

あらゆる仕事を楽しむ

昨日の話と似た話です。あらゆる仕事はスキルアップにつなげられますが、楽しむこともできます。弊社社長の本、ライフイズベジタブルの中で、取引先が倒産するエピソードがあります。そのあと毎日徹夜で出荷作業をやることになります。非常に精神的にも肉体…

あらゆる仕事をスキルアップにつなげる

さて先日書いたようにめんどくさい仕事でも必要で大事な仕事です。やらないといけません。そうは言ってもいつも同じルーチンの繰り返しばかりだと自分のスキルは上がっていきません。こんなスキルをつけたいと思っていても都合よくそういう仕事がアサインさ…

Amazon Aurora

AmazonがMySQL互換のRDBMSをリリースしたようです。Amazon謹製RDBMS「Amazon Aurora」がリリースされました!!! | Developers.IOdev.classmethod.jp脱Oracleにいいかもしれないと思いつつ、Amazonは前障害があったので若干不信感もありどうかなという感じ…

仕事に優劣はない

なんか作り話くさい掃除のおばちゃんの話がfacebookに流れていましたが。いい話ではありますがある意味事実だと思います。エンジニアの業界でもなんか仕事の内容に優劣をつける風潮があるのがどうも解せません。SIerなんかだと上流工程こそが大事な仕事でコ…

ゴール

一難去ってまた一難。トラブルを解決したと思ってもまた次のトラブルが襲いかかってきます。トラブルではないですがある課題についていろいろ策を講じて改善します。しばらくは改善できたと思っていてもたいがいまたさらにレベルの高いことを要求されること…

OracleからMariaDBにレプリケーションしたい

今度移行するIDCFのクラウドでは大きな誤算がありました。参照用のOracleのライセンスをそのままだと大量に追加購入しなければなりません。なぜならvmwareで動作している場合物理のCPU数分だけライセンスを購入しなければならないからだそうです。そんな馬鹿…

マイクロサービスとSOA

マイクロサービスを調べているとなつかしのSOAと比較する記事がよく出てきますね。まあ似ているといえば似ていますがイメージが全然違うので私には思いもよりませんでした。共通しているところ。複数システムをHTTPベースの仕組みでつなぐというところ。私の…

仕事環境の変え方

仕事の環境は与えられるものでなく自分で作るものです。そんなの当然だという方も多いでしょう。でもそうでない人も結構いると思います。そういう人は仕事環境の変え方がわかっていないのかもしれません。自分の立場ではできないと思い込んでいるかもしれま…

プログラムが作れるデザイナー

プログラムが作れるデザイナーってたまにいますよね。そういう人がいたらすごい戦力になりそうだと思い、うちのデザイナー陣と話をしました。プログラムが作れたらどういういいことがありそうか、とか、作れるようになりたいか、とか、今はどれくらいできる…

UATのやり方

システム開発をするときは開発するエンジニアでテストしてそのあとエンジニアでないユーザーがUATを行います。単体テスト、結合テストなどは方法論が結構あってホワイトボックステストだとか条件分岐網羅とか限界値分割とかカバレッジとかあります。しかしUA…

import static

最近のJavaのマイクロフレームワークを見てみました。SparkとかNinjaとかJavaliteとかいくつかあります。それを見て思ったのですがimport staticって結構いいです。mockitoなんかもそうですし最近のライブラリ系はimport staticで使うものが多いと思います。…

GitBucketサーバー移行事例

Android開発でGitBucketを使い始めています。とりあえず適当なサーバーにインストールしてしまったのでちゃんとしたサーバーを用意してもらいました。新しいサーバーに移行するわけですが、基本Gitは分散リポジトリなので移行にあたってはコピーするだけでい…

JavaでMemcachedを使う意味

今までJavaではMemcachedいらない派でしたがやっぱりいろいろメリットが見えてきたので使う価値があるかもと思えてきました。PHPだとキャッシュの仕組みが作りづらいので(多分)必要性が明確でした。Javaだとstatic変数にHashMapを使えば簡単にできるのでわざ…

レインコートと天丼持ち帰りの共通点

これが分かった人はものすごい洞察力の持ち主か、ネットニュースをよく見てる人だと思います。 レインコート大売れ 梅雨だから、だけじゃない理由とは:朝日新聞デジタル 「異常に持ち帰りが多くなった」天丼店の真実 | オリジナル | 東洋経済オンラインtoyoke…

今日の記事

エンジニア35才定年説に挑戦するwww.fringe81.comこれ面白いですね。うちも同じようにしてみましょうか。エンジニアの仕事は実はコーディングは一部にすぎず多岐にわたっています。マネジメント、管理、教育、他部署との調整、ドキュメント作成、運用保守、…

IoTではちみつ作り

こないだオイシックスのOBの紹介でIoTではちみつ作りをしている人にお会いしました。蜂の巣箱にセンサーを取り付けて温度と湿度を常時計っているそうです。温度が上がったり下がったりすると蜂の状態になんらか異常が発生しているので巣箱を開けて問題を解決…

リアクティブプログラミング検証

ループ処理しているところをRxJavaでストリームAPI的に書いたらどうよくなるか?を検証してみるために試しにやってみました。元コード for (String itemId: itemIds) { HashMap<String, String> hashMap = new HashMap<>(); Item item = DatabaseManager.getInstance().getIt</string,>…

家計簿アプリのセキュリティ

ちょっと話題になっていますね。私はマネーフォワード推しなので少しコメントしておきたいと思います。家計簿アプリに「銀行暗証番号」入力の例も 「セキュリティ上大丈夫なの?」の声www.j-cast.com 元ネタはこちらだと思われます。ツイナビ【話題】いやー…

トラブル対応は原因特定が第一

まさに今改めて重要性を体感しております。先週システムが重くなる障害が発生しました。原因をちゃんと調べず最近リリースしたものを戻してみても効果なし。インフラで変更したものも戻してみようかどうかという案も出ていました。どのように原因特定したか…

パパエンジニアが家事を覚えるためにすべき10の事

なんとなーくチームミーティングでLLを始めてみました。今日の発表は「パパエンジニアが家事を覚えるためにすべき10の事」笑(注・私が発表したわけではありません) エンジニアが家事を覚えるためにすべき10の事 from iwai-atsushi www.slideshare.net 前の発…

Hibernate3.2のNative Queryのメモリリーク続き

デバッガで追ってみました。 QueryParameterにListがある場合、キャッシュの中にあるかどうか検索するときにはListを分解したSQLで検索していますがキャッシュするときにはListを分解する前のSQLで追加しています。結果として常に存在確認するSQLはキャッシ…

Hibernate3.2のNative Queryのメモリリーク

どうもHibernate3.2のNative Queryはメモリリークするようです。Hibernate Community • View topic - Possible Memory Leakforum.hibernate.org High memory usage when using hibernatestackoverflow.com HibernateはエンティティだけでなくSQLもキャッシュ…

マイクロサービスを調べています

最近将来のシステム拡張も考えマイクロサービスを調べています。実際にオイシックスのシステムをどのように分割するといいのか考えています。現状ではあるシステム拡張をしようと思ったら全体を把握して改修箇所を洗い出し開発する必要があります。時間かか…

Jetty8でatomikos設定の補足

そもそも、なんでそんなへんちくりんなことをしているのか?という疑問をお持ちになるかもしれませんが、話すと長くなるいろいろな事情がありまして、いろいろなやり方の中でまあ一番ましかなという方法がこれだったということです。JTA使うならJavaEEサーバ…

エンジニアが働く環境としてのオイシックス

今日ふと流れてきたメールを見て思いました。エンジニアが働く環境としてオイシックスは結構いい環境なのではないかと。これはあまり意識していませんでした。なぜならシステム部門のリーダーである私が働く環境としてオイシックスはよいと思っているからで…

標的型攻撃

今日は標的型攻撃について考えてみました。最近では年金受給者の情報漏洩が問題になっています。標的型攻撃にもなると100%攻撃している人が悪いのですがなぜか攻撃された年金機構だけが叩かれています。大昔のうっかりサーバーの誰でも見えるところにファイ…