作成者別アーカイブ: baw

baw について

常時睡魔と格闘を繰り広げる暇人。

LINEで友だちを擬似グループ管理する

今やインフラと言って差し支えない程に普及したLINEですが、未だに友だちのグループ管理機能は実装されません。管理・整理整頓魔として大変気持ち悪いので、擬似的にグループ管理するアイデアを記しておきます。

ポイントは「表示名」にあります。スマートフォン版LINEでは、「友だち」タブから対象をタップして、名前の横にある小さな「ペン」をタップすると変更可能です。一方、PC版LINEでは、「友だち」タブから対象を右クリックして「表示名の変更」から呼び出せます。

「表示名」の命名規約は「[擬似グループ名]_[本名]([渾名/HN])」です。例えば、ABC社2015年度入社の後輩である渡辺太郎君の渾名が「なべさん」だった場合は、「ABC2015_渡辺太郎(なべ)」とします。

これを全ての友だちに実施します。友だちは表示名でソートされますので、めでたく擬似的にグループ管理できました。

また、副産物としては、プロフィールの「名前」に渾名を設定している人も少なくないので、「誰だったっけ?」も防止できます。擬似グループの命名センス次第で便利さは増すかと思います。

同じテーブル構造で違うスキーマにデータをコピーする

違うschemaに存在する、同じ構造のtableに対して、pg_dumpでデータを抽出/挿入する方法を記します。最初にオチを言うと、\COPYを使用したほうが楽です。

環境

PostgreSQL
8.4.20
CentOS
6.7

前提条件

下記の通り、test1.testからtest2.testに対してデータをコピーします。

postgres=# \dn
        List of schemas
        Name        |  Owner   
--------------------+----------
 information_schema | postgres
 pg_catalog         | postgres
 pg_toast           | postgres
 pg_toast_temp_1    | postgres
 public             | postgres
 test1              | postgres
 test2              | postgres
(7 rows)

postgres=# \d test1.test
    Table "test1.test"
 Column | Type | Modifiers 
--------+------+-----------
 val    | text | 

postgres=# \d test2.test
    Table "test2.test"
 Column | Type | Modifiers 
--------+------+-----------
 val    | text | 

postgres=# select * from test1.test;
    val     
------------
 testvalue1
 testvalue2
 testvalue3
(3 rows)

postgres=# select * from test2.test;
 val 
-----
(0 rows)

手順

対象テーブルに対して、pg_dumpをplainでダンプします。customで色々と試してみましたが、結局徒労に終わりました。

pg_dump --file=./test.dmp --format=p --data-only --table=test1.test

plainのため、中身はviで見ることができます。

-bash-4.1$ ll
total 12
drwx------.  2 postgres postgres 4096 Jun 29 08:59 backups
drwx------. 12 postgres postgres 4096 Oct  8 22:38 data
-rw-r--r--.  1 postgres postgres  463 Oct  8 23:06 test.dmp
-bash-4.1$ cat test.dmp 
--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

SET search_path = test1, pg_catalog;

--
-- Data for Name: test; Type: TABLE DATA; Schema: test1; Owner: postgres
--

COPY test (val) FROM stdin;
testvalue1
testvalue2
testvalue3
\.


--
-- PostgreSQL database dump complete
--

スキーマが書かれている箇所を手で直してしまっても構いませんが、コマンドで自動化してしまいます。

sed -i.`date "+%Y%m%d-%H%M%S"` -e 's/test1/test2/g' test.dmp

念のため、diffで確認してみます。

diff test.dmp*
12c12
< SET search_path = test2, pg_catalog;
---
> SET search_path = test1, pg_catalog;
15c15
< -- Data for Name: test; Type: TABLE DATA; Schema: test2; Owner: postgres
---
> -- Data for Name: test; Type: TABLE DATA; Schema: test1; Owner: postgres

後は普通にpsqlで流し込みます。

psql --file=test.dmp

下記の通り確認してみます。成功です。

postgres=# select * from test2.test;
    val     
------------
 testvalue1
 testvalue2
 testvalue3
(3 rows)

最後に

今回はpg_dumpにこだわってみたのですが、\COPYを使用するほうが楽だと思います。対象のテーブルをコマンド実行時に指定できますしね。

docomoからDMMmobileにMNPしました

NTTdocomoからDMMmobileにMNPしました。手順や感想をメモしておきます。端末は、Xperia A(SO-04E)を持ち込んでいます。

  1. docomoのお客様サポートからMNP申込をします。インターネットからの手続きにも関わらず、何故か営業時間(受付時間)があります。意味がわかりませんが、昼間に申し込まなければなりません。ちなみに、docomoの2年縛りは契約月+2年+1月です
  2. DMMmobileのページからMNP付きのプランを選択して、必要情報を入力します。SO-04Eの製造メーカは「ソニーモバイルコミュニケーションズ」です。「SONY」ではありませんのでご注意を。ちなみに、SO-04Eは「マイクロSIMサイズ」ですので、直接選択しても構いません。
  3. その後、本人確認書類の提出をします。具体的には、普通運転免許証をスマートフォンで撮影してアップロードすれば良いです。
  4. 数日すると、docomoの通信が何の前触れもなく切断されます。モバイルWi-Fiルータ類を持っていないと死にます。死にます。(迫真)SIMカードが郵送されてくるまで何もできなくなるので、本当に気をつけてください。
  5. 端末設定は公式マニュアル(APN設定マニュアル)の通り実施すれば良いです。
  6. SO-04Eが「docomoIDを設定しろ」とうるさく言ってくるので、docomoのお客様サポートからID変更(電話番号→メールアドレスに変更)して、端末に再設定すれば何も言ってこなくなります。
  7. デフォルトではテザリングができなくなっているため、ここの記事を参考にして、設定変更します。(SO-04Eの場合。)

私はこれで毎月の通信量がかなり安くなりました。

xreaアップデートに伴うDB移行手順メモ

xreaが大規模更改にあたり、各ソフトウェアのバージョンがドラスティックに変わりました。MySQLも大幅にバージョンアップするため、本ブログ(Wordpress)のデータがすべて削除されました。xrea運営が作業前に取得してくれていたdumpファイルを元に無事復旧できたのでメモしておきます。

蛇足ですが、XREA自体がそもそも上級者向けの低価格低サポートなサービスだっただけに、殆どの方は自分で解決されているようでした。また、公式サポートフォーラムでも技術者らしい冷静な対応をされている方ばかりだったので、なんだか安心しました。

[usename]や[dbname]やサーバ名やファイル名は適宜読み替えてください。

手順

xreaのコントロールパネルからDBを作成

xreaのコントロールパネルから、過去にWordpressで使用していた名前でDBを作成します。パスワードも過去(Hint:初期パスワードはFTPパスワードの前8文字)と同じにしてください。稀に、xreaの更改作業を乗り切ってしまうDBもあるそうですが、間違いなく中途半端にしか復元できていないため、一旦削除してから再作成(空のDBを用意)してください。

sshで接続してftp8変換とインポート

サーバにsshで接続します。xreaのコントロールパネルから「ホスト登録」をお忘れなく。出来ない場合は1~3分待ってください。

ssh -l [username] sXXX.xrea.com

公式からutf8への変換が必要とアナウンスがあるため、dumpファイルをutf8に変換します。nkfでいけます。

MySQL4以前などの古いデータベースからデータは完全には引き継げませんので、データベース内のデータが一旦空になります。
特に文字コードはUTF-8が標準となりますので、そのまま引き継ぐと不具合が出る可能性があります。
MySQL/PostgreSQL/Apache/PHPのバージョンアップメンテナンスについて

ll
cd _DB_BACKUP_XREA_UPGRADE/
ll
nkf -w mysql_[dbname].dump > mysql_[dbname].dump.nkf
ll
view mysql_[dbname].dump.nkf

中身を見て問題なさそうならインポートします。先ほど設定したDBのパスワードを聞かれます。

mysql -u [dbname] -D [dbname] -p < mysql_[dbname].dump.nkf

特にエラーが起きなければ以上となります。念のためレベルで、インポートしたDBを確認してみてください。

mysql -u [dbname] -D [dbname] -p
use [dbname]
show tables;

その他

phpMyAdminの再インストール(バージョンアップ)

phpMyAdminを使用する場合は再インストールが必要です。公式では下記のように説明されていますが、私はコントロールパネルで「インストール」を選択するだけでいけました。

1、ファイルマネージャーもしくは、ご利用のFTPクライアントから、現在のディレクトリ「./public_html /log /phpmyadmin_」等に名前を変更します。
2、XREAサーバー管理画面二ログインし、「データベース」メニューから
「■PhpMyAdmin自動インストール(MySQL管理) 」項目の「インストール」ボタンをクリックします。
3、「./public_html /log /phpmyadmin」が生成されたことを確認されましたら、ログインします。
【公式】XREAサーバー:最新の環境へのアップデートメンテナンス関連

リトルノア正解パターン

最近やり込み始めているリトルノアの正解パターンを幾つか紹介します。いくつかの選択肢を吟味しながら自分で考えたい人には不要な記事です。あまりこういう切り口の記事ってないですよね。

せっかちな人はタイトルだけでOKです。

SRは進化後に、R以下は進化前にユニット増殖合成をする

SR進化後のSSRではユニット増殖確率が100%になり、ドロップしにくいSRの頭数を揃える手間が省けるからです。R以下は腐るほどドロップするため頭数を揃える手間が掛からないことに加え、序盤にユニット数を上げたほうがより戦力になりやすいためです。

個人的な例外として、対人でSRエンジェラが腐るほどドロップしたので、進化前にユニット最大にしてしまいました。

最高の理想は、SSRレベル最大にした後にユニット増殖合成をすることです。レベル最大になると、付与経験値あたりの消費マナが激減するため、マナを節約できます。ただし、レベル上げをグロウポットでチマチマやるならマナ消費はほぼ変わらないため、通常気にする必要はありません。さっさとユニット数を挙げて戦力に格上げしましょう。

レベルはハイグロウポット以上を使って一気に上げる

付与経験値あたりの消費マナは、合成前レベルに応じて決定されます。より低レベルほど、消費マナは低い傾向にあります。そのため、レベルの低いうちにハイグロウポットやスーパーグロウポットを10個まとめて食わせたほうが、全体として見た時に必要マナは少なくなります。

ノアの育成順は火>白>剣

現状、ノア(のスキル)はレイドでしか使いません。レイドで一番使えるスキルを所持しているのが火ノアだからです。ノアは一旦HPをゼロにしてしまうと回復まで面倒なことになるので、殺さないように気を使いつつスキルを繋げるテクニックが必要となります。スキル連鎖の切れ際はいつもチキンレースになります。

序盤のキャラ育成順はブロッカ>アーチェ>(ボマ)>ウィネ>SR

この章は特に趣味が混じっています。まずは壁役となる万能ブロッカを推します。次点で、ブロッカとタッグを組ませるアーチェ、9-1ハツメ周回をギルドメンバとする場合はボマ、範囲砲台を射程の外から攻撃できるSSRウィネと続きます。その後は、手に入ったSRを順次育てていきますが、きっとマナ不足に悩まされます。

課金せずともビルダーハウス5個購入できるほどのルビーは貯まる

ゲーム開始直後に課金してしまいましたが、2〜3週間程で購入できるほどのルビーは貯まるかと思いますので、序盤で一気にあげたい人以外は不要かもしれません。

鉄巨人は遠距離ユニットを必ず最後に出撃させる

鉄巨人はタゲったユニットのタイプ(遠距離/近距離)によって攻撃パターンが変わります。近距離の場合は真下に剣を突き立てるモーション、遠距離の場合は前方に剣を叩きつけるモーションです。当然、後者が避けやすいため出撃順には注意が必要です。

docomoの違約金が発生しない解約は契約満了月+1月

MVNO(IIJ/DMM)に乗り換えようとして、docomoの違約金が発生する条件を知らなかったのでメモしておきます。151のオペレータさんに確認しました。

端的にいうと、契約満了月(2年)+1月が違約金が発生しない月です。具体的には、2014年06月14日が課金開始日の場合、違約金の発生しない期間は2015年07月01日〜07月31日となります。今解約したとして違約金が発生するかどうかは、docomoのオンライン手続きで解約手続きを途中まで進めれば確認できます。(結果確認画面まで進めるだけなので何の弊害もありません。)

下記は「じゃあ契約満了月って何時だったっけ?」という人のための記事です。dメニューのdocomoお客様サポート(ウェブ)から確認できます。

dメニュー

dメニュー

購入時はデスクトップにデフォルトで配置されています。

お客様サポート

お客様サポート

契約内容の確認

契約内容の確認

2ページ目

2ページ目

foobar2000のColumnsUIで再生中/再生順を1列で表示する

foobar2000のカスタマイズに凝っていた時に作った、ColumnsUIのPlaylistViewで再生中/再生順を1列で表示する簡易なスクリプトのメモです。

こんな感じで表示できます。

再生中と再生順を表示してみた画面

再生中と再生順を表示してみた画面

こんな感じで実現できます。

$if(%isplaying%, ♪, [%queue_indexes%])
スクリプト

スクリプト

ちなみに蛇足ですが、私は再生キューに出し入れする機能をキーボードに割り当ててます。便利です。

キーボードショートカット設定例

キーボードショートカット設定例

nexus9で艦これをプレイする

nexus9(Android5.0.2)で艦これがプレイ出来たのでメモしておきます。なお、公式サポートはWindowsのみのため、決して運営チームに問い合わせてはなりません。

また、本記事はnexus9で閲覧していただいた方が話が早いです。

  1. Androidの設定で「提供元不明のアプリ」のインストールを許可する。
  2. DolphinBrowserをインストールする。
  3. DolphinBrowser用のFlashPlayerプラグインをインストールする。
  4. DolphinBrowserの設定で「Dolphin Jetpack」を「有効」にする。
  5. DolphinBrowserの設定で「Flashプレイヤー」を「常にON」にする。(既になっているかも。)
  6. DolphinBrowserの設定で「ユーザエージェント」を「デスクトップ」にする。
  7. DolphinBrowserのコントロールパネルから「デスクトップ」を選択する。
  8. 艦これができる!

スクリーンショット

提供元が不明のアプリ

提供元が不明のアプリ

Dolphin Jetpack/FlashPlayer

Dolphin Jetpack/FlashPlayer

ユーザエージェント

ユーザエージェント

デスクトップ

デスクトップ

foobar2000でインターネットから取得した歌詞を表示する

foobar2000でインターネットから取得した歌詞を表示してみたのでメモしておきます。

全体像

スマートに実現する方法はありません。下記のように様々なcomponents及び、外部プログラムを協調させます。また、全自動ではできませんでした。

foobar2000で歌詞を表示するための設定全体像

foobar2000で歌詞を表示するための設定全体像

処理の流れ

理解する必要はありませんが、おさえておいたほうが良いでしょう。

  1. RunServicesが再生中の曲名+歌手を引数にLyricMasterを呼出します。
  2. LyricsMasterが曲名+歌手をキーに複数の歌詞掲載サイトを検索して、HTMLをパース、歌詞を抽出、候補リストを出力します。
  3. 人間が候補リストから最も正しい歌詞を選択すると、LyricsMasterが歌詞を曲名+歌手をファイル名に設定してファイル出力します。
  4. LyricsPanel(要:ColumnsUI)が再生中の曲名+歌手を元に歌詞ファイルを特定して画面表示します。

必要資材

下記に必要な資材をまとめましたので適宜取得してください。

資材名 取得先
RunServices http://www.foobar2000.org/components/view/foo_run
CulumnsUI http://yuo.be/columns.php
LyricsPanel http://foo2k.chottu.net/
LyricsMaster http://www.kenichimaehashi.com/lyricsmaster/

手順

手順自体はfoobar + Lyrics Master – 別称 うしぶの通りやれば出来ました。

トラブルシューティング

詰まった箇所をメモしておきます。

  • LyricsPanelの上で右クリック→Reload Lyrics File
  • foobar2000上の曲名+歌手と、歌詞ファイル名と一致させる。(例えば、(カバー)(CV.〜)が付いているだけでもダメ。姓名の間に空白があってもダメ。)
  • 初期設定では文字化けするので、LyricsPanelの設定をUTF-8にする。
  • おまけ:AMIPで同じことをやろうとしましたが、iTunesでエンコードしたMP3に付属するID3タグはUnicodeになっていて、かつ、AMIPはUnicode非対応らしいので必ず文字化けを起こしてしまい諦めました。(参考:Winampやfoobar2000とLyrics Masterを連携させる方法

UQ-WiMAXの「データ量制限なし」に潜む罠

「データ量制限なし」に潜む罠に引っかかったので記しておきます。

前提知識

先日の「最新WiMAXルータへの無料乗り換え」キャンペーンの付録である「ツープラスサービス」により、下記3方式から選択できるようになりました。具体的には、WiMAXルータの設定変更をすることで切り替えられます。

方式 WiMAX WiMAX2+ LTE 備考
ノーリミットモード 原則速度制限なし
ハイスピードモード 契約後2年間は速度制限なし
※ただしハイスピードプラスエリアモードで制限を食らった場合は共倒れ
ハイスピードプラス
エリアモード
7GB/月の制限あり
要オプション料金

私の場合は……

付録として付いてきた「LTEオプション料が2015年5月末まで無料」を、せっかくだから使ってみようと思いたったのが運の尽きでした。

前述したキャンペーンで、「Speed Wi-Fi NEXT W01」に機種変更していました。実はこの機種、ノーリミットモードに対応していません。というか、WiMAX方式に対応していません。

そのため、ハイスピードプラスエリアモードで7GB制限を突破して、ノーリミットモードにも戻せない、次の月初まで地獄の日々が始まりました。仕方なく、docomoのテザリングでこの記事を投稿しました。128kbpsの世界は耐えられませんでした。