2012年11月27日火曜日

ruby1.9.3インストール→chown

先月からアカベコマイリを参考にしつつかなりのんびりとsakura2Gに環境作ってるんですが・・・

rubyをインストールした直後に「権限がないよ!」と怒られssh接続できなくなりました。
とりあえずsakuraのリモートコンソールからrootでログインして作業ユーザーのhomeディレクトリを確認すると・・・
ls -l /home
所有者とグループがrootになっていた。
chownで作業用ユーザーに取り戻す。
 chown -R user:user /home/user
一応sshも繋がるようになったけど原因がわかってないので釈然としない。
checkinstallの手順間違えたとか?

2012年10月27日土曜日

macのターミナルでjavacが文字化けしてバージョンが判んねえよ


cyberduckを使いたくてmacbook AirにJAVA環境入れる。
ターミナルで
javac -version
を実行するとインストールするか聞かれたのでインストール。
インストール後、もう一度javac -vをするとバージョンが文字化けして見れない。
javaVMではデフォルトのencodeがshift-JISになっているらしい。ターミナルはutf-8、そのため文字化けしていたとのこと。
このままではいつかjavaでコンパイルするときにエラーメッセージも読めやしない。

対処:.bash_profileと.bashrcを作成し、javaコマンド実行時に.bashrcからVMに直接encodeを指定してやる。

1: homeディレクトリに.bash_profileと.bashrcがあるかを確認する。
ls -a
見つからなければ作成する。

2: .bashrcに以下を追加。.bash_profileに追加してもいいが今回は.bashrcの方が多数派っぽいのでこちらに書きました。
 JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
3: .bash_profileを再読み込み。
source .bash_profile
再読み込み出来ないときは.bash_profileに.bashrcを読み込む処理書いてないとか、 . ~/.bashrcのスペース抜けてたとか確認してみよう^^;

終わったらもう一度
javac -version
でバージョンを確認する。文字化けしてなければOK

ref:
http://d.hatena.ne.jp/snaka72/20120101/1325403702
http://www.linux-beginner.com/linux_kihon12.html

2012年10月22日月曜日

vb2010 Application.Restart()とStopWatchクラスを使ってみた


職場でApplication.Restart()を使ったら重複起動チェックに引っかかって2回目以降が起動してくれないのでメモ

初回の再起動では別プロセスで開いてくれるようだが、2回目以降は別プロセスにならない?(詳しい人教えてください)ようで、重複起動チェックに引っかかって再起動してくれなくなった。

そこで重複起動チェックの処理を修正することにしました。


最初はただのif文だったのを以下のように修正。
while UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0
thread.sleep(100)
i+=100
if i >3000 then
  exit while
end if
これで前プロセスの終了を3秒だけ待って起動できるようになった。
後でYさんからStopWatch使おうといわれ以下に修正。
Dim _stopWatch As New Stopwatch
_stopWatch.Start()
While  UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0
  Thread.Sleep(100)
  If _stopWatch.ElapsedMilliseconds > 3000 Then Exit While
End While
_stopWatch.Stop()

処理の実行時間を計るときは便利そうです。

2012年10月3日水曜日

社員になって狂っていく

会社の陰口書く。

4月に入社して半年間会社に飼われてみた感想など。
週休2日で日8h勤務(9~18時、休憩1h)の姫路市内の制御系SIer。

入社したての頃は定時で帰ってたけど、だんだんとサビ残増えてきた。
最近の見えない残業時間は平均2h。

入社したての頃は学ぶことも多かったけど、最近は一回指摘されたミスを何回もしてる気がする。
21時まで残って遅れた分取り戻そうとするけど全然終わらないし、ミスも増える。
一回やったことを消化できてない気がする。(blogも更新しなくなったしw)

疑念だけどサビ残前提でスケジュール組まれてる気も少しする。

毎日昼ぐらいに残業申請書を書いて提出するんだけど、誰も残業申請してない。
そのくせみんな定時になっても帰らないし、終電までいる人もいる。

毎日2hサビ残すると5日で2010h、4週で8040h。
8040hってすごい時間だ。105日分ただ働きしてることになる。

僕の給料が基本14万で業績手当が3万
いろいろ引いて手取り14万くらい。

残業代出てたとしたら大変なことになっちゃう。

上司も先輩も帰らないし、残業代でないし、給料安いし、そもそも自分がしたい勉強に使える時間がない。
就職=安定って定石があるけどこれは安定した状態だろうか?
今会社が危なくなったら一番に切られるのって、最も勤務期間が短い僕じゃないだろうか?

まあ、ほかと比べたらマシっていう思考は何も生まないし、だれもハッピーにならないから置いといて。
こんなこと日本中でやってるとか頭オカシイ。

*10/4
時間の計算を自然にしくじるw。でも1年先輩の人は訂正線の方であってるなw
残業少ない方じゃんと言われる方へ:〜よりマシって考え方は誰も幸せにならないので嫌いです。

2012年8月30日木曜日

vb_別のPC環境にてフォームのサイズが変更される

windows7のvisual studio2010で開発していたのですが、別のPCでプロジェクトを開くとFormのSizeが変更されていました。

原因はwindows7の「画面上の文字を読みやすくします」設定が各環境で異なること。
両方の環境で同じ設定にしたら解決しました。

かなり詰まったけどここのおかげで助かった。

解決してみると簡単だなw

2012年8月14日火曜日

vb2008で開かれているフォームを取得する

vb2008にてアクティブでないフォームの属性やプロシージャを使いたいことがあるかもしれません。
そんな時My.Application.OpenFormsを使うと開いているフォームを参照できます。
詳しくはこちら


 For Each frm As Form In My.Application.OpenForms
            If Not frm.name = "KWGTYPE" Then
                frm.close()
            End If
 Next

上記のようにすればアクティブでないフォームから条件で選別して閉じることもできます。
間違ってたらおしえてくだしぁ^^

2012年7月6日金曜日

MBA届いてました^^;

今週の火曜日には届いてたんだけど、仕事終わらなくてあんまり触ってないorz
起動してChrome入れた程度の感想だと、USキーボードが思った以上に良い感じ^^
あとやっぱり薄い!軽い!
ディスプレイとか折れそうでビクビクしながらやさしく触ってます。エロい。


なにインストールしたらいんだろ。
rubyとperlとphpは入ってた。あとvimとawkも!
早く時間作ってもっと仲良くなりたい。

2012年6月27日水曜日

MBAぽちった

一昨日の夜、新型MacBook Airをぽちった。
6/27日(今日じゃん)までローン金利0円だったので今しかっ
まあ10回払いにしたけどもっと多くすればよかったかも。金利0だし。

11インチ
CPU:2.0GHzデュアルコアIntel Core i7(Turbo Boost使用時最大3.2GHz)
メモリ:8G
SSD:256G
キーボード:USA


注文確定したのでもう後に引けないw
届くのは7月1~5日。
ちょーたのしみ!

2012年6月16日土曜日

SQL Server文字列を日付形式にキャストする

ここを参考に書いたんだけど、
SELECT CONVERT(datetime, '20080102', 112)

引用の最後の112って何ぞ?ってなって調べた。
http://msdn.microsoft.com/ja-jp/library/ms187928.aspx

msdsによると国ごとのフォーマットを指定してる様子。

2012年6月15日金曜日

SQL ServerにCSVをインポートする

ここを参考にばるくいんさーとというのをやってみた。


BULK INSERT テーブル名 FROM 'インサートしたいファイルのパス.csv'
   WITH (
      DATAFILETYPE = 'char',
      FIELDTERMINATOR = ',',
      ROWTERMINATOR = '\n'
);
char型、カンマ区切り、改行文字かな。

CASE文-SQLで条件分岐してみる

ここを参考にCASE文を使ってみた。
今まではプログラム側で対応してたけどこれ使いこなしたほうが便利。

SQLの結果をコピーするときに列名も取得する

ここをそのまま実行しただけなのでリンク先を見ましょう。
環境はSQL SERVER2005です。

2012年6月5日火曜日

vimからFTPで編集する

ここを参考にvimでFTP接続してみた。

手順どおりに進めるが、ホームディレクトリに.netrcを作成した後少しつまった。
vim ftp://hogehoge.example.com/
としてもつながらないのだ。
少し調べたら.netrcのパーミッションを変更すればよいとのこと。
 chmod 600 .netrc
上記を実行後無事に接続できた。
さて、vimから新規ファイル作成したりパーミッションを変更したりしたいのだけどどうすれば・・・
やはりsshか。

2012年6月1日金曜日

vimの設定

ここを参考にvimの設定ファイルをいじってみた。.触り初めvar

以下が設定ファイル
/etc/vim/vimrc
以下のようにしてホームディレクトリにコピー
sudo cp /etc/vim/vimrc ./.vimrc
リンク先の主なカスタマイズ項目を追記しました。

しかし、設定を反映するには編集中のvimを終了して再度実行しなければなりません。
そこで、ここを参考に以下のようにして再読み込みをかけることができます
:source ~/.vimrc
これでいつでも設定を反映することができます。

2012年5月21日月曜日

SQLServerのテーブルをcsvに出力する


ここを参考にSQL Serverのテーブルをcsvに出力してみる
bcp DB名.dbo.テーブル名 out "c:\log.txt" -c -t, -r\n -S サーバ名 -U ユーザ名 -P パスワード
-tで区切り文字
-rで改行文字

SQL BETWEENの範囲

BETWEENで取得できる範囲で迷ったのでメモ

下記の場合だとymd >=  '2012/05/21' AND ymd <= '2222/02/22'となる。

WHERE ymd BETWEEN '2012/05/21' AND '2222/02/22'

 '2012/05/21'以上、'2222/02/22'以下ですにゃ。

windowsのwindowをキーボード操作で移動する

移動したいウィンドウをアクティブにした状態でAlt+Space、
ツールメニューが開いたら移動を選ぶ、
後はカーソルキーで好きな位置に移動する。

移動中にマウスを操作でも移動できる。

2012年5月17日木曜日

VBでHashTableが入ったArrayListをSortする

結構探し回ったんだけど全然わかんなかったが最終的にここを参考に作業を進めた。
以下のような頭の悪いサンプルデータをComparerを使ってソートしたい。
Dim itemList As new ArrayList 
Dim item1 As new HashTable
item1.add("key1", 10)
item1.add("key2", 20)
item1.add("key3", 30)
Dim item2 As new HashTable
item2.add("key1", 20)
item2.add("key2", 20)
item2.add("key3", 20)
Dim item3 As new HashTable
item3.add("key1", 30)
item3.add("key2", 20)
item3.add("key3", 90)
Dim item4 As new HashTable
item4.add("key1", 110)
item4.add("key2", 220)
item4.add("key3", 330) 
itemList.add(item1)
itemList.add(item2)
itemList.add(item3)
itemList.add(item4)

Comparerでソートするのはjavaで(compareterか?)使ったことがあったので知っていたが、VBではどうやって型を指定するのかさっぱりで結構つまった。
    Public Class ItemSort
        Implements System.Collections.Generic.IComparer(Of Hashtable)
        Public Function Compare(ByVal candidate1 As System.Collections.Hashtable, ByVal candidate2 As System.Collections.Hashtable) As Integer Implements System.Collections.Generic.IComparer(Of System.Collections.Hashtable).Compare

            Dim resultKey1 As Integer = candidate1("key1") - candidate2("key1") '昇順
            'key1が同じときはkey2の降順で返す
            If resultKey1 = 0 Then
                Dim resultKey2 As Integer = candidate2("key2") - candidate1("key2")  '降順
                If resultKey2 = 0 Then
                    'key2が同じときはkey3の昇順で返す
                    Return Comparer.Default.Compare(candidate1("key3"), candidate2("key3")) '昇順
                Else
                    Return resultKey2
                End If
            End If
            'それ以外のときは区分の昇順で返す
            Return resultKey1
        End Function
    End Class
上記のように書いて以下のようにして以下のように呼び出す。
itemList.Sort(New ItemSort)
これでHashTableのfieldでソートかけれる。
超便利^^

2012年5月16日水曜日

awk変数を扱う

ここを参考にawkの変数を扱ってみます。

awkでは宣言を行うことなく変数を使用できます。
例えばこんな感じ
BEGIN{
        x
        x = 2
        print x
}
上のコードではBEGINの直後のxで既に定義されています。
書いた時点でxには0と""(空文字)が代入されています。
0と""とは何なのか?

awkの変数は文字列と数値の両方の値を持っています。
BEGIN{
    x = 2
    y = 3
    w = x y
    v = x + y
    print w
    print v
}
上記のコードではwには"23"が、vには5が入っています。
xは数値の2と文字列の"2"を、
yは数値の3と文字列の"3"を値として持っているのです。
x yのように変数の間に何もない場合は文字列の連結として扱い、
x + yのように間に演算子がある場合は数値の計算として扱うようです。

では
a = "test"
にはどんな値が入っているのか?
"test"は数値としては扱えないため、
aには数値の0と文字列の"test"が入っています。

おもしろい。

awkのスクリプトファイルを実行する

ここを参考にスクリプトファイルからawkを実行してみた。

データファイルの準備
address_data.txt

おぶち,小渕,恵三,100-0014,東京都千代田区永田町4丁目1番地,03(3456)7890,日本政府
はしもと,橋本,龍太郎,100-0014,東京都千代田区永田町2丁1番地,03(3456)1234,日本政府
みやざわ,宮沢,喜一,100-0014,東京都千代田区永田町1丁目2番地,03(3456)6789,日本政府
むらやま,村山,富市,100-0014,東京都千代田区永田町3丁目1番地,03(3456)8901,日本政府
もり,森,喜朗,100-0014,東京都千代田区永田町1丁目1番地,03(3456)7890,日本政府

スクリプトファイルの準備

practice.awk
BEGIN{
                FS = ","
}
{
                print "〒" $4               #郵便番号を出力
                print $5                      #住所
                print $2 " " $3 "様"    #氏名
                print ""                        #空白行を出力
}

実行
gawk -f practice.awk "address_data.txt"

BEGIN{}ないは実行前の設定等を記述する。
コンストラクタ見たいなものか?
FS = ","
でフィールドの区切り文字を半角空白orTabからカンマに変更。
その下の{}内に処理内容を記述、#でコメント。

実行するときは
gawk -f スクリプトファイル "処理するデータファイル"
でおk

2012年5月14日月曜日

ubuntuでファイルの移動と名前の変更

以下のコマンドを実行

mv ファイル名 移動先のpath
mv ファイル名 変更後のファイル名

例:Productディレクトリに移動
mv test.txt ./Product/

例:todo.txtに変更
mv test.txt todo.txt

ubuntuでawk

ここを参考にawkを使ってみる
まずawkのインストールする。
今回使ったのはgawk
sudo apt-get install gawk
処理するためのテキストファイルを作る。
data.txt

東京は日本の首都です
日本の首都は東京
明日は東京に出張します
以下のコマンドを実行する

gawk '/東京/{print}' data.txt
出力結果

東京は日本の首都です
日本の首都は東京
明日は東京に出張します
print文は東京が含まれる行を抽出してくれるっぽい 。
楽しげなのでどんどん使っていきたい。


2012年5月13日日曜日

googleドキュメントのスプレッドシートでプルダウンリストを作成する

家計簿を作成していて気になったので調べた。

プルダウンリストを設置したいセルを選択し、右クリックメニューのデータの検証。
条件をリストのアイテムに設定し、範囲を選ぶか、入力して項目を決める。
リストの値だけを入力させるようにするには、無効なデータも入力を許可するチェックボックスをオフにする。
以上ですた。
頑張って家計簿付けますw
google docs

2012年5月10日木曜日

windowsのbeep音を黙らせる

vb.netやSQL Serverを使っているとbeep音がうるさくてsan値が危ういので黙らせる方法



上記を参考に

デバイスマネージャ>ツールバーの表示>非表示のデバイスの表示>プラグアンドプレイではないドライバー>Beepのプロパティ>ドライバータブ

ここから停止や無効に設定すれば静かなものである。

2012年5月9日水曜日

近況

先日電子レンジを買ったわけですが、そのときの失敗。

amazonでこの方を注文しました。
Haier単機能電子レンジJM-17C-50 ホワイト【東日本用50Hz地域専用】

でも僕が住んでるのって西日本なんですよ。









僕が住んでるのって西日本なんですよ。

気づいたときには既に発送されていてキャンセルできず、急いで返品手続きを行い、さらに西日本用を注文しました。

届けてくれた佐川の人が「2つ頼まれてますけど間違いですよねwじゃあ返送しときますね~」って感じでさらっと持ってってくれて事なきを得ました。

あ、これ会社で話したらおもしろいかなw

VBでオブジェクトのデータ型を確認する

VB.net 2005でSQL serverとやりとりしてて空の値(null)が返されたんだけど、vb的にはnullではなくSystem.DBNull型なのだそうです。

if Not (TypeOf source("CometGarradd").rows(0)("IonTail") Is System.DBNull) Then
End If

上記のようにすると条件として使えました。

TypeOf 変数名 Is データ型

とすると変数の方を確認できた。

ギャラッドさんにイオンテイルがあるかどうかは知りませんw

TRUNCATEとRTRIM

文字数が違うchar型フィールドを比較するときにつまったのでメモ
DBはSQL Serverです

SELECT
   darlin
FROM
    DB1,DB2
WHERE
    DB1.name = RTRIM(DB2.name)

DB1.nameがchar(5)、DB2.nameがchar(10)であるときDB2.nameの右側から5文字分の空白をトリミングしてくれます。
ちなみに左からトリミングしたい場合はLTRIM、左右の空白を削る場合はTRIMでよいそうです。


ついでにこれを覚えた。
TRUNCATE TABLE DBNAMEテーブルの中身を確認せずに削除するのでDELETEより早いらしいです。

2012年5月7日月曜日

近況

GWの最初のほう、初めて休日出勤した。みんな私服で僕だけスーツだったので浮いてた。
いつも浮いてるから変わらないな。
初給料で洗濯機と電子レンジ買ったらお金なくなったw
先一昨日隠れ家さくらに最後の給料もらいに行ってきた。1年バイトしたけど初めて店で呑んだ。
次の日nabeyarouzeで鍋やった。なんかれんこんディスられて、ステーキもらった。
カーテンまだ買ってないのでmacbook airはもう少し先になるかも。
早く手に入れたい。mac使わないデメリットのほうが大きい気がしてきた。

今月の勉強会の申し込み始まってる。行くと思う。

2012年5月2日水曜日

DateTime型への変換とDBでの比較

vb2005からSQLserver使っててDateTimeの比較で詰まったのでメモ



まずはDateTime型にするところから。

vb2005で日時の文字列をDataTime型に変換するときは以下のように行う。
Dim dt As DateTimedt = DateTime.ParseExact("2012/05/02 19:04:30", "yyyy/MM/dd HH/mm/ss", Nothing)    'DateTime.ParseExact(変換したい日時, フォーマット, フォーマットと日時の対応表?)
この時、文字列の書式とフォーマットの書式が一致していないと怒られる。

SQLで比較するときはすでにDateTime型なので

Dim query As String = ""query = query  + " SELECT COUNT(*) " + vbCrLfquery = query  + " FROM ZIEX  " + vbCrLf query = query  + " WHERE YMDT >= " + dt + " " + vbCrLf


などとする。
dtがString型のままの場合は以下のようにシングルクォーテーションで囲まなければならない。


Dim query As String = ""query = query  + " SELECT COUNT(*) " + vbCrLfquery = query  + " FROM  EAGLE " + vbCrLf query = query  + " WHERE YMDT >= '" + dt + "' " + vbCrLf

2012年4月25日水曜日

ubuntu11.10を入れました。

許可は得ていないのだけど職場のVM環境にubuntu11.10を割と堂々と入れました。
12.04でもよかったのだけどね。
先輩たちにチラ魅されつつchromeやgftp、vimといったやわらかめのツールを入れました。
願わくはあれで開発したいw

2012年4月24日火曜日

macbook airを買う決意をした

先日の姫路IT系勉強会でmacbook airがうらやましくてしょうがない的な感情に駆られる。
これはもういつまでもwindows使っててもvi使えないしターミナル使えないしgit使えないしでどうしようもない。
つまり買えっていうお告げというか決定。
でも初任給は電子レンジとか洗濯機買いたいので却下。
目標としてはappleが新製品発表しなかったら6月中に手に入れる。
ローンが怖くてmacが買えるか!

2012年4月22日日曜日

姫路IT系勉強会.vol4に参加してきた

13:30からでしたが、時間ちょうど位に会場入り。以前ruby関西で見かけた人もちらほらいました。
「春のチキチキjQuery祭り」は聞いてて楽しかった。javascript触りたい。
あとawk関連のLTが2本。awkというコマンドを初めて知ったが、プレゼンができたりグラフィックス出せたりと不思議なコマンドだった。
習得すると便利そう。
macbook airマジ欲しい…

2012年4月18日水曜日

vb6でPictureBoxを使用するときの注意

VB6でPictureBoxを使用すると画像や文字などのオブジェクトの上に描画され、隠されてしまう。


たとえば

  1. Dim image As new StdPicture
  2. form.Picture.PaintPicture image, x,y

としたとき、同じ座標にPictureBoxを置いた場合PictureBoxが邪魔でimageが見えないよ!!ということ。

vb6_イミディエイトウィンドウ

vb6でデバッグ時にイミディエイトウィンドウを使用すると実行中の変数の中身を確認したり、値をセットできる。


  • ?変数名
    • 値が表示される
  • debug.Print 変数名
    • 値が表示される
  • TypeName(変数名)
    • 変数の型を調べる
  • "変数 = 値"
    • 変数に値をセットする

vb6で画像描画

VB6でフォームやPictureBoxの指定位置に直接描画するやり方。


  1.     ' Create a stdPicture object.
  2.     Dim pic As New StdPicture
  3.         Set pic = LoadPicture(strFilePath)
  4.         form.picturebox.PaintPicture pic, x, y

PaintPicture以降で指定した画像ファイルをformやPictureBoxの指定したx,yに表示する。
vb6ではImageではなくPictureらしい。

2012年2月24日金曜日

Asus eee Pad Transformer TF101のrootを取得

前回バックアップを取ったのでTF101 をroot化し、CWMを導入する方法 (日本語版)を参考にroot化されたromを入れてみる。

準備が終わって手順4で躓いた。
再起動するとASUSのロゴが出たあと画面が砂嵐に…。
何度か再起動を繰り返したがAPXモードとCWMでは起動することが出来たがブートイメージが読めないのかOSには出会えなくて泣きそうになる。

やらかしたこと
関係ないかもしれないが準備2でAndroid SDKを入れたあとSDK Managerで3系のAPI入れ忘れた。


CWMはインストールできていたようなのでRevolver ~微調整も簡単なTF101向けカスタムROM~を参考にRevolver入れて事無きをえた。
導入後フォントが中華フォントになってたので、バックアップとってた日本語フォントをESファイルエクスプローラで/system/fonts/にコピーして再起動したら適用された。
危うく文鎮にするところだったw

2012年2月20日月曜日

Asus eee Pad Transformer TF101をバックアップ

よくわかってないBlog その2様の記事ASUS Transformer TF101を買ってみた&バックアップもね
を参考にバックアップを取ってみた。



手順1のbackupフォルダを作らない状態で手順3のパーティションテーブルを取得した。
後で気づいてbackupフォルダを作ってからバックアップを取り始めた。
パーティション15番は取っていない状態。
無事にバックアップはとれた様子。
戻すのはどうやるんだ?