<!--親の顔より見た光景-->

日々の発見を残していきます。

【JavaScript】await / async でタイマー

コピペ用なので解説は無し。
await / async キーワードを使用してタイマー関数を作ることが可能。

【timer.html】

<!DOCTYPE=html>
<html>
	<head>
		<meta charset="UTF-8"/>
		<title>Timer</title>
		<script type="text/javascript" src="timer.js"></script>
	</head>
	<body>
	</body>
</html>

【timer.js】

var wait = function( ms ) {
	return new Promise( ( resolve, reject ) => {
		setTimeout( () => {	resolve( '_' ); }, ms );
	});
};

var main = async function() {
	for ( var i = 0; i < 10; i++ ) {
		console.log( i + 1 );
		await wait( 1000 );
	}
};
main();

main関数をasync functionにし、wait関数ではPromiseオブジェクトを返す。

cygwinにおける.vimrcの場所

デフォルトでは存在しない。
 → 自分で作成する必要アリ。

Cygwinを起動して以下のコマンドを叩く

$ vim ~/.vimrc

エクスプローラで見ると.vimrcが追加されている。(ターミナル上ではlsコマンドを打っても.vimrcは見えない)

あとは.vimrcに設定を追記していく
こちらを参照
Vim 設定ガイド - Qiita

【JavaScript】簡単なブラクラを作る

アクセスすると通知が鳴り止まないページを作る。
(最近は「このページでこれ以上通知を出さないようにする」みたいなオプションが付くようになったから、実用的ではない)

【script.html】

<html>
	<script type="text/javascript" src="script.js">
	</script>
	<head>
		<title>
			(´・ω・`)
		</title>
	</head>
	<body onLoad="alertHello()">
	</body>
</html>

【script.js】

function alertHello()
{
	while ( true ) {
		alert( "おまたせ\nアイスティーしか無かったけどいいかな?(´・ω・`)" );
	}
}

こうなる↓
http://bilibili.html.xdomain.jp/script.html



職場で皆はジャヴァスクリプトって呼んでるけど長くてめんどくさい。
かと言ってJSと言うのは少し恥ずかしい。

アクリルキーホルダーが作れるサービス!

かわいいキーホルダーが作りたかったので、「アクリルキーホルダー 製作で」検索してみたら面倒な手間が必要なサイトばかり…

.aiまたは.psdファイルでの注文しか受け付けてないサイトが多い。フォトショもAdobeイラストレーターも持ってねえよ!

 

そこで行き着いたのがこのサイト。

ものづくりがもっと楽しくなるアイテム制作サービス - ピクシブファクトリー - pixivFACTORY

画像をブラウザにドラッグ・ドロップするだけでお気軽にアクリルキーホルダーが作れてしまう! 

f:id:akagi13213:20171023003819p:plain

f:id:akagi13213:20171023003230p:plain

プレビュー画面も出るので安心。

他にもパーカーやマグカップなど色々作れるらしいので、このサービスは是非無くならないでほしい……

 

追記

買ってから2週間で届いた。おお〜

f:id:akagi13213:20171105125022p:plain





ドットマトリクスLED

スイッチ(トグル化)を押すと光る、ただ眩しいだけのgm回路が出来た。
f:id:akagi13213:20171022190242j:plain

・ドットマトリクス
青色ドットマトリクスLED 8x8ドット MOA20UB018GJ
青色ドットマトリクスLED 8x8ドット MOA20UB018GJ: LED(発光ダイオード) 秋月電子通商 電子部品 ネット通販

・ピン番号
f:id:akagi13213:20171022225325j:plain

アノードはArduinoの出力ピン、カソードはグランドに直結。
カソードを出力ピンに繋いでON・OFFすれば行列指定できるけど、マイコンのピン数が足りない。

チャタリング対策はディレイ方式。

【segment_7.ino】

#define switch_pin  10
#define OFF  0
#define ON   1
int switch_status = OFF;

void setup() {
  pinMode( 10, INPUT );
  for ( int i = 2; i <= 9; i++ ) {
    pinMode( i, OUTPUT ); 
    digitalWrite( i, LOW );
  }
}

void loop() {
  int flush_status = LOW;
  if ( getSwitchStatus() == ON ) {
    flush_status = HIGH;
  }
  else {
    flush_status = LOW;
  }
  for ( int i = 2; i <= 9; i++ ) {
    digitalWrite( i, flush_status );
  }
}

int getSwitchStatus()
{
  // スイッチが押されるまで待機
  while ( digitalRead( switch_pin ) != HIGH );
  // チャタリング防止
  delay( 100 );
  // スイッチが離されるまで待機
  while ( digitalRead( switch_pin ) != LOW );
  // チャタリング防止
  delay( 100 );
  
  if ( switch_status == OFF ) {
    switch_status = ON;
    return ON;
  }
  else {
    switch_status = OFF;
    return OFF;
  }
}


マトリクスLEDの絶対最大定格に、連続で流す場合最大は10mAとあるが20mA流してる。
いつか壊れちゃう!

【Java】変数の初期値

クラス変数、インスタンス変数に限って変数が初期値でセットされる。

ローカル変数はRuntimeExceptionにより「変数が初期化されていない」と怒られて実行出来ない。

Java 基礎知識( データ型 )【 Okapi Project 】

【C++】オブジェクト生成時の変数初期値

変数の初期値がCと同じかどうか調べてみた。
インスタンス変数ならひょっとして0初期化……?

【Car.h】

#pragma once
class Car
{
public:
	int getGasoline();
	void setGasoline( int );
private:
	int gasoline;
};


【Car.cpp】

#include "stdafx.h"
#include "car.h"

int  Car::getGasoline()
{
	return gasoline;
}

void Car::setGasoline( int gasoline_ )
{
	gasoline = gasoline_;
}


【main.cpp】

#include "stdafx.h"
#include "car.h"
#include <iostream>
using namespace std;
int main()
{
	Car car;
	cout << car.getGasoline() << endl;
	return 0;
}


【出力結果】

-858993460

ローカル変数の初期値と同じっぽい。

C++オブジェクト指向言語だから、色んな所をJavaと比べてしまう。
変数宣言だけでインスタンス化ってのがちょっと気持ち悪い。