Status Code 303 - See Other

サーバサイド、iOS・アンドロイドアプリ、インフラレベルの話まで幅広くやってます。情報の誤りや指摘・意見などは自由にどうぞ。

Storyboard のentry point をプログラムで変更する方法

概要 iOSアプリ開発において、アプリ起動時の画面を動的に切り替えたい場合がある。 例えば、以下のようなケース。 アプリ初回起動時はログイン画面、それ以外はログイン後の画面を出したい時。 デフォルトではヘルプ画面を表示して、表示しない設定を設定さ…

c#で値の未設定/デフォルト値を見分ける方法

概要 何も値が設定されていない時は、明示的に null を設定した時と挙動を分けたいことがある。 しかし、c# には javascript の undefine リテラルに相当するリテラルが存在せず、オブジェクトに何も設定せずに参照すると default(T) になるため何も値を設定…

C#のドキュメントコメント要素をトリムする方法

概要 XML処理のめんどくさい問題にぶち当たったのでメモ。 ドキュメントコメントからXML解析しているときに各要素の最初・最後の空白文字がうまくトリムできなかった。 今回書くのは、その解決方法。 問題事象 まず、以下のように書いたらなんか表示がおかし…

C#でのExcel操作 セル操作編

概要 前回記事より。 C#でのExcel操作取得編 - Status Code 303 - See Other例のごとくClosed XMLを使って遊んでみる。今回は、Excelのセル操作をC#で実現する方法のメモ。 中々文献が見つからないが、触ってみるとだんだんと使いやすさが分かってくる。 テ…

C#でのExcel操作取得編

概要 C#でExcelを操作した調査内容。今回は、NuGetから取得できるライブラリClosedXMLを使ったメモ。 インストール Nugetから「OpenXML」をインストール。 Excel操作インスタンス取得 ファイルを開いていると IOException が出るので、閉じてから実行するこ…

C#のAOPライブラリ(Fody)

概要 前回記事(C#のAOPライブラリ(PostSharp) - Status Code 303 - See Other) 上記とは別のライブラリ(無料版)を使ってAOPを試した内容。 GitHub - Fody/Fody: Extensible tool for weaving .net assemblies 使い方 サンプルクラス(PostSharpとほぼ…

C#のAOPライブラリ(PostSharp)

AOP(Aspect Oriented Programming)? ログ出力や例外処理など、メソッド全体に共有な処理を重複定義せず一か所に定義したいことがある。 このような共有処理を側面(Aspect)として定義した後、メソッドに適用する手法。もし、全部それぞれにコピペなどで定義…

JUnitテスト前提条件制御

概要 毎回テストをするうえでお決まりの処理というのがある。 これらの処理をまとめる機構がテストフレームワークには大体存在する。 今回はJUnitの便利なテスト前提条件を設定する方法について記述する。これらをやることによって、以下の利点がある。 テス…

Visual Studio Community Edition でカバレッジ計測

概要 Visual Studioでカバレッジを計測できるかと思ったら、結構大変だったのでメモ。 環境 OSWindows7 SP1 64bit IDEMicrosoft Visual Studio Community 2015 ver14.0.23107 プロダクト作成 プロジェクト作成 今回はプロジェクト名をSampleとする。 プロダ…

AWS CodeCommit 設定

CodeCommitとは? AWS(Amazon Web Service) が提供するリモートリポジトリサービス。 ローカルにあるGitリポジトリをAWS側にアップロードすることにより、 複数ユーザによるソースコード管理が実現でき、まさかのPC障害によるデータ破損にも対応できる。この…

FizzBuzz を20言語で頑張って書いてみる。

概要 標準出力・ループ・分岐などの練習のためFizzBuzz 問題を各言語で書いてみる。 知っている人は多いとは思うが、念のためFizzBuzzとは何かを説明する。 15の倍数なら「FizzBuzz」 3 の倍数なら「Fizz」 5 の倍数なら「Buzz」 それ以外は その数値 を言い…

Clojure 開発環境を cygwin 上に作る

概要 LISP の流れを組み、Java VM上で動作する関数言語の Clojure を cygwin 上で使えるようにする。 少し苦戦したため、それをメモ。 構築で参考にした記事 Windows でも Clojure がしたい! - Qiita JDKインストール windows用インストーラダウンロード (l…

Haskell を cygwin 上で動かすのに苦労した話

概要 Haskell の動作環境を用意する。cygwin上で動かそうとすると少し苦労したのでメモ。 インストーラのダウンロード 以下をURLから、Windows版のHaskell Platform のインストーラのうち環境に適したものをダウンロード。 Download Haskell Platform なお、…

RaspberryPi に Rest API を簡単に実装

概要 Raspberry Pi に対して情報を取得する際に HTTPを利用してこれを行いたい場合がある。 ruby のウェブフレームワークで有名なのは、Rails だが、Rails は大規模向けであるため 簡素な実装をするにも、構築時間、学習コストが見合わないことがある。 今回…

シェルスクリプト分岐・ループ構文例

概要 Linux 上で便利な機能やマクロ的に処理を行うためにシェルスクリプトを記述することがある。 その中でも比較的よく見かける分岐・ループ構文をメモ。 ファイル状態によって操作を変える テストコマンドでファイルの状態を確認できる。他にも様々なこと…

RaspberryPi で複数 Wifi 環境に個別設定を行う方法

概要 勉強会参加するときに RaspberryPi3 を持ち歩いているのだが、 自宅・外出先で Wifi のプライベートアドレス構成が微妙に異っており、事前に設定しておかないといけなかった。 もし設定を忘れた場合、その場でディスプレイ・マウス・キーボードを借りて…

VirtualBox+Vagrant+Chef(knife-solo) 環境構築(Windows 7+Cygwin) 苦戦記

前回記事 VirtualBox+Vagrant 環境構築(Windows 7+Cygwin) 苦戦記 - Status Code 303 - See Other 前回記事概要 Windowsでコンソールとして Cygwin を利用し、VirtualBox + Vagrant で仮想環境を作成できるようにした。 このとき、苦戦した内容と解決に至る…

Ruby on Rails チュートリアル2章

概要 Ruby の Web Framework である Ruby on Rails のチュートリアルについてまとめる。 対象読者としては、チュートリアルを一度は読んだけどチュートリアルからいちいちコマンドなどを再確認するのが面倒な場合など。チュートリアル 第1章 ゼロからデプロ…

Ruby on Rails チュートリアル1章

概要 Ruby の Web Framework である Ruby on Rails のチュートリアルについてまとめる。 対象読者としては、チュートリアルを一度は読んだけどチュートリアルからいちいちコマンドなどを再確認するのが面倒な場合など。チュートリアル 第1章 ゼロからデプロ…

VirtualBox+Vagrant 環境構築(Windows 7+Cygwin) 苦戦記

概要 この記事で記述すること Windows+Cygwin 上で Vagrant 環境を作成したときに苦戦した内容をメモったもの。 環境 今回は、Windows + Cygwin 環境で行う。 ※ 構築 PC の CPU が仮想化技術をサポートしていない場合、多分できません。(下記参照) ソフトウ…

オブジェクト返却メソッドの異常系実装

概要 今回は、メソッド仕様の話。 オブジェクト値を返却するメソッドにおいて、入力値・プログラム状態によって異常な結果になったときにそれを示したい。 その方法として、以下の3通りが考えられる。 null 返却 例外発生 NULL オブジェクト返却 (参考:サル…

if-else 文と条件演算子(?:)の使い分け

概要 プログラミングを行ううえで、複数の選択があり基本的にどちらでも実装できる処理は数多くある。 これらは常にどっちを使うではなく、これらはプログラムが対象とする処理の内容に応じて使い分けるべきである。今回は、その中でも分岐を表す方法として …

Seasar2 (導入編)

概要 今回は、DI コンテナという少し特殊な技術を用いる。 この技術を使うと、プログラムをコンパイルせずに、プログラム外部にあるリソースファイルを使いプログラムの挙動を制御できる。 また、デザインパターンで言う Factory や Singleton パターンを容…

Dropbox API を使ってみる

概要 普段何気なく使っているツールに、Dropbox がある。このツールは、様々なデバイス間のファイル変更を自動でマージしてくれる他、 リビジョンも保存するため、間違って上書きした場合などに、前回のファイルを復帰することができる。 また、Dropbox は記…

Zabbix API との通信を暗号化する

概要 前回記事 Javaアプリから Zabbix API を使う - Status Code 303 - See Otherjava アプリケ−ションから通信はできたが、HTTP 通信のため平文で通信している。 外部にこれらを公開することを考慮して、今回は通信を暗号化する。また、Zabbix サーバとの S…

例外仕様設計

概要 プログラムが正しく実行できない状態に陥ったときに、それを処理側に通知するための機構として例外がある。 これによって、もしユーザからの入力が想定外のものだったりしても、安全にプログラムを終了させることができる。しかし、仕様を考慮もせず適…

Javaアプリから Zabbix API を使う

概要 前回 curl で疎通確認を行ったが、今回はこれらを Java で実装する。 前回記事:Zabbix API を使ってみる - Status Code 303 - See OtherZabbix API は、JSON 形式で API と通信するため、JSON 形式で通信できるようセットアップする必要がある。 また…

「プラス・マイナス・ゼロ」問題

概要 CodeIQ で私の解いてた問題で、ブログネタにできそうなものがあったので記述。 課題内容 codeiq.jp 自然数 n に対して、次の等式を考えます。 □1□2□3□4…□n = 0 四角の部分には、プラス(+)またはマイナス(-)の記号が入ります。 等式を成立させる…

Zabbix API を使ってみる

概要 前回の記事で(Raspberry PI に Zabbix Server 導入まで - Status Code 303 - See Other) 作ったZabbix Server に対して、API を発行してみる。今回は、curl で通信してみる。 Zabbix API テスト BEFORE Zabbix コンソールから現状のホストグループ構成…

Raspberry PI に Zabbix Server 導入まで

概要 Raspberry pi に Zabbix Server を追加した経験談。 自身の失敗をメモしておくとともに、自身の失敗が誰かの救いになれば良い。・・知識がないとこれほど大変だとは思わなかった。 事の発端 過去に購入したRaspberry Pi 。Raspberry Pi 2 Model B (1)出…