2019/07/02

C#のちょっといい話01 C#の現状

おそらく仕事では1、2を争うほど使っているC#だが、これまで取り上げてこなかった。まぁ別に書くことないしな、くらいに思ってたが、友人なんかに聞いたら結構需要があるとのこと。
自分も便利だから使っているわけで、XamarinとかUnityとかでC#人口は上がっているし、よし、いっちょやってみっか!的な決心をした。

ただ、C#って.NETと違うの?とか.NETのバージョンとC#のバージョンとかあるけどどっちが重要?とか聞かれたので、ちょっと枠組みがわかりにくそう・・・ということではじめはC#周辺の枠組みの整理と現状なんかを説明したい。

デバイスドライバを書いてみよう05 Linuxドライバとデバイスを連携しよう

前回でアプリケーションとドライバのやり取りは大方説明した。
今回はデバイスとドライバの通信部分も作って、最終的にアプリケーションからデバイスを操作したい。

と言っても、実際にサンプルを提示するのがとても難しい・・・
一般的なデバイスで、仕様も公開されてて、反応動作がわかりやすくて・・・みたいなものを探してたんだが、そんなものはなかった。
GPIOが付いているIoT基盤などだったら例示しやすいが・・・
何度か描き進めようかと思ったが断念して、を繰り返して苦痛なので、今回はサンプルというより大体こんな感じでやるんだよ、といった形で進めたい。

2018/10/17

デバイスドライバを書いてみよう04 Linuxドライバとアプリケーションを連携しよう

前回でドライバの基本形である最小のLinuxモジュールを書いたが、今後はどのような実装が必要だろうか?

  1. デバイスとドライバの通信
  2. アプリケーションとドライバのやり取り

が必要だろう。

1は難易度も高いし、実際のデバイスを用意するなど敷居が高いので、とりあえず2から説明する。
今回は、アプリケーションがカーネルのシステムコールを介してドライバとデータをやり取りするようなものを実装したい。

2018/10/16

デバイスドライバを書いてみよう03 Linuxデバイスドライバを書いてみよう

前回まででドライバの概要やデータのやり取り方法を説明した。では実際にデバイスドライバを書いてみよう。
前回に予告したようにLinux用ドライバを書いてみる。簡単なものから順に複数のドライバを書いていきたい。今回はもっとも単純なもので、ドライバのロード時とアンロード時にメッセージを出力するドライバを書く。

まぁこの内容、Raspberry Pi用に書いた以前の記事の内容に含まれているので、それの簡易版となる。すでに実践した人は飛ばしてもOK。

2018/10/14

デバイスドライバを書いてみよう02 続・デバイスドライバって何?

前回でデバイスドライバの立ち位置や仕組みをなんとなく説明したが、実際にデバイスドライバを書く場合、知りたいのは

  1. ドライバの基本的な書き方、組み込み方
  2. デバイスとデータをやり取りする方法
  3. アプリケーションとデータをやり取りする方法

ではないだろうか。

1は、その前に概念や仕組みを説明をしたいので、もう少し後に説明する。今回は2のデータのやり取りなどをもう少し突っ込んで説明したい。
また、3の概要はすでに説明したが、その詳細も2に関連するので今回でもう少し具体的に説明したい。

2018/10/13

デバイスドライバを書いてみよう01 デバイスドライバって何?

IoT的なものづくりをしていると簡単なものはGPIOなどから信号を出して制御するが、複雑になるとデバイスドライバを書いた方がいい場合がある。
規模が大きくなりがちなので、なんでもかんでもドライバを書くのはよくないのだが、必要な場合はある。

今回は、そもそもデバイスドライバって何?という疑問に対する説明をしたい。

2017/11/22

サウンド系API事情05 Android系API

前回はLinuxのサウンドAPIについて説明したが、今回はAndroidのサウンドAPIに関して説明する。
Androidはアプリケーションの実装言語がJavaであるため、またちょっとかわったソフトウェア構成になる。今回はその構造から説明したい。

2017/11/19

サウンド系API事情04 Linux系API

前回はMacのサウンドAPIについて説明したが、今回はLinuxのサウンドAPIに関して説明する。
Linuxはディストリビューションが多数ありそれぞれにモジュール構成の方針があるため、APIが多数ある。しかも、誤解を恐れずにいうがソフトベンダーがデスクトップ版をあまり重要視していないため、それぞれのディストリビューションで規格を統一しようという考え方があまりないようで、採用しているAPIもまちまちだったりする。
こういう事情もあり、複数のLinuxディストリビューションに対応したマルチメディアソフトウェアを作るのは、結構ないばらの道になることだろう。

2017/11/14

サウンド系API事情03 Mac/iOS系API

前回はWindowsのサウンドAPIについて説明したが、今回はMac/iOSのサウンドAPIに関して説明する。

新しいMacはiOSとAPIを同規格にしているものが多い為、昨今のAPIはiOSでも使用出来る。
ただし、サポートしている機能が異なったりレイテンシなどの品質が異なるなど、差異があるため注意が必要だ。
モバイルではバッテリ消費などを気にするため、品質や作法が異なる結果になるようだ。

2017/03/26

サウンド系API事情02 Windows系API

Windowsは古くからゲームなどエンターテイメント筐体に採用されてきたため、複数のAPIが存在する。
デスクトップ環境としては最も使用されてきたOSであることもあり、求められる水準も高かったことだろう。
今回は、Windows環境のサウンドAPIについて説明する。

2017/02/24

サウンド系API事情01 前知識

近年では、様々なプラットフォームでアプリケーションが作成される。
これがプラットフォームごとにそれぞれ異なるAPIで実装されているのだから、マルチプラットフォームのアプリ開発環境が隆盛するのも当然といえる。
ただ、マルチで開発していると何を使用しているかを意識することがなく、それぞれに抱える問題などが正確に把握できない、という問題もまた開発者にはあることだろう。
この記事では、いくつかのプラットフォームを例にとって、サウンド系APIについて説明したい。

2016/12/20

AWSでWebサービスを構築10 AWSクラスタの運用例

これまでの知識で、Apacheなどが動作するアプリケーションサーバとデータベースを構成することはできる。
冗長化や負荷分散も基本的な構成は説明した。
ドメインやサブドメインの設定も、前回の説明で可能になった。
すでにサービスの開始は可能になった。

ここで、EC2インスタンスの修正とクラスタ更新に関して、実際に運用する際の一例を説明したい。
ただ、特にAWS側で推奨している方法というわけではないため、自分に合うかを判断しながら参考にしてほしい。

2016/12/17

AWSでWebサービスを構築09 Route 53でドメインの登録

これからは運用方法の紹介や他の便利なサービスの説明をしたいが、その上でドメイン・サブドメインなどが使えたら効率はぐんと上がる。
今回はDNSサービスAWS Route 53の使い方を紹介する。

※独自ドメインが必要になるので、お金を覚悟するか、どこからか無料のドメインを借りてくる必要があるので注意!

DNSサービスはドメイン名とIPを関連付けたり、あるいはサブドメインを設定してそれをIPと関連付けたりすることができる。
ドメインは「blogger.com」みたいなもので、サブドメインは「img.blogger.com」のようなドメインより1つ多いもの。
ドメインを1つとっておけば、そのサブドメインは自由に設定できる場合が多い。
Route 53はこのドメイン・サブドメインとIPの関連付けが簡単にできるし、独自ドメインの取得もRoute 53の管理画面から可能となっている。

Route 53のショートカットを選択すると管理画面が開くので、ここから作業をはじめる。

2016/12/15

AWSでWebサービスを構築08 サーバ冗長化とロードバランサの構築

前回までにAPサーバ、DBインスタンスを作成した。
ただ、このままでは一般的なレンタルサーバなどと特に構成が変わらない。
AWSなどのクラウドプラットフォームだと、よりサービスに適した構成をとることが出来る。
今回はインスタンスの構成について、もう少し改善したい。

具体的には、サーバの冗長化と負荷分散機構について説明する。

2016/12/10

AWSでWebサービスを構築06 RDS構築の前知識、前準備

前回はEC2でインスタンスを起動し、AMIの作成まで行った。

先にデータベースを用意した方が良さそうなので、まずはRDSを使ってデータベースを構築する。
が、そのまえに、ちょっとデータベースに関する前知識を説明し、前準備をしたい。

2016/12/09

AWSでWebサービスを構築05 EC2インスタンス起動

前回はサーバ作成の前準備を行った。
今回は実際に仮想サーバを立ち上げる。
具体的には、サーバ起動からSSH接続、Apacheなどのインストールを行なって動作確認、その後にバックアップまで行う。

2016/12/07

AWSでWebサービスを構築04 セキュリティグループの設定

今回はAWS EC2で実際にサーバを作るための前準備を行う。

サーバセキュリティの確保の方法は色々あるかと思うが、AWSでは主にセキュリティグループでフィルタリングを設定する。

AWSでWebサービスを構築03 VPCの構築

準備は整ったので、これから実際にサーバクラスタ構築していく。

大まかな流れとしては、
  1. AWS VPCで仮想ネットワークを構築する。
  2. AWS EC2でサーバを構築する。
  3. AWS RDSでデータベースを構築する。
と進める。

今回はVPCの設定から行う。
※VPCに関しては、AWSに登録したアカウント時からデフォルトのVPCとして作成されているものが既にある。
これとは別に各項目を作成していく。

2016/12/03

AWSでWebサービスを構築02 前準備

前回では、サーバクラスタの前知識と、このシリーズの目標を説明した。
今回から、具体的に1つ1つ構築していく、が、その前にAWSの基本的な設定を行う。

AWSを利用するには、まずはアカウントを作らないと何もできない。
AWS マネジメントコンソールからアカウントを作成する。
あと、AWSは無料枠はあるが有料サービスなので、クレジットカードの登録が必要となる。
クレジット払いが原則だが、交渉すれば別方法の支払いも可能らしい。やったことないから定かじゃないけど。

この辺は特殊なことは何もないので、適当に上のリンクから適当に進めてね。
ログインできたら、設定開始。