Canon PowerShot SX50 HSの画素欠けが見つかったので修理に出してみた

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

レンズキャップを付けた状態で液晶を見ると、1箇所、輝点が表示されるのを発見。
この輝点は、必ず表示されるわけではなく特定の条件で表示される。(マニュアルで、露出1秒、ISO1600くらいにすると表示される)
その条件で、撮影した場合の画像にもその場所の画素が欠けていたので、
液晶のドット欠けではないから、ピクセルマッピング(?)の調整をしてくれれば直るだろうと、Canonの修理センターに持ち込んで見た。

そこで言われた事は、うろ覚えだけど

  • レンズキャップを付けた状態で撮影した結果、画素が欠けていても正常な撮影状態(?)では無いため、画素欠けとして判断はしていない。
  • 夜景でもなんでも良いから、レンズキャップを外して、正常な撮影状態(?)で撮影した結果、画素欠けが見つかれば修理を受け付ける。
  • 画素欠けが疑わしい箇所を点検する場合は、保証期間内であっても有料。
  • どうしてもと言うなら、画素欠けとして修理センターに送ってやらなくも無いけど、直る保証はない。

で、保証期間も僅かだったので、直ることを祈って画素欠けとして修理に出してもらった。
2013/10/05に。

で、修理結果が、10/12に送られてきた。(実際は、10/11に不在票が入っていた)

PowerShot-SX50HS_0101

「お預かりの品につきまして、ご指摘の症状を確認いたしました。」
「関連箇所を点検、調整いたしました。※その他、各部点検・清掃をいたしました。」

実際に確認してみたところ、輝点が表示されなくなっていたので、ダメ元で修理に出してよかった。

カテゴリー: その他 | タグ: , , | コメントする

デジカメ(SX50 HS)を入れる用の小さいカバン購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

Amazonにて、\891。

DVWF1-BK_0001DVWF1-BK_0002DVWF1-BK_0003

ギリギリ。
DVWF1-BK_0004

高さもギリギリ。
DVWF1-BK_0005

カテゴリー: その他 | タグ: , , , | コメントする

Canon PowerShot SX50 HS 購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

中古で¥31,800。
Amazonだと¥35,979。

PowerShot-SX50HS_0001PowerShot-SX50HS_0002PowerShot-SX50HS_0003PowerShot-SX50HS_0004PowerShot-SX50HS_0005PowerShot-SX50HS_0006PowerShot-SX50HS_0007PowerShot-SX50HS_0008PowerShot-SX50HS_0009PowerShot-SX50HS_0010

試しに撮影してみてみる。


IMG_1470IMG_1471
なんかザラついている。

リス
IMG_1669IMG_1691IMG_1694IMG_1749

カテゴリー: その他 | タグ: , , , | コメントする

カードリーダ SD/USBポート搭載 GH-CRAD-SUAK購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

Nexus7で、SDカードを読み込みたくて購入。
Amazonにて、\1,762。

GH-CRAD-SUAK_0001GH-CRAD-SUAK_0002GH-CRAD-SUAK_0003GH-CRAD-SUAK_0004GH-CRAD-SUAK_0005

実際にNexus7(旧型)に挿して見た
GH-CRAD-SUAK_0006

Nexus7(旧型)からSDカードを読み込む場合、有料アプリの「Nexus Media Importer」を使うのを想定しているらしい。

Nexus 7 (Nexus Media Importer(Homesoft社)を使用した場合に限る)
(http://www.green-house.co.jp/products/pc/cardreader/multi/gh-crad-sua/ より引用)

無料で出来ないか試した所、root化してれば、USB OTG Helper [root]が使えた。

Nexus7_SS_0001

インストールして、開く。
Nexus7_SS_0003

その後、マウントするだけ。
Nexus7_SS_0004

/storage/UsbOtgDrive にマウントされた。
Nexus7_SS_0005

後は任意のアプリでそのパスを見に行くだけ。
ここでは、Photo Editorを使用してみた。ファイル検索を選択し、任意の画像を選択し、編集。
Nexus7_SS_0013Nexus7_SS_0006Nexus7_SS_0007Nexus7_SS_0008Nexus7_SS_0009Nexus7_SS_0010Nexus7_SS_0011

使い終わったら、アンマウント。
Nexus7_SS_0012

カテゴリー: ソフトウェア, モバイル | タグ: , , | コメントする

インテル PRO/1000 PT デュアルポート サーバ・アダプタ EXPI9402PT 購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

 

Amazon.co.jpにて、¥7,100。(実際に購入したのは2013/07/26)
VMwar ESXiなサーバに挿して、冗長構成にしようと思って購入。デュアルポートである必要は全くなかったけど、なんとなく。

 

EXPI9402PT_0001EXPI9402PT_0002EXPI9402PT_0003

NEC Express5800 S70 に挿して、VMware ESXi4で何の問題もなく認識。
VMware_ESXi_NIC

カテゴリー: サーバ管理, ハードウェア | タグ: , , , , | コメントする

NETGEAR GS108v3 8ポート ギガビットスイッチングハブ GS108-300JPS 購入

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

Amazon.co.jpで、¥3,880。

落雷の影響で、ADSLモデムのLANポートと、WR8700NのWAN側ポートが機能しなくなってしまった。
ADSLモデムはレンタル品だったので、交換してもらった。ADSLのLANポートと、WR8700NのLAN側ポートを接続すれば、インターネットには接続できるので暫くはそれで凌ごうと思ったけど、LANポートが不足してしまうので、8ポートのスイッチを購入。
中古のCiscoのCatalyst 3550-12T(ヤフオクで¥5,000くらい)を買っちゃおうかとも思ったけど、置く場所が無いので、コンパクトなこちらに決定。

NETGEAR-GS108_0001NETGEAR-GS108_0002NETGEAR-GS108_0003NETGEAR-GS108_0004NETGEAR-GS108_0005NETGEAR-GS108_0006NETGEAR-GS108_0007NETGEAR-GS108_0008NETGEAR-GS108_0009NETGEAR-GS108_0010NETGEAR-GS108_0011NETGEAR-GS108_0012

カテゴリー: ハードウェア | タグ: , | コメントする

Twitterの1日分のタイムラインをKindleで読む

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

時間かけて探せば良い感じのが有りそうだけど、すぐには見つからなかったのでperlで書いてみた。

仕様的なもの。

  • 常駐せずに、10分おきくらいにcronで動かす。
  • 1日分のtweetは、$timeline_fileに溜め込む。
  • 1日分の切り替えは、Log::Dispatch::FileRotateに任せる。
    (微妙にずれる場合もあるけど、細かいことは(゚ε゚)キニシナイ!!)
  • $timeline_fileへの出力は、Log::Log4perl の INFOで。
  • kindleへ送信するタイミングは、$timeline_fileのサイズが小さくなったら。
    (FileRotateで切り替わったらファイルサイズが小さくなるので、それ契機)
  • kindleへの送信するデータは、htmlファイル。
  • 送信先は、@kindle.com or @free.kindle.com。
    (自動的に変換して、端末へ配信してくれる)

gettimeline.pl(gettimeline.zip)

#!/usr/bin/perl

use 5.010;
use strict;
use warnings;
use Encode;
use DateTime;
use DateTime::TimeZone;
use DateTime::Format::DateParse;
use Data::Dumper;
use HTML::Entities;
use MIME::Lite;

use Net::Twitter;
use Log::Log4perl qw(:easy);

# Twitter key and token
my $consumer_key = 'xxxxxxxxxxxxxxxxxxxxx';
my $consumer_secret = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy';
my $token = 'nnnnnnnnnn-zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz';
my $token_secret = 'sssssssssssssssssssssssssssssssssssssssssss';

# log
my $logfile = '/home/user/tool/twitter.log';
my $timeline_file = '/home/user/tool/timeline.log';

# mail
my $mailfrom = 'xxxx@xxx.xxx';
my $mailto = 'yyyyy@free.kindle.com';

# title
my $title_fmt = 'Twitter_Timeline_%Y-%m-%d(%a)';


my $tid_prefix = '__TID__:';
my $tz = DateTime::TimeZone->new(name => 'local');

&loginit;

&main;

exit;

sub main{
    my $filesize = -s $timeline_file;

    &gettl;

    if($filesize > -s $timeline_file){
    say 'send to kindle';
    &send2kindle;
    }
}

sub send2kindle{
    my $dt = DateTime->now(time_zone => $tz);
    $dt->subtract(days => 1);
    my $title = $dt->strftime($title_fmt);
    my $fname = $title . '.html';

    my $timeline_file1 = $timeline_file . '.1';
    open my $fh, '<', "$timeline_file1"
    or die "failed to open file: $!";
    my $rawdata = do { local $/; <$fh> };

    my @rawdata_array = grep(!/^$tid_prefix \d+$/, split(/\n/, $rawdata));


    my $htmldata = <<_HEADER_;
<html>
  <head>
    <title>$title</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
<body>
  <h3>$title</h3>
<pre>
_HEADER_

    $htmldata .= Encode::decode_utf8(join("\n", @rawdata_array));

    $htmldata .= <<_FOOTER_;
</pre>
</body>
</html>
_FOOTER_

    my $subject = $title;

    my $msg = MIME::Lite->new(
    From => "$mailfrom",
    To => "$mailto",
    Subject => "$subject",
    Type => 'multipart/mixed'
    );
    $msg->attach(
    Type => 'text/plain; charset="iso-2022-jp"',
    Data => "no body"
    );
    $msg->attach(
    Type => 'text/html',
    Data => "$htmldata",
    Filename => "$fname",
    Disposition => 'attachment'
    );
    $msg->attr('content-type.charset' => 'UTF-8');

#    WARN Dumper($msg);
#    WARN $htmldata;

    $msg->send();

}

sub gettl{
    my $nt = Net::Twitter->new(
    traits => [qw/OAuth API::REST/],
    consumer_key => $consumer_key,
    consumer_secret => $consumer_secret,
    access_token => $token,
    access_token_secret => $token_secret,
    );

#    WARN "TWEET: " . $tweet;

    my @tl = $nt->home_timeline({count => 200});

    my @rtl = reverse(@{$tl[0]});

    my $tail_cmd = "tail -2 $timeline_file";
    my $grep_cmd = "grep -e "$tid_prefix [0-9]\\+"";
    my $sed_cmd = "sed -r "s/[^0-9]+([0-9]+)/\\1/"";
    my $lastid = `$tail_cmd | $grep_cmd | $sed_cmd`;
    chomp $lastid;

    if($lastid){
    for my $i (0 .. $#rtl) {
        if($lastid eq $rtl[$i]->{id}){
#say "0 -> " . $i . " ($#rtl)";
        splice(@rtl, 0, $i+1);
#say "  -> " . $#rtl;
        last;
        }
    }
    }

    my $id = '';
    foreach my $t(@rtl){
    WARN $t->{id};
    $id = $t->{id};
    my $s = &mklinktag($t->{text});
    my $dt = DateTime::Format::DateParse->parse_datetime($t->{created_at});
    $dt->set_time_zone($tz);

    INFO encode_utf8($t->{user}{name}) .
        ' (<a href="https://twitter.com/' . $t->{user}{screen_name} . '">' .
        '@' . $t->{user}{screen_name} . '</a>)' . "\n" .
        encode_utf8($s) . "\n" .
        $dt->strftime('(%Y/%m/%d %H:%M:%S)') . "\n";
#   WARN Dumper($t);
    WARN Dumper($s);
    }
    INFO "$tid_prefix " . $id . "\n" if $id;
}

sub mklinktag{
    my ($s) = @_;

    $s = encode_entities($s, q{&<>"'});

    $s =~ s!(https?://)([0-9a-zA-Z/\.]+)!<a href="
$1$2">$2</a>!go;

    $s =~ s!@([a-zA-Z0-9_]+)!<a href="
https://twitter.com/$1">\@$1</a>!go;

    $s;
}

sub loginit{
  my $logsize = 10*1024*1024;
  Log::Log4perl->init(\ qq{
    log4perl.logger = INFO, AppError, Tweet

    # filter range
    log4perl.filter.MatchRange               = Log::Log4perl::Filter::LevelRange
    log4perl.filter.MatchRange.LevelMin      = WARN
    log4perl.filter.MatchRange.LevelMax      = ERROR
    log4perl.filter.MatchRange.AcceptOnMatch = true

    # Error appender
    log4perl.appender.AppError = Log::Dispatch::FileRotate
    log4perl.appender.AppError.filename   = $logfile
    log4perl.appender.AppError.max   = 10
    log4perl.appender.AppError.autoflush   = 1
    log4perl.appender.AppError.size   = $logsize
    log4perl.appender.AppError.mode = append
    log4perl.appender.AppError.layout   = Log::Log4perl::Layout::PatternLayout
    log4perl.appender.AppError.layout.ConversionPattern = %d %02X{client} %p %F{1} %L: %m %n
    log4perl.appender.AppError.Filter   = MatchRange

    # Filter to match level WARN
    log4perl.filter.MatchInfo  = Log::Log4perl::Filter::LevelMatch
    log4perl.filter.MatchInfo.LevelToMatch  = INFO
    log4perl.filter.MatchInfo.AcceptOnMatch = true

    # Error appender
    log4perl.appender.Tweet = Log::Dispatch::FileRotate
    log4perl.appender.Tweet.filename   = $timeline_file
    log4perl.appender.Tweet.max   = 10
    log4perl.appender.Tweet.autoflush   = 1
    log4perl.appender.Tweet.DatePattern = yyyy-MM-dd
    log4perl.appender.Tweet.TZ = JST
    log4perl.appender.Tweet.mode = append
    log4perl.appender.Tweet.layout   = Log::Log4perl::Layout::PatternLayout
    log4perl.appender.Tweet.layout.ConversionPattern = %m %n
    log4perl.appender.Tweet.Filter   = MatchInfo
 });
}

↑のコードで送信されたファイルのスクリーンショットが↓。

screenshot_2013_05_19T09_28_12 0900

アイコンとかも持って来たほうが見栄えが良いんだろうけど、とりあえずシンプルなこれで使ってみる。

カテゴリー: ソフトウェア, プログラム | タグ: , , , , | コメントする

Log4perlでスレッドIDを出力する

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

Log4perlでスレッドIDを出力する方法が分からなかったのでググったところ、
以下の頁が参考になった。

Log4perl log rotation in threadpool environment
Log::Log4perl::MDC – search.cpan.org

#!/usr/bin/perl

use strict;
use warnings;

use threads;
use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init({level => $INFO, layout => "%d %02X{TID} %p %F{1} %L> %m %n"});

# 標準エラーのバッファリングを止める
use IO::Handle;
STDERR->autoflush;

# メインスレッドを0
Log::Log4perl::MDC->put("TID", '0');


my ($thr1, $thr2, $thr3) = (0) x 3;
$thr1 = threads->create(\&func);
INFO 'threads create: tid='.$thr1->tid();

$thr2 = threads->create(\&func);
INFO 'threads create: tid='.$thr2->tid();

$thr3 = threads->create(\&func);
INFO 'threads create: tid='.$thr3->tid();

$thr1->join();
$thr2->join();
$thr3->join();

sub func{
    Log::Log4perl::MDC->put("TID", threads->tid());

    INFO 'start';

    my $w = int(rand 10);
    INFO 'wait: ' . $w;
    sleep $w;

    INFO 'end';
    Log::Log4perl::MDC->remove();
}

↑のスクリプトを実行した場合、↓のような出力が得られる。

% perl log_threads.pl
2013/05/05 00:20:02 01 INFO log_threads.pl 34> start
2013/05/05 00:20:02 00 INFO log_threads.pl 19> threads create: tid=1
2013/05/05 00:20:02 01 INFO log_threads.pl 37> wait: 6
2013/05/05 00:20:03 00 INFO log_threads.pl 22> threads create: tid=2
2013/05/05 00:20:03 02 INFO log_threads.pl 34> start
2013/05/05 00:20:03 02 INFO log_threads.pl 37> wait: 2
2013/05/05 00:20:03 00 INFO log_threads.pl 25> threads create: tid=3
2013/05/05 00:20:03 03 INFO log_threads.pl 34> start
2013/05/05 00:20:03 03 INFO log_threads.pl 37> wait: 3
2013/05/05 00:20:05 02 INFO log_threads.pl 40> end
2013/05/05 00:20:06 03 INFO log_threads.pl 40> end
2013/05/05 00:20:08 01 INFO log_threads.pl 40> end
カテゴリー: プログラム | タグ: | コメントする

標準SIMをカットしてmicroSIMに・・・失敗

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

・IIJmioの標準SIM(ミニマムスタートプラン契約)
・SC-03E(SIMの形状はmicroSIM)
が手元にあったので、SC-03Eでも使えるか(テザリング等も含めて)試してみたくなった。

標準SIMをmicroSIMにカットするのは問題ないか調べた所、IIJmioさんが以下の発言をされていた。

とカットする事についてはご自由にどうぞと。カットしたSIMの契約を解除するとき、SIMカードの返却は?手数料掛かる?ってのも心配になったけど、IIJmioの公式HPのFAQに

5. SIMカードを返却できなかったらどうなりますか?

SIMカードを返却いただかなかったことによる請求等はありません。

(https://www.iijmio.jp/guide/faq/hdd/faq.jsp より)

とあるので、返却しなくても手数料が掛かるとかは無さそう。

なので、早速、右側の標準SIMを左側のmicroSIMになるようカッターで削って・・・
IMG_3465 IMG_3468

刺さった!電源たちあげて認識も出来た!
IMG_3469IMG_3472
・・・が、どうにもこうにも取り出せなくなってしまった。
おそらく縦を削りすぎて、横は削らなすぎた模様。(SIMカード刺す時、ちょっときつかったし、奥まで押し込んでもカチっと言わなかったし・・・)

ま、いっか。

SPEEDTEST.NETで測定してみた。

Screenshot_2013-03-11-23-06-10Screenshot_2013-03-11-23-07-17Screenshot_2013-03-11-23-08-28

UPLOADの400kbpsは嘘くさいけど、128kbpsは余裕でオーバーしていて良い感じ。

カテゴリー: モバイル | タグ: , | コメントする

IIJmio 高速モバイル/Dプラン契約(ライトスタートプラン)

この記事は2年以上前に書いたものです。
そのため情報が古い可能性があります。ご了承ください。m(_ _)m

ミニマムスタート128プランで使っていて、メール見たりするくらいなら問題はないけど、重めのWebサイトを見ると、イラッとすることがあるので、ライトスタートプランに変更したかった。・・・が、プランを変更するには一度解約して、契約し直さないとダメらしく、面倒だし手数料かかるしで二の足を踏んでいたけど、以下のツイートを見てキャンペーンの内容次第で契約しようかなと考えていた。

 

職場付近のイオンにちょくちょく足を運んでいた所、3/1に「ウェルカムパック+HE-WR01(ワイヤレスルータ)」で¥3,150というキャンペーンをやっていたので、つい購入してしまった。ミニマムスタートプランはまだ解約していないので、現在2回線ある。

iijmio_0001iijmio_0002iijmio_0003iijmio_0004

ワイヤレスルータは売ろうと思ってたけど、売りに行くのが面倒だったので試しに使ってみた。

HE-WR01_0001HE-WR01_0002HE-WR01_0003HE-WR01_0004HE-WR01_0005HE-WR01_0007HE-WR01_0009HE-WR01_0012
かなり分厚いので、iPodTouchに装着して使う気にはなれない。

3G通信モジュール(CTM-600W)の取り外し方の説明が入ってたけど、「※2012年10月現在、弊社で確認できておりますCTM-600W対応製品はございません」と。。
image

電源を入れてHE-WR01へ接続。(パスワード: info+MACアドレスの下6桁を小文字で)
HE-WR01_0017HE-WR01_0018HE-WR01_0019

USIMを刺さずに、ブラウザから接続してみる。(ユーザ:user, パスワード:user)
HE-WR01_0020HE-WR01_0021HE-WR01_0022HE-WR01_0023HE-WR01_0024HE-WR01_0025

ミニマムスタートプランのUSIM挿してから再度アクセス。
HE-WR01_0026HE-WR01_0027HE-WR01_0028HE-WR01_0029

ネットワーク接続設定(ID:mio@iij, パスワード:iij, ServiceNumber: *99***2#)
HE-WR01_0030HE-WR01_0031

PDP(Packet Data Protocol)設定(CID:*99***2#, PDP Type: IP, APN: iijmio.jp)
HE-WR01_0033HE-WR01_0034HE-WR01_0035

再起動
HE-WR01_0036HE-WR01_0037HE-WR01_0038

IPアドレスが取得で来てる事を確認。
HE-WR01_0039HE-WR01_0040HE-WR01_0041

他の設定を眺めてみる。
HE-WR01_0042HE-WR01_0043HE-WR01_0044HE-WR01_0045HE-WR01_0046HE-WR01_0047HE-WR01_0048

SSID Broadcastのチェックを外して、ステルスモードにしておく。設定を反映するには再起動。
HE-WR01_0049HE-WR01_0050HE-WR01_0051HE-WR01_0052

ミニマムスタートプランを解約するまでは使うかも。

カテゴリー: モバイル | タグ: , , , , | コメントする