【最近傍探索ライブラリ】CentOS に Annoy を入れる方法

何の記事??

以前以下のような記事を書きました。

www.geeeek.site

Spotify が開発した、似たベクトルを探し出す(最近傍探索)ライブラリの Annoy を紹介する記事でした。

相変わらず Annoy にはお世話になっているんですが、CentOS に入れようとしたところエラーが発生したので備忘録がてら書き起こします。


Annoy のインストール

Annoy は pip でインストールが簡単にできます。

以下のコマンドですね。

pip3 install annoy

いつも通りにインストールしようとしたら

gcc: error trying to exec 'cc1plus': execvp: No such file or directory

cc1plus がないと怒られてしまいました。。。


解決方法

gcc-c++ を事前に入れておく必要があったんですね。

sudo yum install gcc-c++

これを行なった後で、再び pip3 install annoy を行なったら正常にインストールされました!

特にアップデートがあったとかではなさそうなので、おそらく今までは何かしらの依存関係で gcc-c++ を入れていたんですかね?

何はともあれ解決できてよかったです!!


最後に

最近傍探索の強力なライブラリは、Facebook が開発した faiss など様々ありますが Annoy は pip で気軽にインストールができるのが良いですね!!

世界的SNSを作り出した天才達のストーリー

早速ですが、皆さん Facebook は使っていますか??

世界的な SNS である Facebook が成功をおさめていることは言うまでもありません。
現に創業者である CEO のマーク・ザッカーバーグ氏は 2020年の世界長者番付でも547億ドルで第7位に入っていましたね。

ザッカーバーグ
マーク・ザッカーバーグ


映画紹介

そんなザッカーバーグが Facebook を開発し、それを大きくするまでの物語が描かれた映画を紹介します。

ソーシャルネットワーク

ソーシャルネットワーク

世界最年少の億万長者、マーク・ザッカーバーグの生き様を何と揉め事をメインに描写されているのは斬新でした。

割とザッカーバーグの歴史みたいなのは知っていたつもりだったのですが、こんな壮絶な裏側があったとは・・・

ちなみに僕は Netflix で見ました。Netflix 契約している人は借りたりする必要ありませんのでご注意を!


ここに注目して欲しい!!

僕が思うこの映画の見所としては、以下の3つです。

  • Facebook の前身となるサービスの知財権に関する揉め事
  • Facebook 初代CEO のショーンパーカーとの出会い
  • 親友エドゥアルド(ビジネスパートナー)との惜別
Facebook の前身となるサービスの知財権に関する揉め事

Facebook ができた経緯を知っている方は多いかもしれません。ただ、この揉め事を知っている方はあまり多くはないのではないでしょうか?

天才故に、アイデアをわずか数週間で開発してしまったザッカーバーグですが、これが理由で非常に厄介な揉め事を起こしていきます。

天才ならではの苦労なんですかね・・・羨ましい悩みです笑

Facebook 初代CEO のショーンパーカーとの出会い

実は Facebook の初代 CEO は、ザッカーバーグではありません。
ザッカーバーグと意気投合したショーンパーカーの発言や行動がよくも悪くもザッカーバーグの人生を大きく動かします。

そんな彼との出会いは注目のポイントです。

親友エドゥアルド(ビジネスパートナー)との惜別

友達の多くないザッカーバーグでしたが、彼の能力と Facebook の可能性を信じ続けてくれた親友エドゥアルドの存在はとても大きいです。

しかし、そんな彼とは最終的に惜別することに・・・何があったのか是非注目してくださいね。

Apple も創業期、ジョブズは、スティーブ・ウォズニアックに支えられていました。やはり誰でも一人で大きなことは成し遂げられず、いつも影となって支える絶対的信頼のあるパートナーがいるんですね。


最後に

この映画は時系列が非常に難しく、最初は途中で見るのをやめようかと思いました。

ただ見続けるうちに理解が追いつくので、最初45分は辛抱して見てみてください。途中でやめると後悔します!!

【Java 初学者】おすすめ書籍の紹介

何の記事??

最近ありがたいことにWebエンジニアやAIエンジニアのメンター契約の数が増えてきました。(本当に感謝です)

独学やスクールに通うなどプログラミングに可能性を感じている方々に感動しながら僕も負けないようにとサポートさせていただいております。

メンターをやっていると
Java を勉強しているのだがおすすめの本を紹介して欲しい!!
というご質問をよくいただきます。

実際にメンティーのみなさんからも評判の良い本ですのでいかに当てはまる方はご参考になさってくださいね。

この記事の対象者
  • Java を勉強し始めた方
  • Java をこれから勉強しようと考えている方
  • プログラミングをこれから勉強しようと思っている方
  • 未経験からエンジニア(特に*サーバーサイドエンジニア)への転職を目指す方
  • 駆け出しエンジニアで更なる高みを目指す方

※ サーバーサイドとは、Webアプリケーションの裏側の仕組みのことです。フロントエンドは見た目を司り、レストランに例えるとフロントエンドがホールスタッフ、サーバーサイドが厨房なんかに例えるとわかりやすいかもしれません!


Java

Java とは

まずは Java とは何なのかの紹介をします。

Java はプログラミング言語の一つで、世界的にも非常に広く使われている言語です。

人気な原因としては、

  • 処理速度が速いこと
  • 古くからある言語でドキュメントや情報量が多いこと

が挙げられます。

どんなところで使われるの??

Java は非常に広く使われています。

例えば Webアプリケーションのサーバーサイド、スマホアプリなどで使われています。

一つの言語を覚えることでこれらの基礎知識が身につくのは非常にお得ですね!

なぜ Java なのか

よくネットでは Java は終わったなどと言われることもありますが、やはり広く様々なところで使われているだけあって案件が多いことが特徴です。

また、Java を習得することで、プログラミング全般に共通する基礎知識を身に付けることができます。

特にオブジェクト指向やフレームワークを学べるのは Java を学習するメリットだと考えています。


おすすめの書籍

それでは、Java を習得するのにおすすめの書籍を紹介していきます!!

最初の一冊

最初の一冊におすすめなのは
「スッキリわかるJava入門」です!!

プログラミングの学習でありがちな「イメージが沸かない」をイラストを使って丁寧に説明されています。本当に良書です。

さらに、適宜問題も入っており知識をアウトプットする場もしっかり設けてくれているのもとても嬉しいところです。

この一冊をやることで Java の(そしてプログラミング全般で使われる構文)広い範囲を学習することができます!!

是非プログラムを実際に実行しながら読み進めてもらうと更に理解が深まります!

次の一冊

先ほどの一冊が終わったら、是非この一冊を手に取ってみてください!!

・・・さっきと同じ??画像間違ってるよ!!という声が聞こえてきそうですが、実はこれ「実践編」であり別の一冊です!

この本はこれから開発しようと思っている人たち向けに実践に寄せた内容が盛り込まれています。

こちらも先ほど同様に是非実際に手を動かして読み進めることを推奨します!


次のステップ

この二冊が終わると、サーバーサイドエンジニアを目指す方には、SQL や Webの知識(HTML/CSS/JS)を学習いただいています。

その後、フレームワーク(Spring)というものを学習しながら実際に自分の作りたいものを作っていくというステップを取っています。

是非これらの書籍で良いスタートダッシュを切ってくださいね!!


宣伝

メンター契約は現在も募集しております。

気になることや疑問点などお気軽にご質問くださいね。

menta.work

人となりは twitter をご覧いただければと思います。

twitter.com