1. 無料アクセス解析

プログラミングに没頭しているあるIT技術者の日々

プログラミングに関する技術やコードについて、日々思ったことを書いていくブログです。

人生の転換期がまた来たかも

20歳前後に一度ある人に会ったのが原因で転換期が有ったんですが、今またある人に会ったのが原因で転換期が来たかなと思ってます。

では、どういう人に会ったらそこが転換期になるのかですが

「自分の持っていないモノを"沢山"(ココ重要)持っている人に出会った時」

ではないかと思います。

まあ、転換期が来たかもと書いてますが、実際には5年10年先になって今を振り返った時に「やっぱり、あの時(今現在)が人生の転換期だったんだな」と思えるようにしたいです。というか"します"。

ということで今、"非常に"気分が良いです。

よっしゃ〜、頑張っていくぞ〜!

その他 | コメント:0 | トラックバック:0 |

メルマガ・「自分時間」のための段取力

コレ

上記のメルマガをたった今見つけたので早速登録しておきました。

ご興味のある方は是非どうでしょうか。

私は今週末にでも読んでみます。

ビジネス | コメント:0 | トラックバック:0 |

ADSL→光ファイバーにスムーズに切り替える方法

3日前の日曜日に私の自宅が光ファイバーになって、その時に"スムーズ"に切り替える事が出来たので、そのやり方です。光ファイバーはNTTのBフレッツです。プロバイダーは超マイナーなので申し訳ありませんが、恥ずかしくて教えられません(笑)

前提条件
1.プロバイダー自体とプロバイダー提供のメールアドレスは変わっていない。プランが変わっただけ。
2.家自体は引越ししていない。

・6月1日 最近この新築アパートでも光ファイバーが使えるようになったとの事で、利用を勧めるNTTの代理店の会社がたまたま営業で家に来たので、そこで早速契約する。工事日は今日から4日以内ぐらいに連絡するとの話を受ける。

・6月4か5日 "NTTが行う"工事の日程が6月22日午後に決まったとの連絡を受ける(私の家は立会い必要だった)

その翌日か翌々日 プロバイダーに連絡(私のプロバイダーはオンラインで)をしてプラン変更(ADSL→光)の手続きをする、その際に"NTTの工事日"(6月22日午後)と自分が使いたい日(6月22日にした)を"必ず"プロバイダーに伝える。自分が使いたい日に合わせてプロバイダーも自社側の手配をしてくれた。

工事日3日ぐらい前 プロバイダーからネット接続用の新しいIDとパスワードが書かれた用紙が送られてくる。これが無いとネットに接続出来ません。

工事日当日 NTTの工事の作業をする職員が来て、私自身が立会いの下、30分ぐらいで工事を終える。

その後すぐにプロバイダーから貰った上記のIDとパスワードを使ってネットに接続してみると、問題無く光ファイバー回線で繋がった。

ポイント NTTの工事日が決まったら"すぐに"プロバイダーにプラン変更の申請をすること。理由はプロバイダーによって違うかもしれないが、申請してから一定の期間はプロバイダー側の手配にも時間がかかる為、NTTの工事日"直後"にすぐに使えない可能性が高いから。

以上が一連の流れになります。

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

ここからは本題とはズレますが、私が使っているLinux(Ubuntu8.04)の場合、Windowsと違ってちょっとネット接続に手間がかかりました。"私の場合は"以下の様に端末で入力すると無事に接続出来ました。

1.sudo pppoeconfと入力しENTERキーを押す
2.英語でPPPoEの設定画面が出てくるので殆ど(全部?)YESでOKだったが、プロバイダーから貰った上記のIDとパスワードの入力画面ではきちんと入力する。

参考サイト 

以上の手順で無事に繋がりました。正直かなり焦りましたが。

で、速度はADSLの過去最高が秒速750KBぐらいだったのに対し、光の現時点の最高が秒速4MB弱という約5倍の速さになりました。

テクニック | コメント:0 | トラックバック:0 |

発想はいつメモするべきか

本文リンク先

う〜ん、良い記事を見つけてしまいました。記事内容に激しく同意って感じです。

本文の中身から一部抜粋したい点は、最近仕事をしていて思うのですが、問題に当たった時には頭だけで解決しようとしないでその辺にある紙にとにかく色々書くって所でしょうか。

どうやら、これをやると解決する事が多いみたいです。

とりあえず私の現時点での問題は、大体はしているけどメモ帳を"常に"持ち歩く事は出来ていないので、小物入れでも買ってそれにメモ帳とペンを入れておきましょう。

管理人からのオススメ | コメント:0 | トラックバック:0 |

1つのSQL文で複数の表にINSERTする 絶品テクニック

リンク先

実は今作っている研修システムで、親表と子表の参照関係にある2つの表にそれぞれ一行ずつINSERT文を発行してデータを登録するという処理があるんですが、"普通に書けば"INSERT文を2回書かなければいけなくて、"万が一"1回目と2回目の間にエラーが起こった時にデータの整合性が取れなくなるという現象が発生しており、どうしようかなと思っていたら上記の記事を見つけました。

でも残念ながら上記の書き方はどうもOracleでしか出来ない?みたいで私が今使っているAccess2003ではINSERT構文に問題があるのか無理っぽいです。

まあ別に上司にもここまで対応しろとは言われていないので"現時点では"放っておいても良いのですが何か気になるんですよね。

まあ、いずれにしても良い書き方だとは思うので、INSERT文をよく使う方にとっては覚えておいて損は無い気がします。

少し私のやりたい事と内容違うが関連ページリンク先

一気に複数のレコードをinsertする方法について

ACCESSで複数行同時INSERT

IT関連情報 | コメント:0 | トラックバック:0 |

情報発信者と情報受信者

私のあくまでも主観的な自分の印象なんですが私は今、情報受発信者だと自分で思っています。

私も昔は異常なテレビっ子だったり、典型的な受信者側の人間だったのですが、どうも受身になるのが嫌なのか、最近はこうしてブログやmixiで日記を書いたりしたりしていて発信者の一面も出てきたみたいです。

あと、発信者になりたいのは、著名人なんかを見ていて、ああいった方達はとにかく自分の意見を述べているな〜と思いまして、私も著名人になりたいから今のウチから練習しておこうかな〜と思ってやっています。

基本的には受信者の方が楽ではあると思うのですが、どうも発信は止めれそうにありません。

ただ、発信者にはリスクも伴うと思うのです。ここで発信者と受信者で気を付けたい事を自分なりに書いてみます。

発信者側
・下手な事を書いたり言ったりすると誹謗中傷を浴びる可能性がある
・上記が原因で責任も伴う
・誰が見ているか分からないので文章は誰でも読めるようにする必要がある
・文章が長くなってしまうと読む側も大変なので、上手に要点をまとめて書く

だからエッ?な事を書くことなんかはもっての他なんですが、現状ではついつい書いてしまっていますし(笑)、文章も長くなっていますし現状では全然ダメです。内容にも依りますが、基本的に誰でも読めるようには出来ているとは思うんですけどね。

次に

受信者側
・ブログやmixiなどで自分にとって為になった記事を読んだ時にコメントとかでお礼をする(特にブログやHPは)
・記事の内容に隠されているヒントを読み取って自分のモノにする

上のヤツは私は最近仕事で色んな方のブログを見ていますが、全くお礼をしていなくて痛感している所です。

結構書く方が大変なのもこうして書いていて良く分かりますので、記事によってはホントにお礼はしていきたいですね。

下のヤツはたま〜に私も日記を書く時に似たような事をやる時があります。

ある特定の人(大体1〜2人)向けに日記を書いたりしていたりする時があります。

それに気づくかどうかはその人次第ですが、いずれにせよブログにしてもmixiの日記にしても意外な所にヒントが隠されている印象があるので、私も引き続き注意深く他の方の記事を見ていきたいですね。

皆様も私の記事だけでは無く、どんな記事でも注意深く見た方が良いと思います。


その他 | コメント:0 | トラックバック:0 |

.NET開発者に必見のWEBページ?

今朝、会社のVistaガジェットで下記の記事を見つけました。

リンク先

タイトルの最後に?がついているのは皆さん既にご存知ではないかという事と、必見という程の内容では無いかもしれないからなんですが、少なくても今の私には物凄〜く為になる記事です。

逆引き代全とも似ていると思いますが、こっちの方が説明が深く分かりやすい印象です。

あと、この記事は「〜 コンテンツは毎週拡充しています 〜」という文言もあるので引き続き注目ではないかと思います。

管理人からのオススメ | コメント:0 | トラックバック:0 |

C言語PART146 指定した数のビット目から指定した数のビット個数分1や0や反転して表示

#include

int count_bits(unsigned x){
int count = 0;
while(x){
if(x & 1U) count++;
x >>= 1;
}
return count;
}

int int_bits(void){
return count_bits(~0U);
}

unsigned set_n(unsigned x,int pos,int n){
int a,b,i;
unsigned c;

c = x;
a = pos;

for(i = pos;n > 0 && i > 0;n--,i--){
b = 2;
pos = i;
if (!(x >> --a) & 1U){
switch(i){
case 1: c += 1; break;
case 2: c += 2; break;
default: while(pos-- > 2){
b *= 2;
}
c += b;
}
}
}
return c;
}

unsigned reset_n(unsigned x,int pos,int n){
int a,b,i;
unsigned c;

c = x;
a = pos;

for(i = pos;n > 0 && i > 0;n--,i--){
b = 2;
pos = i;
if ((x >> --a) & 1U){
switch(i){
case 1: c -= 1; break;
case 2: c -= 2; break;
default: while(pos-- > 2){
b *= 2;
}
c -= b;
}
}
}
return c;
}

unsigned inverse_n(unsigned x,int pos,int n){
int a,b,i;
unsigned c;

c = x;
a = pos;

for(i = pos;n > 0 && i > 0;n--,i--){
b = 2;
pos = i;
if ((x >> --a) & 1U){
switch(i){
case 1: c -= 1; break;
case 2: c -= 2; break;
default: while(pos-- > 2){
b *= 2;
}
c -= b;
}
}else{
switch(i){
case 1: c += 1; break;
case 2: c += 2; break;
default: while(pos-- > 2){
b *= 2;
}
c += b;
}
}
}
return c;
}

void print_bits(unsigned x){
int i;

for(i = int_bits()-1;i >= 0;i--)
putchar(((x >> i) & 1U) ? '1' : '0');
}

int main(void){
unsigned a;
int b,c;

printf("非負の整数を入力してください:");
scanf("%u",&a);
printf("何ビット目から指定しますか:");
scanf("%d",&b);
printf("何個のビットを指定しますか:");
scanf("%d",&c);

printf("整数:"); print_bits(a);
printf("\n%dビット目から%d個を1にした値:",b,c); print_bits(set_n(a,b,c));
printf("\n%dビット目から%d個を0にした値:",b,c); print_bits(reset_n(a,b,c));
printf("\n%dビット目から%d個を反転した値:",b,c); print_bits(inverse_n(a,b,c));

putchar('\n');

return 0;
}


C言語 | コメント:0 | トラックバック:0 |

C言語PART145 指定した数のビット目を1や0や反転して表示

#include

int count_bits(unsigned x){
int count = 0;
while(x){
if(x & 1U) count++;
x >>= 1;
}
return count;
}

int int_bits(void){
return count_bits(~0U);
}

unsigned set(unsigned x,int pos){
int a,b = 2;
unsigned c;

c = x;
a = pos;

if ((x >> --a) & 1U){
return c;
}else{
switch(pos){
case 1: return c + 1;
case 2: return c + 2;
default: while(pos-- > 2)
b *= 2;
return c + b;
}
}
}

unsigned reset(unsigned x,int pos){
int a,b = 2;
unsigned c;

c = x;
a = pos;

if ((x >> --a) & 1U){
switch(pos){
case 1: return c - 1;
case 2: return c - 2;
default: while(pos-- > 2)
b *= 2;
return c - b;
}
}else{
return c;
}
}

unsigned inverse(unsigned x,int pos){
int a,b = 2;
unsigned c;

c = x;
a = pos;

if ((x >> --a) & 1U){
switch(pos){
case 1: return c - 1;
case 2: return c - 2;
default: while(pos-- > 2)
b *= 2;
return c - b;
}
}else{
switch(pos){
case 1: return c + 1;
case 2: return c + 2;
default: while(pos-- > 2)
b *= 2;
return c + b;
}
}
}

void print_bits(unsigned x){
int i;

for(i = int_bits()-1;i >= 0;i--)
putchar(((x >> i) & 1U) ? '1' : '0');
}

int main(void){
unsigned a;
int b;

printf("非負の整数を入力してください:");
scanf("%u",&a);
printf("何ビット目を指定しますか:");
scanf("%d",&b);

printf("整数:"); print_bits(a);
printf("\n%dビット目を1にした値:",b); print_bits(set(a,b));
printf("\n%dビット目を0にした値:",b); print_bits(reset(a,b));
printf("\n%dビット目を反転した値:",b); print_bits(inverse(a,b));

putchar('\n');

return 0;
}

C言語 | コメント:0 | トラックバック:0 |

C言語PART144 符号無し整数を左右にnビット回転した値を表示

かなり久しぶりになってしまいましたが、勿論止めるつもりはありません。

ただ今後は、毎日書くのはさすがに厳しくなってきたので、不定期になってしまう事だけはご了承頂ければと思います。

#include

unsigned rrotate(unsigned a,int b){

unsigned c,d;

c = a >> b;
d = a << int_bits()-b;

return c | d;
}

unsigned lrotate(unsigned a,int b){

unsigned c,d;

c = a << b;
d = a >> int_bits()-b;

return c | d;
}

int count_bits(unsigned x){
int count = 0;
while(x){
if(x & 1U) count++;
x >>= 1;
}
return count;
}

int int_bits(void){
return count_bits(~0U);
}

void print_bits(unsigned x){
int i;

for(i = int_bits()-1;i >= 0;i--)
putchar(((x >> i) & 1U) ? '1' : '0');
}

int main(void){
unsigned a;
int b;

printf("非負の整数を入力してください:");
scanf("%u",&a);
printf("何ビット回転しますか:");
scanf("%d",&b);

printf("整数:"); print_bits(a);
printf("\n右に%dビット回転した値:",b); print_bits(rrotate(a,b));
printf("\n左に%dビット回転した値:",b); print_bits(lrotate(a,b));

putchar('\n');

return 0;
}

C言語 | コメント:0 | トラックバック:0 |
| HOME | NEXT