JavaScriptで行と列の入れかえ(転置行列、transpose)

4×4の果物のデータ(ID,名前,個数,価格)の行と列を入れ替えるJavaScriptです。やっていることは簡単で、4行4カラムと分かっているので、データの入っていない4×4の二次元配列を作成します。最新のJavaScriptの場合、以下のように、fllとmapを使うと1行でゼロ埋めされた二次元配列を作れます。

あとは、全てのデータを走査して、移し替えていくだけです。

 

特殊な書式なデータなども、文字列や数字を配列の要素と考えると、転置行列とみなせます。CSVファイルなどもこの仕組みで転置できます。

ソースコード

 

py -2でutf-8にしたい

C:\Python27\Lib\site-packages\sitecustomize.pyを用意して、pythonコマンドを実行した場合はutf-8。py.exeだとascii。

Google Cloud SDKのインストーラーがひとまずインストール完了まで

Google Cloud SDKのインストーラーがPythonエンコード絡みのエラーで動かなかったのですが、いろいろ試しているうちに、インストール完了まで進んで、コマンドが打てる状態になりました。

Google Cloud SDKは、バージョニングされたアーカイブという最新でないインストール方法もあるので、再度Cloud SDKをアンインストールして試して見る必要がありそうです。

Windows10でdev_appserver.pyを実行する時は、pyコマンドとフルパスで指定するとうまくいく

AppEngineのGoのチュートリアルをWindows10で試したら以前は動いていたのにバージョンが上がって動かなくなりました。いろいろ調べたらWindowsの場合はいくつか注意点がありました。結果的には以下のコマンドでdev_appserver.pyを動かせました。

Windowsで使うときの注意点

  • Python2、Python3はpyコマンドで使い分ける
  • Google Cloud SDKのインストール先を再確認。(アップデートなどでディレクトリーが変わるようです。)

また、先ほどのように、フルパスでdev_appserver.pyスクリプトを指定するのが無難なようです。

 

Python2とPython3をインストールしてpyコマンドを使えるようにしておく

Google AppEngineはPython2に依存するので、Windows10では、Python2とPython3をインストールしてpyコマンドでPython2を起動するようにします。また、

Cloud SDKのパスを理解しておく

Cloud SDKは以下のどちらかにインストールされています。私の場合は以前はgoogle-cloud-sdkにdev_appserver.pyなどがインストールされていましたが、アップデートのタイミングなどで、google-cloud-sdk.stagingにスクリプトなどが移動されてました。

C:\Users\<USERNAME>\AppData\Local\Google\Cloud SDK\google-cloud-sdk\

C:\Users\<USERNAME>\AppData\Local\Google\Cloud SDK\google-cloud-sdk.staging\

環境変数のおさらい

Windowsのコマンドプロンプトでは、以下の環境変数で、ユーザー毎の情報が取得できます。

  • %homepath%で、c:\User\<USERNAME>
  • %appdata%で、C:\Users\<USERNAME>\AppData\Roaming
  • %localappdata%で、C:\Users\<USERNAME>\AppData\Local

Powershellの場合は$env:で取得できます。

  • $env:homepath
  • $env:appdata
  • $env:localappdata

 

 

円をつなぐ線 p5.js

数日前にTwitteerでopenFrameworks/C++ベースのシンプルで面白いプログラムを見つけました。junkiyoshiさんの「円をつなぐ線 openFrameworks」。ブログではソースコードも公開されているのでp5.jsで実装してみました。

円の頂点を繋げただけなのに、面白い動き!

通常のプログラミング

準備中

関数型プログラミングのように書いたもの

最近C#Linqや関数型プログラミングを勉強しているのでzip関数や参照透過性を考えながら書いたコードです。

 

PivotalCloudFoundryでMySQLのデータソースを設定する方法

結論からいうと、ClearDBサービス(MySQL)を用意してアプリにバインドすると自動でユーザー、マスワード、JDBC-URLを用意してくれました。

このデータソース情報を使うために、src/main/resourcesにapplication-cloud.propertiesを用意します。ローカル環境では、application.propertiesを使い、クラウド環境ではapplication-cloud.propertiesを使うようになるそうです。

中身は、以下のように、spring.jpa.hibernate.ddl-auto=updateで、テーブルがなかったらエンティティクラス情報から作るという指定でよいです。

https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html

cf envでデータソースの確認

コマンドラインから、cf env アプリ名でユーザ、パスワード、jdbcUrlが確認できます。(*以下は、ユーザー名などをxyzなどのようにダミーにしてます。)

 

その他・参考にしたチュートリアル

TAGVOTE「タグボート」の SpringBoot入門 Spring公式のチュートリアルである Accessing data with MySQL や Building an Application with Spring Boot

まとめ

ローカルにMySQLとSTSを用意したので、PCFでMySQLを設定する方法が分からずいろいろ調べましたが簡単でした。

 

docfxをいろいろ調べてみる

Microsoft公式サイトは、docfxをもとに作られています。https://docs.microsoft.com/ja-jp/aspnet/core/tutorials/

またオープンソースでgithubに公開もしています。https://github.com/aspnet/Docs.ja-jp

docfxを使うとMicrosoft公式サイトのように、APIドキュメントと、Markdownで記事を用意できます。docfxの場合は、Markdownの拡張がありプロジェクトのソースコードのリンクなどが簡単にできます。

docfxのインストール

Windowの場合は、chocolateryでインストールするのが簡単。

https://dotnet.github.io/docfx/tutorial/docfx_getting_started.html#2-use-docfx-as-a-command-line-tool

ワークスルー(チュートリアル)

https://dotnet.github.io/docfx/tutorial/walkthrough/walkthrough_overview.html

このワークスルーで、通常のMarkdown記事とAPIドキュメントの作成方法と組み込みサーバーを起動してブラウザで確認する方法がわかります。

ソースコードと画像を追加した記事

 

srcディレクトリーに配置したC#プロジェクトのAPIドキュメントを表示

作業の流れ

上記のサイトを試しに作ってみて一通り作業の流れが分かりました。

最初にdocfx init -qを実行し、必要なディレクトリーを生成します。srcフォルダーが作られるのでここにC#プロジェクトを作ります。docfx.jsonで、metadataのところにsrc/**.csprojと書かれているため配下の*.csファイルがすべてAPIドキュメントの対象になります。

次に、APIドキュメントを作るためdocfx metadaを実行します。C#ソースコードの変更などがあったら作り直す必要があります。

Markdownを書いたらbuildして、serveコマンド後にブラウザーで動作確認です。デフォルトでは、http://localhost:8080/です。

 

Androidのミニゲーム「Bean Clicker」を作りました。(ソースコード配布あり)

 

 

Bean Clicker(Play store)をAndroidへリリースしました。でてきた豆をタップして得点を稼ぐミニゲームです。豆はどんどん下に落ちていき、右上のライフがなくなったらゲームオーバーです。

作ってみた感想

はじめてAndroid向けにゲームを作ってみました。ミニゲームでゲーム自体のプログラムは難しくないのですが、タイトル画面を用意したり、ハイスコアを保持したり、モバイル入力に対応したりと、ゲームロジック以外のプログラミングがかなり必要でした。

また、Android実機とWindowsでは、フォントがArialファミリーでもかなり異なるので、タイトルロゴなどは画像ファイルを用意したほうが調整がなく簡単そうに感じました。またUnityでは、実機のデプロイ作業に数十秒かかるので、ちょっと修正して動作確認をするようなことが難しかったです。

ソースコードとZIPファイルのダウンロード方法

https://github.com/dev001hajipro/BeanClicker

githubで公開しています。gitをインストールしている場合は、git cloneでダウンロードできます。zipファイルがほしい場合は、上記のgithubへ行くと、右上付近に、「Clone or download」の緑ボタンがあるので、これをクリックすると、以下のような吹き出しで、「Download ZIP」が表示されるので、ここからZIPファイルがダウンロードできます。

 

cocos2d-xは環境構築回りがあまり追随できていない模様

ここ数日Cocos2d-x 3.16をインストールして開発環境構築やシーンを作成したりしました。環境回りでいくつか問題が見えてきたので書いておきます。

インストールにPython2.7が必要

下位互換性のためかPython3に移行しないようです。

AndroidStudio更新に追いついていない。

次のCocos2d-xで警告は解消されるようですが、Gradle、AndroidSDKのバージョンに追い付いていないです。AndroidStudioで開発を始めると警告が消えないままになります。

静的ライブラリーが生成できない。

cocos2d-x 3.16をインストールした初期設定ではgen-libsコマンドが実行できませんでした。githubからcloneしたりすると出来るかもしれません。

VisualStudio2017に対応していない。

cocos2d-xは、VisualStudio2017でソリューションを開いて、その中にある各プロジェクトを右クリックして「再ターゲット」をすると、プロジェクトを2017に対応できます。これでひとまず開発できますが、上記のような静的ライブラリーはわかりませんでした。

AndroidStudioで実機確認すると重い

ゲーム開発中はちょっと修正して動作確認したいと思いますが、ビルドとapkファイル更新に数十秒かかるので、かなりのストレスになります。

cocosコマンドとテキストエディターで開発

AndroidStudioでスマートフォン実機で開発し始めましたが、win32用にVisualStudioまたは、cocosコマンドとテキストエディターである程度開発するのが効率がよさそうでした。

 

 

HappySandwichCafeで「マグを探そう!」でマグの手がかり23が表示されない。

バグ?マグの手がかり23が入手できない。

HappySandwichCafeで以下の条件まできましたがマグの手がかり23が手に入りませんでした。この状態で、住民にマグアイコンが出たときに、100人以上クリックしていますが、「探してた犬は、もう見つかった?」しか表示されません。

総当たりで調べると単純な作業なので、せっかく面白いゲームなのに残念。

  • ゲーム進行がChapter4
  • 重要ミッション3クリア
  • 具材95%,パン90%,調味料58%,デコパーツ5%