2018年3月9日金曜日

Welcome to emergency mode!

以前、Windows7がデフォルトで入っていたパソコンにUbuntu12.04LTSを入れていたのですが、両方ともアップデートしたりして今はWIndows10とUbuntu16.04になっています。
あまりUbuntuを使わなくなっていたのですが、この前とある事情でUbuntuを使うことになり開いたら「Welcome to emergency mode!」の文字、何度Ctrl-Dを押してもその表示が消えなく、開かなくなってしまっていました。

いろいろ調べたのですが、どうやらWindows10の高速スタートアップという機能が悪さをしていたらしいです。
前回終了時のイメージを保存して高速で起動できるようにする高速スタートアップ、
コントロールパネル→システムとセキュリティ→電源オプション→電源ボタンの動作の選択→現在利用可能ではない設定を変更しますを順番に押していき、シャットダウン設定の高速スタートアップを有効にする(推奨)のチェックを外すことで高速スタートアップが無効になり、見事Ubuntuが起動できました。

細かな話ですがまた忘れてしまいそうなので備忘録がてら。

参考

2017年7月1日土曜日

ポケモンの色違い

ポケモンサンムーンが発売されてから色違いのポケモンを少しずつ集めています。
7月1日現在の色違いを表にまとめました。
色違い
番号 名前 所持
019 Aコラッタ
027 Aサンド o
038 Aロコン o
051 Aダグトリオ o
088 ベトベター o
089 Aベトベトン o
116 タッツー o
186 ニョロトノ o
193 ヤンヤンマ o
320 ホエルコ o
321 ホエルオー o
322 ドンメル o
341 ヘイガニ o
349 ヒンバス o
371 タツベイ o
374 ダンバル o
384 レックウザ o
385 ジラーチ o
582 バニプッチ o
590 タマゲタケ o
591 モロバレル o
632 アイアント o
649 ゲノセクト o
692 ウデッポウ o
707 クレッフィ o
724 ジュナイパー o
725 ニャビー o
733 ドデカバシ o
735 デカグース o
738 クワガノン o
740 ケケンカニ o
741 オドリドリ o
743 アブリボン o
745 ルガルガン o
746 ヨワシ o
750 バンバドロ o
752 オニシズクモ o
754 ラランテス o
756 マシェード o
758 エンニュート o
760 キテルグマ o
763 アマージョ o
764 キュワワー o
768 グソクムシャ o
770 シロデスナ o
771 ナマコブシ o
775 ネッコアラ o
777 トゲデマル o
778 ミミッキュ o
779 ハギギシリ o
781 ダダリン o
783 ジャランゴ o
785 カプ・コケコ o
全合計

2017年2月27日月曜日

AmazonのWishlistに入っているKindle本のAmazonポイントを表示させる

2021/7/19追記
当時はページャーだったのですが、現在は無限スクロールにしたのでその仕様に合うように修正しています。

差し迫ってきたことから逃げるために、最近はkindleで本を読んでいます。

電子書籍のメリットと問われると多くの人が言及するのが値段の安さです。
kindle本は値段が安くなるセールだけではなく、ebookjapanやkobo対抗のポイント還元セールも行われています。
ぼくはkindleのセールが始まったらとりあえずWishlistに入れてある本を確認してからセール画面を見るのですが、Wishlistには値段は書いてあるもののポイントがどのくらいついているかはわかりません。

そこで、タイトルのようなAmazonのWishlistに入っているKindle本のAmazonポイントを表示させるchrome拡張を作りました。

まず、Amazon公式のProduct Advertising API(PAAPI)を用いようとしたのですが、実はPAAPIはkindle本の値段を含めポイント還元なども取得することはできません。
googleで検索すると、kindle本の値段やポイント還元はスクレイピングを行うことで取得できるとのことだったので、その方法を用いて本拡張を作りました。
スクレイピングはデータ処理などでよく用いられているため、参考資料はたくさんありました。
またAmazon公式のWishlistからAmazonのサイトをスクレイピングするため、クロスドメイン通信を行わなくて済みました。

コードはGithubに置いています。
また、パッケージ化したchrome extensionsはDropBoxに置きました。

パッケージ化したものの使い方は、拡張機能のページにダウンロードしたextensionsをD&Dし、出て来るページの保存を押すだけで大丈夫だと思います。
Wishlistを開き少し待つとポイントが価格の横に表示されます。

ただしポイントが表示されるのはkindle本のみなのでご了承下さい。
また、Amazonのアフィリエイトタグなどは入っていないのでご安心下さい。

確認用にkindle本も入っているほしい物リストを置いておきます。
ほしい物リスト

以下雑記(メモ)
for in はインデックス
for of はエレメント

innnertextでは改行が入る

inputで選択させないためにはdisabled

fetchは今の段階では読み込む前に処理してしまう

beforeendで直後に文字を付加

data-item-prime-infoはプライム以外でも大丈夫なのかはわからない


参考サイト

2016年7月16日土曜日

Re:スクフェス

スクールアイドルフェスティバルのアップデートがあってAqours仕様のアイコンになりました。
Aqoursのスペルは間違いやすいですが、名前をつけた人の由来が"Aqua"+"ours"だということを覚えていれば間違えることはなさそうですね。
シール覚醒、スクールアイドルスキル、新規レアリティ、ごほうびボックス、部員リストのフィルタ機能、曲大幅追加や難易度Master実装など、数えるときりがないほどのアップデートがありましたが、一番興味を引くのは通常勧誘の確率変更でしょうか。
下の表に前回と今回の確率を示しています。

特待生勧誘の確率
状態 UR SSR SR R
7/5以前 1% なし 9% 90%
7/5以降 1% 4% 15% 80%

SR以上を合わせると10%が20%に増えていますね。
シールがあれば覚醒できるということも相まって、覚醒後のかわいいメンバーを見やすくなりました。 嬉しい限りです。

確率が変わったということで、表も一から作りなおしていきたいと思います。
よろしくお願いします。

スクフェスの結果
説明 赤はUR,青はSSR,補助は薄赤,勧誘は薄青
日付 スマイル ピュア  クール 
2016/7/5 0 1 0
2016/7/7 4 1 1
2016/7/8 1 1 0
2016/7/9 0 0 1
2016/7/15 0 1 1
2016/7/16 0 1 0
合計 5 2+3 3
全合計 1+20 5+2+37 24

2016年4月21日木曜日

Macのサイドバーのよく使う項目の復元

Finderにはサイドバーによく使う項目が表示されるのですが、ここ3ヶ月ほど前からよく使う項目が表示されなくなっていました。

そこで、復元を試みました。

まず、Finderの設定からサイドバーの確認。
基本的には、ここで項目にチェックをつければ大丈夫なはずです。

しかし、今回の場合では、Finderでの表示は直っていても、他のソフトやアプリから画像やファイルを開くときに出てくるファイル選択ボックス(ファイル選択ダイアログ)のサイドバーによく使う項目が表示されませんでした。

いろいろ調べた結果、初期設定ファイルが壊れてるっぽいので
User/Library/Preferences/com.apple.finder.plist
User/Library/Preferences/com.apple.sidebarlists.plist
のファイルを一度他のところに移動して再起動すると直りました。

FInderで何も表示されなくても、多分操作を行うことで直ると思います。

参考

2015年11月22日日曜日

スクフェス(2)

スクフェスの特待生勧誘の結果を久しぶりに表にまとめました

スクフェスの結果
説明 赤がUR,補助は薄赤,勧誘は薄青
日付 スマイル ピュア  クール 
2014/4/26 1 1 0
2014/5/25 0 2 0
2014/6/7 0 1+1 1
2014/7/9 0 0 0
2014/7/31 1 0 0
2014/8/21 1 0 1
2014/9/6 0 0 1
2014/9/6 0 1 0
2014/10/28 0 1 0
2014/11/22 0 1 0
2015/1/13 0 1 0
2015/1/13 0 1 0
2015/1/29 0 2 0
2015/3/1 0 1+1 0
2015/4/6 1 0 0
2015/4/6 0 1 0
2015/5/28 0 0 1
2015/5/30 0 1 0
2015/6/30 0 1 0
2015/6/30 0 0 1
2015/7/21 0 0 1
2015/7/26 1 1 1
2015/7/27 0 1 0
2015/8/4 0 1 0
2015/8/4 1 0 0
2015/8/27 0 1 0
2015/9/4 0 0 1
2015/9/12 0 2 0
2015/9/12 0 1 0
2015/10/1 0 1 0
2015/10/9 0 1 1
2015/10/9 1 1 0
2015/10/28 0 0 1
2015/10/28 0 1 0
2015/11/24 0 0 2
2015/11/24 0 0 1
2015/12/9 0 0 1
2015/12/15 0 1 0
2015/12/25 0 1 0
2016/1/9 0 1 0
2016/1/9 0 0 1
2016/1/15 0 1 0
2016/2/15 1 0 0
2016/2/27 0 0 1
2016/2/27 1 0 0
2016/2/27 2 1 0
2016/3/2 0 0 1
2016/3/15 0 0 1
2016/3/27 1 1 0
2016/3/27 1 1 0
2016/3/27 0 1 0
2016/3/27 1 0 0
2016/4/21 0 1 0
2016/5/15 0 0 1
2016/5/28 1 2 0
2016/5/28 1 0 0
2016/5/29 0 0 1
2016/6/12 0 0 1
合計 1+15 5+34 21

2015年6月28日日曜日

Animetickで公式サイトへのリンクを作るUserScriptをWindowsで使えるようにした

以前作ったUserScriptですが、Windowsではセキュリティ上の問題からUserScriptをインストールことができなくなっていました。
しかし最近Windowsを使うことが増えてきたので、なんとかならないかと調べていたところmanifestを作れば拡張機能として使えるぞ!というものを見つけたので備忘録がてら使ってみることにしました。

で久しぶりにgithubにpush

github

ここ最近githubを使ってなかったのが目の前にばん!と現れてちょっと悲しくなりましたが、とりあえずもうちょっとしたらすこし暇(…)になるのでコードと戯れたいと思います。


さんこうさいとさま
http://d.hatena.ne.jp/superstring04/20140614/1402777509

2015年5月8日金曜日

暇だから異世界行ってみた

タイトルにある通り、暇なので異世界に行ってきました。
春休み、少し暇で異世界に行きたくなったので、いつも異世界に行っているイメージがある小説家になろうの作品から10作品程度読んでレビューしたいと思います。
レビューと言っても、本について思ったことををつらつらとかいていくだけなのでそこのところよろしくお願いします。

小説家になろうの作品はwebで読むことができるのですが、ずっとパソコンの画面を見るのは目が疲れてしまうので今回は小説家になろうの作品をkindleで読めるような形式に変換してくれるnarou.rbというrubygemを使わせてもらいました。ありがとうございます。
便利なのでkindleを持ってる方はぜひ使ってみてください。

☆☆☆☆
ログ・ホライズン 橙乃ままれ
"MMORPG〈エルダー・テイル〉をプレイしていたプレイヤーは、ある日世界規模で、ゲームの舞台と酷似した異世界に転移してしまった。その数は日本では約三万人。各々がゲームのキャラクターとしての肉体を得た今、プレイヤーたちは高い戦闘能力、「死」からの蘇生能力を備えた英雄的存在〈冒険者〉とよばれ、この異世界で暮らすこととなる。"
NHKでアニメ化もされているログ・ホライズンです。
かなり読みやすい作品なんですが、MMORPGという舞台の特性上登場キャラクターが多く、また細かいところまで設定があるのでしっかり記憶しておかないとすこし厳しいところがあるかもしれないです。
人と人や人と異世界の民とのかかわり合いがメインとなって、どうやってこの世界で暮らしていこうか、そして最後には転移してしまったこの世界からどう元の世界に戻ろうかといったことを考える話になっています。主人公のシロエは最強というほどではないのですが、やはりそれなりの魅力を持っているようで周りには様々な一芸秀でた仲間が集まります。みんな目標を、そして未来を信じてこの異世界を生きているのです。

☆☆☆☆
フレイム王国興亡記 疎陀 陽
"通勤途上で買ったコーヒー片手に、気付いたら異世界トリップしていました。
『えっと……私、別に勇者でもなんでもないんですけど……』
 ただのリーマンだった主人公、『松代浩太』がトリップした先は中世ヨーロッパ『風』の異世界! 魔王は不在、悪の帝国は開店休業、宇宙の法則を乱す憎いアンチクショウはモノガタリの中の人。そんな平和な大陸、『オルケナ大陸』で、浩太に忍び寄る魔の手……そう、赤字国債!
暴落する株価、通貨崩壊と共に起こる債務不履行の嵐、デリバティブの失敗に、保守本流の元老・元勲達による狡いイヤガラセ、さらには飢饉や戦争まで。魔王以上の強敵に、持ち前の知恵と勇気で立ち向かえ、浩太!
……君は今、歴史の証人になる"
 元の世界では銀行員である主人公の松代浩太が、その前世の知識を武器にして転移した先のフレイム王国でたくさんフラグを立てていく国家財政を立て直していく話です。
少し会話文が多いのですが、誰が言ったのかはわかりやすい方だと思います。この作品の特徴としては、途中途中に金融・経済用語の説明が入るところがあります。
浩太にとっては元の世界と同じようなことをやっているつもりらしいですが、異世界の民からしたら国を立て直し発展させていくヒーローみたいなところがあります。カッコイイですし、モテるのも当然ですね。ぼくも銀行員になって異世界に転移したいです。

☆☆☆
ありふれた職業で世界最強 厨二好き/白米良
"クラスごと異世界に召喚され、他のクラスメイトがチートなスペックと“天職”を有する中、一人平凡を地で行く主人公南雲ハジメ。彼の“天職”は“錬成師”、言い換えれば唯の鍛治職だった。最弱の彼は、クラスメイトにより奈落の底に落とされる。必死に生き足掻き、気がつけば世界最強・・・というありがちストーリー。最強物を書きたくて書きました。最強、ハーレム等テンプレを多分に含みます。最終的に不遜で鬼畜な主人公を目指します。"
最弱から最強になる、南雲ハジメくんの物語です。
性描写がすこしあるのが気になりますが、どんどん周りにいる女の子が彼に落ちていく様が読んでいて楽しいです。主人公が鬼畜に落ちていくところは納得できるのですが、すこし性格の変わり様には無理があるんじゃないかなって思うこともあります。
クラスメイトが敵側に寝返ることがあったりし、主人公とクラスの中心人物との対比がかなり印象的になっていました。
あと、雫ちゃんがかなりかわいかったです。第七章まで見てください。

☆☆
ぼくは異世界で付与魔法と召喚魔法を天秤にかける 横塚司
"いじめられっ子だった無力な少年が、落とし穴を掘っていた。いじめの主犯を穴に落とし、殺すための武器も用意していた。
だが、落とし穴に落ちたのは、醜悪な豚鼻の人型生物、オークだった。
ある私立の全寮制の学校は、それが存在する山ひとつまるごと、異世界に転移する。なんのちからも持たなかった少年は偶然、モンスターを殺し、レベルアップする。
得たスキルは、付与魔法と召喚魔法。
その瞬間から、少年は無力ではなくなった。モンスターに対抗できる、稀有な存在へと進化した。
ちからを得た少年は、異世界に転移した学校で、さまざまな選択を突きつけられる。
自分ひとりで生きるために最適な召喚魔法か、それとも他人と共に戦うための付与魔法か。 
少年は天秤にかける。"
 いじめられていた主人公が、ほぼサバイバル状態となりながらも戦いを重ねていく話です。
この作品は人が多く死ぬ描写がありますが、かなり淡々とした口調で語られていくのでそこまで悲惨なイメージは抱くことはありません。ただ、あまりに淡々と進むので、台本を読んでいるような感覚になることがあります。
また、現実世界なのにレベルやスキルポイントがあることから、ゲームの世界を意識していると考えられます。そのため、強さが数字ででてくるのが嫌いな人はやめておいたほうがいいと思います。

☆☆
異世界迷宮で奴隷ハーレムを 蘇我捨恥
"ゲームだと思っていたら異世界に飛び込んでしまった男の物語。迷宮のあるゲーム的な世界でチートな設定を使ってがんばります。そこは、身分差があり、奴隷もいる社会。となれば、やることは一つ。俺様、最強、ハーレム、性奴隷の要素があり、人も死にます。"
 小説家になろう累計ランキング三位になっている作品です。
予定調和でゆっくり進んでいくような小説なので、好きではないと10話ぐらいでさえ読むのはつらいかもしれません。また、奴隷ハーレムとタイトルにありますが、奴隷との仲は良好でキツイ描写もありません。
主人公は最初から慎重で、パッとしない日常系の作品を読んでいる気持ちになります。



適当に書いてたらかなり時間が経ってしまっていたので、続きはまた次回。

2015年3月1日日曜日

ラブライブ!スクールアイドルフェスティバル

少し前から、ラブライブ!スクールアイドルフェスティバルをやっています。
11連をやるたびにTwitterに投稿しているのですが、結構回数重ねてきているのでまとめようと思いました。
まとめた表はこちらです。


補助チケットの結果


スクフェスの結果
説明 赤がUR,黒はSR,補助チケは背景オレンジ
日付 スマイル ピュア クール
2014/4/26 1 1 0
2014/5/25 0 2 0
2014/6/7 0 1+1 1
2014/7/9 0 0 0
2014/7/31 1 0 0
2014/8/21 1 0 1
2014/9/6 0 0 1
2014/9/6 0 1 0
2014/10/28 0 1 0
2014/11/22 0 1 0
2015/1/13 0 1 0
2015/1/13 0 1 0
2015/1/29 0 2 0
2015/3/1 0 1+1 0
2015/4/6 1 0 0
2015/4/6 0 1 0
2015/5/28 0 0 1
2015/5/30 0 1 0
合計 4 4+12 4


ピュアをいつも引いてるなと思っていたんですがまさかこれほどだとは…
一向にスマイルのURが来る気配がないのはなんでなんだろうか・・・
4/6更新

2014年12月2日火曜日

毎週ゲームをつくろう!

コードを書かなくちゃ圧倒的成長が望めない!
ということで毎週1つゲームをつくろう!と思います。

ゲームエンジンは、HTML5+JavaScriptゲームエンジンである「Phaser」とAltJSと言われている「TypeScript」を使っていきたいと思います。

それでは今週からいってみよー!

2014年7月11日金曜日

sudoersをぶっ壊してみた

sudoのPATH追加とかいろいろググってたら/etc/sudoersを間違えてrmしました。
そこからの復旧をログとして残しておきます。

sudoersとは
"sudoers - デフォルトの sudo 用セキュリティ・ポリシー・モジュール
sudoers ポリシー・モジュールは、デフォルトの sudo 用ポリシー・プラグインであり、このモジュールによってユーザがどんな sudo 権限を持っているかの判定が行われる。"
- Man page of SUDOERS http://linuxjm.sourceforge.jp/html/sudo/man5/sudoers.5.html

つまりsudo権限に関するモジュールです。
これをいじってしまうとsudoが使えなくなってしまったりするものですが、間違えてrmしてしまいました。

まず、これがないと

sudo: /etc/sudoers の状態取得 (stat) ができません
:そのようなファイルやディレクトリはありません
sudo:有効な sudoers のソースが見つかりません。終了します
sudo: ポリシープラグインを初期化できません

という表示が出ます。sudoが使えない、また、sudoersはsudoでしか編集できない/etc/以下に存在するので、にっちもさっちもいかなくなります。
こうなってしまうと、リカバリーモードから編集するか、他サーバーなどからリモートでアクセスして編集していくしかありません。
今回はちょうど目の前にubuntu 12.04.2 LTSのリカバリーディスクがあったのでそれを使いました。
リカバリーディスクのtry ubuntuからHDDをマウントし、HDDの/etc/へ移動。
ここでsudoersを編集する

$ sudo visudo

を使うと、リカバリーディスクのsudoの編集をしてしまいます。
故に今回は

$ sudo vi sudoers

とし直接編集しました。(実際は間違う可能性が多いのでやらないほうがいい)
作るsudoersのサンプルは
Sudoers - Community Help Wiki 
を利用しました。
これでリカバリーディスクからsudoersを作成し保存してreboot。

しかし、

sudo: /etc/sudoers のアクセス権限のモードは 0662 です。これは 0440 であるべきです
sudo: 有効な sudoers のソースが見つかりません。終了します
sudo: ポリシープラグインを初期化できません

アクセス権も付加します。
アクセス権もsudoがなくては使えないのでリカバリーディスクから

$ chmod 0440 /etc/sudoers

これで使えるように。

教訓
sudoersは触らないほうがいい。


さんこうさいと
http://takuya-1st.hatenablog.jp/entry/20090806/1249554458
http://www.maruko2.com/mw/%E4%B8%80%E8%88%AC%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92_sudo_%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B

2014年6月30日月曜日

Animetickで公式サイトへのリンクを作るUserScript

テスト前特有の何かコンテンツを作りたい欲が出て、いろいろ考えてたら疲れたのでアニメを見ていました。

そこでタイトルのようなものを考えました。

Animetickとは

"「今期のアニメは何を見てたっけ?」
「今日は何が放送されるっけ?」
「このアニメ、どこまで見てたっけ?」
アニメを見ること一つをとっても、実はたくさんのことを管理しています。
Animetick は日々放送される膨大なアニメの消化を腕利きの秘書、もしくはしっかりメイド、手練れの執事が如くサポートします。
まずは毎週見ているアニメを選びましょう。
アニメの放送時間になるとあなたのもとにチケットが配られます。
チケットを効率よく管理して、たくさんのコンテンツを消化しましょう。"

という説明にあるようにアニメの視聴管理をおこなうサービスです。
このサービスはとても使いやすいのですが、来期のアニメ何を見るかといった場合には、どんなアニメかは画像とタイトルしか判別ができず、あまり実用的ではありません。
そこで、アニメの詳細に公式サイトへのリンクがあれば使いやすくなるのではないかと思いつくりました。
(あと一度UserScriptを作ってみたかった)

どうやれば公式サイトへのリンクにつなげるかが一番の課題でしたが、今回はgoogleのI'm Feeling Luckyを使うことにしました。

googleのI'm Feeling Luckyとは、使っている人は少ないかもしれませんが、面白いgoogleのサービスです。
googleのホームにもあるgoogle検索ボタンの横にあるボタンからI'm Feeling Luckyを使うことができます。このI'm Feeling Luckyというボタンを押すと、検索ワードの一番上の検索結果に直接飛びます。

アニメのタイトルを検索するとほぼそのアニメの公式サイトが最初に出てくる(ぼく調べ)なのでこれならいける!と思い作りました。

コード

(function() {
    var element = document.createElement('a');
    var objBody = document.getElementsByClassName("anime-info-bottom")[0];
    element.style.backgroundColor = "#FF3307";
    element.style.textDecoration = "none";
    element.style.borderRadius = "5px";
    element.style.color = "#FFFFFF";
    element.target="_blank";
    element.innerHTML = "Official Site";
    element.href = "http://www.google.com/search?btnI=I%27m+Feeling+Lucky&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=" + objBody.children[0].innerHTML;
    objBody.children[2].appendChild(element);
})();

github

dropbox

user.jsをchromeにインストールする場合には、一度***.user.jsをローカルに落とし、chromeの拡張機能のページを開きドラッグ&ドロップ。

<追記> Windows版のstableなchromeだとUserScriptは自動無効化されてしまう…。
使いたい場合にはDev版やCanary版を使うか、このサイト と同じようにすると使えます。



以下雑記(めも)
getElementsByClassNameとgetElementByIdについて
classは複数個ある場合があるのでsがつく、さらにリストで返ってくる。
->そのため一つしか無くても[0]で指定する必要あり。
idは必ず一つしかないのでsがつかなく、そのまま返ってくる。

子ノードの選択でのchildrenとchildNodesについて
children[i]はそのままi番目の要素を指定することができる。
childNodes[i]は改行はひとつとして数える。そのため、後ろのほうの選択を行う場合には不便。

element.targetについて
aタグでのリンクを新しいタブで開くとき場合には、targetを_blankで指定する。

(function()...)();としている意味
(function()...)();は無名関数でその場で実行することができる。

User.js
@includeでjavascriptを適応するサイトを決める。*でワイルドカード。

さんこうさいと
http://future-is-now-k02.blogspot.jp/2011/12/javascriptchildnodes-children.html
https://developer.mozilla.org/ja/docs/Web/API/document.getElementsByClassName
https://developer.mozilla.org/ja/docs/Web/API/document.getElementsByClassName
http://monopocket.jp/blog/html/1091/
http://dqn.sakusakutto.jp/2009/01/javascript_2.html

2014年6月2日月曜日

for文の繰り返し順序

c言語のfor文の繰り返し順序

for文

  for(初期化;継続条件;増分処理){
   文
  }
 
  1. 初期化
  2. 継続条件の検査(偽ならば終了する)
  3. 文の実行
  4. 増分処理
  5. 2へ

2014年3月18日火曜日

ローカル開発環境でWebサーバを立ち上げ

タイトル通り、ローカル開発環境でWebサーバを立ち上げたかったので検索してオススメと書いてあったvagrantを使って立ち上げてみました。

vagrantはいわゆる仮想環境構築ツールです。
Rubyで書かれていて、すぐに使える開発環境を構築するのにかなり便利なツールとなっています。
以下から、実際に立ち上げてみます。
ここで、Vagrantは仮想環境構築ツールであり、仮想化用ソフトは別に必要です。今回はoracleのVirtualboxを使いました。

下の公式サイトのリンクからVagrantをインストールしてください。また、Virtualboxをインストールしていなければ、それもインストールしてください。
Vagrant
Virtualbox

今回はvagrantのバージョンは1.5.1
Virtualboxのバージョンは4.3.12です
次に、仮想マシンのイメージファイルを所得します。
今回は公式サイトのGetting Startedと同様に行います。
このhashicorp/precise32というのは、ubuntu12.04の32bitです。

$ vagrant init hashicorp/precise32
すると、このコマンドを入れた時のdirectory上にVagrantfileというものが生成されます。
このVagrantfileには、作る仮想環境の設定が記述されています。
つまり、このVagrantfileがあれば、どんな環境でも同じ仮想環境が作れるということです。
ここがVagrantを使う利点の一つです。
今回は、先にも述べたとおりvagrantが公式に提供している、ubuntu12.04の32bitの仮想環境が作られるVagrantfileが作られます。
他のVagrantfileを使うと、他のOS(CentOS,FreeBSDなど)を使用することもできます。
次に

$ vagrant up
をVagrantfileがあるdirectoryで入力します。
すると、仮想マシンのイメージファイルなどがダウンロードされ、その仮想環境が立ち上がります。
これで、仮想環境の作成は終了です。
二回目以降は、イメージファイルはダウンロードされずに仮想環境が立ち上がります。
この開発環境にsshしたい時には

$ vagrant ssh

この開発環境を終了したい時には

$ vagrant halt

この開発環境を削除したい時には

$ vagrant destroy

です。


webサーバを立ち上げるには、先のVagrantfileを編集します。
Vagrantfileを編集する前に、仮想環境を立ち上げていれば、終了してください。
終了させた後に、Vagrantfileの中身を編集します。 Vagrantfileの

#   config.vm.network "private_network", ip: "192.168.33.10"
というようにこの行がコメントアウトされていると思います。
この行のコメントアウトを解除して、保存してください。
そうして、

$ vagrant up
すると設定は完了です。
今回は、pythonのSimpleHTTPServerを使いWebサーバを立ち上げてみます。
本当に立ち上がっているか確認するために、index.htmlなどを作成して確認してみましょう。

$ vagrant ssh
$ mkdir web
$ touch index.html
$ echo hello >> index.html
これでwebというdirectoryの中にhelloという書いてあるindex.htmlが作られました。
次に、IDアドレスを確認します。

$ ifconfig
でeth1のinet addrを確認しましょう。
多分、先にコメントアウトを解除した192.168.33.10と書いてあると思います。
最後に、

$ python -m SimpleHTTPServer
とすることでWebサーバが立ち上がります。
ポートは8000番になっているはず…!
それでは最後にブラウザから確認してみましょう。
ブラウザで192.168.33.10:8000と入力してください。
helloと出ると思います。
これで、Webサーバの立ち上げの完了です。


何度もvagrant haltやvagrant upをしていると、

$ default: Error: Connection refused. Retrying...
が永遠と出続けることがあります。
これは、強制終了などが起こり、リカバリーモードなどが起動した時に起こります。(実際にぼくも起こりました。)
この時は、VagrantfileのvirtualboxのGUIを起動させ、正しい起動をさせることで起こらなくなります。
virtualboxのGUIは

#   config.vm.provider "virtualbox" do |vb|

#   vb.gui = true

#   vb.customize ["modifyvm", :id, "--memory", "1024"]

#   end
という4つのコードのコメントアウトを解除することで起動します。
困ったら試してみてください。

(この最後をメモとして残しておきたかった)

さんこうさいとさま
http://knowledge.sakura.ad.jp/tech/1552/
http://dev.classmethod.jp/server-side/virtual-box-vagrant/

2013年9月21日土曜日

ubuntu12.04を再起動したら画面が表示されなくなった

- "辛かった" -

っていうわけでubuntu12.04 LTSを使っていてX Window Systemに一日苦労した話です。

まず、X Window Systemについてです。

"X Window System(エックスウィンドウシステム、別称:「X11」・「X」など→名称については後述)とは、ビットマップディスプレイ上でウィンドウシステムを提供する表示プロトコルである。" -via wikipedia (http://ja.wikipedia.org/wiki/X_Window_System)

ubuntuのGUI画面が表示されないとき、だいたいこの子が原因だったりします。


今回はこんなかんじになりました。
------------------------------------------------------------------------------------------------------

うわーなんかいろいろ設定変えちゃったなー再起動しよーっと!


いつも通り起動…と……………あれ……ログイン画面が…出てこない……

まーたなんかgrubの設定変えちゃったかなー…

grubでubuntuのリカバリーモードを起動して…
ここでgrubが起動してることに気がつくべきだった

http://bats.cocolog-nifty.com/blog/2012/04/ubuntu1204-972e.html
ここを見ると…このgrubのバックアップとって…

日本語がttyでは表示されないのでここから最後まで◆マークと戦っていました。

$ sudo cp /etc/default/grub /etc/default/grub.back
$ sudo vim grub
中身~~~~~~~~~~

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
        ↓
GRUB_CMDLINE_LINUX_DEFAULT="quiet console=tty1"


~~~~~~~~~~~~~~

$ sudo update-grub

"よしこれで再起動してみよう"

PANIC: early exception ** ***********

!?!?!?

か…カーネルパニック……?

さっきのがよくなかったんだもどそうもどそう…

$ sudo rm /etc/default/grub
$ sudo mv /etc/default/grub.back /etc/default/grub

じゃあ以前もちょっと迷ったX windowかな…?

$ cd /etc/X11
$ ls

なにも異常なかった…

~ぐだぐだ調べて5時間経過~

とりあえずstartxすればわかるかも…
 
$ startx

***** *********** **************
******* **************** *******
/etc/X11/X  no such file or directory

!?!?!?

Xなんて確かになかったな…でももとのないならしかたないか…

よし!再インストールしよう!

ubuntu liveCDをCDdriveに挿入

さーて…一応/etc/X11/を見てみるか…

$ ls

X Xinit ****** ******

こっちにはある…!

じゃあこのliveCDにある方を持っていけば…シンボリックリンクだからもとのファイルをlinkすれば…!

(liveCD上のterminal)
$ ln -s /usr/bin/X11/X /media/my HDD name/etc/X11/X

よしこれでOKだろう!


失敗

そうか!liveCDは使わないからちゃんともとのHDDの方から引っ張らなくちゃいけないのか!

(liveCD上のterminal)
$ ln -s /media/my HDD name/usr/bin/X11/X /media/my HDD name/etc/X11/X


失敗


~更に2時間経過~

http://askubuntu.com/questions/232926/etc-x11-x-not-executable-error-when-startx

うーん…ここを見るとxserver-xorgをインストールすればいいのかな…?

$ sudo apt-get update && apt-get upgrade
$ sudo apt-get install -reinstall xserver-xorg

エラーがでた…?けど日本語は◆だから読めない…

オプションだから-reinstall じゃなくて--reinstallだ!

$ sudo apt-get install -reinstall xserver-xorg

ふう…再起動だ…


失敗


ふと思いstartxをしてみる。

$ startx

/etc/X11/X not such file or directory


????

シンボリックリンクを確認してみるともとのリンク、つまりliveCDから見た/media/my HDD name/etc/X11/Xにリンクがついており、Xが開けなくなっていた。

よし…
$ ln -s /usr/bin/X11/X /etc/X11/X

$ sudo reboot now

成功した!!!

------------------------------------------------------------------------------------------------------


今回はいろいろな失敗が重なって時間がかかってしまいました。

  • ttyの文字化け
  • grubの原因だと勘違い
  • リンク先の間違い

今回の起動しなかった主な原因は/etc/X11/Xの消失です。
もっと先にliveCDと比較しておけば良かったと思いました。

あとubuntu13.04からX window systemからMirに変わっているそうです。
関係ないですね。


次ほかのことが起こってもこんなに時間がかからないようにしたいですね……
っていうか第一なんで消えたんだろ…

2013年9月12日木曜日

ubuntuでデュアルディスプレイでの動画最大化について

マルチディスプレイでyoutubeやFlash動画などを見るときに、サブディスプレイで最大化をしてももう一つのディスプレイで作業しようとすると最大化が解除されるのがイライラするのでそれを解消させます。

環境
ubuntu12.04.2 LTS 
chrome 29.0.1547.65
adobe flashplayer Shockwave Flash 11.2 r202

  • ghexをインストールします。

今回はバイナリを編集するのでghexというバイナリエディタを使用します。
$ sudo apt-get install ghex


  • 次にghexで使用してるブラウザのadobe flashplayerのプラグインを編集します。

chromeの場合アドレスバーに
chrome://plugins
と入力してShockwave Flashのある場所を確認してください。
その場所のlibflashplayer.soを編集します。

$ sudo ghex /to-your-flashplayer-plugin-path/libflashplayer.so


ghexには指定した場所に移動する機能があります。
探すものは_NET_ACTIVE_WINDOWです。この記述を__ET_ACTIVE_WINDOWと変えることで最大化が解除されなくなります。
必ず必要なことは文字数を変えないということです。
変更した後保存し、ブラウザを再起動するとできると思います。



アアッ...youtubeとか最大化がうまくいってない...これじゃあまり意味がない...

緊急の代替案としてchromeのextentionのMaximizeFlashを使用するとします…


まあ一応最大化したまま他の画面で作業はできるようになったから次また調べてやり直そゔ...


ubuntuはデュアルディスプレイ関連が甘いような…普通の人は使わないのかな…?
あとwindowsのaero snapみたいなのがデュアルディスプレイのディスプレイを跨いで移動してくれないなぁ…
windows7だと[win]+[arrow]でどんどん移動できたからこれがうまくubuntu12.04 LTSでも作動するようにしたいな…


さんこうさいとさま
http://www.ubunturoot.com/2011/07/fullscreen-flash-video-with-dual.html
http://www.webupd8.org/2012/10/ubuntu-multi-monitor-tweaks-full-screen.html

2013年8月3日土曜日

ubuntu12.04 64bitでprocessing2.0.1

ubuntu12.04 64bitでprocessing2.0.1

みなさんはprocessingというプログラミング言語を知っていますか?

processing - wikipediaより引用

"Processing(プロセシング)は、キャセイ・レアスとベンジャミン・フライによるオープンソースプロジェクトであり、かつてはMITメディアラボで開発されていた。電子アートとビジュアルデザインのためのプログラミング言語であり、統合開発環境である。 視覚的なフィードバックが即座に得られるため、初心者がプログラミングを学習するのに適しており、電子スケッチブックの基盤としても利用できる。Java を単純化し、グラフィック機能に特化した言語といえる。"

wikipediaに書いてある通り初心者向けの使いやすい言語です。少しでも高級言語をかじったことがあるひとなら簡単に使えます。
初心者向けとは言っていますが、電子アートとビジュアルデザイン用でもあり、ライブラリが豊富にあったりするので、たくさんの人に使われています。(Javaなので環境をあまり選ばないことも大きい)

後で述べますがSoundの導入にはかなり手こずりました。そこも含めてprocessing導入していきたいと思います。


  • processingのインストール

今回はprocessing2.0.1 linux64bit versionをupdate-alternativesで管理することに(書いてあるとおりにやった)
processing本家さいとからprocessing-2.0.1-linux64.tgzをインストール

$ sudo tar zxvf processing-2.0.1-linux64.tgz -C /opt
$ sudo update-alternatives --install "/usr/bin/processing" "processing" "/opt/processing-2.0.1/processing" 1

こうすることにより、terminalでprocessingと入れればprocessingが起動できるようになる。



  • ファイルダイアログの文字化けを直す
まず起動してみたらわかると思いますがファイルダイアログが文字化けしてどうすればいいかわからない状態になっています。まずそこを直します。


$ cd /opt/processing/java/lib/fonts
$ sudo mkdir fallback
$ cd fallback
$ sudo cp /usr/share/fonts/opentype/ipafont-gothic/*.ttf .
$ sudo mkfontscale
$ sudo mkfontdir



  • processingIDEのエディタを日本語対応にする

最初の状態では日本語が打てないと思います。また、日本語が入ったファイルを開くと文字化けしてしまうのでそこを直します。
ホームディレクトリの中に.processingディレクトリができているのでその中にあるpreferences.txtを変更することによりエディタが使えるようになります。

$ cd /home/<username>
$ cd ./.processing/
$ vim preferences.txt

中身~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14行目
editor.font=processing.mono,plain,12

を好きなフォントに変える
今回はTakaoEXGothicにする

editor.font=TakaoEXGothic,plain,12

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



  • sound系ライブラリminimを使えるようにする

導入していろいろいじっていると音も使いたくなると思います。ですがなぜかうまくいかないということもあると思います。そのubuntuでsoundがぜんぜん使えない状態がつらすぎたのでひたすら調べていました。
日本語どころか英語でもそんなに資料なかったので、これから調べる人がそうならないためにここに記しておきます。

minimが使えない主な原因は、多分processingを構成しているファイルの中に、ubuntu12.04のサウンドサーバーであるpulseaudioとprocessingのjavaを連携しているものが入っていないことだと思います。
従ってprocessingのJavaディレクトリのなかに連携させるものを入れることによりこの問題を解決させます。

まず、libpulse-java.soとpulse-java.jarが自分のJavaディレクトリ配下に入ってないか確認して下さい。
libpulse-java.soがあるところは多分 "/usr/lib/jvm/<your Java version>/jre/lib/i386"だと思います。
また、pulse-java.jarがあるところは多分 /usr/lib/jvm/<your Java version>/jre/lib/extだと思います。


  • libpulse-java.so とpulse-java.jarが自分のJavaディレクトリ配下に入ってないとき


$ wget http://tarsos.0110.be/attachment/cons/255/libpulse-java.so

$ sudo cp libpulse-java.so /usr/lib/jvm/<your Java version>/jre/lib/i386

$ wget http://tarsos.0110.be/attachment/cons/256/pulse-java.jar
$ sudo cp pulse-java.jar /usr/lib/jvm/<your Java version>/jre/lib/ext
これでlibpulse-java.so とpulse-java.jarが自分のJavaディレクトリ配下に入ります。


  • libpulse-java.so とpulse-java.jarが自分のJavaディレクトリ配下に入ってる/入ったとき
今上に上げた2つをprocessingのJavaにも入れます。
$ sudo cp /usr/lib/jvm/<your Java version>/jre/lib/ext/pulse-java.jar /opt/processing-2.0.1/java/lib/ext/
$ sudo cp /usr/lib/jvm/<your Java version>/jre/lib/i386/libpulse-java.so /opt/processing-2.0.1/java/lib/i386/

これで動くと思います。



  • cameraを使えるようにする

もともと入ってるvideoというライブラリはquicktimeとかいう****なものなのでlinuxでは使えませんね…ですがそれに置き換わるGstreamerを使ったGSVideoというライブラリを導入してubuntuでもvideoが使えるようにしましょう。
GSVideoはもとのvideoライブラリとほぼ一緒の使い方ができます。
まずGstreamerを導入します。

$ sudo apt-get install gstreamer-tools
$ sudo apt-get install libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev libglib2.0-dev
$ sudo apt-get install libgtk2.0-dev

次にGSVideoをダウンロードしてください。

でダウンロードできます。
ダウンロードしたものをhomeディレクトリ下に作られた"sketchbook/libraries"に展開してください。
これで導入完了です。
実際にGSVideoのExampleをコピーして試してみてください。
Exampleはここにあります。
これでProcessingが大体使えるようになったと思います。
簡単にいろいろなことができるので是非ためしてみてください。


さんこうさいとさま
http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?Processing
http://andorelseif.com/Neareal/index.php?Programming%2FProcessing%2FTips%2FEnableJapaneseComment
http://tarsos.0110.be/artikels/lees/PulseAudio_Support_for_Sun_Java_6_on_Ubuntu
https://code.google.com/p/processing/issues/detail?id=930
http://techno-st.net/2009/11/05/processing-video-on-linux-1.html

2013年7月23日火曜日

ubuntu 12.04.2 64bit LTS インストール 備忘録 伍

ubuntu 12.04.2 64bit LTS インストール 備忘録

なんかubuntuを快適に使うためにずっと苦労してるきがする…
ほんまつてんとうなのかなぁ…

では今回もいってみよーっ


  • gimp2.8の導入
無性に最新版をいれたくなるときってあるよね


$sudo add-apt-repository ppa:otto-kesselgulasch/gimp
$sudo apt-get update
$sudo apt-get install gimp gimp-plugin-registry


  • gimpの拡張

Script-FUs Packの導入

http://www.webupd8.org/2012/05/download-gimp-28-script-fus-pack-more.html

~/.gimp-2.8/scriptsに中身を入れる



  • ubuntu-tweakの導入

$sudo add-apt-repository ppa:tualatrix/ppa
$sudo apt-get update 
$sudo apt-get install ubuntu-tweak


  • libreofficeの更新

$sudo add-apt-repository ppa:libreoffice/ppa  
$sudo apt-get update  
$sudo apt-get install libreoffice libreoffice-gnome  

  • Windowサイズの判定の緩和
Windowを変更するのにシビアだからぬぁー


$cd /usr/share/themes/Ambiance/metacity-1
$sudo vim metacity-theme-1.xml

中身~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
<distance name="left_width" value="1"/>
<distance name="right_width" value="1"/>
<distance name="bottom_height" value="1"/>
...
を
...
<distance name="left_width" value="5"/>
<distance name="right_width" value="5"/>
<distance name="bottom_height" value="5"/>
...
に変更
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

vimについていろいろ調べてると時間過ぎちゃう時ってあるよね(๑╹ڡ╹๑)
でもそんなことより重要なことしらべなくちゃ
デュアルディスプレイ時、ショートカットでのディスプレイ跨いでの右半分最大化、左半分最大化とか
Youtubeとかのどーがさいとで最大化した時に画面いっぱいに最大化にならないとか
Windowsにはできる片ディスプレイ最大化のままもう片方のディスプレイで作業可能とか

…うーんwindowまわりのおはなしがおおいな
じょうよわだからしょうがないか><
まだxmodmapの初期設定が効かないとか
他のPCでやったときはできたからぬぁー…もうちょっとくわしくしらべよ


さんこうさいとさま
http://moebuntu.blog48.fc2.com/blog-entry-384.html
http://tjun.org/blog/2012/11/ubuntu_change_windowsize/

2013年7月14日日曜日

ubuntu 12.04.2 64bit LTS インストール 備忘録 肆

ubuntu 12.04.2 64bit LTS インストール 備忘録

なんにちぶりだろうか

  • printerの設定

EPSON PX-402Aのドライバーをインストールしてubuntuにもともと入ってるイージースキャンが起動できるようにする
EpsonのプリンターはLinux用に公式でドライバーを提供している

そのdeb版をインストール
32bit:i386
64bit:amd64
なのでamd64の方をインストール

debは自動インストーラなのでダブルクリックでもterminalからaptでもよい


  • oracle Javaの導入

$sudo add-apt-repository ppa:webupd8team/java
$sudo apt-get update
$sudo apt-get install oracle-java7-installer


  • skypeの導入

http://www.skype.com/ja/download-skype/skype-for-computer/
より公式からディストリビューションを選択してインストール

debパッケージをインストール


  • 動画コーデックの導入

配布に制限のある動画コーデックを導入する

$sudo apt-get install ubntu-restricted-extras

Mediubuntuで提供されているコーデックも入れる

$sudo -E wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list
$sudo apt-get --quiet update
$sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring
$sudo apt-get --quiet update
$sudo apt-get install app-install-data-medibuntu apport-hooks-medibuntu
$sudo apt-get install non-free-codecs
$sudo apt-get install libdvdcss2



参考さいとさま
http://blog.livedoor.jp/hiroumauma/archives/1616377.html
http://bowroll.blog.fc2.com/blog-entry-16.html
http://kledgeb.blogspot.jp/2012/09/ubuntu-2-medibuntu.html


むーん…やっぱり自動起動が効かないなあ…

2013年7月8日月曜日

ubuntu 12.04.2 64bit LTS インストール 備忘録 参

ubuntu 12.04.2 64bit LTS インストール 備忘録
あさからぐだぐだやってたらもうこんなじかん

  • touchpad無効化(再)

dconf-editorの導入
gpointing-device-settingが再起動した後ではtouchpad無効が機能しない
dconf-editorを利用することで持続的に無効に

$sudo apt-get install dconf-tools
$dconf-editor

 org->gnome->settings-daemon->peripherals->touchpad
touchpad-enabledのチェックを外す


  • キーの割り当てが自動で効かなくなった場合

上のタスクバー->歯車の記号のセッティング画面->自動起動するアプリケーション->追加
名前:適当に
コマンド:xmodmap /home/ユーザー名/.Xmodmap


  • wineの導入

そのままapt-get wineとしてしまうと以前のバージョンのwineしか導入されない
ubuntu-wineというppaを導入してバージョン指定すると最新のwineが導入される
現時点での最新版はwine1.6-rc4
$sudo add-apt-repository ppa:ubuntu-wine/ppa
$sudo apt-get update
$sudo apt-get install wine1.6

何度か確認が出てくるが了解を選択していけば問題ない
バージョンを確認して終了
$wine --version


  • dropboxの導入

dropboxというオンラインストレージサービスを導入する
デュアルブートでのwindows 7でもdropboxを導入しているため、今回はディスク上の同一データを参照する
まずwindowsパーティションの属性を変更して書き込み属性を付加する
NTFS設定ツール
$sudo apt-get install ntfs-config

ランチャーからNTFS設定ツールの起動
Enable write support for external device
Enable write support for internak device
の両方にチェックを入れる
ホームディレクトリ直下にWindowsのdropboxディレクトリのシンボリックリンクを作成
dropboxへのリンクからdropboxへ名前変更
ubuntuにdropboxの導入
$sudo apt-get install nautilus-dropbox

順番に進んでいき、dropboxディレクトリを作るのに拡張を選択
先ほど作成したdropboxディレクトリが選択されていることを確認し最後まで
dropboxはインデックスの作成だけで終了する"はず"なので普通よりはやく終わる"はず"
もしdropboxの同期がいつまでたっても終わらなそうならばアカウントの再接続
上のタスクバー->dropboxアイコン->基本設定…->アカウント->このコンピュータのリンクを解除

これでうまくいく…はず…!


参考さいとさま
http://xmodulo.com/2013/01/how-to-disable-touchpad-on-debian-ubuntu-desktop.html
http://poor-user.blogspot.jp/2012/12/ubuntuesc.html
http://htrmine.blog52.fc2.com/blog-entry-34.html
http://tokichie.hatenablog.com/entry/2013/04/19/024144


vimrcやりますです[しろめ]