Web サイトには HTML のコメントや JavaScript の console を使って、
隠しメッセージを入れていることがあります。
(会社の悪口を書いて大事になったニュースがありましたね)
例えば Mozilla Developer Network だとアスキーアートが
ブラウザのコンソールに出力されます。
次回以降表示しないための関数も律儀に準備されています。
サイトを訪れた際にはコンソールを開いてみると何かあるかもしれないです。
2014年7月16日水曜日
2014年7月12日土曜日
Tシャツのタグは左側に来る?
私は服装については油断が多く、
たまに気付かずに T シャツの前後を逆に着てしまったり、
上着の裏表を逆に着てしまっていることがあります。(←本気)
先日も仕事中に首に違和感を感じて、
Tシャツが逆になっているような気がしました。
何となく首元がきついような気がしないでもないという曖昧な感じなので、
どちらともつきませんでした。
Tシャツだと首の後にタグがあると思い、
確認してみたのですが、首の後にタグがないタイプでした。
そこで、シャツの横側に付いているラベルに注目しました。
ネットで調べたところ、規格は無いものの、
国産だと基本的に左側にタグが付いているらしいです。
洋服の裏に付いているタグ | Yahoo知恵袋!
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1310996448
その時は右側にタグが付いていたので、逆だとわかり、
着替え直したところしっくりきました。
いざというときはタグが左側に付いているかどうかが、
ヒントになると思います。多分使わないでしょうけれど。
たまに気付かずに T シャツの前後を逆に着てしまったり、
上着の裏表を逆に着てしまっていることがあります。(←本気)
先日も仕事中に首に違和感を感じて、
Tシャツが逆になっているような気がしました。
何となく首元がきついような気がしないでもないという曖昧な感じなので、
どちらともつきませんでした。
Tシャツだと首の後にタグがあると思い、
確認してみたのですが、首の後にタグがないタイプでした。
そこで、シャツの横側に付いているラベルに注目しました。
ネットで調べたところ、規格は無いものの、
国産だと基本的に左側にタグが付いているらしいです。
洋服の裏に付いているタグ | Yahoo知恵袋!
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1310996448
その時は右側にタグが付いていたので、逆だとわかり、
着替え直したところしっくりきました。
いざというときはタグが左側に付いているかどうかが、
ヒントになると思います。多分使わないでしょうけれど。
2013年10月31日木曜日
Google のロゴがハロウィン仕様に
今日の Google のロゴはハロウィンの魔女でした。
調合ゲームみたいな感じです。
魔女のスプライトはこんなかんじ。
https://www.google.co.jp//logos/2013/halloween13/sprite-reading.jpeg
https://www.google.co.jp/logos/2013/halloween13/sprite-stirring.jpeg
りんごが入ってるから大丈夫?
魔女の調合とか占いの知識・技術を総称してウィッチクラフトっていうらしいです。
http://ja.wikipedia.org/wiki/ウィッチクラフト
調合ゲームみたいな感じです。
魔女のスプライトはこんなかんじ。
https://www.google.co.jp//logos/2013/halloween13/sprite-reading.jpeg
https://www.google.co.jp/logos/2013/halloween13/sprite-stirring.jpeg
りんごが入ってるから大丈夫?
魔女の調合とか占いの知識・技術を総称してウィッチクラフトっていうらしいです。
http://ja.wikipedia.org/wiki/ウィッチクラフト
2013年10月7日月曜日
iOS7 を入れた iPad 3 のスピーカーにノイズが入る現象
私は iPad 第3世代に iOS7 を入れて使っているのですが、
強烈な現象が起こりました。
自宅のテレビでニコニコ動画を見ようと、
Apple TV へ iPad の画面をミラーリングようとしたところ、
iPad の動作がとても遅くなりました。
タッチしてもしてもスローモーションになった感じで、
激しく処理落ちしているようでした。
この時、テレビ画面は真っ暗でした。
ミラーリングを切ってみると、
iPad の画面にアプリのアイコンが1瞬だけ拡大されて表示されました。
(画面からはみ出るくらいの大きさ)
その後、iPad のすべての音声にノイズが入るようになりました。
iPad を再起動しても変わらず、動画や音声などすべてノイズが入ります。
すごいのが、ホーム画面でスリープボタンを押した時の効果音です。
ギュイーン!!という未来の電子銃のような、
割れるようなノイズがスリープするたびに鳴り響きます。
あまりにも強烈だったので動画を撮影して Youtube にあげてみました。
結局、iPad を工場出荷状態に復元したら治りました。
iOS7 のバグっぽいですね。
1度ノイズが入るようになると再起動しても治らないので衝撃的でした。
2013年7月7日日曜日
光くしゃみ反射と金縛り
昨日は金縛りにあってあまり眠れませんでした。
高校時代からよく発生しています。
疲れているのに眠れないという状態の時によく発生します。
ギーンという強い耳鳴りがして、脳が痺れていくような感覚があります。
そのあと体が徐々に動かなくなっていきます。
この時、体を起こそうと力を入れると、この状態が治ります。
そのまま横になっていると、しばらくすると再び耳鳴りが始まるといった具合です。
この状態で放置すると耳鳴りがどんどん強くなっていきます。
金縛りが起きたら、一旦明るい部屋へ行って落ち着くとその後眠りやすくなります。
ネットで調べると耳鳴りから始まるタイプは結構あるみたいですね。
まったく発生しない人もいるようです。
ちなみに、小さい頃から太陽など眩しいものを見るとくしゃみが出るのですが、
これは光くしゃみ反射というもので、遺伝によってくしゃみがでるかどうか決まるみたいです。
Wikipedia によると日本人の約25%が光くしゃみ反射を持つらしいです。
光くしゃみ反射 - Wikipedia
http://ja.wikipedia.org/wiki/%E5%85%89%E3%81%8F%E3%81%97%E3%82%83%E3%81%BF%E5%8F%8D%E5%B0%84
2年くらいまえに「眩しいとくしゃみ出ますよね」という話をしたら、
「出る出る」という人と、「全く出ない」という人がいてちょっとショックを受けたのを思い出しました。
眩しくてくしゃみが出る人、よく金縛りになる人とは仲良くなれそうな気がする今日このごろです。
高校時代からよく発生しています。
疲れているのに眠れないという状態の時によく発生します。
ギーンという強い耳鳴りがして、脳が痺れていくような感覚があります。
そのあと体が徐々に動かなくなっていきます。
この時、体を起こそうと力を入れると、この状態が治ります。
そのまま横になっていると、しばらくすると再び耳鳴りが始まるといった具合です。
この状態で放置すると耳鳴りがどんどん強くなっていきます。
金縛りが起きたら、一旦明るい部屋へ行って落ち着くとその後眠りやすくなります。
ネットで調べると耳鳴りから始まるタイプは結構あるみたいですね。
まったく発生しない人もいるようです。
ちなみに、小さい頃から太陽など眩しいものを見るとくしゃみが出るのですが、
これは光くしゃみ反射というもので、遺伝によってくしゃみがでるかどうか決まるみたいです。
Wikipedia によると日本人の約25%が光くしゃみ反射を持つらしいです。
光くしゃみ反射 - Wikipedia
http://ja.wikipedia.org/wiki/%E5%85%89%E3%81%8F%E3%81%97%E3%82%83%E3%81%BF%E5%8F%8D%E5%B0%84
2年くらいまえに「眩しいとくしゃみ出ますよね」という話をしたら、
「出る出る」という人と、「全く出ない」という人がいてちょっとショックを受けたのを思い出しました。
眩しくてくしゃみが出る人、よく金縛りになる人とは仲良くなれそうな気がする今日このごろです。
2013年6月19日水曜日
ニコ生とC言語
ペアプログラミング気分を味わいたいときはニコ生のプログラミング配信をよく見ています。
ニコニコ生放送
http://live.nicovideo.jp
「開発」や「プログラミング」で検索すると、意外と出てきます。
趣味でコードを書き始めたおじさん、Unity でバリバリゲームを作っているお兄さん、「やさしいC」と格闘する中学生まで様々です。
どんなことでも人に見せることを意識するとモチベーションが上がりますよね。
放送中に Stypi などのリアルタイムで共有できるエディタを使ってみんなでわいわいコードを書いたりすると結構楽しいものです。
Stypi
https://code.stypi.com/
そこで放送中に C 言語のコンソールゲーム書きました。
wasd で移動してアイテムを集めます。敵に当たったらゲームオーパーです。
C言語を触り始めた頃はよくこんなかんじのゲーム作りましたよね。
ニコニコ生放送
http://live.nicovideo.jp
「開発」や「プログラミング」で検索すると、意外と出てきます。
趣味でコードを書き始めたおじさん、Unity でバリバリゲームを作っているお兄さん、「やさしいC」と格闘する中学生まで様々です。
どんなことでも人に見せることを意識するとモチベーションが上がりますよね。
放送中に Stypi などのリアルタイムで共有できるエディタを使ってみんなでわいわいコードを書いたりすると結構楽しいものです。
Stypi
https://code.stypi.com/
そこで放送中に C 言語のコンソールゲーム書きました。
wasd で移動してアイテムを集めます。敵に当たったらゲームオーパーです。
C言語を触り始めた頃はよくこんなかんじのゲーム作りましたよね。
/**
* ダンジョンRPG
* C言語でダンジョンRPG的なものを作る
*
* - 画面の見方 -
* @ : 主人公
* X : 敵
* * : アイテム
*
* - ルール -
* 敵に当たらずにアイテムを集めろ
*
* - 操作方法 -
* w: 上
* a: 左
* s: 下
* d: 右
*/
#include <stdio.h>
#include <stdlib.h>
// プロトタイプ宣言
void showMap();
void showMessage(char message[]);
int getKey();
void clear();
void moveTo(int x, int y);
void setItems();
void initialize();
void gameClear();
void setEnemy();
void pickup();
void moveEnemies();
void gameOver();
// マップサイズ
const int WIDTH = 30;
const int HEIGHT = 10;
// アイテムの数
const int ITEMNUM = 10;
// キー操作
const char UP = 'w';
const char LEFT = 'a';
const char DOWN = 's';
const char RIGHT = 'd';
// 面倒くさいから関数間データ共有はグローバル
char map[HEIGHT][WIDTH];
int playerX = 5;
int playerY = 1;
int collected = 0; // 拾ったアイテムの数
int gameover = 0; // ゲームオーバーになったかどうか
int main(int argc, const char *argv[]) {
int key;
// 初期化
initialize();
// メインループ
while(gameover == 0) {
// 画面の更新
clear();
showMap();
// アイテムを全部拾ったらゲームクリア
if(collected >= ITEMNUM) {
gameClear();
break;
}
// メッセージ出力
showMessage(" コマンド入力後に Enter \n 上:w 左:a 下:s 右:d");
// プレイヤーの入力
key = getKey();
// データの更新
switch(key) {
case UP:
moveTo(0, -1);
break;
case DOWN:
moveTo(0, 1);
break;
case RIGHT:
moveTo(1, 0);
break;
case LEFT:
moveTo(-1, 0);
break;
default:
// それ以外のキーが押されたら次の入力をまつ
continue;
}
// 敵を動かす
moveEnemies();
}
}
/**
* ゲームの初期化
* @function
*/
void initialize() {
int i, j;
// マップ初期化
for(i = 0; i < HEIGHT; i++) {
for(j = 0; j < WIDTH; j++) {
map[i][j] = ' ';
}
}
// 主人公の配置
map[playerY][playerX] = '@';
// アイテムの配置
setItems();
}
/**
* アイテムを拾う
* ついでに敵が出現する
* @function
*/
void pickup() {
collected++;
setEnemy();
}
/**
* ゲームクリア
* @function
*/
void gameClear() {
showMessage("すべてのアイテムを集めた!\nゲームをクリアした!おめでとう!");
}
/**
* 敵を1対配置する
* @function
*/
void setEnemy() {
int x, y;
do {
x = rand() % WIDTH;
y = rand() % HEIGHT;
} while(map[y][x] != ' ');
map[y][x] = 'X';
}
/**
* 敵を動かす
* ランダム方向に移動しようとしてアイテムにt回阻まれたら動かない
* @function
*/
void moveEnemies() {
int t = 1;
int i, j, k;
int dx, dy;
int count = 0;
int enemyCount = 0;
int nowEnemyNumber = 0;
int duplicated;
// 既に動いた敵の移動先座標リスト
// 長さが ITEMNUM なのは敵がアイテム数以上出現しないため
// 同じ敵が2回以上動くことを防止する
int movedListX[ITEMNUM];
int movedListY[ITEMNUM];
// 敵を数える
for(i = 0; i < HEIGHT; i++) {
for(j = 0; j < WIDTH; j++) {
if(map[i][j] == 'X') {
enemyCount++;
}
}
}
// 既に動いた敵リストを初期化
for(i = 0; i < ITEMNUM; i++) {
movedListX[i] = -1;
movedListY[i] = -1;
}
// 敵を順番に動かす
for(i = 0; i < HEIGHT; i++) {
for(j = 0; j < WIDTH; j++) {
if(map[i][j] == 'X') {
// 既に動かした敵リストに登録されているものは動かさない
duplicated = 0;
for(k = 0; k < nowEnemyNumber; k++) {
if(i == movedListY[k] && j == movedListX[k]) {
duplicated = 1;
break;
}
}
if(duplicated) {
continue;
}
do {
dx = (rand() % 2) == 0 ? 1 : -1;
dy = (rand() % 2) == 0 ? 1 : -1;
if(i + dy < 0 || HEIGHT < i + dy || j + dx < 0 || WIDTH < j + dx) {
continue;
}
count++;
} while(map[i + dy][j + dx] != ' ' && map[i + dy][j + dx] != '@' && count < t);
if(map[i + dy][j + dx] == '@') {
map[i][j] = ' ';
map[i + dy][j + dx] = 'X';
movedListX[nowEnemyNumber] = j + dx;
movedListY[nowEnemyNumber] = i + dy;
gameOver();
} else if(map[i + dy][j + dx] == ' ') {
map[i][j] = ' ';
map[i + dy][j + dx] = 'X';
movedListX[nowEnemyNumber] = j + dx;
movedListY[nowEnemyNumber] = i + dy;
} else {
// 動かない
}
// 動かした敵を数えておく
nowEnemyNumber++;
}
}
}
}
/**
* 敵に触ってゲームオーバー
* @function
*/
void gameOver() {
clear();
showMap();
showMessage("敵に襲われてゲームオーバー!");
gameover = 1;
}
/**
* アイテムの配置
* マップ内にランダムにアイテムを配置する
* @function
*/
void setItems() {
int x, y, i;
for(i = 0; i < ITEMNUM; i++) {
x = rand() % WIDTH;
y = rand() % HEIGHT;
if(map[y][x] == ' ') {
map[y][x] = '*';
} else {
i--;
continue;
}
}
}
/**
* プレイヤーを現在地から移動させる
* @function
* @param {int} x X方向の移動距離
* @param {int} y Y方向の移動距離
*/
void moveTo(int x, int y) {
// 外の世界に出ないようにする
if(playerX + x < 0 || WIDTH < playerX + x || playerY + y < 0 || HEIGHT < playerY + y) {
return;
}
// 移動前の主人公を消す
map[playerY][playerX] = ' ';
// 座標の更新
playerX += x;
playerY += y;
// 移動先にアイテムがあれば拾う
if(map[playerY][playerX] == '*') {
pickup();
}
// 移動後の主人公を追加
map[playerY][playerX] = '@';
}
/**
* プレイヤーからのキー入力を受け付ける
* @function
* @returns {int} プレイヤーが押したキー
*/
int getKey() {
printf("コマンド? => ");
return getchar();
}
/**
* 画面を消す
* @function
*/
void clear() {
int i;
for(i = 0; i < 30; i++) {
putchar('\n');
}
}
/**
* 枠線を表示(メッセージ用)
* @function
*/
void line() {
int i;
putchar('+');
for(i = 0; i < WIDTH - 2; i++) {
putchar('-');
}
putchar('+');
putchar('\n');
}
/**
* 画面下部にメッセージ表示
* @function
* @param {char[]} 表示するメッセージ
*/
void showMessage(char message[]) {
line();
puts(message);
printf(" アイテム( %d / %d )\n", collected, ITEMNUM);
line();
}
/**
* マップの出力
* @function
*/
void showMap() {
int i, j;
for(i = 0; i < HEIGHT; i++) {
for(j = 0; j < WIDTH; j++) {
putchar(map[i][j]);
}
putchar('\n');
}
map[playerY][playerX] = '@';
}
2013年6月14日金曜日
Magic Trackpad のボタンが埋まる
Magic Trackpad を使っているのですが、先日から調子が悪いです。
左下のゴムのスイッチ部分が埋まった(沈んだ)感じになり、
クリックしてもカチカチしてくれません。
少し力を入れて押せばボタンが押されるのですが、
押し心地がとても悪いです。
いつも親指で左下のボタンを押していたので、
負荷がかかっていたのかも。
確か保証期間内なので Apple Store へ持って行ってみようかと思っているのですが、
なぜか Tackpad だけ箱が見当たらず・・・汗。
実は Magic Mouse もおかしくて、クリックはできるもののマウスカーソルが動かない状態です。
こちらは保証が切れているので放置中。
インタフェースが不調だとちょっとテンション下がりますね。
左下のゴムのスイッチ部分が埋まった(沈んだ)感じになり、
クリックしてもカチカチしてくれません。
少し力を入れて押せばボタンが押されるのですが、
押し心地がとても悪いです。
いつも親指で左下のボタンを押していたので、
負荷がかかっていたのかも。
確か保証期間内なので Apple Store へ持って行ってみようかと思っているのですが、
なぜか Tackpad だけ箱が見当たらず・・・汗。
実は Magic Mouse もおかしくて、クリックはできるもののマウスカーソルが動かない状態です。
こちらは保証が切れているので放置中。
インタフェースが不調だとちょっとテンション下がりますね。
2013年5月23日木曜日
1秒ごとにマウスカーソルが元の場所に戻る現象
トラックパッドでカーソルを動かしたつもりが、
1秒ごとに画面の右上にマウスカーソルがジャンプしてしまう現象に遭遇しました。
マウスカーソルを動かそうにも、1秒経つと右上のある座標へ戻ってしまうので作業になりません。
トラックパッドの電池を入れ直したり、設定を見なおしたりするが変わらず。
ネットで調べても同じような情報がありません。
故障・・・?
原因を探ろうとBlue tooth の設定パネルを開き、
トラックパッドをクリックしようとすると、
マウスカーソルがワープして別の所をクリックしてしまいました。
しかも、そこが Blue tooth を切るチェックボックス。
見事に切断されるワイヤレスキーボードとワイヤレストラックパッド。
まさかのインタフェース全滅。完全にただの箱です。
しばらくあたふたする。
とりあえずUSBのマウスをつないで Blue tooth のチェックボックスを ON にしないと・・・。
しかし部屋にUSBのマウスが見つかりません。
そうだ、USBのペンタブが挿しっぱなしだったはず。
ペンタブへ視線をやると。
おまえだああああああああああ
・・・ということで、ペンが微妙にタブレットの上に置きっぱなしになっていました。
タブレットの右端と、ペンが反応してカーソルが右上に固定されていたようです。
この状態でトラックパッドを操作すると、動いたマウスポインタが1秒毎にペンの座標へ更新されてしまうんですね。
壊れていなくて一安心。徹夜明けの朝の出来事でした。
登録:
投稿 (Atom)



