ひきぷろのプログラミング日記

プログラミングの日記です。

ライブラリの分類について

ライブラリを作る時に、今、自分がどこの部分をターゲットにして作っているかということを明確にする分類表を見たことがないので、個人的に分類してみたいと思います。なんとなく、検索していたら必要なインターフェイスを見つけることができたり、これは無…

プログラマの仕事はつまり全てDIではないか

1 つ前のエントリを書いていて思ったんですが、プログラマの仕事って全て DI パターンで表すことができるんではないかという気がしました。DI というのは Dependency Injection の略で、依存性の注入という風に訳されたりします。DI パターンというのは、Jav…

コードの非依存性はどこまで高められるか、依存性はどこにあるのか

うまく頭の中で整理できていないんですが、コードの非依存性をどこまで高めることができるかについてメモしてみます。また、コードの依存性がどこに存在しているのかということも、個人的に知っている範囲で書いてみます。 コードの非依存性とは プログラム…

過去のFlashコンテンツをどのように再利用するか

Adobeが2020年にFlashのサポートを終了することを発表しました。jp.techcrunch.comつい数時間前 (2017/7/26 23:30時点)、Yahooゲームにある、Flash製のクマのプーさんを残すのかみたいな記事も出ています。nlab.itmedia.co.jpWebコンテンツ製作者の中には、…

マストドン関連のURL一覧

徐々に更新していきます。 本家 本家 https://mastodon.social/ソースコード https://github.com/tootsuite/mastodon/アプリ一覧 https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.mdEugen - Mastodon https://mastodon.social/…

(C#) JsonParser を実装してみた

C#

github.comいまさら感はありますが JsonParser を実装してみました。デザインパターンの Interpreter パターンを使って実装しています。 はじめて Interpreter パターンを使ったんですが、これはすごい!って思いました。 他のパターンと使いどころがかなり…

(C#) 字句解析ツールを作ってみた

C#

"C# Tokenizer" で検索しても見つからないので作ってみました。github.com 使い方 CSV ファイルの分解ツールを作る手順を書いてみます。 プロジェクトの作成 Visual Studio でプロジェクトを作成します。 GitHub から Hikipuro/Text 内のファイルをコピーし…

(Unity) Project Settings を簡単に開くことができるようにする

メニューから、 Edit -> Project Settings ... と、たどるのが面倒なので、検索してみました。 Menu で表示する baba-s.hatenablog.com Window で表示する panzersoft.blog.fc2.com もうちょっと改良 どちらも便利なので、コピペで簡単に使えるように、もう…

(Unity) UnityアプリをXBox Oneで動かして、ストリーミングで実行画面を見る

Qiita でこういう記事を書きました。qiita.comさらに、Windows 10 の XBox One に接続する機能を組み合わせて、 PC 上で XBox の画面をストリーミング再生することができます。support.xbox.com近くにテレビがなくても、PC 上で XBox アプリの開発を完結させ…

(Unity) Unity関連のスライドまとめ

簡単に検索して見つかる範囲で、 Unity 関連のスライドをまとめてみました。 スライド公開サイト SlideShare で unity を検索した結果画面 'unity' on SlideShare Speaker Deck で unity を検索した結果画面 Speaker Deck - Share Presentations without the…

Visual Studio Code で Markdown を書くと便利だった

Visual Studio Code って Markdown の編集できるんだっけ?って気になったので、 GitHub に置くための README.md を開いてみました。開いた瞬間、「なんだ、普通のテキストエディタが起動しただけか...」 なんてがっかりしてしまいつつ、 Markdown を書きは…

(Unity) Unity 入門者用のリポジトリを作り始めた

たまに、あの機能どうやるんだったっけなー?ってなるので、頭の整理もかねて、 GitHub に Unity 入門者用のリポジトリを作り始めました。github.com今のところ、コンテンツは 3 つしか作れていません。 Practice-001: ゲームオブジェクトの色を変える Pract…

(C#) コピペで使える ToStringBuilder

コピペで簡単に使える ToString ビルダーを作ってみました。 ToStringBuilder.cs で保存してください。 (Unityでも使えます。)public なフィールドのみ表示されます。 改造するのも簡単なので、目的に合わせて書き換えてください。 "C# リフレクション" とか…

Terraformでスポットインスタンスにremote-execしようとしたらはまった

HashiCorp の Terraform っていうツールを試してみてたのですが、 AWS のスポットインスタンスを起動後、 remote-exec で Web サーバをインストールしようとしたら、 SSH が接続できなくてハマってしまいました。たぶん、ハマる人が多いのではないかと思うの…

C#からCUDAを書けるようにしてみた

こないだ CUDA Toolkit 7.5 をダウンロードしてみたんですが、C# から呼び出すためのライブラリが最新版に対応してなさそうだったので、試しに自分で作ってみました。(ちゃんと調べていないだけで、対応しているかもです。)github.comCUDAnshita (くだんした…

Visual Studio Code をインストールしてみた

Visual Studio Code をインストールしてみました。 ちょっとずつ分かったことを書いていきます。 フォントの変更方法 Windowsにインストールしてみたところ、日本語フォントがMSゴシックっぽかったので設定を変えてみました。メニューから、File -> Preferen…

Googleの人工知能ライブラリがリリースされた

japanese.engadget.comwww.publickey1.jphttp://tensorflow.org/tensorflow.orgengadgetの記事によると、 Googleいわく、機械学習はこれからの画期的なプロダクトや技術に欠かせない重要な要素となるもので、世界中で研究が進められているものの、標準となる…

(C#) 構文木を作ってみた

ここ数日間、画像処理ばっかりやってたので飽きてきました。。 ちょっと、 JavaScript のインタープリタとか作ってみたい とも思っていて、試しに構文木を作ってみました。まだ細かく説明できるほどには理解が深くないので、とりあえずコードを貼り付けてみ…

(Unity) HLSL で Compute Shader を書くのは難しい

Unity 上で HLSL という仕組みを使って Compute Shader の処理を書いていたんですが、 Visual Studio のような環境で CPU 向けにコードを書くのと違うところが沢山あって、いろいろと困難を感じてしまいました。感想文のような感じになりますが、発生した問…

(Unity) 移動平均フィルタを Unity に移植してみた

Unity のシェーダーで書きなおしてみました。 // SMAFilter.shader Shader "Custom/SMAFilter" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _Size ("Size", Int) = 1 } SubShader { CGPROGRAM #pragma surface surf Lambert struct Input { fl…

(Unity) グレースケールフィルタを Unity に移植してみた

以前作ったグレースケールフィルタを Unity に移植しました。GPU で動かしたかったんですが、まずは CPU で実装してみました。Visual Studio で実装したクラスは次のページにあります。(C#) グレースケールフィルタを実装してみた - ひきぷろのプログラミン…

(C#) ピクセル操作を並列化する

前の記事で、ピクセル操作を簡単に書くために PixelManipulator というクラスを作りました。(C#) 移動平均フィルタを実装してみた - ひきぷろのプログラミング日記hikipuro.hatenadiary.jp実行効率を無視して作ってしまったため、速度が遅いです。お手軽に高…

(C#) ラプラシアンフィルタを実装してみた

画像のエッジ抽出用のフィルタです。 似たような効果を持つフィルタで、 ソーベルフィルタ キャニーフィルタ Max Min フィルタ というようのがあるそうです。ソーベルフィルタは、検出したいエッジの向きを 8 方向から選べるっぽいです。 ラプラシアンフィル…

(C#) モザイクフィルタを実装してみた

PixelManipulator クラスの実装が不十分なおかげで端っこが塗られませんが、ひとまずモザイク処理はできたのでコードを貼り付けてみます。 using System.Drawing; class MosaicFilter { // 引数で渡されたビットマップ画像にモザイクフィルタを適用します pu…

(C#) 画像の 2 値化フィルタを実装してみた

画像を 2 値化するフィルタを作ってみました。 using System.Drawing; class ThresholdingFilter { // 引数で渡されたビットマップ画像を 2 値化します public static Bitmap Apply(Bitmap source, byte threshold = 128) { // ビットマップ画像から全てのピ…

(C#) メディアンフィルタを実装してみた

using System.Collections.Generic; using System.Drawing; class MedianFilter { // 引数で渡されたビットマップ画像にメディアンフィルタを適用します public static Bitmap Apply(Bitmap source, int size = 3) { // ビットマップ画像から全てのピクセル…

(C#) ガウシアンフィルタを実装してみた

using System; using System.Drawing; class GaussianBlurFilter { // 引数で渡されたビットマップ画像にガウシアンフィルタを適用します public static Bitmap Apply(Bitmap source, int size = 3) { // ビットマップ画像から全てのピクセルを抜き出す Pixe…

(C#) 移動平均フィルタを実装してみた

画像に移動平均フィルタをかける処理を実装してみました。今のところ 3x3 サイズのフィルタになっています。 詳しい処理内容については、次のページを見てみてください。平滑化(移動平均、ガウシアン)フィルタ 画像処理ソリューション ピクセル操作クラス…

(C#) グレースケールフィルタを実装してみた

C# でグレースケールフィルタを実装してみました。 処理内容は、次のサイトを参考にさせて頂きました。2.9 演習問題 (2-4) グレースケール変換プログラム - PS3 Linux Information Site / Cell/B.E.のパワーを体験しよう グレースケールフィルタクラスの実装…

(C#) RGB と HSV の相互変換

RGB 値と HSV 値の相互変換用の処理を書いてみました。 処理の詳しい内容は Wikipedia を見てみてください。HSV色空間 - Wikipedia HSV カラーを扱うクラスの作成 まず、 HSV カラーを扱うクラスを作ります。 using System; class ColorHSV { public float H…

(C#) なぜ UI スレッドは1本だけなのか

2 つ前の記事で、マルチスレッド対応の int 型を作りました。 (C#) マルチスレッド対応の int 型 - ひきぷろのプログラミング日記hikipuro.hatenadiary.jpこれを、例えばマルチスレッド対応の UI パーツの作成例として応用できないかと実験してみました。結…

(C#) Java と同じ仕組みの synchronized メソッドを作成する

C# では synchronized メソッドは作成できない、またはメソッド内で lock キーワードを代わりに使う というような解説記事ばかりが見つかるので、本当にそうなのか?と思って検索してみました。 結果からいうと、作成できるようです。C# の場合は言語のキー…

(C#) マルチスレッド対応の int 型

マルチスレッドで値を操作しても内容が壊れない int 型を作ってみました。 class MtInt { private int _value; private object _valueLock; public MtInt() { _value = 0; _valueLock = new object(); } public MtInt(int i) { _value = i; _valueLock = new…

(Unity) Unity上でIronPythonを動かしてみた

Unity 上で IronPython を動かしてみました。 以下やり方です。 IronPython をインストールする IronPythonironpython.codeplex.com↑ このサイトから IronPython をダウンロードしてインストールしてください。 現時点ではバージョン 2.7.5 っぽいです。 お…

ニューラルネットワークの実装の参考になりそうなURL

今のところ調べてる最中なので、ニューラルネットワーク自体がなんだかよく分からない状態ですが、参考になりそうな URL を貼ってみます。 解説記事 "qiita ニューラルネットワーク" とかでググると沢山出てきます。■ ニューラルネットワークと深層学習 http…

(C#) MNISTのラベルデータを読み込むクラス

前回の記事では、 MNIST の画像データを読み込むクラスを作りました。 (C#) MNISTの画像データを読み込むクラス - ひきぷろのプログラミング日記hikipuro.hatenadiary.jp今回は引き続き、ラベルデータを読み込むクラスを作ってみました。またコピペしてみま…

(C#) MNISTの画像データを読み込むクラス

ニューラルネットワークのテストをしようと思って、MNISTの画像データを読み込むクラスを C# で作ってみました。作ったものをコピペします。 ビッグエンディアンで数値が扱える BinaryReader MNIST の画像データは、ビッグエンディアン形式で保存されていま…