2012年12月26日水曜日

WordPressの検索を表示させない

yu1rowです。

タイトルのとおりです。タダのメモです。

WordPress 3.4jaのTwenty Elevenでのみ確認しています。
で、「検索」って何かって?

↓これです。これを消したいだけです。

google先生に尋ねてみると、function.phpをいぢれだとか書いてました。

でも、なんとなくイヤです。
外観に因る部分はcssで済ましちゃいたいプログラマさん。

結局style.cssに一行追加するだけでした。

■Twenty Eleven: スタイルシート (style.css)
#branding .only-search #searchform {
    visibility: hidden; /* 追記:サーチバーを表示しない */
    top: 5px;
    z-index: 1;
}

これだけです。以上!

ドメイン取得後に届いた「Domain Purchase」っていう迷惑メール

こんにちは。yu1rowです。

ドメインをとったら、ちょっとしてから「Domain Purchase」とする迷惑メールが届きまんた。
日本語で情報が見つからなかったので調べた結果を載せときます。

※以下メールの内容。ちょっと書き換えてあります。(http→ttp、****.***→取得したドメイン、***@***.***→whoisに登録されているメールアドレス)
※以下の本文に書いてあるURLのサイトはマルウェアが仕込まれている可能性がある。踏んじゃダメ。絶対。
[From]
Domain Purchase (domainpurchase@domainpurchase.co)

[Subject]
Purchase of ****.***

[Body]
Congratulations on your purchase of ****.***. 

Your domain's value has been estimated on our domain appraisal service. 
You can read your custom report here: 
ttp://domainestimator.com/results/?domain=****.***. (Domain Estimator Report)

There is a large portfolio of domains related to your keywords. 
The current list of premium domains can be viewed here: 
ttp://domainclosing.com/?phrase=****.*** (Related Premium Domains)
 
Cordially, 

Stefanie Shay

If you would prefer not to receive email notifications of your estimated values in the future, 
you need to visit: ttp://unsubscribe.domainingalerts.com/?email=***@***.***


で、誰やねんステファニーって。 フルハウスなら知ってる。
差出人アドレスのTLD、"co"は別に珍しいものではないです。どうせ機械送信なんやしどうでもいいです。
まぁ確かにね、ドメインは買いました。 今回はWhoisを代行してもらうのを忘れてて、自分のメアドとか載せてたら来たんやと思います。

で、これらのURLは大丈夫なんかい?って思ってCleanMXで調べてみたところ、メールに記載されていた2つのドメインのURLはマルウェアを踏む可能性がある模様。クリックしちゃダメ。
どんなマルウェアかは詳しく調べてないけど、トロイです。

↓はCleanMXでメールに書いてあったドメインを検索した結果。クリックしても大丈夫
http://support.clean-mx.de/clean-mx/viruses.php?domain=domainestimator.com
http://support.clean-mx.de/clean-mx/viruses.php?domain=domainclosing.com

メール送って欲しくない方はコチラとばかりに、"not to receive email notifications"に続けてURLが書いてありました。
こっちはマルウェアの検出はなかったけどきっとただの生存確認だと思います。何にせよクリックしないほうがいい。
ドメイン取ってWhoisに自分の情報載っけてる人、気をつけて下さいね。

以上です。

2012年11月19日月曜日

続・Jenkins のビルドで SVN のチェックアウトに失敗する

またSVNでエラー


yu1rowです。

以前「Jenkins のビルドで SVN のチェックアウトに失敗する」という記事を投稿しましたが、現象が再現しましたので、その内容と解消方法について記録します。

Microsoft と ESET どっちが悪いの?


結論から言うと以下の状況で現象が発生する可能性があります。
  • Windows 7 に「ESET Smart Security」や「ESET NOD32 Antivirus」がインストールされている
  • Microsoft の更新プログラム「KB2735855」や「KB2750841」がインストールされている

現象には以下のようなものがあります
  • SVN(Subversion)のチェックアウトに失敗する
  • ニコニコ動画やYoutube再生中に緑画面になる

以前同じ現象が発生した時に原因となった更新プログラム(KB2735855)でいくつかのファイルが Windows にインストールされましたが、今回の更新プログラム(KB2750841)でも同じファイルが更新されています。
[KB2750841]
[ダウンロード:Windows7(x86)]
[ダウンロード:Windows7(x64)]

解決方法には Windows の更新プログラム (KB2750841) をアンインストールする方法と、ESET のセキュリティソフトウェアの設定を変更する方法の2通りありますが、個人的には後者はセキュリティ上やらないほうがいいんじゃないかと思います。参考程度に留めておいて下さい。
以下それぞれの解決(設定)方法について説明します。

解決方法1:Windows の更新プログラムをアンインストールする


  1. [コントロール パネル\すべてのコントロール パネル項目\プログラムと機能] を開く
  2. [インストールされた更新プログラム] を選択
  3. [Microsoft Windows (KB2750841) の更新プログラム] を探し、アンインストール
  4. Windows を再起動
  5. [コントロール パネル\すべてのコントロール パネル項目\Windows Update]を開く
  6. [n 個の重要な更新プログラムが利用可能です] のリンクをクリック
    ※リンクがなければ [更新プログラムの確認] を行う
  7. [Windows 7 用更新プログラム (KB2750841)] を右クリックして [更新プログラムの非表示] を選択

解決方法2:ESET 製セキュリティソフトウェアの設定を変更する


何度も言いますが、以下の方法ではセキュリティのレベルが落ちてしまうためお勧めしません。
参考程度に留めておいて下さい。
  1. 「ESET Smart Security」または「ESET NOD32 Antivirus」の詳細設定を開く
    ※写真は「NOD32 Antivirus」のもの

  2. 詳細設定の「Webアクセス保護」で「HTTPのチェックを有効にする」のチェックをはずす

以上です。

2012年9月25日火曜日

Jenkins のビルドで SVN のチェックアウトに失敗する

Jenkins スレーブが悪い子


yu1rowです。
Jenkins のスレーブで最近以下のようなエラーが出てビルドできなくなってました(※ちょっと編集してます)。
ERROR: Failed to check out http://192.168.1.1/svn/moduleX/trunk
org.tmatesoft.svn.core.SVNException: svn: E175002: REPORT /svn/moduleX/!svn/vcc/default failed
SVNサーバーのログ(apache error log)ではこんな感じ(※ちょっと編集してます)。
[error] [client 192.168.1.2] Provider encountered an error while streaming a REPORT response.  [500, #0]
[error] [client 192.168.1.2] A failure occurred while driving the update report editor  [500, #103]
[error] [client 192.168.1.2] Error writing base64 data: Software caused connection abort  [500, #103]

Windows Server 2008 R2 では大丈夫で、何でかなー?って思いながら調べてまして。
一応解決しましたのでここに解決法を記します。

原因:HotFix でした


SVN のフォーラムにて Windows Update したら SVN の Checkout/Commit ができなくなったヨ!って言ってる人がいました。
[Windows 7 Update KB2735855 Causing Checkout/Commit Problems (Chunk Delimiter)]

以下KBの情報です。
[KB2735855]
[ダウンロード(日本語)]

このKBはセキュリティパッチではないので、アンインストールして無効にしておくことで Windows 7 での現象が解決しました。
※日本語ページに「Windows 7 for x64-Based Systems 用更新プログラム」って書いてますけど、x86 にも適用されます。っていうか今回 x86 の Windows 7 で発生しましたし。

対処方法


  1. [コントロール パネル\すべてのコントロール パネル項目\プログラムと機能] を開く
  2. [インストールされた更新プログラム] を選択
  3. [Microsoft Windows (KB2735855) の更新プログラム] を探し、アンインストール
  4. Windows を再起動
  5. [コントロール パネル\すべてのコントロール パネル項目\Windows Update]を開く
  6. [n 個の重要な更新プログラムが利用可能です] のリンクをクリック
    ※リンクがなければ [更新プログラムの確認] を行う
  7. [Windows 7 用更新プログラム (KB2735855)] を右クリックして [更新プログラムの非表示] を選択
余談ですが、このKBでニコニコ動画やYoutubeで緑色の画面になってしまう原因の一つもコレだそうです。
多分この対処方法を行うとこれも直ります。


以上です。

2012年9月1日土曜日

犬を飼うと家計が浮く!?

落ちていくんです


どうも。イチ、プログラマのyu1rowです。
最近黒い柴犬を飼いました。まだ4ヶ月の女の子、「ぐり」っていう名前です。

予防接種も終わって、ようやく外に一緒に散歩行けるようになってうれしい限りなんですが、予想外に自分の体重がガンガン落ちていくんです。
体重が落ちると食費も落ちてエンゲル係数的になんか良いんじゃね?ってことで強引にまとめてみました。

アタクシは1日どれくらいカロリーが必要なの?


成人が1日に必要とするカロリー量は

体重(kg)×25~30(kcal)

だそうです。

ぐりと散歩に行くようになっていきなり 5kg 落ちまして。
そうすると、1日に必要なカロリー量は 125~150 (kcal) 減ったことになります。

5kg ってナンボなん?


経済の分野でたまに話題に出るビッグマック指数、これから強引に倣ってみます。
ググってみると
ビッグマックのカロリー量556 (kcal)
ビッグマックの金額320 (円)
だそうです。
じゃあ125~150 (kcal)ってビッグマック的にはナンボなん?

125 (kcal) / 556 (kcal) × 320 (円) ≒ 72 (円)
150 (kcal) / 556 (kcal) × 320 (円) ≒ 86 (円)

ということで、ビッグマック換算で1日あたり、72~86円節約できることになります。
年間にして、26280~31390円節約。

これは大きいです!大きいように感じます!

この試算の前提には虚構が含まれますw


まぁ計算しましたけど、前提の「家計が浮く」って件、ホントはぐりちゃんがやってきてから色々と購入したりとか、別に節約にはなっていません。すんませんw
まあ試算って夢がありますよね。
あとウェイトコントロールはきっと健康にもつながりますしね!

以上です。

P.S. きょうは階段をのぼったりおりたりできました。

2012年7月20日金曜日

こんなん作りたいシリーズ - Incrementalist

ゲーム:Incrementalist


こんにちは。イチ、プログラマのyu1rowです。

↓こんなん作りたいってのをまずはjQueryとかで実装。たぶんスマホでも動きます。
[Incrementalist(仮)]
※ルール:全部のパネルを3にしたらクリア、それだけです

Androidで実装してみたいなぁ。
...今日はそれだけの記事です。

2012年7月7日土曜日

JNIと汎用テキストマッピング

Corresponding of Generic-Text Mappings for JNI programming


こんにちは。イチ、プログラマのyu1rowです。

Javaで業務アプリなんかを作っていると、どうしてもネイティブの機能を使う必要が出てくるケースがあります。
そんなときにJNIが役に立つんですが、Windowsネイティブでの実装をする場合は文字列の変換が必要になる場合があります。
※Unicode/マルチバイトコード両対応にする必要性とか、説明が長くなるんで詳しくはグーグルにお任せするとします。

汎用文字列を使用してUnicode/マルチバイトコード両対応にしようとして変換のコードを毎回書くのが面倒なので備忘録としてソースコードを作ってみた&公開して凹ってもらおうってのが今回の趣旨です。

Source code


公開するコードは以下の2つです。両方使います。
ヘッダファイル(jniutil.h)
C++ソースコード(jniutil.cpp)

注意事項


  • プリコンパイル済みヘッダーを使用する場合、jniutil.cppでstdafx.hをインクルードするか、またはjniutil.hからはプロトタイプ宣言だけ残してinclude/define/typedefの記述をstdafx.hに移動してしまってください。
  • jniutil.hではjni.hをインクルードしていますが、VisualStudioの設定などで、Javaのインストール先にあるインクルードファイルのフォルダパスを参照するようにしておいてください。
    よくわからないという方は、詳しいWEBページが沢山あるので続きはその他WEBで。
  • STLを使用していますので、STLがNGな現場では当然NGとなりますのでご注意ください。
    MFC使いたいよーって人は...読み替えて勝手に改造しちゃってください。

使用方法


[tcout] Hello Worldとか
#include "jniutil.h"

void _tmain()
{
    tcout << _T("Hello World.") << std::endl;
}
ミソは"tcout"("tcin"ってのもtypedefしてある)。
jniutil.hのdefineを読めば何しているかわかると思います。

[tstring] findとか
#include "jniutil.h"

void _tmain()
{
    std::setlocale(LC_ALL, "");

    tstring text = _T("我輩は猫である");
    tcout << _T("\"") << text << _T("\"");
    if (text.find(_T("猫")) != tstring::npos)
    {
        tcout << _T("には猫が出てくる") << std::endl;
    }
    else
    {
        tcout << _T("には猫が出てこない") << std::endl;
    }
}
setlocaleしとかないとコンソールに正しく日本語が出力されない...場合があります。
std::basic_stringのテンプレート引数に_TCHARを与えて一般化したものをtypedefしてtstringとしています。
それだけなんですけど、とっても便利だと思いますし、JNIとか関係なく使えるんで他で使っても損は無いと思います。

実はここまではJNIとは関係ありません。関係あるのは以下の例です。

[JstringToTstring, TstringToJstring] : C++のコード例
#include "com_yu1row_blog_JniSample.h"
#include "jniutil.h"

JNIEXPORT jstring JNICALL Java_com_yu1row_blog_JniSample_ExecSample
(JNIEnv *env, jobject obj, jstring str)
{
    tstring tstr = JstringToTstring(env, str);
    tstr += tstr;
    return TstringToJstring(env, tstr);
}
JstringToTstringでJavaから渡されたjstringをtstringに、TstringToJstringで逆にtstringからjstringに変換できます。
[JNI] : 上記を使用するJavaの実装例
package com.yu1row.blog;

public class JniSample {
    static {
        System.loadLibrary("JniSample");
    }
    public native String ExecSample(String str);

    public static void main(String[] args) {
        JniSample sample = new JniSample();
        System.out.println(sample.ExecSample("あいうえお"));
    }
}

注意とお願い


今回公開したコードはバグがあるかもしれません。
バグのせいで何か迷惑を被ったと言われても責任は取れませんが、当エントリにて指摘いただければ(気が向けば)修正しますので気付いた点などあればどんどん凹って下さい。