エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

Chocolateyで特定Versionのインストール

きっかけ

雑誌の環境用意するの面倒くさいから、よくchocolateyを使うのだが、バージョン合わせなかったために色々苦労した。。。

chocolateyでversion指定してインストールするやり方を覚えようと書くに至る。

環境

Windows 10 Chocolatey v0.10.10

やり方

choco install {packageName} -Version {Verison}

また、最近のchocolateyは、choco installcinst でやれるみたい。
上記のコマンドは、下記のコマンドと同義

cinst {packageName} -Version {Verison}

自分は、面倒くさいので、cinst 使いました。

参考サイト

Windowsでもパッケージ管理! Chocolateyの紹介 - Intelligent Technology's Technical Blog

Windowsにチョコ?うまい!!ChocolateyでWindowsのソフト管理が楽々 | Go-Nextブログ

最近気づいた恥ずかしい話 Javaのインスタンスメソッド参照

きっかけ

Javaは得意分野だけど、知らないことが合ったので、無知を減らすために晒す。
戒めの意味も込める。

導入

はい、タイトル通りでぇーす。
最近知りました。

static(クラス)メソッド参照、コンストラクタ参照は知ってましたが、普通のメソッドも参照できるとは思わなかった。。。。

サンプルコード

とりあえず、実験のため、コード書いてみる。

import java.util.stream.Stream;

public class Test {

    public static void main(String[] args) {
        Stream.of(1,2,3).map(MethodRed::new).forEach(MethodRed::exec);
    }

}

class MethodRed {

    private int target;
    public MethodRed(int target) {
        this.target = target;
    }

    public void exec() {
        System.out.println("test:" + target);
    }
}

やっていることは、Streamに 1~3 の数値を流して、それをもとにMethodRed を生成して、exec メソッド呼び出しているだけ。

こんな使い方できるんだなぁ~って最近知った。

念のため、実行した結果も確認

test:1
test:2
test:3

想定通り。

考察

本当は、stream内であんまり呼び出さないほうがいいのだろうと感じる。
状態が変わるようなら、別インスタンスでやったほうがいいですからね。。。
やる場合は、メソッドが状態を切り替えたりしないような実装とメソッド名にしておかないと、ソフトウェアとして成長する過程で、変な依存を生んでバクを作り出すような気がしました。

あと、これ知ったときは脳天を叩かれたくらいの衝撃が走りましたわ。。。
己の無知を恥じるばかりである。

ちなみに、知ったキッカケは、IntelliJ IDEAのヒント。
マジ、IntelliJ賢いな。
俺より賢い。

指示語が指すものを判別する その2

前回記事

suzaku-tec.hatenadiary.jp

今回、書くに至ったきっかけ

よくよく考えたら、同じ文でも指示語の対象があるな~と思い、ちょっと考えなした。

詳細

例えば、以下のケース

机の上に本があり、それは、母が読んでいたものだ。

前回の実装だと、前の文から探しにいくので、何も設定されない。
だが、この場合の それ は明らかに文章内にある を指している。

解決方法

まず、同一文内で、指示語より前にある主語があれば、それを適用するようにした。
倒置法だったらどうするのって思ったけど、その場合は、指示語を使えないハズなので、考慮の対象外にした。

問題点

上記の解決方法で全部なんとかなるだろうと思ったけど、上手くいかなかった。。。
なぜかと言うと、分単位で位置を特定しているため。。。。

もう少し詳しく説明する前に、ちょっと導入説明。
形態素解析には、kuromojiを使っているのだが、その解析単位は、分単位でしている。
下記を例にする。

企業は自動車やテレビや冷蔵庫など新らしい製品が次々と発売する。それらを買うためには古い製品を捨てなければならず捨てたものの大半がゴミになる。

この場合、文は、企業は自動車やテレビや冷蔵庫など新らしい製品が次々と発売する。それらを買うためには古い製品を捨てなければならず捨てたものの大半がゴミになる。 になる。
その文単位で形態素解析をしているため、形態素解析した結果のトークン情報の位置情報が、文ごとにリセットされている。
最初から、全部一緒に形態素解析すればいいじゃんって思ったけど、そうすると、段落毎の関係性の解析、文書間の関連性の解析が難しくなるのと、長文の場合、位置情報がオーバーフローすると感じたため。
kuromojiの位置情報は、int型なので。。。
今作っている文章解析のライブラリは、長文が前提にあるので、避けたかった。

長くなったが、そういう理由があって、分単位で解析していた。

結構、これに気づくのに時間がかかったわ。

解決方法

もう、どうしようもないので、全部位置情報でなんとかするのは諦めた。

問題は分割して解決するようにした。

どうしたかというと、まず、同一文章内で指示語がないかを、位置情報で解決するようにした。
それで見つからない場合、全文の主語をあてがうようにした。

今後の問題点

ある程度、思い描いたことができるようになってきた。

ただ、まだ動作がおかしい感じがするわ。。。
喋り言葉は、ほぼNGなんだよね。。。。
きちんとした文章なら、きちんと解析できるんだけど。。。
文章の正確さによって、解析結果があてにならなくなったりするのが辛い。。。
今後は、そこら編の精度を高める必要があると感じている。
もしかしたら、アプローチ変える必要があるかも知れない。

【書評】ITナビゲーター2018年版

ITナビゲーター2018年版

ITナビゲーター2018年版

目次

  • 第1章 2023年に向けてICT・メディア市場で何が起こるのか
  • 第2章 デバイス市場
  • 第3章 ネットワーク市場
  • 第4章 コンテンツ配信市場
  • 第5章 プラットフォーム市場
  • 第6章 xTech市場

まとめ

第1章 2023年に向けてICT・メディア市場で何が起こるのか

宇宙ビジネス

  • 地上系
  • 宇宙空間
  • 天体系

人工衛星のデータ活用やロケット製造・打ち上げは、政府主導から民間主導のビジネス展開の兆しあり。
宇宙ステーション活動、資源探査や人類移住は、まだ、政府主導状態。

半導体の性能向上、クラウドサービス普及による大容量データの保管・分析の容易化によって、衛生から得られたデータを売買するB2Bが主戦場。

今後は、低コスト・小型化に伴い、小型衛生で編隊して運用されることが主流になりそう。
そういった意味では、センシング機器をもつ企業が今後の宇宙ビジネスをリードする可能性が高い。

シェアリングエコノミー

資産の共有・共同利用
モノの市場は成熟期。
今後は、スキルのシェアが進みそう。

利用者は、依然として少ない。
抵抗感や不安感は、払拭できていない。
中国は、国家による規制で、シャアの概念はあまりない。

パーソナルデータ流通ビジネスの潮流

パーソナルデータの価値が高くなっている。

収集方法として、本人提供・第三者提供・観測がある。
それらをAIに読み込ませ、推測から行動パターンを得る方法が流行り。

現在は、パーソナルデータによるレコメンドで、思想誘導される危険性が指摘され始めた。
※中国とかやりそう。。。

パーソナルデータ保護の動きが、EUなどである。

第2章 デバイス市場

ビッグデータは、ゴミデータが多くデータあたりの価値が低い。
データを集めるデバイス側の知能を高める必要性が出てきた。

新デバイスに、ある程度の演算能力を求められている。

携帯電話

鈍化しているが、拡大中。
新興国がターゲットになっている。
一定層のガラケーユーザがいる。
アップル・サムスンが市場を占めている。しばらくはアップルが優位のまま推移しそう。
端末が高機能化しているため、部品分野で日本には商機がある。

4K・ネット接続可能テレビ/ストリーミングプレイヤー

4K・8Kは、今後拡大見込み。

ネットとの融合は利便性に難あり。
開発が追いついてない。
既得権益の打破がキーワードになるだろう。

VR

市場は、ほぼソニーのPSVR。
コンテンツの充実が課題。
※アダルトコンテンツがキーだと思う

音声エージェント

今後も拡大見込み。

技術的側面の課題が見えてきたところ。
センシングがネック。
普及させるには、アプリ開発が課題。
いかに開発者を囲い込めるかが成功に繋がりそう。

ドローン市場

主な用途は、農業の農薬散布がメイン。

今後、インフラ点検・保守への利用拡大が見込める。
ドローン輸送は、安全確保・現状業務との連携に課題が多い。

空撮は、規制があり、活用には難あり。
飛ばすことは簡単になったが、運用に課題がある。
解析・センシング技術が必要になってくる。

3Dプリンター

サンプル作成に使われ、開発に影響を与えていくと思われる。

第3章 ネットワーク市場

固定ブロードバンド回線

光ファイバーは成熟。
新規獲得は困難な状況。

モバイル・ワイヤレスブロードバンド

格安スマホへの移行が始まっている。
レッドオーシャン状態。
差異化を価格以外でする必要性が出てきている。

第4章 コンテンツ配信市場

ネット普及により、どうやってサービスを提供するかが課題になっている。
資金力のある企業は、コンテンツの独占化、人気コンテンツのリメイク、著名人の起用をして対応している。
※リメイクは失敗続きな気がするが。。。

ゲーム

Nintendo Switchが、人気ソフトの導入で伸びている。

ソフトウェア

日本と海外で嗜好が違っているのがネックになっている。
人気を得ることが、国内外で市場を得る一番の近道。

ソーシャルゲーム

一過性と言われていたが、安定した収益として見込めるようになった。

動画配信

スマホ普及により携帯端末の動画配信が増加した。

今後、コンテンツ製作するクリエイターや会社の奪い合いが起きそう。
日本だと、アニメ会社がターゲットになる。

音楽配信

日本は、CD売り上げが根強く残り、デジタル化が遅れている。
CDからの脱却が、市場を変えるキーになる。

放送・メディア

配信が多様化しているため、広告のメリットが薄くなっている。
他の収入を考える必要がある。

第5章 プラットフォーム市場

クラウドサービス・データセンター・法人ネットワーク

ITをビジネス基盤として捉え、協業を進めるケースが増えている。

情報セキュリティ

セキュリティ不足を補うため、クラウド移行がされている。
今後は、IoT機器への対策が急務になっている。

クラウドサービス活用KPI

クラウド利用を促進して、生産性革命・人材強化を政府が掲げている。

IoT

注目技術として、エッジコンピューティング、LPWA。
エッジコンピューティングは、処理速度・トラフィック最適化が目的。
LPWAは、規格が乱立してしまっている。
※成功事例出したところが勝ち逃げできそう

導入には消極的。
※みんな失敗したくないんだね。。。

ブロックチェーン

重要度は認識されているものの、活用事例が少ない。

コインチェックの事件があったので、幻滅期に入る可能性が高い。

活用するシーンを、適切に見極めて適用するのが今後の課題。

RPA(ロボティク・プロセス・オートメーション)

オフショアのコスト高騰が背景にある。

導入することで、定型業務の品質・効率・コスト定価を狙っている。

すべて自動化はできないので、適用箇所の見極めが大切。
AIによる状況判断が、RPAの普及を後押ししている。

第6章 xTech市場

金融

金融機関への不信感が市場を後押し

推し進めるには、メリットを実感してもらうことが大切。

小売

ネット販売が中心になっていきそう。
実店舗は、ショールーム化になりそう。

広告市場

広告単価を高めるためにどうするかが課題

食品

配達の最適化、食料廃棄の削減に利用されている。

教育

サービスは乱立ぎみ。
学習端末1人1台の流れがあるが、コスト面で進んでない。
セキュリティ、リテラシーの問題も残っている。

スポーツ

IoT機器によるデータ収集と公開で、視聴者に楽しんでもらう方向になっている。
状態の可視化、効率的なトレーニングが利用目的になっている。

人事

採用サイトでの導入や、クラウドに溜めたデータ分析・集計に利用されている。

農業

ドローンによる農薬散布、自動運転による運搬、センサーによる監視が主な用途。

ヘルスケア

セカンドオピニオンとして導入されるケースが多い。
高齢化による診断数増加が懸念されているため、効率的な診断にテクノロジーを活用する流れがある。

感想

やっぱり、規制がネックになってくる。。。
あと、IoTは、日本のお家芸だと思っているが、失敗を恐れるあまりチャレンジができてないように思われる。
ただ、その分、IoTはブルーオーシャンでもある。
こういうときこそ、大企業が打って出て、市場開拓すべきな気がする。

あとは、技術のところどころに中国を感じる。
中国の異様な生態系と拮抗していくには、やっぱり、規制が邪魔だよな。。。

岩盤規制の撤廃が、日本のテクノロジー発展に急務だと思う。

特に目新しい技術はなかった。
一番、世の中の流れできになったのは、クリエイターの囲い込みの流れだな。
AIが発展してきているから、やはり、人間にできることをしているひとが、今後、重宝されそうですね。。。
僕もクリエイターになろうかな?
イラストだったら描けそうな気がする。
ペンタブもってるから練習しよ。

IFTTTでSlackとTwitterを連携

きっかけ

ツイッターで情報収集しているけど、ツイッターだと高速で流れていくので、slackで溜めたほうがいいのではないかと思い、始めた。

IFTTT

slack単体でもできるけど、ハッシュタグの検索ができないので、利用した。
※本当はできるかもしれないが。。。

やり方

IFTTTのサイトにアクセスして、My Applet -> New Applet を押す。

そうすると、以下の画面が出てくるハズ。

f:id:suzaku0914:20180428114800p:plain

+ this を押して、検索画面に入る。
Twitterを選択して、New tweet from search ってのがあるので、それを選ぶ。
あとは、入力エリアに検索した文言をハッシュタグ付きで入れる。

画面が上記の画像のところに戻ってくるので、今度は、+ that を選ぶ。
thisのときと同じ要領で、slackを探す。
たぶん、Post to channel しかないので、それを選ぶ。 slackのチャンネルを選択して、saveボタン押せば、設定が保存され、指定した検索条件に合致するツイートがあれば、slackに通知される。

困ったこと

slackに通知される情報量が多すぎて、見づらい。。。

そんなときは、slackに設定した内容を変える。 Meaageの蘭に、{{LinkToTweet}} を設定。Title /Title URL/Thumbnail URL は空に設定する。
そうすると、slackのTwitter連携と似たような感じになる。

素晴らしい

slackはチャンネルの使い分けがあるので、情報をカテゴライズして溜め込むことができて素晴らしい。
ツイッターだと、情報が一気に流れていくから。。。
アカウント別々にすりゃいいじゃんって思うかも知れないが、そうとう手間なのよ。
その点、簡単に切り替えができるslackは、かなり使い勝手がいい。
情報も、どこまで見たのか、分かるしな。

個人的には、いろいろなツールで情報をかき集めたのを、slack/Pocketに保存して、それの最終的なアウトプットをブログなりにするって運用にしたいなぁ~と思っている。

参考サイト

Twitterの検索結果をSlackに投稿する方法 - kengo700のナレッジベース

プログラミングの初心者を抜け出すための習慣の感想と要約

きっかけ

ソニックガーデンの倉貫のブログはよく見る。
かなり感心したので、自分の考えと経験を踏まえてまとめてみる。

感想

エラーが出ても慌てず、メッセージを読もう

エラーをググって、解決法を片っ端から試すってことを、初心者のうちはよくしてたなぁ~って思い出す。
本当にやるべきは、吐き出したエラーの意味を理解して、正しく対処すること。

書いている意味がわからない状態だと、ググって調べた解決法を試して、さらなる深みにハマることが多々ある。

ググるってのが、さらなるエラーを呼び出す可能性を忘れてはイケない。

ネットの情報を鵜呑みにしない

エラーが出ても慌てず、メッセージを読もう と同じ。
ネットの情報を鵜呑みにした結果、さらなるエラーを呼び出す可能性が高い。

状況を理路整然と書いてあるかどうかも分からない。
特に多いのが、環境情報をまったく書いてないこと。
だから、読み間違うことが多い。
ブログ書く場合は、環境情報をきちんと書く必要がある。

公式ドキュメントから読もう

難しいね、これは。
ボリュームもそうだが、言い回しが面倒なときもあるんだよね。。。

あと、意外と知りたいことが書かれてないこともある。
たまに、分かっている前提の記載がある気がするわ。

ギャグセンスも必要だと思うんですよ。ドキュメントってのは。
面白くかけるかも、ドキュメントには必要だと思うのです。

当てずっぽうで試していかない

エラーが出ても慌てず、メッセージを読もう と同じですね。
あとは、ログをちゃんと読んで、時系列と動作状況を認識しないと、いろんなひとを誤解させてしまう。

未知のものは、まっさらな環境で試そう

不穏分子があると、未知はより大きな未知になる。

なるべくクリーンな環境を作る必要がある。
あと、そのクリーンな環境を簡単につくる方法を用意しておくと良いだろう。

ライブラリを見つける力と目利きを鍛えよう

プログラミングは、何かしらのライブラリを使うことが多い。
俗に言う、「車輪の再発明」をしないため。

だから、ベストな開発をするためにも、便利な環境が必要だと思う。

大雑把に理解できる力を身に付けよう

なんでも全部調べていたら、キリがないのです。
必要な知識レベルを見計らって、適度な内容で撤退するのも、時間をうまく使うという意味ではあり。

深入りする前に、本当にそこまで必要なのか、考えても良いでしょう。

一度に大きく作ろうとせず、小さく進めよう

これな、一気にやろうとして、どこまでできていたのか分からんパターン。

だいたい、自分に自信があるやつが陥るパターンやで。
昔の俺がそうだった。

自尊心が高いやつほど、気をつけないといけない。

「正しく動く状態」をキープするってのが大切。

コミットする前には、動作確認しよう

コミット前にはテスト。

正しい状態を保つための基本

最初にTODOリストを作ってから、始めよう

だいたい、一つのことに熱中すると、やることは大抵忘れる。
だから、TODOリストは必要なのだ。

頭で理解しきれないなら、絵にしてみよう

字にしても、関係性は見えてこないことがある。
イメージに落とし込むことで、理解が簡単になることもある。

字ってのは、頭のメモリをいっぱい使うので、注意が必要なのだ。

メンテナンスの前に、コードを読み込もう

内容理解してからやらないと、オヤシロ様の祟りが起きます。本当です。

指示語の対象設定

前回

suzaku-tec.hatenadiary.jp

やったこと

なんとなく、文章や説明を見ていて、おそらく、前の文の主語を指している可能性が高いと思った。
あと、その主語に連なっている修飾語もそうなっているのだろう。

正常な文章を書いてあったら、そうなると思いますわ。

特に、主語の名詞を指しているような気がしてならない。

下記のアルゴリズムで、指示語が指しているものを見つけるようにした。

  1. 指示語がある文を抽出する
  2. その文の前の文を取得する
  3. 取得した文の主語を取得する
  4. 取得した文の名詞を、指示語の対象語にする

まだ、テストケースが少ないので、本当にあっているかは微妙なところだが、なんとなく近しい値な気がする。

もっといろんな文章をみて考える必要があるな。。。

今後

今後のタスクは、以下の書いておいた

Task · GitHub

思ったけど、Githubのタスクボードみたいなやつ、かなり使える。
かゆいところに手が届くとまではいかないが、いちいちExcelとかでタスク一覧書かなくてもいいのが、いいと思いました。

参考サイト

指示語(こそあど言葉)を学ぼう - 国語の文法(口語文法)

指示語の内容を正しく把握する:【国語の達人】中学受験の合否は国語で決まる!読解力を上げる勉強法

国語の問題などで、指示語が理解できません[中学受験合格言コラム]|ベネッセ教育情報サイト