社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

プログラマーとしてアルゴリズムを学ぶべきなのか

アルゴリズムとデータ構造 並び替え・検索はシステムのプログラムを書く上で基本的な動作に挙げられると思います。 それらには色んな種類があります。ここで挙げるまでもないですが 並び替え バブルソート ヒープソート マージソート クイックソートなど 検…

人の拘りをただ単に受け入れること

ITエンジニアはプライドが高い集団 先日も書きましたが、ITエンジニアには拘りを持っている人が多いように思います。 エンジニアなので、職人気質なところが大いにあると思います。 それはまた、プライドが高い人が多いという意味になるかもしれません。プラ…

ITエンジニア 仕事への拘り

仕事への拘り 皆さんは仕事に自分なりの拘りを持っているでしょうか。 自分の周りには、ITエンジニア(自分を含め)がたくさんいます。 彼ら(自分を含め)を少しだけ注意深く見てみると、彼らには何らかの(人によっては強い)拘りがあるように思います。仕…

勉強会は大切なインプットの場

ITエンジニアに限った話ではないですが、勉強会によく参加されている方っていますね。 私の周りはITエンジニアだらけなので、参加者募集してるよー、何ならスピーカーも募集してるよーなんて話が聞こえてきます。 connpass.comとは言え、忙しい仕事の合間、…

WordPress にログインできないのはディスク使用量が100%になっていたからだった

久しぶりにVPSサーバ上で構築しているWordPressにログインしようとすると、ログインできませんでした。 状況としては、 パスワードは合っているはず(しばらく考えた後にエラー無しでログイン画面に戻るだけ) ※もし意図的にパスワードを間違えると”違います…

Docker の仮想環境を使って yum コマンドの練習

yum とは yum は RPMパッケージを統合管理するシステム。 RPM単体でもパッケージ情報や、依存関係の情報を保持しているが管理する機能がないため、それを担うのが yum。 DebianでのAPTの位置づけになる。 ディストリビューションのパッケージアップデートや…

Java プリミティブ型のメリットって

なんでしょうか。色んな意見がありそうですが。。1. null を許容しない 例えば、プリミティブ型の int を返すメソッドで return null と書くとコンパイルエラーになる。 個人的には、そんなに嬉しいかと言われると微妙です。 そもそも、null 許容しないなら…

Couchbase cbbackup でデータをバックアップ・リストアしてみる

Couchbase server では公式のデータバックアップツールとして、cbbackup というものがある。 cbbackup | Couchbase DocsLinux 上でインストールした Couchbase server に対して、バックアップを実行してみます。 環境 Version: 4.5.1-2844 Community Edition…

java.util.stream のソースを読んでみる filter 編

stream については、package java.util.stream; の JavaDoc には以下のように書かれています。 * A sequence of elements supporting sequential and parallel aggregate * operations. 並んでいる要素に対して、直列または並列処理をサポートするみたいなイ…

JGiven のレポート機能を試す(Java, JUnit)

JGiven ではいくつかのレポート機能が用意されているようです。 テキストのレポートを無効にする デフォルトでは、コンソール上にテキストのレポートが表示されます。 Something should happen Given サーバーが止まっている時に When プログラムを実行する…

JGiven をユーザーガイド見ながら試す(Java, JUnit)

JGiven とは 公式サイト から引用するとJGiven は、開発者にフレンドリーで実用的な Java の BDD ツールです。 ドメインエキスパートにとって読みやすいレポートを生成してくれます。 JGiven を使おうとしたきっかけ Java のプロジェクトに関しては、普段 JU…

terminator(端末)が起動しなくなった except (KeyError,ValueError)

Ubuntu14.04 上でいつの間にか terminator が起動しなくなりました。 デスクトップ上のランチャーを叩いても、何の応答もありません。 仕方なく、他の端末(XTerm)を起動し、/usr/bin/terminator を直接実行してみたところ、以下のエラーが表示。 File "/usr/…

タイガースとジャイアンツが含まれるツイート件数をカウントしてみた

データ取得期間 2018/11/11 - 11/13 内の数時間 データ取得方法 Twitter API(検索) を叩くバッチを1分間隔で実行。 検索条件のキーワードとして、”タイガース” もしくは、”ジャイアンツ”が含まれること。 リツイートは取得対象外 たまに単に球団名が列挙さ…

grep -E が正規表現対応オプションであると勘違いしていた

grep って、global regular expression print の略なので、それ自体が正規表現で一致したものを抽出するコマンドなんですね。 正規表現を使いたい時に、-E オプションを付けるものだと勘違いしていました。いま、以下のように2行が書かれたファイル(test.tx…

開発者が知っておくべき Couchbase についての 10項目

はじめに 公式ブログによって、こうやってまとめておいてくれると、読みやすいし初学者にとって助かります。 blog.couchbase.com第10位 Document access in Couchbase is strongly consistent, query access is eventually consistentCouchbase のデータには…

リファクタリングと追加実装はコミットを分けてほしい

主にソースコードをレビューする立場である場合の視点になります。 チームで開発しているとき、リファクタリングと追加実装を同時にレビュー提出されることがあります。ただ、レビュー依頼のコメントには、リファクタリングのことは触れられていないので、レ…

Java 無名(匿名)クラスを意識して使ってみる

Javaでプログラムの基本は、クラスのインスタンスを生成し、そのインスタンスから目的のメソッドを呼ぶところにあると思いますが、結果的に一度しかインスタンス化されないクラス(オブジェクト)があったり、ある特定のクラスからしか必要とされないインス…

Java8 日時APIがわからない(現在時刻の取得編)

もうすぐ、JDK8(java8)の商用サポート期限が2019年1月で終了するという中、未だに Java8 日時API に混乱させられています。。 ※この手の情報は色んなところに既にまとめられていますし、自分は5年くらい遅れている気がしますが、自分の備忘録のために覚えた…

Apache Spark2.3 ブロードキャスト変数のパフォーマンス

ブロードキャスト変数は、リードオンリーの変数を効率的に各 Executor に送信する仕組みです。Apache Spark2 にて、ブロードキャスト変数のパフォーマンスをローカル環境で確認してみました。 スレッド数は 3 を指定しています。 ※ sparkConf.setMaster("loc…

Couchbase 同期・非同期 insert(upsert)のパフォーマンス比較

Couchbase Java SDK を使用して、10万件のデータをインサートする場合のパフォーマンスを比較しました。 通常は同期処理にてインサートが行われますが、非同期用のAPIも用意されていましたので、それの比較となります。Couchbase server は Docker で生成し…

Docker Couchbase Server の起動スクリプト

Docker で Couchbase Server のコンテナを作成し、サービスを起動するスクリプトです。 sudo /etc/init.d/couchbase-server start # waiting for finishing to start couchbase-server sleep 30s # Setup Administrator username and password curl -v -X PO…

Spark2 AccumulatorV2

Spark2 で Accumulator を使おうと思ったら、deprecated になっていました。 代わりに AccumulatorV2 を使うようにとのこと。 https://spark.apache.org/docs/2.3.0/api/java/旧 Accumulator と同じように使えるのかと思っていたら、AccumulatorV2 を継承し…

文字コードの歴史を少し知りたい

python のドキュメントですが、文字コードの歴史について書かれている部分がありました。 https://docs.python.org/2.7/howto/unicode.html文字コードと言えば、何も考えずに "UTF-8" でみたいなところがあって、正直よく分かっていません。歴史 ドキュメン…

Java インターフェース 実装してみる

前回の記事で、インターフェースのメリットが解った?ところで、実装をしてみます。 blueskyarea.hatenablog.com今回は、データベースからデータを取り出すところに、Dao インターフェースを実装します。 インターフェースの定義 Dao をインターフェースを定…

Java インターフェース メリット わからない

もう何度も実装したことがあるにも関わらず、そのメリットがいまいちピンときていなかったりします。 ネットで検索すると、メリットについて語っている色々な情報が出てきます。 その時は何となく理解できた気になるのですが、しばらくするとまたアレなんだ…

Python 言語について 新しく知った 9つのこと

Python の初心者です。 Pythonによるデータ分析入門(第二版) の第二章に Python 言語について書かれていた内容から、自分にとって新しい発見が多かったので、それを列挙します。 既に Python を学んだことがある方にとっては、常識的な内容かと思います。1…

Java シングルトンデザインパターン singleton design pattern

singleton design pattern 実装する機会は今までに何度もあったものの、改めて順序だてて考えてみます。 ”そのクラスのインスタンスは常に1つしか存在しないことを保証する”こと。 実装にあたって、気をつけたい点 1. どのようにして、インスタンス化を行う…

いまさら IPython を初めて使ってみる

いまさらですが、IPython は python のインタラクティブシェルを拡張したもので、タブ補完機能などが使えるみたいです。 Python for Data Analysis の本を読む機会があって、そこで初めて試してみました。起動 ipython コマンドで起動可能です。 実はインス…

ユーザー類似度の計算(協調フィルタリングの前段階) python

今回は Mario さん、Peach さん、Koopa さんに5つのゲームを遊んでもらい、それぞれに5段階点数で評価をつけてもらいました。 ※登場人物はフィクションです その結果が以下です。 data.py review={ 'Mario': { 'OCTOPATH TRAVELER': 3.5, 'MARIO TENNIS AC…

5つのプログラミング テクニック(参照元あり)

参照元の記事は以下です。自分なりに読み解いてみたいと思います。 https://nobugsproject.com/2017/04/07/5-great-programming-techniques-every-developer-should-know/この手の英語の記事はたくさんあって、それぞれ違う観点で書いてあったりするから面白…