2016-01-01から1年間の記事一覧
概要 標準出力・ループ・分岐などの練習のためFizzBuzz 問題を各言語で書いてみる。 知っている人は多いとは思うが、念のためFizzBuzzとは何かを説明する。 15の倍数なら「FizzBuzz」 3 の倍数なら「Fizz」 5 の倍数なら「Buzz」 それ以外は その数値 を言い…
概要 LISP の流れを組み、Java VM上で動作する関数言語の Clojure を cygwin 上で使えるようにする。 少し苦戦したため、それをメモ。 構築で参考にした記事 Windows でも Clojure がしたい! - Qiita JDKインストール windows用インストーラダウンロード (l…
概要 Haskell の動作環境を用意する。cygwin上で動かそうとすると少し苦労したのでメモ。 インストーラのダウンロード 以下をURLから、Windows版のHaskell Platform のインストーラのうち環境に適したものをダウンロード。 Download Haskell Platform なお、…
概要 Raspberry Pi に対して情報を取得する際に HTTPを利用してこれを行いたい場合がある。 ruby のウェブフレームワークで有名なのは、Rails だが、Rails は大規模向けであるため 簡素な実装をするにも、構築時間、学習コストが見合わないことがある。 今回…
概要 Linux 上で便利な機能やマクロ的に処理を行うためにシェルスクリプトを記述することがある。 その中でも比較的よく見かける分岐・ループ構文をメモ。 ファイル状態によって操作を変える テストコマンドでファイルの状態を確認できる。他にも様々なこと…
概要 勉強会参加するときに RaspberryPi3 を持ち歩いているのだが、 自宅・外出先で Wifi のプライベートアドレス構成が微妙に異っており、事前に設定しておかないといけなかった。 もし設定を忘れた場合、その場でディスプレイ・マウス・キーボードを借りて…
前回記事 VirtualBox+Vagrant 環境構築(Windows 7+Cygwin) 苦戦記 - Status Code 303 - See Other 前回記事概要 Windowsでコンソールとして Cygwin を利用し、VirtualBox + Vagrant で仮想環境を作成できるようにした。 このとき、苦戦した内容と解決に至る…
概要 Ruby の Web Framework である Ruby on Rails のチュートリアルについてまとめる。 対象読者としては、チュートリアルを一度は読んだけどチュートリアルからいちいちコマンドなどを再確認するのが面倒な場合など。チュートリアル 第1章 ゼロからデプロ…
概要 Ruby の Web Framework である Ruby on Rails のチュートリアルについてまとめる。 対象読者としては、チュートリアルを一度は読んだけどチュートリアルからいちいちコマンドなどを再確認するのが面倒な場合など。チュートリアル 第1章 ゼロからデプロ…
概要 この記事で記述すること Windows+Cygwin 上で Vagrant 環境を作成したときに苦戦した内容をメモったもの。 環境 今回は、Windows + Cygwin 環境で行う。 ※ 構築 PC の CPU が仮想化技術をサポートしていない場合、多分できません。(下記参照) ソフトウ…
概要 今回は、メソッド仕様の話。 オブジェクト値を返却するメソッドにおいて、入力値・プログラム状態によって異常な結果になったときにそれを示したい。 その方法として、以下の3通りが考えられる。 null 返却 例外発生 NULL オブジェクト返却 (参考:サル…
概要 プログラミングを行ううえで、複数の選択があり基本的にどちらでも実装できる処理は数多くある。 これらは常にどっちを使うではなく、これらはプログラムが対象とする処理の内容に応じて使い分けるべきである。今回は、その中でも分岐を表す方法として …
概要 今回は、DI コンテナという少し特殊な技術を用いる。 この技術を使うと、プログラムをコンパイルせずに、プログラム外部にあるリソースファイルを使いプログラムの挙動を制御できる。 また、デザインパターンで言う Factory や Singleton パターンを容…
概要 普段何気なく使っているツールに、Dropbox がある。このツールは、様々なデバイス間のファイル変更を自動でマージしてくれる他、 リビジョンも保存するため、間違って上書きした場合などに、前回のファイルを復帰することができる。 また、Dropbox は記…
概要 前回記事 Javaアプリから Zabbix API を使う - Status Code 303 - See Otherjava アプリケ−ションから通信はできたが、HTTP 通信のため平文で通信している。 外部にこれらを公開することを考慮して、今回は通信を暗号化する。また、Zabbix サーバとの S…
概要 プログラムが正しく実行できない状態に陥ったときに、それを処理側に通知するための機構として例外がある。 これによって、もしユーザからの入力が想定外のものだったりしても、安全にプログラムを終了させることができる。しかし、仕様を考慮もせず適…
概要 前回 curl で疎通確認を行ったが、今回はこれらを Java で実装する。 前回記事:Zabbix API を使ってみる - Status Code 303 - See OtherZabbix API は、JSON 形式で API と通信するため、JSON 形式で通信できるようセットアップする必要がある。 また…
概要 CodeIQ で私の解いてた問題で、ブログネタにできそうなものがあったので記述。 課題内容 codeiq.jp 自然数 n に対して、次の等式を考えます。 □1□2□3□4…□n = 0 四角の部分には、プラス(+)またはマイナス(-)の記号が入ります。 等式を成立させる…
概要 前回の記事で(Raspberry PI に Zabbix Server 導入まで - Status Code 303 - See Other) 作ったZabbix Server に対して、API を発行してみる。今回は、curl で通信してみる。 Zabbix API テスト BEFORE Zabbix コンソールから現状のホストグループ構成…
概要 Raspberry pi に Zabbix Server を追加した経験談。 自身の失敗をメモしておくとともに、自身の失敗が誰かの救いになれば良い。・・知識がないとこれほど大変だとは思わなかった。 事の発端 過去に購入したRaspberry Pi 。Raspberry Pi 2 Model B (1)出…
概要 様々な処理をサーバに任せ、その処理結果だけをサーバから取得したい場合がある。このような通信を行う際、FTP や TELNET を用いて行うと 通信が暗号化されないため、その内容を第三者に盗聴されるリスクを生んでしまう。ここでは、SSH による暗号化通…
概要 今回、開発環境でテストすると正しいが、本番環境では正しい結果が出力できなかった。 あまりにバカらしい理由ではあるが、戒めのために記述する。 起こった事 環境 この案件では、C 言語で記述したプログラムを本番環境に送って実行する。 私は、Windo…
概要 分岐処理は、手軽に記述できるため、多くの場面で利用される。しかし、あるデータの値によって、途中のデータを選択する処理を分岐を用いて 実装してしまうと、全てのケースをカバーしなければならないため、 新たなケースの追加や既存のケースの修正に…
概要 デザインとロジックを切り分ける内容。 本来これらは全く別個に管理すべきなものであるため、分離させたい場合が多くある。 今回は、Java でこの方法を実現する手順を記述。 デザインとロジックの混在する悪い例 public class Main { public static voi…
主記事 Lombok ライブラリ - Status Code 303 - See Otherこの記事では、フィールドに定義可能なアノテーションを記述。 (記事執筆時のバージョン :v1.16.6)(更新中) アクセッサ自動生成 指定されたフィールドのアクセッサを提供する。 @Getter どのような…
主記事 Lombok ライブラリ - Status Code 303 - See Otherこの記事では、クラスとフィールド以外に関連するアノテーションを記述。 (記事執筆時のバージョン :v1.16.6)(更新中) データ同期 @Synchronized このアノテーションをメソッドに設定すると、メソッ…
主記事 Lombok ライブラリ - Status Code 303 - See Otherこの記事では、クラスに定義可能なアノテーションを記述。 (記事執筆時のバージョン :v1.16.6) クラス性質 ある性質を有するクラス構造を提供する。 @Data 全てのフィールドに対するゲッタ、全ての …
概要 Javaでは、クラスにフィールドを追加することによって、 既存のロジックに影響が出たり、新しく追加する必要があるメソッドが存在する。 各フィールドのアクセッサ(ゲッタ/セッタ) 全フィールドを初期化するコンストラクタ hashCode/equalsメソッド toS…
概要 http://www.soumu.go.jp/main_content/000327387.pdf 上記第五条に定義があり、そこでは、個人番号を構成する11桁の番号 およびその検査用数字(チェックデジット)で構成されるらしい。 そこで、11桁の番号からチェックデジットを計算するメソッドを作成…
概要 switch 構文は、ある変数がある値のときに処理を分岐させる命令であり、 数多くの言語でサポートされているが、言語により微妙に仕様が異なっている。言語共通の話題も数多く含まれているが、 今回は、Java を前提に switch 構文について記述する。 詳…