みちのいに!!

自分のメモと、他にもハマる人がいそうなことを書く

CSSのtransitionがうごかなかった失敗談

かなり初歩的なミスなので心して読んでください。


CSSのtransitionはjavascriptを使わずにアニメーションが出来ます。

transition-property-CSS3リファレンス

上のページの例だと、hoverするとスタイルが変わる設定になっていて、その過程がアニメーションで変化します。


私は今回、要素を初期位置から一定量左にアニメーションで動かしたかったのです。

<style>
e{
    position:relative;
    transition: all 1s ease;
}
e:hover{
    left:-100px;
}
</style>

<div id="e">hoge</div>

↑動きませんでした。(アニメーションせずにいきなり移動した)

<style>
e{
    left:0px;
    transition: all 1s ease;
    position:relative;
}
e:hover{
    left:-100px;
}
</style>

<div id="e">hoge</div>

↑うごきました 初期値でも明記しましょう。

firefoxのアドオンつくりたい 1

つくりたいなーって思った


https://developer.mozilla.org/en-US/Add-ons/SDK
Windowsです ほんとはmingw+msys2でやりたかったけど、なんかnode.jsのバージョン古いしnvmも上手く動かないので、WindowsにNodistな感じで。

Install

Node.js

頑張っていれてください 割愛。
私はWindowsなのでNodistを使ってます。

jpm

昔はcfxだったみたいですね。ゆとりなのでよくわかりませんが、今はjpmを使うみたいです。

npm i jpm -g

Hello,World

とりあえずなんかしよう
Getting Started (jpm) - Mozilla | MDN

npm init

なんかいろいろきかれる

title: (My Jetpack Addon) helloWorld
helloWorld
name: (hello)
version: (0.0.1)
description: (A basic add-on)
entry point: (index.js)
author: m77
engines (comma separated): (firefox,fennec) firefox
license: (MIT)

enginesってのだけよくわからなかったけど、 package.json - Mozilla | MDN らしい。

チュートリアルにはこんなコードがある。ボタンをツールバーに追加して、押すと新しいタブを開いてジャンプする。

var buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");

var button = buttons.ActionButton({
  id: "mozilla-link",
  label: "Visit Mozilla",
  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "64": "./icon-64.png"
  },
  onClick: handleClick
});

function handleClick(state) {
  tabs.open("http://www.mozilla.org/");
}

これをindex.jsにコピペして、dataフォルダにicon-??.pngを保存していれて

jpm run

すると、なんかMozillaジャンプボタンができてる。
こうしてこの世界でのHello world的ななにかは成功した。

Create XPI

リリースする時は、

jpm xpi

すればXPIファイルができる。

Node.js+Express でなんかしたくなった時に見るメモ

アプリの新規作成とかあんまりしないから忘れるよね

node.jsとかは入ってるものとします

mkdir myapp
cd myapp
npm init --yes
npm install --save express
npm install --save express-generator
express

実行するとき

run.shを叩く

run.sh

#!/bin/bash
export PORT=19999
npm start

これだけすれば触ったことあれば思い出すんじゃないの(適当)

npm install しようとしたら insufficient space(容量不足)といわれた 

実行しようとしたコマンド

npm install --save express

出てきたエラー

ENOTSUP: operation not supported on socket, symlink '../mine/cli.js' -> '/home/m77/shares/myapp/node_modules/.bin/mime'
This is most likely not a problem with npm itself and related to insufficient space on your system.

ディスク容量は足りている。

github.com

VMwarePlayer上のArchLinuxとホストOSとフォルダ共有をする失敗談 - みちのいに!! で、ゲストのLinuxからホストのWindowsの領域にアクセスできるようにして容量不足問題を解消したが、シンボリックリンクが貼れなくてよくないらしい。

解決策

シンボリックリンクを作らなければ良い

npm install --no-bin-links --save express

でも

シンボリックリンク張れないといっぱいエラーが出るから茨の道だ やめようかな

ArchLinuxでsimutransサーバを建てる 2016/02 120.1.3

simutransサーバーをマルチプレイ用に建てたかった 

またかよ

まあ 去年の記事、Archでsimutransサーバー - みちのいに!! の焼き直しだけど、新しい記事のほうが安心感あると思う。
ArchにかぎらずLinuxならだいたい同じ方法でできると思う。

まず無用なトラブルとかを避けるために、simutrans専用ユーザを作ってそれにログインする。

コンパイル

mkdir simutranstmp
cd simutranstmp
wget -O simutrans-src-120-1-3.zip https://sourceforge.net/projects/simutrans/files/simutrans/120-1-3/simutrans-src-120-1-3.zip/download
unzip simutrans-src-120-1-3.zip
chmod +x configure.sh
./configure.sh
make

configure.shするとconfig類は勝手に設定してくれる。GUIがあるサーバだったら明示的にconfig.defaultを書かないといけないのかもしれない。

設置

今回はバージョン別に管理したかった。

mkdir -p ~/simutrans_bin/120.1.3
cp sim ~/simutrans_bin/120.1.3
cp -r simutrans/* ~/simutrans_bin/120.1.3
cp get_pak.sh ~/simutrans_bin/120.1.3
cd ~/simutrans_bin/120.1.3
pak取得

このまま本体を実行するとエラーが出てくる。
120.1.3に同梱されているget_pak.shはpak64のバージョンがちょっと古いので、Windows版のpackset downloadでダウンロードしたものとバージョンが一致しない。

https://sourceforge.net/projects/simutrans/files/pak64/120-1/simupak64-120-1-2.zip

に55行目のリンクを書き換える。

pakを取得すると、 ~/simutrans_bin/simutrans/pak ができる。ここではうごかないのでsimと同階層に移す。

chmod +x get_pak.sh
./get_pak.sh
mv ~/simutrans_bin/simutrans/pak ~/simutrans_bin/120.1.3/pak

get_pak.sh、自分のディレクトリ名がsimutransであることを前提としているのかな。



言語ファイル取得

そして、こんなエラーも

FATAL ERROR: simmain::main() - Unable to load any language files
*** PLEASE INSTALL PROPER BASE FILES ***

either run ./get_lang_files.sh

or

download a complete simutrans archive and put the text/ folder here.
Aborting program execution ...

言語ファイルがちゃんと入ってないらしい。さらにそれを入れるシェルスクリプトも改行コードがCRLFになっててめんどくさい。

cp ~/simutranstmp/get_lang_files.sh ~/simutrans_bin/120.1.3/text/
cd ~/simutrans_bin/120.1.3/text/
chmod +x get_lang_files.sh
sed 's/\r//' -i get_lang_files.sh
./get_lang_files.sh

iptablesとかいじってSimutransで使用するポート(13353)を開いておく

~/simutrans/save/ に GUI環境なんかで同じpakで作ったセーブデータを設置(test.sveとする)
サーバーは自力でセーブファイルを作ることはしないらしい

 ./sim -server -objects pak -load test.sve

これでアクセスできるか確認 とくにエラーらしいエラーを吐かなければOK


デーモン化

systemdだからこんなことしてるけど、それぞれの方法で

/home/simutrans/simutrans.sh

~/simutrans_bin/120.1.3/sim -server 13353 -server_name m77Server -objects pak -lang ja -nomidi -nosound -load test.sve

/usr/lib/systemd/system/simutransd.service

[Unit]
Description=Simutrans
[Service]
User=simutrans
ExecStart=/bin/sh /home/simutrans/simutrans.sh

GoogleMapのアプリで自宅の位置を微調整する方法

検索してもなかなか正解にたどり着いている人がいなかったので。

support.google.com
で自宅と設定すればよいです。

モバイル端末にて

  1. 自宅の位置にピンをドロップする。
  2. 場所の名前をスワイプする
  3. 右上メニューからラベルの追加
  4. 自宅 とする
  5. 自宅の住所を設定するが出てくるので押す
  6. アップデートをおす

2017.04.01 追記
なんかアクセスが増えていたので確認してみたら,なんかアプリの動きが変わっているような……
また確認してみます.

Cordovaとandroidでデバッグするときの備忘録

端末一覧

adb devices

端末を指定する

端末一覧の左側に出たIDをつかう

adb -s <id>

ログを見る

adb logcat
時刻
adb logcat -v time
cordovaのchromiumからのログをV、他をSで拾う
adb logcat chromium:V *:S

*CordovaLogではなぜか出力がなかった

shell

adb shell

パッケージ一覧

$ pm list package

アプリごとの作業ディレクトリに潜る

シェル内で

$ run-as com.example.package