2019年4月28日日曜日

MACでWindowsキーボードでWin的に使う設定

MACにWindowsキーボードを接続して、
Windows的に使用する設定のメモ。

Karabiner

https://pqrs.org/osx/karabiner/

半角・漢字キー

mac Sierra + Karabiner-Elements + ATOK で 半角/全角 ボタンを使って入力を切り替える

Karabiner-Elements complex_modifications rules の Other examples に
input_source_if,input_source_unless exampleとあり「Toggle input sources (English or Japanese) by grave_accent_and_tilde」がまさにそれだったので、色々設定を書かずとも
  1. Karabinar-Elementsを起動
  2. Complex Mdificationsタブに移動
  3. Add ruleボタンをクリック
  4. ダイアログの「Import more rules from the Internet (open a web browser)」ボタンをクリック
  5. 表示されたページの最下部に「Other examples」というリンクがあるのでクリック
  6. 「input_source_if,input_source_unless example」にある「import」をクリックしてKarabiner-Elementsにインポート(インポートの確認が表示されるので「Import」をクリック)
  7. 「input_source_if,input_source_unless example」が増えているので、その中にある「Toggle input sources (English or Japanese) by grave_accent_and_tilde」を「Enable」で追加
  8. 「半角/全角キー」で日本語入力が切り替わるようになる

キー入れ替え

Ctrl⇔Command無変換・変換→英数・かな


自動起動

後で調べる

プリントスクリーン
F10で直接入力→Fnキーの設定変更で出来た。

その他

ファインダで隠しファイル表示

以下のコマンドを実行。
$ defaults write com.apple.finder AppleShowAllFiles TRUE
Finderを一度終了。

$ killall Finder

2019年1月30日水曜日

FaceBookのイベント複製できない。「エラーが発生しました。」

FBのイベント複製で「エラーが発生しました。」で複製できない。
下書きも同じエラー。

解決策:
iPhoneのFBアプリから複製できました。

試した環境:
Win:Chrome、FF
Mac:Chrome
iPhone:Chrome、safari(モバイルページは複製リンクなし。PC版でもNG。)

検索用:
定期イベント

2019年1月9日水曜日

ネット対戦ファミコンの野望

突如閃いたので、作ることにしました!



時間が無いので、早速設計をまとめていきます。

やりたいこと:

・ネット経由でファミコン一緒にしたい。
・ソレコンに応募したい

ユースケース:

アクター1:ユーザA(自分)
アクター2:ユーザB(遠隔地に住んでいる友人。ファミコン本体を持っている。)

・ユーザAとユーザBがテレビ電話で通話している。
・Bがファミコンをセットアップし、電源ONする。
・Bがファミコンのツーコンに【操作冶具】をセットする。
・Aが【入力冶具】を操作すると、【通信システム】によりインターネット経由でBの【操作冶具】が動作し、ファミコンのツーコンを操作できる。

開発対象:

【入力冶具】

市販のPCに接続可能なコントローラを使用する。(開発対象外)

【操作冶具】

ハードウェアとマイコンのソフトウェアの開発。
PCからUSB経由で、ソレノイドを動作させ、ミニファミコンのツーコンを操作する。
マイコン:Arduino
PCとのIF:シリアル通信
ソレノイド:タカハ機工製

【通信システム】

送信SW:【入力冶具】からの入力を受信し、遠隔地へコマンドを送信する。
受信SW:送信SWからの入力を受信し、【操作冶具】へコマンドを送信する。

インターフェース仕様:

送信SW-受信SW 悩み中



受信SW-操作冶具

シリアル通信 9600bps

ボタン|ON|OFF
A | A | a
B | B | b
上 | C | c
下 | D | d
左 | E | e
右 | F | f

全 | Z | z

機構設計:

ファミコンのコントローラに強固に固定する必要がある。
MDFとネジなどでコントローラとソレノイドを固定する。
位置を微調整できる機構が望ましい。

電源はUSB以外から取得してもよい。
最終版はアクリルの方が見た目のインパクトがありそう。
無駄に光らせたりして。

懸念事項:

ミニファミコンのコントローラは小さいので、小さいソレノイドを準備必要。


工程:

締め切りは2/12。ホームページから応募する。
作品内容、写真・動画が必要。

#1 1/9~15 設計、機材調達
#2 1/16~22 操作冶具ドラフト作成
#3 1/23~29 通信システム開発
#4 1/30~2/5 全体試験、調整
#5 2/6~2/12 遠隔地デプロイ、動画作成、応募


ゲームパッドのドライバ設定:

Macでゲームパッドを動かす方法

ゲームパットのボタンとキーの対応は、マインクラフトに合わせて以下とした。
上 w
下 s
左 a
右 d

A 右カーソル
B 左カーソル



obnizを使うことにより、通信部分のコード量を減らせる。
obnizクラウドで、WebSockで通信できるようです。








2/26
ソレコン大賞は逃しましたが、ネットニュースに取り上げられたりしてちょいバズりしてます。

https://internet.watch.impress.co.jp/docs/yajiuma/1170572.html

http://news.livedoor.com/article/detail/16074496/
http://originalnews.nico/173409
https://news.nicovideo.jp/watch/nw4889462
https://news.nifty.com/article/item/neta/12237-201674/


2018年5月13日日曜日

さくらVPSでFTPが繋がらない問題

結論

iptablesが原因でした。

systemctl stop iptables
systemctl disable iptables
で解決。

解決手順

# systemctl status iptables
● iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
   Active: active (exited) since 日 2018-05-13 12:40:48 JST; 2s ago ★動作中

# systemctl stop iptables
  ・・・

# systemctl status iptables
● iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 日 2018-05-13 12:41:23 JST; 5s ago ★停止中


恒久対策として、起動しない設定にする。

確認
systemctl is-enabled iptables

起動しない設定
systemctl disable iptables


現象

FTPできてたのに、できなくなった!!

推定原因

無効にしていたけど、スケールアップの時にサーバ再起動で、再度有効になったのかな?

環境

さくらVPS、Centos7

調査経緯

Mac FileZillaでエラー。
状態:          ******.com のアドレスを解決中
状態:          ***.***.***.***:*** に接続中...
状態:          接続の試行が失敗しました: "ECONNREFUSED - Connection refused by server".
エラー:      サーバに接続できませんでした

WireSharkで見ると、TCP:SYNに
ICMP 106 Destination unreachable (Host administratively prohibited)
で返る。

WinのFileZillaでもNG。
FTPコマンドでもNG。
ポート接続確認サイトでもNG。

FireWallか?
systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
停止済みだった。

SE Linuxか?
getenforce
または
/usr/sbin/getenforce (最小構成Linuxは/usr/sbinに入るのかな?)
Disabled

停止済みだった。




2017年5月21日日曜日

バックアップのためにコピーした「*** - コピー.ino」で宣言重複エラー

なぜか変数、定数が重複してるよ!っていうエラーが消えなくてハマってました。
原因分かったので残しておきます。

NG事象①

ソース
#define LED_PWM_PIN 0     // 照明用PWMピン
エラー
LED_Light:4: error: expected unqualified-id before numeric constant
 #define LED_PWM_PIN 0     // 辣ァ譏守畑PWM繝斐Φ
                     ^
C:\Users\admin\Documents\arduino\LED_Light\LED_Light - 繧ウ繝斐?シ.ino:14:5: note: in expansion of macro 'LED_PWM_PIN'
意訳:
expected unqualified-id before numeric constant
数値は再定義できないよー。
('LED_PWM_PIN'が0で定義済みのため。「#define 0 0」で認識している。)

in expansion of macro 'LED_PWM_PIN'
LED_PWM_PINは定義済みだよー。

NG事象②

定数駄目なら、変数にしてみた。

ソース
int LED_PWM_PIN = 0;     // 照明用PWMピン

エラー
C:\Users\admin\Documents\arduino\LED_Light\LED_Light - 繧ウ繝斐?シ.ino:14:5: error: redefinition of 'int LED_PWM_PIN'
LED_Light:4: error: 'int LED_PWM_PIN' previously defined here
 int LED_PWM_PIN = 0;     // 辣ァ譏守畑PWM繝斐Φ
redefinition of 'int LED_PWM_PIN'

再定義だよー。


原因:

バックアップ用にコピーしたファイルもArduino IDEが読み込んで、一緒にコンパイルしていたため、変数重複のエラーが発生していた。
「 - コピー」が文字化けして、気づきにくい!

NG時のフォルダ構成:
LED_Light
├LED_Light.ino
└LED_Light - コピー.ino

対策:

フォルダ作成して、その中に入れれば解決しました。
LED_Light
├LED_Light.ino
└bk
 └LED_Light - コピー.ino



2017年4月12日水曜日

SourceTreeからBitbucketにログインできなくなった(ユーザ名でのログイン禁止になった)

前までログインできてた、SourceTreeでBitbucketにログインできない!
WinでもMacでもNG。

Authenticate
Login required for:bitbucket.org
User:***
Password:
というダイアログが出て、パスワード入力を促されます。

試しにWebのBitbucketにログインしようとしたら、
ユーザー名でログインすることはできなくなりました。代わりに Atlassian アカウントのメール アドレスをご利用ください。
とエラーメッセージが。
原因はこれですね。

SorceTreeのメニュー>ツール>オプション>認証>保存されたパスワード
からbitbucketを削除してSourceTreeを再起動。

フェッチで動作確認。
あれれ、前のユーザ名が残ってるな。

これかな?
メニュー>リポジトリ>リポジトリ設定>選択して編集
URL/パス のusername@を削除。
一番下のユーザ名のテキストボックスをメールアドレスに変更。

フェッチで動作確認。
Authenticateが出るので、Usernameにメールアドレス入れて、Password入れてLoginをポチ。

OK!解決!