使わなくなったタブレットを再利用してスマートミラーをつくる

使わなくなったタブレットがあるんですよ。

なのでこれを使ってスマートミラーを作ろうと思います。

使わなくなったのを使って〜って言うとなんだかエコっぽいですね。

いらなくなったタブレットNexus7です。タブレットマイコンのプログラミングができると聞いて中古品をアマゾンで4000円くらいで買ったやつなんですけど、あまりにもおもすぎて(あと、バッテリーが死んでて充電コードを挿しっぱにしないと2時間と保たない)ほったらかしてたんですよね。

これを使っていきます。

方法

ハーフミラーってあるじゃないですか。

 

暗いところから見ると向こうが見えて、明るいところから通してみると鏡のように光を反射して見えるので向こう側が見えないってかんじのやつです。

この特性を活かし、ガラスの内側に黒背景で白い明るい文字でタブレットに表示させると黒い部分は鏡になり、白い文字は表示されるのでマジックミラーになるらしいです。

ガラスに貼るタイプのシートがあるのでそれを活用します。

 

完成したミラーには

  • 現在時刻
  • 日時
  • カレンダー

を表示させようとおもいます。

 

そのためにタブレットにはこれらを映さなければいけないですね。

Androidアプリを作ることも考えたのですが、下手に重くなっちゃうとこのタブレットでは起動すらできるかわからないのでWebページを全画面表示するってやり方でいきます。

 

作ります

 

Habitというブラウザ表示アプリがあるのですが、それを使うことで検索バー、ホームボタン、ページバックボタンなどを表示させることなく全画面でブラウザを映し出すことができるようになります。

f:id:ten0313:20180917035659j:plain

適当に表示させてみました。右下に邪魔っけなのはありますが僕のアプリを駆使する能力ではこれの非表示の方法がわかりませんでした。

コードを書きました

PerlCGIでなんやらかんやらで書きました。

f:id:ten0313:20180917035702j:plain

よきですね。黒背景に白でいいかんじです。

HTMLのhead部分で5秒毎に更新するようにしてPerlのlocaltime関数で得たデータをもとに色々しています。

ミラー部分です

f:id:ten0313:20180917035649j:plain

貼るだけでマジックミラーのあれです。これを額縁のガラスに貼ってやります。

f:id:ten0313:20180917035654j:plain

台紙のダンボールにタブレットが収まるようにカット、充電のコードがさせるようにもカットしておきます。

f:id:ten0313:20180917035652j:plain

いいでしょ

完成です

f:id:ten0313:20180917052059j:plain

よいでしょー!シートを貼る才能がなかったせいで気泡が入りまくりなのは否めませんが正直気になるので業者に貼り直してもらうかマジックミラーだけ外注するか考えています。

f:id:ten0313:20180917035646j:plain

でもちゃんと反射してます。

 

まとめ

機能の説明してませんでしたね。

上から順に、日、曜日、時刻、その月のカレンダーです。カレンダーはその日がマークされるようになってます。

これからですが、他にもその日の天気とか気温とか色々できるように今後はしていくつもりです。

もちろん動かすこともできるので未来感というか何というか

 

ミラーい感ってね

 

[ この記事はブログ投稿者の憶測や考えによりつくられています。

よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してあります、リンク先のツイッターアカウントに教えてくださると嬉しいです:) ]

 

twitter.com

さくらインターネットのサーバーでcgi内のHTMLの文字化けを修正する

備忘録的なやつです。こんなことにハマるのはよっぽどの初学者か間抜けな人だと思うので僕は今からその間抜けのために記事を書きます。

文字化けするので直します。

それだけの話です。めちゃくちゃ短い記事になりそうでみんなハッピーですね。

 

print "Content-type: text/html; charset=utf-8\n\n";

 

これをいい感じの場所に置換するなり書き込むなりしてください。

 

先に結論を書くのとてもいいですね。いい人になった気持ちです。

ハマった話

僕がこれにハマった話です。

普通に考えたらcharsetの値を変えれば良いってのはわかるんですけど、僕はそれをさくらのファイルマネージャーからいじってたんですよ。ファイル読み込みの時点でファイル内に記述されているやつが適用されるっぽくてひたすら

f:id:ten0313:20180901232732p:plain

これがでてきてました。あふぉですね〜〜。

記述されたとおりにすると

f:id:ten0313:20180901232846p:plain

成功です。よきですね。

それにしても文字化け、なんとなくホラーチックですね。人は意味のわからないものに恐怖するって言いますが、それなのでしょうか。それかなんかの映画的なのに文字化けが出てきてそれがイメージになってるってのなんですかね。

 

ばいばい

 

[ この記事はブログ投稿者の憶測や考えによりつくられています。

よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してあります、リンク先のツイッターアカウントに教えてくださると嬉しいです:) ]

 

twitter.com

さくらインターネットサーバーにてCGIの実行で詰まった話 [505 Internal Server Error]

いや、なんか2日くらい詰まった挙句、結構シンプルな解決法だったので覚書としても...

まあ題名のとおりです

そんな内容のない記事なんか書きたくねえ!なんてアホみたいなことを考えているのですが、少しでもアウトプットを習慣づけていったほうが自分の記憶にも定着するし他の困ってる人にたまたまこの記事が目に入って理解の一環になればいいなとか考えています(単に僕が字を書くのが好きってのもありますが)

 

505 Internal Server Error

f:id:ten0313:20180822211838p:plain

ってのが出るんですよ、ファイルのパーミッションはあってるはずだし(755にしている)パスもきちんとさくらサーバー指定のものにしています。

*1

これがさくら指定のPerlnoやつです。ファイルの頭につけます。

Perlで書いたCGI

*2

こんな感じです。うまく行けば「Perl Programming」が出るはず。

解決しました。

このファイルが入っているディレクトリのパーミッションも変えなければいけないんですね。僕はそれにハマってました。

ディレクトリのパーミッションを755に変えて(僕はさくらのファイルマネージャーから変えました)

f:id:ten0313:20180822212752p:plain

やったー!!!!成功ですね〜

cgi完全に理解マンになるべく精進していこうと思います。

ばいばい

 

追記なんですけど(※18年8月26日すいか)

カレントディレクトリのパーミッション、777で行けへんかなあ(755も兼ねてるし...みたいな考えだった)みたいな感じだったんですけど間違いでした。

さくらのレンタルサーバで、Premature end of script headersが出る : mwSoft blog

エラーログ見ろやって感じだったんですけど、さくらサーバーでサーバーコントロールパネルから直接見ることができました。

左のメニューバーのアプリケーションの設定、アクセスログの設定からエラーログの表示で見れました。便利ですね。

 

参考にしたの

「500 Internal Server Error」の原因と解決方法 | すぐ使えるサポート情報

CGI・PHP・SSI について – さくらのサポート情報

ウェブページのエラーメッセージ – さくらのサポート情報

さくらのレンタルサーバで、Premature end of script headersが出る : mwSoft blog

 

[ この記事はブログ投稿者の憶測や考えによりつくられています。

よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してあります、リンク先のツイッターアカウントに教えてくださると嬉しいです:) ]

 

twitter.com

*1:/usr/bin/perl

*2: 1 #!/usr/bin/perl --
2
3 print "Content-type: text/html\n\n";
4 print "Perl Programming";
5 exit;

3Dプリンタを購入したのでディズニーランドのハーベストコインホルダを作った

3Dプリンタを購入しました。

前からほしかったんですよね。ハッカースペースと呼んでいるコワーキングスペースにも高価な3Dプリンタはありましたが、原因不明に動かないのでただの機械っぽいプラスチックと金属の箱に成り下がっていました。

f:id:ten0313:20180628225412j:plain

かっこいいですね

組み立て式のこれを買いました。

送料も合わせて3万と幾ばくかの値段でした。脅威のお手頃価格ですね。

www.amazon.co.jp

組み立て式とだけあってそれっぽく輸送されてきましたね。

f:id:ten0313:20180822071331j:plain

はい、今回の記事では「コレの組み立て方チュートリアルですわよ〜〜」って書くつもりだったんですけど、ネットに転がってる記事でもう十分にできたので僕が書く必要はないですね。車輪の再発明というか、誰かの上等なお仕事をもう一度する必要はないと思います。

組み立てたので〜

f:id:ten0313:20180822071201j:plain

それなりのサイズ感でかっこいいですね。

一般的な3Dプリンタは3軸方式のあの四角いやつですが、今回僕が購入したのはデルタ型と呼ばれる特殊な方式を採っている3Dプリンタです。

 

 動いている動作の様子です。

3本のバーがステッピングモータにより制御されいい感じに上下しているのがかっこいいですね。

組み立てもそこまでハマることなくスムーズに進みました。3時間くらいかかったかな。

f:id:ten0313:20180822071206j:plain

基板の配線も、丁寧に基板にプリントされた文字とコードにつけられているラベルを合わせるだけなのでめっちゃ楽ちんでした。

なんか作ってみましょう。

せっかくですしね。

ディズニーランドに行ったときにハーベストメダルって買うじゃないですか(え、買わない?じゃあ買え。お前は次回から買う)あれ好きなんですけど、なかなか保管方法に困ります。

f:id:ten0313:20180822073514j:plain

こういうのです。

僕はお気に入りのR2D2が刻印されたやつを持っているのですが、どうせなら飾って鑑賞するだけでなく持ち歩いてみたいんですよ。

しかしメダル自体を加工するのもソレジャナイ感がありますし、めんどくさそうです。

ここは早速の3Dプリンタの出番と言えるでしょう。

f:id:ten0313:20180822071157j:plain

ハーベストメダルを適当に採寸してCADソフトでホルダーをモデリングしてすぐ後ろのプリンタで出力します。一歩も動かないで椅子から立たずにハードが作れるの、最高にミライって感じですね。

できました

f:id:ten0313:20180822071152j:plain

おー!かっこいい!それなりに精度もあってよろしいですね。

f:id:ten0313:20180822074503j:plain

黒ネジがかっこいいです。

キーホルダーのチェーンというか紐をつける穴もつけたので十分にキーホルダーとして機能しそうです。ただ、メダル単体よりかなり大型になってしまったので(それもまたいいのかもしれませんが)次回また作るときはデザインなり構造をよく考える必要がありそうです。

まとめ

確実に使える3Dプリンタが来たことは確実に今後の製作でプラスになってくれそうです。それなりに大きめの部品も出力できるようですし、今はドローン作ってみるか...なんてことをギークハウスの住人と話しています。

動作中の音ですが、たしかに目立つっちゃあ目立つので(ギュインギュイン鳴るというわけではないですが、それでもステッピングモータの特徴的な高音が....)ダンボールかなにかで(ダンボールはダサいか)シールドというか、ボックスを作りたいと思っています。

それでは〜〜〜〜〜〜〜〜

 

[ この記事はブログ投稿者の憶測や考えによりつくられています。

よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してあります、リンク先のツイッターアカウントに教えてくださると嬉しいです:) ]

 

twitter.com

ここ最近詰め込みすぎたって話

先に弁解しておきたいんですけど、この記事を書く目的は「ここ最近根を詰めて勉学、技術向上に勤しんでいるぜー!」みたいな意識の高い自慢ではなくて「能力をたいして持たない人は特に自分の持ち得る能力を理解するべし」って反省文みたいな感じです。

Qiitaとかでポエムタグつけてうんたらかんたら宣ってるエンジニアいるじゃないですか(ディスってるわけじゃないです)。あれ僕もやりたいんですよ。

 

技術ブログを名乗ってるだけあって中高生が140文字と+αで済む小言をわざわざnoteに投稿してお経を読んでるような記事は対して伸びもしない上に、書き上げたあとの「どうぞ!見てください読んでください」って気持ちにもならないので

非生産的だと認めてるんですけど、いま直面してる問題があまりにも「これ、他の人にも当てはまるんじゃないか」と思い書いてる次第です。

 

最近やることを自分から増やしすぎた

このとおりです。とりあえず僕が覚えているだけで今未完了のタスクというかやりたいことやることを羅列すると

えっと、中にはもちろんこの日までに終わらせるってのが決められてるものも決められてないものもあるんですけど、どちらにせよ僕一人が処理できる量だとは流石に思えません。

 

ってか「おぼえてるだけ羅列した」だけであってもちろん僕に忘れ去られているタスクもあったでしょう。

 

これの原因はただ一つ、「僕がよくスケジュール管理なぞもせずにほいほいと請け負ったり、あれやりたい!の単純な思いからやることを増やしていった」だと思っています。

 

もちろんなんとかしなくてはいけないので僕が今とっている対策というか処理方法は「複数のタスクから後回しにしてもいいこと、やらなきゃいけないことではないこと」を捨てる、というアプローチでなんとか(なんとかできてるんか?)している状況です。

 

頭の切れる方ならわかると思うのですが、僕が今回の取捨選択で後回しや一旦置いたプロジェクトは今後多分触られることもないでしょう。本当に悔しく思っています。

 

自分のやりたいこと、理想に思えたことを捨てるのは後悔もありますしもったいなくも思えます。

「一週間でできないものは、それはこの先ずっと実現できないものだからね」というのは、東京に来て初めてのハッカソンイベントでとあるメンターの人に言われ心に来た格言じみたセリフなのですが

それにしても僕は自分の処理能力を過信しすぎていた....というよりも自身の能力との天秤にかけるまでもなく「負荷をかけたら未来の自分がなんとかしているだろう」とかいうふざけた考えをしていました。

 

とりあえず僕が学んだ....というより、今強く思っているのは「自分の今やることをきちんと細かいことから把握しておく」ことがなにより重要だなということです。

 

ってか負荷をかけるならかけるなりで他人からの重圧やらなんやらを使おうとか卑しい考えだったし、それによって周囲を巻き込んでるのは完全にギルティって感じですね。

 

今後は「対応不可能と悟ったときにタスクの取捨選択をするのではなく、対応可能か吟味する際にこそ捨てるか拾うかの選択をするべき」だと心に念じて生きてゆきます。

 

ばいばい〜〜

 

[ この記事はブログ投稿者の憶測や考えによりつくられています。

よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してあります、リンク先のツイッターアカウントに教えてくださると嬉しいです:) ]

 

twitter.com

無料公開されているということでCODEPREPでJavaを学んでみた

〜〜してみた!!ってなんかユーチューバーっぽいですね

僕は全く存在すら知らなかったのですが、プログラミング学習サイトの「CODEPREP」がサービス終了するみたいですね。

f:id:ten0313:20180811162449j:plain

R.I.P.CODEPREP!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

それに伴って今まで有料で公開していた教材のすべてを2018年の9月30日まで無料公開しているみたいなんです。すげえ太っ腹ですね。

support.codeprep.jp

せっかく無料公開されているんだしこの機会に何かやってみるかと思い、僕はJavaの教材を進めてみることにしました。

なぜJavaなのか

いやPerlやれよと、僕もとてもそう思うんですけど。

友人と初学者同士でスマホのアプリ作りあって、その出来で勝負するかと思いつきまして、とりあえずAndroidStudioをパソコンで広げたわけなんですけど....まったくわからんって感じなんですよ。

いやそりゃ雰囲気でチュートリアルをすすめるのもいいかもなんですけどなんか気持ち悪くてですね。(俺達は雰囲気でアプリを作りたいわけじゃない)

 

そんなときに無料公開されている教材があると知りCODEPREPに飛びついたわけなんですね。

実際にやってみた感想

CODEPREPはそれぞれの言語ごとに別れたチュートリアルみたいなのを進めていく...というのではなく、言語の応用編、基礎編、他なんか作ってみようぜ編みたいな感じで「ブック」という単元にそれぞれ分かれて配信してある学習サイトです。

f:id:ten0313:20180811163721p:plain

こんな感じで

progateとかみたいに「言語」というくくりだけで一通りまとめられていないのでどれから始めたら...って感じでわかりにくく感じました。

f:id:ten0313:20180811164033p:plain

各言語ごとのまとめページに行っても「上から順に進めれば?」とかでもないですね

僕がとりあえず終わらせたのは「Java入門 基本操作編」です。

学習画面です

f:id:ten0313:20180811164312p:plain

まあこんな感じで、ブラウザ上にコンソールが表示されていて左に演算子の説明と使い方、右のコンソール画面のオレンジ色になっている虫食いの部分に教わっていることを当てはめていって理解していこう〜みたいな流れですね。

f:id:ten0313:20180811164505p:plain

正解するとコンソール下の出力結果に色々出て次の項目に移っていけます。

まあ入門編なので単調ですよね。

 

これが「Java演習 基本操作編」とグレードアップしてくると

f:id:ten0313:20180811164740p:plain

こんなふうに「まあ一行書いてみろや」って感じで要求される難易度も変わってきます。とっつきやすくて嬉しいですね。

解説の質としてはところどころ「からっきしわかんねえやプヨグヤミング~~~」って人には難解な語句が序盤にもサラッと出てくるのでその都度「んん?」って感じでググるなりする必要がありそうです。その代わり「プヨグヤミング完全に理解してる」って人にはサクサク進めれていいのかもしれないですね。

CODEPREPここが良い

一つ大きく感じたのは言語ごとの応用編の単元の豊富さです。

JavaScriptの項目にしてもフレームワークごとの応用編、配列操作編、おうホッケーゲームつくってみっか編と、とても豊富です。一つの単元を終わらせないと次のには進めれないなんてことはないので「Javaだいたいわかったけどファイルの操作わかりにけえなあ...」なんてことがあったらそれ用の単元が用意されていますし、他のプログラミング言語のここが不安だ...なんてことがあったらそれに対応するブック(単元)をそれだけやったらいいわけです。

まあ夏休みの課題にでもしてみませんか

CODEPREPの紹介記事だったんですけどどうでしたか、僕紹介記事とか書けてます?どう?

僕の進捗ですが、まあ可もなく不可もなくって感じですね。序盤なのでプログラミング楽勝って気持ちでキーボードを打っています。

Androidアプリ、まず早く取り掛かるところに行きたいですね。

卍〜〜〜〜〜

 

[ この記事はブログ投稿者の憶測や考えによりつくられています。

よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してあります、リンク先のツイッターアカウントに教えてくださると嬉しいです:) ]

 

twitter.com

ギークハウスのslackにオリジナルのbotを作成して仮想通貨を作った

久しぶりの投稿ですね、今回は珍しく「さわれないもの」の製作についてです。

Slackにbotをつくります。

いまなんか横のレンジで卵が爆発したんですけどおもしろすぎでしょ

前口上が長いことは嫌いなので本題に入ります。

僕の滞在しているギークハウス新宿2にはかっこいいネコがいます。

f:id:ten0313:20180804141526j:plain

名前は「モカ

ネコって一日に2回くらい水を替えなければいけないんですけど、替えたことをいちいちハウス内のslackに書き込むのってめんどくさいじゃないですか。そこでbotをつくっていい感じに問題解決できるのではないかと考えました。

この記事中にネコの水替えハックはないです

いろいろ試行錯誤してたらbotつくりがたのしくなっちゃって他の機能を色々つくってました。

方法

hubotというGithubがつくったらしいNode.jsのフレームワークを利用します。

f:id:ten0313:20180804143638p:plain

これを使って荷物の中で眠っていたrazberrypiをサーバー機にして運用しています。

f:id:ten0313:20180804150236j:plain

いろいろして色々したので(というより長いこと記事を書いていないのでめんどくさくなった)僕がギークハウス内のslackに実装した機能を紹介します。

・ピザの注文リンクを貼ってくれる

f:id:ten0313:20180804144937j:plain

1枚分の値段で3枚買える!みたいなアホな企画でよくお世話になっているので(美味しい)botにピザ、ぴざ、pizza的なことを言うと注文リンクを貼ってくれる機能を作りました。これを利用して今度注文したいです。

・お願いを短冊にしたためてくれる

 

f:id:ten0313:20180804150334j:plain

いつまでも和の心は忘れたくないですし、それにおいて夏のイベントである七夕の短冊にお願いを書くっていう行為はいつでもできるようにしたいですよね。

botに「○○○ tanzaku」と言うと内容をslackのチャンネル上に短冊にしてくれます。

めちゃくちゃ便利ですね。縦書きになるのでうっかり「寿限無」のアレなんかをリクエストしてしまったときは悲惨です。チャット欄が長ったらしい短冊で埋まっちゃいます。

f:id:ten0313:20180804150835j:plain

・抽選機能をつくりました

f:id:ten0313:20180804150924j:plain

botに言った単語の中から一つをランダムに選んで返してくれます。特に利用するシーンはいまのところないですね。

・タスク管理機能をつくりました

ギークハウス内のさまざまな「やること」をみんなで共有できればと思い、簡単なTODO機能の管理的な機能をつくりました。

f:id:ten0313:20180804151127j:plain

「add ○○○」でタスクリストにタスクを追加します。

f:id:ten0313:20180804151449j:plain

「tasklist」で今現在未完了のタスクを表示、完了したものは「done "タスクリストで表示されたタスクの横についている数字"」で削除できます。

f:id:ten0313:20180804151721j:plain

もういちどタスクリストを表示させると、さっき完了した「かき氷を食べる」のタスクが消えてますね

・仮想通貨を作りました

タイトルで釣ってやろうと思ったんですけど、どうですか仮想通貨界隈の人達。仮想通貨の国の人達はブロックチェーン技術でつくられた野菜をバリバリ食って非中央集権を実現した空気を吸って毎日生きてるんですよね??楽しそうで何よりです。

それは置いておいて、ギークハウス内で仮想的にslack上でお気持ち...的な意味でつくった仮想通貨「ギーコイン」です。

f:id:ten0313:20180804152813j:plain

ギーコインは誰もが最初に100個(個?)もらえて自由に扱える仮想的な通貨です。

ギークハウスの住人間で気持ち的な感じで贈ったりもらったり...見たいな感じで遊ぼうかなと思っています。

(住人の方達にもhubotのscriptのコードを乗せているgithubのページを公開していますし自由にイシュー、プルリクなど送ってもらえるようにしています。...あれ?本家ビットコインよりも”非”中央集権的なのでは.....???????)

まあ技術的な仕組みを言うとユーザーの名前と持っているコインの数をハッシュ化してユーザーネームをキーにして値であるコイン数を変数として保持する簡単なものです。

収支記録をブロックチェーンで監視、演算なんてしていません。

つくったbotのコードをgithubに公開しています。よかったらなんか投げてください

github.com

まとめ

はじめてちゃんとしたJavascriptのコードを書いて色々と楽しかったです。

公開したプログラムにはさっきチラッと見ただけでもぽつぽつ改善点があってどんどん修正してコミットしていきたいななどと思っています。

眠らせていたラズパイを活用できていつのは何気にうれしいことですね、最近はCUIにも慣れてきたかな...って感じなのでラズパイならではの画像解析とかいった工作のやつなんかもやってみたいです。 では

 

[ この記事はブログ投稿者の憶測や考えによりつくられています。

よって書いてある内容に誤りや言い間違いがあるかもしれません。もし修正したほうがいい場所や「こういった言い方のほうが”ソレっぽい”よ」などがありましたら後に記載してあります、リンク先のツイッターアカウントに教えてくださると嬉しいです:) ]

 

twitter.com