投稿

aws関係、使ったサイト

AWSにポート22以外のポートでアクセスする http://garapon.hatenablog.com/entry/2015/12/14/103000 AWS EC2のAmazon Linuxでの時刻設定メモ https://qiita.com/n0bisuke/items/7d0689c981a972dba190

Bitbucketにリポジトリを作った時に参考にしたサイト

https://bitbucket.org/ Git全般 サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 Bitbucketにpushする(ssh鍵の登録等) [Bitbucket]gitコマンドでBitbucketを操作する 〜基本編〜 BitbucketにHTTPSポートでSSH接続する方法 https://memoteki.net/archives/991 他、つまったところ 最新のgitだと`git push`した時に警告が出たのでその対策 Macのpbcopyをubuntuでも使う リモートのブランチをcloneする https://qiita.com/shim0mura/items/85aa7fc762112189bd73 随時追加していきます。

多倍長電卓LMを使って基数変換をする

基数変換、16進数から10進数への変換などをしたい時、2,10,16などの代表的なものや、 比較的小さい(15桁くらい)の変換ならExcelやインターネットで 公開されているツール でできる。 ただ、ある程度以上長くなるとintやlongの限界を超えてしまうため、多倍長整数での計算が必要となる。 pythonや各言語のライブラリを使っても可能だが、今回は「 多倍長電卓LM 」を使うことにした。 この電卓は多倍長整数を扱えるだけでなく、C言語の文法をベースとしたコードを書くことである程度の計算が出来るのも特徴だ。 この多倍長電卓LMで基数変換をするコードを書いた。 一旦メモ帳などにコピーして書き換えてから多倍長電卓に貼り付けることで実行できる。 cardが変換前の基数、card2が変換後の基数。 order,order2がそれぞれ変換前後の値の桁数。 values[0]~に各桁の10進法での値を入れる。 values[0]が一番下の桁の値だ。 そして配列values2の各要素に変換後の各桁の値がはいる。 9以降はアルファベットをaから用いているので、36進数まで対応している。 var card = ; var card2 = ; var order = ; var order2 = ; var values[order]; var values2[order2]; var answer=0; values[0] = ; values[1] = ; values[2] = ; values[3] = ; values[4] = ; values[5] = ; values[6] = ; values[7] = ; values[8] = ; values[9] = ; values[10] = ; values[11] = ; values[12] = ; values[13] = ; values[14] = ; values[15] = ; values[16] = ; values[17] = ; values[18] = ; values[19] = ; values[20] = ; for(i=0;i<order;i++){ answer += values[i]*card^i; } print answer; var i

chromyを実行するとエラー:"Failed to launch a browser"が出る

問題無く実行できていたchromyを使うコードを実行したら、 Error: Failed to launch a browser.  at Chromy.start というエラーが突然出てきました。 サンプルコードでも再現し、再起動、chromyの再インストールでもダメでした。 ・解決方法 pkill -f "(chrome)*?(--headless)" でheadless chromeを停止させます。 どうやら不正終了時にプロセスが残ってしまっていたようですが、再起動も効かないのはよくわかりません。 参考: https://github.com/OnetapInc/chromy/issues/45

2次元配列のコピー::JavaScript

配列の中身のコピーは.slice()を使えば出来る。 しかし、2次元配列など、配列の中身が配列の時は、参照がコピーされてしまう。 例えば、 var array = new Array(3); var copied = new Array(3); for(i=0;i<3;i++){ array[i] = new Array(3); copied[i] = new Array(3); for(j=0;j<3;j++){ array[i][j] = 0; copied[i][j] = 0; } } copied = array.slice(); console.log("before array:",array[0][0]); copied[0][0] = 1; console.log("after array:",array[0][0]); console.log("before copied:",copied[0][0]); array[0][0] = 2; console.log("after copied:",copied[0][0]); というようにすると、一方の配列を書き換えるともう一方も変わってしまう。(と言うより同じものを参照している) before array: 0 after array: 1 before copied: 1 after copied: 2 ので、 var array = new Array(3); var copied = new Array(3); for(i=0;i<3;i++){ array[i] = new Array(3); copied[i] = new Array(3); for(j=0;j<3;j++){ array[i][j] = 0; copied[i][j] = 0; } } for(i=0;i<3;i++){ copied[i] = array[i].slice(); } console.log("before array:"

JavaScriptでライフゲームを作ってみた

Move Stop Reset クリックでパターンを作れます。 JavaScriptを始めてから5時間くらいで作れました。 練習用の課題としてライフゲームの実装はとても適してるのではないでしょうか。 BloggerでJavaScript貼り付ければ動いてくれるのは便利です。 自動セミコロン挿入は驚きましたが、気にせずセミコロンを書けばいいことがわかったので問題ありませんでした。 ブロックスコープじゃないのも戸惑いました。こっちはまだちゃんと理解できてないのではないかと思います。 参考にしたサイト とほほのJavaScriptリファレンス 初めてのHTML5ゲーム作成 JavaScript のスコープを理解する-tacamy.blog JavaScriptの自動セミコロン挿入-本の虫 http://noidgames.web.fc2.com/lifegame.html 一応コードも貼っておきます。 <style type="text/css"> #canvas1 { display: block; width:320px; background-color:black; } </style> <script type="text/javascript"> //明示的にグローバル変数を宣言 var canvas1; var ctx; var field = new Array(32); // フィールド情報 var isMove = 0; for(i=0;i<field.length;i++){ field[i] = new Array(32); for(j=0;j<field[i].length;j++){ field[i][j] = 0; } } window.onload = function() { canvas1 = document.getElementById('canvas1'); ctx1 = canvas1.getContext('2d'); canvas1.addEventList