[ふるさと納税]食費を浮かす事を第一に返礼品を選ぶ(69,000円で462食分)

独り暮らしが狙いたいふるさと納税先(返礼品の選び方)


ふるさと納税のおススメを検索すると、果物とかブランド牛、米などが良く紹介されてます。ですが、独り暮らしだと、果物とかブランド牛は日持ちがしないし受け取りが面倒なので、出来れば避けたいところです。

代わりにおススメするのは、麺類です。麺類は1年以上は日持ちするし、大量に送ってくれる自治体があるので、そこそこの味でお腹を満たせれば十分ならねらい目です。

ふるさと納税で使用するサイト


ふるさと納税で使用するサイトですが、下記の2サイトがおススメです


楽天ふるさと納税




1つめのおすすめサイトは、楽天ふるさと納税です。

楽天ふるさと納税」だと、ふるさと納税による返礼品に加えて、楽天ポイントが4%程度獲得できるので、手に入れたい返礼品がサイトに登録されていれば楽天経由が一番お得です。

デメリットは、登録されている納付先の自治体数が少ないことです。ですので「ふるさとチョイス」と組み合わせて、納付先の自治体をきめるのがお勧めです。

ふるさとチョイス




ふるさとチョイスは、ふるさと納税サイトの中で最も納付先の自治体ラインナップが充実しています。

このサイトの検索で納付先を決定した上で、「楽天ふるさと納税」にあればそちらで納税、なければ「ふるさとチョイス」で納税すればよいです。

ふるさと納税の納付先の候補


前述したように、ふるさと納税だけで長期間食つなぐことを優先して麺類メインで選択しています。調べてみたところ、下記が大量の麺類を送ってくれるコスパが高い寄付先でした。

楽天経由で申し込み


まずは、「楽天ふるさと納税」の方でのお勧め返礼品です。

山形県寒河江市: そば80人前



山形県寒河江市
【ふるさと納税】田舎そば 80人前(200g×40束・業務用セット)

10,000円の納税で、なんと8kg(80食分)もの大量のそばを送ってくれます。
さらに、楽天ポイント4%が付くので、400円相当のポイントが付きます。

業務用セットなので商品ラベルなしのそばを段ボールで送って来ますが、200gづつ個包装されているので、自分で食べるのなら関係ないです。

大分県 国東市: ラーメン42人前



大分県 国東市
【ふるさと納税】驚愕の42人前!こだわりの九州7県ラーメン食べくらべ・通

10,000円で42人前のラーメンがゲットできます。そば80人前には負けますが、いろんな味があって飽きなさそうなので、2つ目はこちらを選びました。

ふるさとチョイス経由で申し込み


こちらは、ふるさとチョイスでのおススメ返礼品です。とにかく大量の食料がほしい場合は、”業務用”で検索すると良いです。

茨城県 猿島郡 境町: きしめん 100人前




業務用きしめん100人前
10,000円の納税で、業務用のきしめんを100人前分ゲットできます。
個包装されていないので、冷蔵庫で管理するなど、保管方法を考える必要があります。

茨城県 那珂市: ひやむぎ 100人前




ひやむぎ 100人前
こちらは、寄付金が16,000円と他と異なるので注意が必要です。
個包装されているので、保存はしやすいです。

茨城県 那珂市: ひやむぎ 50人前




AA10 業務用長冷麦【18p】

ひやむぎを100人前もいらない場合はこちらがお勧めです。10,000円以上の寄附でもらえますが、コスパは100人前の方がお得です。
※今回は、100人前の方を選んだので、こちらはパスしました。

兵庫県 南あわじ市: バチ麺 140人前




BM14 御陵糸 バチ麺 14kg(1束350gx40本)

“バチ麺”というのはあまり聞かない名前ですが、そうめんです。そうめんの切れ端の事を”バチ麺”というらしいです。

量は14kgなので、一回100gとして140食分になります。
量は多いですが、29,000円の寄付が必要なのでコスパはあまりよくないです。寄付できる枠が多い人におススメの選択肢です。
※今回は、茨城県 那珂市のひやむぎ100人前を選んだのでこちらはパスしました。

申し込んだ結果


申し込んだばかりで返礼品が届いていないので、届き次第、追記していきます。

[Lolipop]WordPressで記事の更新時に、403エラーが出るときの対処法

LolipopでWordPressを運用していると、プラグインや記事の更新時に、下記の403エラーが出ることがあります。


403 Error
現在、このページへのアクセスは禁止されています。
サイト管理者の方はページの権限設定等が適切かご確認ください。

これは、LolipopのWAF(Web Application Firewall)が誤動作している可能性があります。

WAFが原因でエラーが出たかの確認方法


エラーが出たとき、WordPressのバグなのか、それともLolipopの問題なのか、念のために確認しておきたいですよね。

発生した403 Errorが、本当にLolipopのWAFによるものなのかは、以下の手順で確認できます。

Lolipopの管理画面へログインし、「セキュリティ -> WAF設定」を選択します


問題が発生したドメインの、”ログ参照”をクリックします。


ここで、問題が発生した時刻付近で、以下のようにWAF検知のログが出ていたらWAFが原因です。


対処方法


WAFが原因だった場合は、先ほどの「ログ参照」の横に会った設定変更ボタンを押すと一時的にWAFをOFFにできます。
ボタンを押してからWAFが無効化されるまで、数分かかることもあるようなので、上手くいかなかったらしばらく待ってみて下さい。


WAFをOFFのままにしておくと、サーバのセキュリティレベルは下がるので、必要な操作を行ったら再度ONに戻しておくことをお勧めします。

PeaZipでメニューバーを非表示にしてしまった時の戻し方



ファイルの圧縮・展開を行うフリーソフトにPeaZipというツールがあります。

PeaZipでは、メニューバーの”整理”->”メニューバーの表示”をクリックすると、メニューバー自体を非表示にさせることができます。

これを元に戻すためには、Alt+1(Altキーを押しながら数字の”1″)を押せばよいです。

Asus H97M-PLUSでM.2 SSDを使うときの相性問題情報

Asusから発売されていたマザーボードのH97M-PLUSに、M.2タイプのSSDを乗せるときの情報です。
(SATAのインターフェースに設置する時は、少し遅くなりますが、基本的になんでも繋がるので特に気にしなくてよいです)


M2スロットのスペック


asusのホームページだと下記の仕様のものが適合するとのこと

1 x M.2 Socket 3, with M Key, 
type 2260/2280 storage devices support (both SATA & PCIE mode)

動作に関する報告


オンボードのスロットを使うとき



PLEXTORのPX-G256M6eが動作するとの情報

PCI-Expressの外部ボードを増設する時



Haswell世代のH97でもM.2爆速を!
600pを購入してH97 proで使用した際に公称値より低いリード900MB/sくらいしか出ませんでしたが
本機の変換を使用したら少し公称値より低いですがリード1500MB/s出せました。
Haswell世代のH97等でM.2爆速ストレージを使用したい場合にお勧めします!
投稿者: Moyasi8219

Windows10でリモートデスクトップで、コンピュータ一覧の履歴を削除する

Windows10でリモートデスクトップで、コンピュータ一覧からの履歴を削除する方法です。
レジストリに登録された内容を削除すればよいです。

作業の手順


  • Windowsキーを押しながら”R”のキーを押します。

  • 表示されたウィンドウに、”regedit”を入力します。

  • レジストリエディタが起動されるので、上の欄に下記の内容を張り付けて、エンターキーを押します

    HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default
    

  • 右側の”MRUx”のところに、履歴の一覧が表示されるので、右クリックして削除を選択します。


これで、履歴から削除されるはずです。

O’Reillyの”SRE サイトリライアビリティエンジニアリング”を無料で読む方法

オライリーから出版された、サイトリライアビリティエンジニアという書籍があります。

これは、Googleでのシステム管理とサービス運用に関するノウハウが書かれた書籍で、Googleがサービスの構築導入や管理をどのように行っているかを解説しています。

この書籍の内容は、実はgoogleの下記サイトより無料で読むことができます。

https://landing.google.com/sre/に遷移して、右上にある”Read SRE Book”のリンクをクリックすればよいです。ドキュメントのライセンスは”CC BY-NC-ND 4.0″です。

ただ、残念ながら英語版しかないので日本語で読みたい場合はこちらの方が良いです。

[WordPress]下書きとして保存されたPost IDを、無理やり別の記事として再利用する

WordPressでは、記事の内容を更新したとき、更新前の履歴をwp_postテーブルに保持しています。

更新するたびに、記事のIDが消費されていくのですが、履歴として保存されているPost IDを別の記事用として、無理やり再利用するための更新SQLです。SQLで強制的に記事のステータスを書き換えるのは本来の使い方ではないので、試してみる場合は必ずテスト環境を作ってから実験してください。

-- データベースに保存されたid=1のレコードを、記事(post_type='post')として再利用する、
UPDATE  wp_posts
SET     post_status    = 'draft',
        comment_status = 'open',
        ping_status    = 'open',
        post_name      = '',
        post_parent    = 0,
        guid           = concat( 'http://localhost/?p=', id),
        post_type      = 'post'
WHERE   id             = 1;

iPodでpodcastが自動ダウンロードできなくなったときにすること

iPodを使っていると、PodCastが自動でダウンロードできなくなったり、アプリの自動更新に失敗することがあります(特にOSのアップデートが入った直後に発生しやすいです)。

このような場合、下記の作業を順に行うと、問題が解消される場合があります。

  • AppStoreでログアウトして、ログインしなおす

    • AppStoreのアプリを起動
    • 画面下にある”おすすめ”をタップ
    • 画面を一番下までスクロールして、一番下に表示されているApple IDの欄をタップ
    • サインアウトをタップ
    • 再度AppleIDがあったところをタップして、ログインする
  • WiFiをOffにしてから再度ONにする

    • 設定アイコンをタップ
    • Wi-Fiをタップ
    • Wi-FiをいったんOffにしてからOnにする
  • 端末を再起動する

    • 電源ボタンを長押し

[C#]文字列を大文字/小文字無視して置換する方法 Replace()

C#で文字列を置換する際に、置換元文字列を大文字と小文字を無視してチェックしたい場合があります。

このような場合は、Regex.Replace()メソッドをRegexOptions.IgnoreCaseオプション付きでコールすればよいです。

string inStr = "abc ABC aBc";
string outStr = Regex.Replace(inStr, "abc", "xyz", RegexOptions.IgnoreCase);

Lolipopで既存WordPressサイトを独自SSL(無料)対応する

ロリポップで、無料の独自SSL機能がリリースされました。

今回は、すでに独自ドメインでWordpressを使って運営しているサイトをhttps対応してみます。
説明として、http://example.com/blogでアクセス出来ていたサイトを、https://example.com/blogでアクセスできるようにするための手順を記載します。

現状:
http://example.com/blog
↓
変更後:
https://example.com/blog

今回の記事では、WordPressサイトについて説明していますが、すべきことはWordPressサイト以外でもほぼ同じです。

無料SSLの仕組み


設定画面を見るとわかるのですが、下記の注釈が有ります。ここに書かれている通り、無料SSLサービスはLet’s Encryptの仕組みを利用しているようです。

※ Let's Encryptとその提供元のポリシーを確認・同意の上でご利用ください。
また、Let's Encryptの仕様変更等によって予告なく利用できなくなる場合もあります。
ご了承ください。

LolipopのサイトでSSLの設定を行う


Lolipopの管理画面にアクセスし、メニューから”独自SSL証明書”をクリックします。


“SSL保護されていないドメイン”のタブより、SSL対応を行うサイトにチェックを入れ、”独自SSL(無料)を設定する”をクリックします。


設定中は4-5分程度かかるので、しばらく待ちます。
自動で状態が書き換わらないので、適当にブラウザをリロードさせてみてください。


作業が完了すると、下記のように(保護されています)の表示に切り替わります。


また、”SSLで保護されているドメイン”のタブにも表示されていることを確認します。


この時点でhttps://example.com/blogのアドレスでアクセスすると、http://example.com/blogと同じものが表示されます。httpsでアクセスした場合は、以下のように”保護された通信”の表示がされていることを確認します。


これまで通り、http://example.com/blogでもサイトが更新されていることも確認しておきます。

SSL証明書の内容を確認する


chromeにてhttps側のURLでサイトにアクセスし、DeveloperToolを起動します(キーボードのF12キーを押します)

SecurityタブのView certificateをクリックします。


Let’s Encryptからの証明書が3か月の有効期間で発行されていることを確認します。

証明書の有効期間ですが、期限が短くなったらLolipop側で自動で延長してくれるので、期限が来た時に行うことはありません。

SSL対応したことを検索サイトに通知する


これで、httpsでのサクセスは可能になりましたが、google等の検索サイトに対して、httpsサイトがあることを通知する必要があります。

wordpress設定の変更


WordPressの設定画面を、開きWordPressアドレスと、サイトアドレスがhttpになっていることを確認します。


この値をhttpsに変更します。


設定を変更したら、別のウィンドウを開いて、再度ログイン出来ることを確認します。また、WordPress内の各ページにアクセスし、サイト内のリンクURLがhttpsになっていることを確認します。

canonical設定の確認


現時点では、同じ内容のページがhttpsと、httpの両方のURLで提供されている状態です。2つのURLのうち正式なページURLがどちらなのか検索サイトに伝えるため、canonicalタグというものを指定します。

All in on SEO Packのプラグインを使用している場合は、一般設定のCanonical URLにチェックを入れるだけで完了です。


プラグインを使っていない場合は、以下のような形で手動で出力してあげればよいです。

<?php 
if ( is_home() ) {
    $canonical_url = get_bloginfo('url') . '/';
} else if (is_page()||is_single()) { 
    $canonical_url = get_permalink();
}  else if (is_category()) {
    $canonical_url = get_category_link(get_query_var('cat'));
} 
?>
<link rel="canonical" href="<?php echo $canonical_url;?>" />

設定を行った後に、http://www.example.com/blog/と、https://www.example.com/blog/でアクセスして、両方ともcanonicalがhttpsになっていることを確認します。また、個別ページやカテゴリページなど、いろいろなページに移動してcanonicalがすべてhttpsになっていることに確認します。

sitemap.xmlの確認


通常、wordpressでは、下記のURLでサイトマップを公開していることが多いかと思います。

http://example.com/blog/sitemap.xml

https://example.com/blog/sitemap.xmlにアクセスし、サイトマップのURL一覧がそれぞれhttps://….になっていることを確認します。

以上で、設定は完了です。
しばらく待っていれば、Googleなどの検索結果もhttpsのURLが表示されるようになります。
食べる!SSL! ―HTTPS環境構築から始めるSSL入門

サーモス 水筒 真空断熱2WAYボトルを購入

サーモス 水筒 真空断熱2WAYボトル 0.8L ブラックピンク FFR-801WF BK-P

子供の水筒はずっとプラスチックタイプ(保冷ではない)を使っていたのですが、子供が小学校でお友達が持っているようなもの(サーモス)がいい、と言い出したので購入を検討しました。サーモスだったので保温・保冷に関しては期待していました。特に子供は冷たいお茶が好きだったので、氷を入れて冷たいお茶が冷たいままで続くと喜ぶだろうなと思いました。


購入して一番満足しているのは保冷の性能です。氷とお茶を入れておくと、翌日まで氷が解けずに残っていることもあります!朝持っていっても日中ずっと冷たい状態で飲めるので、冷たいお茶が好きな子供はとても喜んでいます。

また、飲み口も2ウェイタイプなので、そのときの気分でコップ・直飲みと飲み口が変えられるのがとっても便利。何より、子供がデザインを気に入っていることも満足している大きな理由です。やっぱり小学生の女の子はこういう元気キュートなイメージのデザインが好き。特にうちの子供にはストライクだったようで、ものすごく気に入っています。直飲みキャップの押しボタンがキラキラしているのも、女の子心をくすぐるようです。


また、容量がたっぷりなのも嬉しいです!うちの子供はかなりお茶をよく飲むので、正直それまで持っていた500mlだと足りないこともしばしば。でもこちらは800mlとたくさん入るので安心です。親子でお出かけのときもこれにたっぷり入れれば親子で水分補給可能。親である私の飲み物を持つ必要がなく、荷物が減るので嬉しいです。


サーモス 水筒 真空断熱2WAYボトル 0.8L ブラックピンク FFR-801WF BK-P

iTuneでflacが取り込めない時、インストール不要でmp3に変換できる簡単ツール[fre:ac]

iTuneで音楽を管理している場合、手元にあるファイルがflac形式だと、iTuneがflacファイルを直接取り込めず困ってしまいます。

このような場合にはfre:acというフリーソフトを使用すると便利です。
fre:acは、flacからmp3に簡単に変換でき、インストール不要なPortable版も提供されているWindows向けのフリーソフトです。

fre:acのPortable版をダウンロード


portableapps.comというサイトからダウンロードします。
fre:ac Portableのダウンロードページに行き、”Download fre:ac Portable”のリンクをクリックします。


クリックするとダウンロードページに遷移します。
5秒ほど待つとダウンロードが始まります。


ダウンロードが終わるのを待ちます。


fre:acをインストール


ダウンロードしたfreacPortable_xxx.paf.exeをダブルクリックして、実行します。


日本語選択してOKをクリックします。


次へをクリックします


展開先フォルダを選択し、インストールボタンをクリックします。ここで”インストール先を選んでください”と表示されていますが、Portable版なので圧縮されたファイルを展開するだけです。


インストールが終わったら完了ボタンをクリックします。


fre:acの起動~メニューを日本語に変更


インストール先にある、freacPortable.exeを実行します。インストール先を変更していない場合、デスクトップに展開されるかと思います。


こちらがメインの画面です。メニューが英語になっているので、まずは日本語に変更します。


OptionsのGeneral settingsを選択します。


Languageタブに言語設定があるので、Japaneseに変更します。


flacファイルをmp3に変換する


メイン画面の赤枠で囲まれたエリアにflacファイルをドラッグ&ドロップしてください。fre:ac側でファイルが正しく認識されれば、flacファイルの名前が表示されます。


エンコード -> エンコード開始を選択すれば、mp3への変換が始まります。


進捗が100%になったら変換は終わりです。
変換したファイルは、その下に記載されている出力先のフォルダに作成されます。


ファイル名を変更したくない場合


デフォルトの設定だと、変換する時に元のファイル名が変換されてしまいます。
flac->mp3のフォーマット変換だけ行い、ファイル名を変えたくない場合は、下記の設定を行います。

オプション -> 一般設定を選択します。

エンコーダーのファイル名パターンが「artist – title」になっているので、「filename」に変更すれば、mp3に変換しても元のファイル名が維持されます。

<artist> - <title>
↓
<filename>



初めてでもわかる超初心者のためのiTunes入門

オカムラ: バロンチェアの背もたれワイヤーが壊れたので交換した

オカムラが販売しているOAチェアのバロンを使用しているのですが、背もたれのワイヤーが壊れてしまい、リクライニングできなくなったので修理してみました。

修理の方法


オカムラ製品の修理は、訪問での修理と、パーツの取り寄せが有ります。
修理を担当しているのはオカムラ サポートアンドサービスという会社が担当しているようです。

出張修理だと、出張代が9,000円程度かかるらしいので、今回はパーツの取り寄せで対応してみました。

パーツの注文


下記のサポートページから、修理部品の注文FAXシートが手に入ります。

サポートのページ http://osas.okamura.co.jp/support/repair.html
注文シートのPDF http://osas.okamura.co.jp/support/pdf/after_touhoku.pdf

ダウンロードしたPDFを印刷して、必要事項を書き込みFAXで送付すればよいです。

…とは言っても、注文したいパーツの品番も分からなければ、部品代も全く分からないので、注文シートを書くこと自体ができないかと思います。下記のお問い合わせフォームから部品を注文したい旨を書いて送ると、品番や価格を教えてもらえました。
https://www.okamura.co.jp/okamura/cgi-bin/inquiry/form.cgi?div=S1

FAXで注文票を送ると、納期や正式な見積価格が”FAXで”返信されてきました。再度、正式注文のFAXを送り返すと、注文は終わりです。費用は代引きのみ対応っぽいです。

ちなみに、今回注文した商品は以下の通りで、消費税込みで3024円でした。

A13538X バロンチェア用リクライニングレバー セット 2000円
送料+代引き手数料 800円

デキる人は頼み方がうまい

商品の交換


1週間ほどして、注文した部品が届きました。


中身はこのような感じです(画像をクリックで拡大します)。


商品です。問い合わせたときの情報によるとワイヤーだけ購入することはできず、ワイヤーとレバーのセットで1つの部品とのことでした。


まず、壊れてしまったレバーを外します。
赤枠の部分がツメになっていて止まっているので押しながら外します。
裏面側にもツメがあるのですが両方同時に押すのはかなり難しく、少し傾けながら片方づつ順に押すと外しやすいです。


本体から無事外れた状態です。
結構固いですが、うまく片方づつツメを外していけば、道具を使わずに一人でも作業可能でした。
(外せるか不安な場合は、部品の注文前に予め、試してみても良いかもしれません)


壊れた部品を取り出すとこんな状態でした。
本体側ワイヤーの被覆が取れてしまい、レバーを引いても意味がない状態になってました。


付けるのは簡単で、外すときの反対の作業をすればよいだけです。

家具を修理する本

書籍「サーバーレスシングルページアプリケーション」をWindows環境で実行する(sspaコマンド)

オライリーから出版されている書籍、サーバーレスシングルページアプリケーションでは、単体テストやサーバへのアクセスなどをsspaというコマンド経由で操作するように説明されています。

sspaコマンドな本書専用のコマンドですが、シンプルな内容で見れば何を行っているか直ぐに理解できるような内容です。ですが、基本的にLinuxやMacOS環境などbashが動く環境で実行するように説明が行われています。

今回は、サーバーレスシングルページアプリケーションの書籍の内容をWindows環境で動作させたのでその時の手順をメモしておきます。Windows10 Professionalが入ったPCで動作確認を行っています。



bashが動く環境の構築


Windows10の場合、2016年にリリースされたAnniversary Update以降、”Bash on Ubuntu on Windows”というbash環境(Linuxサブシステム)が提供されているので、これをインストールします。

※手順は簡単で、ネットにも沢山の情報があるので省略します。

Pythonのインストール


sspaコマンドの内部でpythonを使用しているため、pyhonが動く環境をインストールします。

Windowsでのpython実行環境はAnacondaというものが有名です。これは、python本体であるpython.exeに加えて、よく利用されているライブラリが一緒に同梱されたパッケージ(ディストリビューション)です。機械学習のライブラリで有名なTensorFlowなどでもAnacondaを使った場合のセットアップが掲載されているくらい、有名な物なので、これを入れておけば安心です。

下記のサイトからダウンロードしてインストールします。
https://www.continuum.io/downloads

手元の環境は、下記のバージョンが入っていますが、Python3.x系の最新のものを入れておけば良いです。

> python --version
Python 3.5.2 :: Anaconda 4.2.0 (64-bit)

gitのインストール


本書に沿って実習するのに、gitは必須ではありませんが、使用したことがなければgit for Windows(https://git-for-windows.github.io/)を入れておくと良いです。

gitを使いたくない場合、p11のgit cloneコマンドで”benrady/learnjs”をフォークする部分は、下記の流れでファイルを取得できます。

・下記のページにアクセスする
https://github.com/benrady/learnjs

・Clone or downloadボタンから”download ZIP”をクリックし、取得したzipファイルを展開すれば良いです。


sspaコマンドの実行


ここまで準備したら、Windowsのコマンドプロンプトからsspaコマンドを実行可能です。

sspaコマンドがあるフォルダに移動して、下記のコマンドを順に打てば、sspaコマンドのヘルプが表示されます。

bash
./sspa

“./sspa server”コマンドを実行すると、ファイアーウォールの警告ダイアログが出るかもしれませんが、”アクセスを許可する”をクリックすれば良いです。


その後自動でブラウザが開き、http://localhost:9292/のアドレスでIt worksが表示されればOKです。


P16のAWS CLIをセットアップ


P16では、下記のコマンドを実行するよう指示されます

$ sudo easy_install pip 
$ sudo pip install awscli

Windows10 + anaconda環境だと、下記の作業で対応できます。

  1. コマンドプロンプトを、管理者として実行(bash環境でなくて良い)
  2. 下記のコマンドを入力

> pip install awscli

その後の’aws configure’を実行するところでは、コマンドプロンプトから下記のコマンドを入力します。
(bash環境だとエラーが出ます)

> "C:\Program Files\Anaconda3\Scripts\aws" configure

作成したcredentialsファイルは下記の場所に作成されます。

C:\Users\%USERNAME%\.aws\credentials





サーバーレスシングルページアプリケーション

[Python]PHPのimplode, explodeに相当する関数

PythonでPHPのimplodeやexplodeに相当する処理を行う方法です。

それぞれjoinと、split関数を使用することで同等の処理が行えます。

implode相当の処理

s = ['a', 'b', 'c']
out_data =  ' '.join(s)

print( out_data )     # 'a b c'

explode相当の処理

s = "a,b,c"
out_data = s.split(',')

print( out_data )     # ['a', 'b', 'c']

vagrant up実行で,SYSTEM_SERVICE_EXCEPTIONでブルースクリーンになる時

Vagrantを使用しているときvagrant upコマンドを実行するとにWindowsがSYSTEM_SERVICE_EXCEPTIONブルースクリーンになる場合があります。このときの可能性の一つとして、Hyper-Vとの設定が競合している(Hyper-Vが有効化されている)可能性があります。

Hyper-V機能の無効化方法


Hyper-V機能は、以下の手順で無効化できます。

  • コントロールパネルから、”プログラムと機能”を選択します。
  • メニューの”Hyper-V”にチェックが入っていたら、チェックを外します。
  • PCを再起動します。
  • Hyper-V機能が問題だった場合、再度vagrant upコマンドを実行すれば、正しく起動してくれます。

次回起動時にVagrant corrupted index… エラーが出る時の対処


ブルースクリーンで異常終了した場合、次回vagrant upした時に下記のエラーが出る場合があります。

The machine index which stores all required information about
running Vagrant environments has become corrupt. This is usually
caused by external tampering of the Vagrant data folder.

Vagrant cannot manage any Vagrant environments if the index is
corrupt. Please attempt to manually correct it. If you are unable
to manually correct it, then remove the data file at the path below.
This will leave all existing Vagrant environments "orphaned" and
they'll have to be destroyed manually.

Path: C:/Users/xxx/.vagrant.d/data/machine-index/index

これは、前回起動に失敗したときに、ロックファイルが残っているためです。

PCの再起動直後など、vagrantが起動していないことが明らかな場合は、指定されたフォルダ(C:/Users/xxx/.vagrant.d/data/machine-index/index)の下にある、indexとindex.lockファイルを削除してから、再度vagrant upすればOKです。

[cmder]右クリックメニューに”Cmder Here”を追加する方法

Windowで使用できる便利なコマンドラインツールであるcmderがあります。
cmd.exeだとShift+右クリックで、”コマンドラインをここで開く”メニューが出るのですが、Cmderで同様に右クリックメニューにCmder Hereを追加する方法を説明します。

Cmderで右クリックメニューに”Cmder Here”を追加する


コマンドラインを、管理者モードで起動します。

cmder.exeがあるフォルダに移動します。

下記のコマンドで登録します。

.\cmder.exe /REGISTER ALL

コマンドを実行しても、以下のように何も出力されませんが…


右クリックメニューには、たしかにCmder Hereが追加されています。


元に戻したい場合は、下記のコマンドで削除可能です。

.\cmder.exe /UNREGISTER ALL

[PHP]Laravelからtwitter bootstrapを使う方法

PHPからbootstrapを使用する場合、bootstrapのサイトからcss/jsをダウンロードしなくても、composer経由でダウンロードすることが可能です。
bootstrapはベンダー名がtwbsで管理されているので、具体的には以下のコマンドでダウンロード可能です。

composer require twbs/bootstrap

この場合、ダウンロードされたファイルはvendorの下に入るので、DocumentRootから見えない場所に設置されてしまいます。Laravelフレームワークを使用している場合、artisan asset:publishコマンドを使用することで、Webサーバから見える場所に設置することが可能です。

php artisan asset:publish --path="vendor/twitter/bootstrap/bootstrap/css" bootstrap/css
php artisan asset:publish --path="vendor/twitter/bootstrap/bootstrap/js" bootstrap/js

[PHP7.1]タイプヒンティングで関数の戻り値にvoidを指定したときのふるまい

PHP7.1では、タイプヒンティングで関数の戻り値で値を返さないことを明示するために、voidの指定が可能です。
voidを指定したときに、正しく実行できるコード、エラーが出るコードを確認してみました。

下記はOKパターンです。

<?php

// OK: return文に戻り値を指定しないコードは正しく実行できる
function foo_ok2() : void
{
    return;
}


// OK: return文自体を書かなくてもよい
function foo_ok1() : void
{
    // do nothing.
}

一方、下記コードはNGです。

// NG: "void"のタイプヒンティングでは、空文字列を返せない
function foo_ng($option) : void
{
    return "";
}

// NG: "void"のタイプヒンティングでは、nullを返せない
function foo_ng2($option) : void
{
    return null;
}

NGパターンのコードを書いた場合、実行時に下記のエラーが出力されます。

PHP Fatal error:  
 A void function must not return a value

PHP Fatal error: 
 A void function must not return a value 
 (did you mean "return;" instead of "return null;"?)

[PHP]関数の戻り値にnull値の許容をタイプヒンティングさせる方法

PHP7では、関数の戻り値の方を制限するためのタイプヒンティング機能が追加されました。
PHP7.1では、このタイプヒンティングに対して、さらに”指定された型、もしくは、null”が返されること強制する、null許容型のタイプヒンティング機能が追加されました。

例えばstring or nullのreturnを強制したい場合、下記サンプルコードのように”?string”先頭へ”?”を付ければOKです。

<?php
function foo($option) : ?string
{
    if ($option == 1) {
        return "hello";
    }
    return null;
}

echo foo(1);
echo foo(0);