プログラミング

Linuxサーバー環境上でWEBアプリなどを作成しています。WEBでのプログラムを仕事で作るようになった初期の頃はPerl、その後PukiWiki関係のCMSを使うようになってPHPとJavaScriptを使う頻度が増えました。今後は、Pyhtonを使えるよになりたいと思っています。なお、未だにオブジェクト指向でプログラミングには慣れず、古いスタイルです。(2017年4月現在)


学校教育でのプログラミング

 当面関わる機会はなさそうですが、JavaScriptやPythonなどのプログラミング言語を利用して基本をしっかり行う事が大切なのではないかと考えます。特にJavaScriptやPythonといった言語は基本から応用まで幅広く教材として使えるライブラリなどもオープンソースとして公開され、利用することが出来ます。

Scratch

  • 8歳くらいからを想定したプログラミング言語。プログラム言語を記述するというより、機能が割り当てられたブロックを組み合わせて完成させるという感じのもの。
  • 様々なプログラミングの学習に採用されている。
  • Wikipedia
  • https://scratch.mit.edu/

Scratch説明画面

他には、この後の「JavaScript - ゲーム開発」の部分で紹介している「enchant.js」は、ゲーム開発に便利と思われる関数などが用意されたJavaScriptのライブラリです。インターネット閲覧ソフト(ブラウザ)とテキストエディタがあれば、プログラミングを試せます。



おすすめ!!

ドットインストールのスクラッチ講座


Pi STARTER

  • メモリ入りのソフトウェア(BASIC言語)を購入する感じになるようです。
  • 店頭価格は税込4,000円
  • 公式URL http://smilebasic.com/pistarter/

上記URLより抜粋
 Raspberry Pi財団が提供するシングルボードコンピュータ(Raspberry Pi 3)上で動くSmileBASICです。SmileBASICはSmileboomが提供する独自のBASICで、ゲームプログラミングに最適です。




ハードウェア、参考URL

  • プログラミングの学習に利用出来そうな、シンプルなパソコンボード。キーボードやモニターディスプレイなどが他に必要です。

Raspberry Pi (ラズベリーパイ)


こどもパソコン IchigoJam




  • また、次の様なものは、単体で動作しますが、プログラムの開発は別に用意したパソコンで行うなどし、プログラムを転送して利用します。

Gamebuino

  • Arduinoの開発環境でゲームが開発できる液晶ゲーム型マイコンボード。モノクロ液晶で、初代のゲームボーイの様ですが、アイディア勝負で色々と出来そうです。
  • http://akizukidenshi.com/catalog/g/gM-11624/


micro:bit

  • イギリスのBBCが主体となって作った教育向けのマイコンボードです。(販売サイトより)
  • WEB画面で単純な機能を組み合わせてプログラムし、それをUSBケーブルで転送します。センサーの値に反応させて、LEDを点灯をコントロールする事などが可能です。
  • http://tech.microbit.org/
  • https://www.switch-science.com/catalog/3735/

Amazonでの書籍販売




オンライン(ネット)動画、プログラミング講座

ドットインストール - 3分動画でマスターする初心者向けプログラミング

  • 一講座が3分程度の動画によるプログラミング講座。無料でも基本的なWEBプログラミングについて学ぶことが出来ます。
  • http://dotinstall.com/




YouTube

YouTubeでもPythonやJavaScriptを中心にプログラミング講座が公開されています。基礎講座が多いようですが、参考になるものが沢山見つかると思います。


ヘロンの数学 Heron's math

  • https://www.youtube.com/channel/UCQO4HzPkRpczr3rECUOL3RQ
  • もっと本格的にゲームプログラムミングをやってみたい時に知っておいたほうが良い知識を例を示しながら教えてくれます。プログラム言語の多くはJavaScriptですので、ブラウザをテキストエディタがあると多くのプログラムは自分でテストすることも出来るはずです。




プログラミングのメモ

各種メモは以下などで公開しています。Linux,Ubuntu,bash,フィルタコマンド、PostgreSQLなどあまり深くは掘り下げてはいませんが、私が個人的に遭遇したトラブルなどを元にメモしています。





以下、よく利用するオープンソース等のリンクの一部です

利用しているオープンソース、ライブラリなど

OS(デスクトップ、作業環境)

Ubuntu

  • インタネットからダウンロードしてパソコンにインストール可能なオペレーティングシステム(OS)です。追加料金を払うこと無く、ワープロソフト(LibreOffcie Writer)、表計算ソフト(LibreOffcie Calc)、画像編集ソフト(GIMP)、テキストエディタ(Geany)、インターネット閲覧(Firefox)、Pythonなどのプログラム言語を動かすことが出来ます。
  • 半年毎に機能の見直しが反映され、リリースする日付から西暦年の下2桁と月を利用してバージョンが決められます。2018年の4月にリリースされると「Ubuntu 18.04」となります。
  • 私は12.04くらいから普段作業を行うデスクトップパソコンに、このUbuntuを利用しています。
  • 2018年の初夏に14.04から16.04そして18.04にバージョンアップしました。初期状態から変更しているせいかエラーなどで少々苦労しました。新規にインストールしてから14.04の環境に近づけた方が良かったように思いました。(2018年初夏)
  • https://www.ubuntu.com/
  • https://www.ubuntulinux.jp/home - Japanese Team

JavaScript - Web開発

jQuery


Bootstrap


Skeleton

  • グリッドを利用してレスポンシブデザインを実装出来るシンプルなライブラリ。
  • http://getskeleton.com/


Vue.js




JavaScript - グラフ表示、グラフィック表示

D3.js

 D3.js はデータに基づいてドキュメントを操作するための JavaScript ライブラリです。D3 はHTML や SVG、 CSSを使ってデータに命を吹き込みます。D3は WEB 標準に重点を置いており、強力な視覚化コンポーネントとデータドリブン (データ駆動型)DOM 操作手法の組み合わせにより、特定のフレームワークに縛られることなく、モダンブラウザの性能をフルに 引き出すことができます。(http://ja.d3js.node.ws/より引用)


Chart.js

  • パソコンやスマートフォンなど端末の違いによって生じる画面幅の変化にもある程度自動で対応するグラフ表示ライブラリ。
  • http://www.chartjs.org/


p5.js

  • 簡単な図形を利用した表現を比較的簡単な記述で行うことが出来る。もちろん凝った芸術的なWEBページなどを記述し易いライブラリ。
  • 公式 https://p5js.org/
  • ドットインストール




JavaScript - ゲーム開発

enchant.js

 JavaScriptでのゲーム、アプリ開発を支援するライブラリ。WEBサイトでは「カンタンにゲームやアプリを開発できる HTML5 + JavaScript フレームワークです。」として紹介されています。
 ダウンロードしたenchant.jsファイルには、簡単なシューティングゲームやロールプレーイングゲーム(RPG)の2Dマップ表示のサンプルなども用意されています。
 パソコンとブラウザ、テキストエディタでプログラムが作成出来ます。簡潔な書式で画像を画面上で移動表示させるなど、プログラムで処理した事を分かりやすく表現できますので、プログラミング教育などでの活用が期待できそうです。

  • http://enchantjs.com/ja/ が無くなりました。最近は、https://github.com/wise9/enchant.js から一式ファイルがダウンロード出来ます。サンプルなどもあります。ダウンロードはこの画面の中間くらいの「Download Zip file」のリンクから可能です。リファレンスマニュアルは、その下の「Documentation」から確認できます。(2020-01-15時点)


ドットインストールの講座も参考になるかと思います。


p5.js

 機能を簡単に拡張出来るライブラリが用意されています。「p5.play」ライブラリにはゲームの画面表示に便利なスプライト機能やオブジェクトの座標上での衝突判断が行える機能などがあります。

 ネット検索で「p5.js ゲーム」などとして検索してみると情報が得られると思います。




CMS

PukiWiki

 非公開としたWEBで情報共有などを行うのに便利なシンプルなCMS。

HAIK

PukiWikiから派生したCMSのようなもの。プラグイン機能をPHPで記述することで、WEBアプリのベースとして利用することもあります。