KIMUKAZU blog

健康とiMacに関する情報
最近は天体観察と公園散策の情報

iMac G4の内蔵DVDドライブ交換(2)

2021-05-30 00:58:56 | デジタル・インターネット
iMac G4[1-2]には、内蔵ディジタルアンプとハーマン・カードン社製[3]のApple Pro Speaker[4]が搭載されており、歴代のiMacの中でも最も音質が良く、現在でも魅力的な製品と考える。
このため、現在でも音楽CDプレーヤ(オフライン)として愛用している。
しかし、老朽化のため内蔵光学ドライブ[5-6]が再び不調になってしまった。
そこで、中古のDVDドライブ[7]を入手し、再度、ドライブ交換を行った[8,11]。

ドライブ交換に必要な工具は、プラスドライバ、トルクスドライバ(T10)[9]である。
また、交換に用いる内蔵DVDドライブのジャンパー設定は、iMac G4の機器の構造上「スレーブ」とする点に注意した[10]。

ドライブ交換の結果、無事、ドライブも正常に認識され、音楽CDプレーヤとしての機能が復活した。
iMac G4は、2002年の製造から20年近く経過しているが、その音質は色褪せしていない。
今後も可能な限り長く愛用していきたい。

参考文献:
(1)iMac-Wikipedia
(2)iMac G4-Wikipedia
(3)ハーマン・カードン-Wikipedia
(4)Apple speakers-Wikipedia
(5)光ディスク-Wikipedia
(6)光学ドライブ-Wikipedia
(7)Advanced Technology Attachment-Wikipedia
(8)iMacG4チューンアップ
(9)トルクス-Wikipedia
(10)iMacG4、光学ドライブ交換について
(11)iMac G4の内蔵DVDドライブ交換-goo blog
(12)iMac G4(大福マック)の分解写真:apple分解
(13)iMac G4 分解 - DVDドライブ交換
(14)iMac Flat Panel分解(マザーボード取り外しまで)
(15)☆iMac G4の開腹☆
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Mac OSX(10.6.8 Snow Leopard)環境でのSDR

2016-04-28 22:47:54 | デジタル・インターネット
 以前のブログ[1]において、ガリレオ衛星の配列のJavaScriptを公開しているホームページ[2]を参照させていただいた。そこでは、天文計算JavaScript以外にも、安価なワンセグチューナ[3-5]とSDR(Software-defined radio)ソフト[6]を用いて広帯域(50~1700MHz)なラジオを受信できることが記載されており、大変興味深く感じた。
 私のPC環境は、Mac OSX(10.6.8 Snow Leopard)なので、その環境においても動作可能なSDRを中心に調べて見た[11-16]。
 ネットで調べてみると、Mac OS環境で利用可能なSDRは、オープンソースのgqrx[7]が標準のようで、Macports[8]から最新版(現時点は2.5.3)がダウンロードできるようである。試しに私のiMac(10.6.8 Snow Leopard)[9]に、Macportsを用いてgqrx2.5.3のインストールを試みたが、残念ながらインストールに失敗してしまった。しかたがないので、Mac OSX 10.6で動作可能なgqrxのバイナリーが無いか調べてみたところ、gqrx2.2がsorceforge[10]から利用可能であることがわかった。そこで、gqrx2.2をiMacにインストールし、SDR受信を試みた。

1.ワイドFMの受信

 最近、AMラジオ放送を、補完的にFM放送に同時送信するワイドFM放送[17]が利用可能となった。通常のFMラジオ受信機の受信帯域では、このワイドFM放送は受信できない場合が多いが、iMac(10.6.8 Snow Leopard)にインストールしたSDR:gqrx2.2で容易に受信できた。
 使用したワンセグチューナは、RTL2832[4]を搭載したDVB-T+DAB+FM[13-15]であり、アンテナは、サガ電子:SUPER ROD-2[2,19]を用いた。また、アンテナの固定には、第一電波工業のユニバーサルクリップベース:MCR-ⅡSMA[20]を用いた。受信時のアンテナ長は、λ/4の約80cmとした[27]。
 次に受信時のgqrx画面を示す。

■TBSラジオ(90.5MHz)


■文化放送(91.6MHz)


■ニッポン放送(93.0MHz)


2.エアバンド(航空無線)の受信
 上記のSDR環境においてエアバンド[23,24]の受信も可能なようなので、試験的にエアバンドの受信を試みた。次に受信時の一例を示す。

■エアバンド:120.49MHz


 今回、試してみて驚いたのは、安価なチューナとSDRソフトを用いれば、非常に容易に広帯域のラジオ受信が可能であることが実体験できた点にある。今後は、このSDR環境を用いて、流星電波観測:HRO(Ham-band Radio Observation)[25,26]などの様々な電波の受信を試みてみたいと思う。

参考文献:

(1)望遠コンデジ:FinePix S4000での木星撮影
(2)真木のホームページ
(3)No.153 「超かんたんSDR(ソフトウエアラジオ)入門」
(4)Realtek RTL2832U
(5)Elonics E4000
(6)ソフトウェア無線-Wikipedia
(7)Gqrx SDR
(8)Macports-gqrx
(9)OS X-Wikipedia
(10)Gqrx software defined radio receiver
(11)MacでSDRするならgqrxがとても簡単
(12)gqrxの新しいバージョン2.2をMac OSXで試してみる
(13)R820T-RTL2832Uドングルが到着したので中身を見てみました
(14)USB型のワイドバンドレシーバー試してみた
(15)DVB-Tワンセグチューナーを追加で買う
(16)SDRをやってみた(小さなチューナーとMacでエアバンド受信)
(17)FM補完中継局-Wikipedia
(18)サガ電子:SUPER ROD-2
(19)サガ電子工業株式会社
(20)第一電波工業株式会社-ハンディ用基台
(21)第一電波工業株式会社-ハンディアンテナ
(22)第一電波工業株式会社
(23)エアバンド-Wikipedia
(24)エアバンドを聞いてみよう
(25)HRO-Wikipedia
(26)流星電波観測国際プロジェクト
(27)電波の波長とアンテナ長の計算
(28)使用状況の詳細(平成27年5月現在)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

法令条文・漢数字の数字変換

2014-12-29 00:13:29 | デジタル・インターネット
 法令条文の条項表記には、漢数字が用いられている。その一例として民法を参考文献[1]に示す。
 しかしながら、法令に用いられている漢数字の表記は、日常ではあまり使用されないので、一般人である私等には少々読みにくい。
 そこで、法令条文の漢数字表記を通常の数字表記に変換するプログラムを検討してみた。
 上記と同様な変換プログラムは、既に多くの例[2-5]が公開されているが、ここでは、perl[6]を用いた簡単なプログラム例を紹介する。
 プログラムの詳細な説明は略すが、Windows環境であれば、フリーのStrawberry Perl[6]をインストールした後、以下に記したperlスクリプト(UTF-8で保存すること)を実行することで法令条文の漢数字・数字変換が可能になる。

--
#!/usr/bin/perl -w
#
# kanji2num_win.pl ... scriptはutf-8で保存
#
# 入力/出力ファイルは、Shift-JISのテキストファイル

use strict;
use warnings;

use utf8;
use Encode;

=pod
my $enc_os = 'cp932';
binmode STDIN, ":encoding($enc_os)";
binmode STDOUT, ":encoding($enc_os)";
binmode STDERR, ":encoding($enc_os)";
=cut

die "usage: perl $0 <inputfile>\n" if (@ARGV !=1);

my $filename = $ARGV[0];
my $filename_new = $filename;
$filename_new =~ s/.txt/_new.txt/;

print "\n*** (kanji2num_win.pl) ***\n";
print "input :$filename\n";
print "output:$filename_new\n";
print "Processing... Wait minuetes.\n";

open (IN, "<", $filename) or die "Error n";
open (OUT,">", $filename_new) or die "Error \n";

while (<IN>) {
my $line;
my $trans;
my $i;
my @lists;

# 1行分を$lineに代入する。
$line = decode('shiftjis', $_);

# 号はタブで字下げする
$line =~ s/^([一二三四五六七八九十])/\t$1/g;

# "章"を変換する
@lists = ();
$trans = "";
$i = "";
push( @lists, ($line=~m/(第?[一二三四五六七八九〇十百千]+章[の]?[一二三四五六七八九〇十]*[の]?[一二三四五六七八九〇十]*)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/第?[一二三四五六七八九〇十百千]+章[の]?[一二三四五六七八九〇十]*[の]?[一二三四五六七八九〇十]*/$trans/;
}

# "条"を変換する
@lists = ();
$trans = "";
$i = "";
push( @lists, ($line=~m/(第?[一二三四五六七八九〇十百千]+条[の]?[一二三四五六七八九〇十]*[の]?[一二三四五六七八九〇十]*)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/第?[一二三四五六七八九〇十百千]+条[の]?[一二三四五六七八九〇十]*[の]?[一二三四五六七八九〇十]*/$trans/;
}

# "項"の見出しを変換
@lists = ();
push( @lists, ($line=~m/(^[一二三四五六七八九〇十百]+)/) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/^[一二三四五六七八九〇十百]+/$trans/;
}

# "項"を変換
@lists = ();
push( @lists, ($line=~m/(第?[一二三四五六七八九〇十百]+項)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/第?[一二三四五六七八九〇十百]+項/$trans/;
}

# "号"の見出しを変換
@lists = ();
push( @lists, ($line=~m/(^\t[一二三四五六七八九〇十百]+)/) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/^\t[一二三四五六七八九〇十百]+/$trans/;
}

# "号"を変換
@lists = ();
push( @lists, ($line=~m/(第?[一二三四五六七八九〇十百]+号)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/第?[一二三四五六七八九〇十百]+号/$trans/;
}

# "年"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十百千]+年)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十百千]+年/$trans/;
}

# "月"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十]+月)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十]+月/$trans/;
}

# "日"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十百千]+日)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十百千]+日/$trans/;
}

# "億、万"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九十百千]+[億万])/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九十百千]+[億万]/$trans/;
}

# "円"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十百千]+円)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十百千]+円/$trans/;
}

# "編"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十百千]+編)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十百千]+編/$trans/;
}

# "節"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十百千]+節)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十百千]+節/$trans/;
}

# "款"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十百千]+款)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十百千]+款/$trans/;
}

# "目"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十百千]+目)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十百千]+目/$trans/;
}

# "歳、才"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十百]+[歳才])/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十百]+[歳才]/$trans/;
}

# "級"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十百千]+級)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十百千]+級/$trans/;
}

# "時、分"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十百千]+[時分])/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十百千]+[時分]/$trans/;
}

# "人"を変換
@lists = ();
push( @lists, ($line=~m/([一二三四五六七八九〇十百千]+人)/g) );
foreach $i (@lists) {
$trans = &func_TransKansuuji( $i );
$line =~ s/[一二三四五六七八九〇十百千]+人/$trans/;
}

# 変換の終わった行をファイルに書き込む
$line = encode('shiftjis', $line);
print OUT $line;
}
close(IN);
close(OUT);
print "Completed.\n";

exit;

####################################
# Sub func_TransKansuuji
# 漢数字を全角算用数字に変換する
# 0-9999まで対応
####################################
sub func_TransKansuuji{

my $val;
$val = $_[0];

# 漢数字を変換する
$val =~ s/一/1/g;
$val =~ s/二/2/g;
$val =~ s/三/3/g;
$val =~ s/四/4/g;
$val =~ s/五/5/g;
$val =~ s/六/6/g;
$val =~ s/七/7/g;
$val =~ s/八/8/g;
$val =~ s/九/9/g;
$val =~ s/〇/0/g;

#
# 十の変換
#

# (十を削除) 2十1、、、9十9
$val =~ s/([23456789])十([123456789])/$1$2/g;

# (十を0に) 2十、3十、、、9十
$val =~ s/([23456789])十/$10/g;

# (十を1に) 十1-十9
$val =~ s/十([123456789])/1$1/g;

# (十を10に) 十
$val =~ s/十/10/g;

#
# 百の変換
#

# (百を削除) 2百10、、、、2百99
$val =~ s/([23456789])百([123456789][1234567890])/$1$2/g;
# (百を0に) 2百1ー2百9、、9百1-9百9
$val =~ s/([23456789])百([123456789])/$10$2/g;

# (百を00に)2百、3百、、、9百
$val =~ s/([23456789])百/$100/g;

# (百を1に) 百10、百11、、、百99
$val =~ s/百([123456789][1234567890])/1$1/g;

# (百を10に) 百1-百9
$val =~ s/百([123456789])/10$1/g;

# (百を100) 百
$val =~ s/百/100/g;

#
# 千の変換
#

# (千を削除)2千100、、9千999
$val =~ s/([23456789])千([123456789][1234567890][1234567890])/$1$2/g;

# (千を0に)2千10ー3千99、、、9千99
$val =~ s/([23456789])千([123456789][1234567890])/$10$2/g;

# (千を00に)2千1ー2千9、、9千1-9千9
$val =~ s/([23456789])千([123456789])/$100$2/g;

# (千を000に)2千、3千、、9千
$val =~ s/([23456789])千/$1000/g;

# (千を1に)千100-千999
$val =~ s/千([123456789][1234567890][1234567890])/1$1/g;

# (千を10に)千10ー千99
$val =~ s/千([123456789][1234567890])/10$1/g;

# (千を100に)千1ー千9
$val =~ s/千([123456789])/100$1/g;

# (千を1000に) 千
$val =~ s/千/1000/g;

return $val;
}
--

参考文献
(1)民法
(2)法令条文の漢数字を算用数字に変換
(3)漢数字をアラビア数字にスマートに変換する
(4)オートメーターを使って文字変換はできないものでしょうか?
(5)漢数字に変換
(6)Strawberry Perl for Windows
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

iMac G5のドライブ交換修理

2014-11-03 21:24:35 | デジタル・インターネット
 iMac G5(CPU:PPC G5 1.8GHz, HDD:80GB, RAM:1.5GB)[1]の内蔵光学ドライブ(Panasonic UJ-825)の調子が悪くなった。具体的には、市販のCDやDVDの情報は読み込むが、CD-R、DVD-Rの情報を認識しなくなってしまった。そこで、内蔵ドライブの交換修理を検討した[2-3]。
 ネットで調べてみると、課題の内蔵光学ドライブ(UJ-825)は、インターフェースがATAPI[8]で、スリム・スロットイン型のドライブであり、交換可能な機種は、Panasonic UJ-875のようである[4-7]。しかしながら、前記のドライブは、製品の入手が困難かつ高価となる課題があった。
 そこで、ネットにおいて詳細に調べてみると、UJ-875の互換の製品には、Panasonic UJ-85Jがあり、こちらは中古の製品ではあるが、Amazon.co.jpにおいて安価に入手できることがわかった。ここでは、交換ドライブにUJ-85Jを用いた交換修理の結果について示す。

1.準備するもの
交換ドライブ:Panasonic UJ-85J:1台、Amazon.co.jpにおいて、中古の製品を購入
工具:+ドライバ:1本、および、トルクスレンチ・T6[9]:1本、トルクスレンチは、光学ドライブモジュールから、光学ドライブを取り外す際に使用。

2.交換手順[3-7]
-17 インチの光学式ドライブ交換手順[3]に従い、内蔵光学ドライブモジュールをiMacより取り外す。
-光学ドライブモジュールから、光学ドライブを取り外すが、ドライブのベゼル部を注意して取り外し、保管しておく。
-トルクスレンチ・T6を用いて、モジュールより光学ドライブを取り外す。
-光学ドライブのインターフェースに取り付けられたコネクタを、同様にトルクスレンチ・T6を用いて取り外す。
-交換用の光学ドライブのインターフェースにコネクタを取り付ける。
-コネクタを取り付けた光学ドライブをモジュールに取り付ける。
-最後にベゼル部をドライブに取り付け、光学ドライブモジュールの組み立てを完了する。
-組み立てた光学ドライブモジュールをiMacの筐体に取り付ける。

上記の交換作業を完了後、iMac G5を起動し、動作が問題ないか確認する。

私の環境では、上記の手順にてiMac G5のドライブ交換を正常に実施することができた。

参考文献:
(1)iMac G5 + G5 iSight
(2)iMac G5 DIY (Do-It-Yourself) に関する説明書
(3)17 インチの光学式ドライブ交換手順
(4)iMacG5のDVDドライブ換装【総合】
(5)Apple iMac G5 (17inch/1.8GHz) スーパードライブ交換
(6)iMac-G5のスーパードライブを交換する
(7)iMac G5 のドライブ交換。
(8)Advanced Technology Attachment-Wikipedia
(9)トルクス-Wikipedia
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Mac OSX環境でのradiko.jpの録音(2)

2014-09-13 23:38:43 | デジタル・インターネット
 Mac OSX環境でのradiko.jpの録音方法は、いくつか公開されている[1]。
 しかしながら、radiko.jpサーバの仕様変更が、2014/9/11に実施されたようで[2]、特にrtmpdump等を使用する参考文献[3]記載の方法では、録音ができなくなった。
 このradiko.jpのサーバー仕様変更は、Windows環境のradiko録音ツール:Radika[4]にも影響があったようで、その対策については、仕様変更の翌日の9/12に情報公開された[5]。
 参考文献[5]に記載の情報を参考文献[3]の手法に適用すれば、MacOSX環境においても同様に問題解決できるはずである。
 具体的には、スクリプト中のrtmpdumpのオプション設定において、
 w-radiko.smartstream.ne.jp → f-radiko.smartstream.ne.jp
と修正するのみでよいようである。
 参考文献[3]のオリジナルの文献[6]では、今回の仕様変更に伴う変更は公開されていないので、すでに対応済みのようである。

参考文献
(1)Mac OSX環境でのradiko.jpの録音
(2)Radikoolの使い方 と Radikaの使い方 (2014/9/20 現在)
(3)とあるサイトの録音手段 (シェルスクリプト)
(4)Radika - ダウンロード
(5)9月12日頃からradikaでの録音が出来なくなった人の対策方法
(6)簡易radiko録音ツール。要swftools
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする