Visual Studio勉強会に参加して来ました

大阪梅田にあるグリー株式会社で開かれた、Visual Studio C#の勉強会に参加して来ました。結構早くついてしまったのですが、遅れるのに比べたら待つ方が気楽で良いですね。グリーのオフィスは綺麗でした。会議室も40名以上収容出来る広さでした。GREEのロゴ入りウォーター(ミニペットボトル)と、Microsoftロゴ入りボールペンをいただきました。

Visual Studio勉強会 : ATND

さて勉強会の方は、初の大阪でのVS勉強会だそうで、どういう話になるのかワクワクモードでしたが、プログラミングビギナーの私には結構難しい内容も多くてついていけない部分もありました。しかし、プログラマーとして働いている人が操作するVisual Studioの画面を見られたことや、注意点を教わったり、調べ方などが全て新鮮で、参加して良かったと思いました。

プログラミングに関してはずっと独学でしたから、本当にコレで合ってるのかな?っていう部分は多少有ったりします。大筋でズレている部分は無かったのですが、こういう風にすればなるほど合理的だなって言う手順を学んだり、自分と同じ手順を見て安心したり出来ました。

続きを読む

少しずつプログラミング学習

20代にMacintoshでプログラミングを学習する為、大枚はたいてC++のコンパイラと書籍も買って毎日わけも分からず勉強したのですが、結局当時は、Macintoshというややこしい環境での学習、そして情報の少なさ、周囲にプログラミングスキルを持った人が居ない等から、どんどん独学の意欲も疲弊していき、トラウマだけが残った苦い記憶があります。

つい最近まで、私はそのトラウマを克服できず、プログラミングと呼べるまでのスキルは身に付けることが出来ず、ちょっと既存のスクリプトを改造してみたり、部分的に取り出して応用してみたりという程度までしか出来ませんでした。

しかし、フリーランスとしてIT系のジャンルで食っていく関係上、プログラミングスキルの重要度は高いと判断し、このトラウマを克服すべく、昨年末から地道に独学に取り組んできました。大きなきっかけは、MIT App Inventorを使ってAndroidアプリを視覚的な開発環境で作ってみた経験です。もしかしたら出来るかも知れないなと感じました。

そしてそれを本当に実感したのは、Visual Studioという、Microsoft社の統合開発環境(IDE)を使ってサンプルを作ってみたら、9割方理解出来た時でした。アプリの見た目、ボタンやテキストボックスの配置は、Windowsアプリならではのマウス操作で行えますので、MS-AccessやFileMakerを使った経験があるなら何の苦労も無く行えるでしょう。レイアウトも自分が思い描く理想通りに配置出来ます。そこにボタンをクリックした時の挙動等を、ソースコードとして記述する訳ですが、意外と少ない記述で情報の取り込み等は行え、肝となる処理部分をじっくり考えれば、当初は無理なレベルのプログラムが作れたのです。

正直言うと、入門書籍を数冊購入したのですが、多くは退屈なサンプルばかりで、最後まで到達出来たチュートリアルは半分位です。私は、どうしても興味を持てないチュートリアルには没頭出来ません。これは社会人経験の長い人がプログラミングを始めた際に壁に突き当たる大きな原因だと思います。社会人経験によって短時間で結果を得られる方法を選択するクセがついてるからです。基礎から学ぶという遠回りは大切だと理解していてもそういう道を通ることが事実上出来ません。学生とは学習の仕方、受け入れ方が大きく違うのです。私は自分が知りたい事をすぐに学びたいのです。(これは性格など個人差が大きいと思います。)

幸い、Visual Studioはいじっている内に、色々なアイディアが湧いてくる刺激をくれます。最初はシンプルなプログラムでも、徐々に機能を追加してみようとか、こうすれば合理的だなとか言う発想がどんどん出てきます。それを実現するのに、じつはそんなに高度なスキルが無くてもなんとか出来上がったりするのが面白いのです。(当然熟練者が作ったアプリに比べると洗練度は話にならないレベルでしょうが)

それでも、回数と学習を重ねていく内に、徐々に合理的なソースコードが書けるようになって来ます。これは良い感じに書けたなぁというのも最近では徐々に増えて来ました。

続きを読む

ウェルノウンポートの競合について

WindowsというOSは手軽に色々なアプリをインストール出来て便利ですが、これだけネットワークが当たり前になってくると、ウェルノウンポートの競合が起きてしまい、意識していないとコンフリクトのメッセージに戸惑ってしまうことがあります。

まずウェルノウンポートについてですが、代表的なものはHTTP:80番、HTTPS:443番、てなところでしょうか。リンク先が非常に分かりやすいので参照して下さい。

なぜ、80番と443番を例として上げたかと言うと、コンフリクトが個人的に良く起こると感じているポート番号だからです。

標準でポート80を使用するアプリ

  • IIS
  • Skype
  • XAMPP(Apache)
  • AN HTTPD
  • Tomcat(8080番であれば大丈夫)

標準でポート443を使用するアプリ

  • VMWare Workstation
  • VisualSVN Server

競合が起こっているかどうかを調べるのは比較的容易です。
Windowsの場合はコマンドプロンプトと、タスクマネージャーを使います。

C:\>netstat -ano
アクティブな接続
プロトコル  ローカル アドレス          外部アドレス        状態           PID
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1296
TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       3640

上記より、ポート443を使っているのは、PID(プロセスID)が3640だと分かります。
PIDが判明したらタスクマネージャーで該当するPIDを持つプロセスを調べます。
下図の例では、VMware Workstation Serverというサービスが原因だと判明しました。

タスクマネージャー

要するに、標準的なHTTPS(443)というプロトコルを奪い合いになっている為に起こった競合です。別々のアプリが同じポートを同時に使用することは出来ないので、どちらかのアプリでポート番号を変更してやらなくてはなりません。

同様にSkypeが標準インストールで80番と443番を使ったりしてくれるので、少し開発寄りの事をやろうとした時に、ポートの競合で戸惑ったらSkypeが原因だったという事は多いです。理屈を知っていれば回避させることが出来るので大した問題ではありません。

Skype Port80

今回は私は、VisualSVN ServerというWebDAVサーバーのインストール時に、443番がVMware Workstation Serverに使われているという事で、インストール途中に競合問題に引っかかりました。仮想マシンの共有機能は使ってないので、VMware Workstation Serverの設定を変更して対処しました。

VMware共有

追記:2013年3月30日
ポートの使用状況とアプリをを簡単にチェックできる方法を追記したのでリンクを記しておきます。
ポート使用状況の確認(Windows) | S-Factory

Raspbian wheezy 2013-02-09リリース

Raspberry Pi用の一番スタンダードなOS、Raspbian “wheezy”の最新版、2013-02-09がリリースされました。

Downloads | Raspberry Pi

既に使用している人は、apt-get update、apt-get upgradeでパッケージ更新、最新バージョンへはapt-get dist-upgradeで移行出来ます。どうやらQTとGNOME関係が大きな違いの様です。

pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo apt-get upgrade
pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux
pi@raspberrypi ~ $ sudo apt-get dist-upgrade
The following packages will be upgraded:
gnome-themes-standard libqt4-dbus libqt4-network libqt4-svg libqt4-xml libqtcore4 libqtgui4 qdbus
8 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux

RaspberryPiRaspberry Piの魅力は、非常に安価でコンパクトな省電力PCが手に入ることです。スペック的にもアーキテクチャ的にも制限はありますが、メリットを考えるとそれらの制限は努力でなんとかする価値が充分にあると思います。そして嬉しい事にdebianベースのRaspbianというLinuxディストリビューションがRaspberry Pi専用に開発されているので、ユーザーとしてはこれをありがたく利用させていただくことによって非常に少ない労力でメリットを享受出来るのです。

続きを読む

プログラミング・ビギナーとしてのメモ

昨年末から、Visual Studio .NET 2010や2005等を使ってWindows用のアプリケーションの作り方を学習中です。私はプログラマーでは無いので込み入った仕様になれば、本職のプログラマーに依頼するのが合理的だと考えていますが、ちょっとしたツール的なアプリケーションなら自分で作れる方が便利だし、多少なりともプログラミングスキルがあれば、プログラマーとの話もスムーズに出来るかなと考えてのことです。

さてそんな私が現在気づいた事は、Visual StudioというMicrosoft社の開発環境は非常に使いやすいと言うことです。今まで使ったのはVS .NET(2002)、VS 2005、VS 2010で併用していますが、Core i7でもモッサリ動作のVS 2010は確実に使い勝手がよくなっています。軽快に動作するVS .NET(2002)では実現していない気遣い(お節介)が実現されています。

とは言うものの、Visual Studioは複数のプログラミング言語を選べるので、Visual Basic、C#、C++などからどれを学習するか迷いました。VB(Visual Basic)はビギナー向けという位置づけらしいですが、実際にコードを読んでみると理解し難い部分が結構ありました。私にはC#が一番しっくり来る感じだったのでC#を選びました。

続きを読む