2012/01/22

calcで範囲指定するときのセルの固定

具体的な名前はわからないけれどセルに式を打ち込んで右下を押して下にビーッとするとその下もセルを1個下げて横は同じようにして計算してくれるけど

定数などで行ごとに値が変化しないのに下に値がないと計算できないから仕方なくビーッとしていたけど,しなくてもできるんだよね,きっと.

調べたらやっぱりあった.
http://uenomemo.blog31.fc2.com/blog-entry-413.html

cのprintf関数

javaのprintfを見つけて書式も同じで「これいいな」と思ったんですが,

c++でもcoutではなくprintfを使っているのに書式はそんなに覚えていない.
良い感じにまとめられているところがあったのでメモっておこう

http://www9.plala.or.jp/sgwr-t/c/sec05.html
http://www.mm2d.net/c/c-01.shtml

javaのprintf関数

前の記事で処理時間の計測(java)をして,フォーマットの方が勉強になったのですが,
NumberFormatを使っていて思ったよりも処理が多いと思って,javaでcのprintfのようなものはないのかと調べてみたところ思いっきり
System.out.printf("値は%d", 10);

あった.ずっとSystem.out.println()をつかってきたので,こっちも使ってみよう.
書式もほとんど同じだし.(cの改行の\nが%nになっているっぽいけど)

ここにかなり詳しく書いてある.


BloggerでSyntax Highlighterを使う

プログラムをこのブログにたくさん書いているので他のブログでやってる「Highlighter」を使ってみる.

 1.
  http://www.way2blogging.org/2011/03/how-to-add-syntax-highlighterv3-to.htmlの「HOW TO INSTALL SYNTAX HIGHLIGHTER IN BLOGGER?」の「GENERATE SCRIPTS」をクリック

 「Select a Theme」は今回はdefault.
 「Select Brushes」は今回は c#,c++,css,javascript,java,python,Xml xHtml xslt Html を選んだ.
 進むとスクリプトが出てくる. 

2.
bloggerのデザインの編集のところで右上の「バックアップ」をする. 

3.
エディタでバックアップのxmlファイルを編集.( </head> の直前にスクリプトをコピー)

 4.
さっきバックアップをしたところで今度は「復元」

 5.
ブログを見てみてきちんとなっているようならok

コードの書き方
//コードを記述
ここを参考に
http://blog.37to.net/2007/06/syntax_highlighter/
http://act-yoshiken.blogspot.com/2011/08/bloggersyntax-highlighter-30.html
http://net-3.blogspot.com/2011/05/blogger.html
http://alexgorbatchev.com/SyntaxHighlighter/manual/themes/

Syntax Highlighterのテスト ver2

 

import java.text.*;

long nanostart = System.nanoTime();

  //計測したい処理

long nanostop = System.nanoTime();
NumberFormat nanoformat = NumberFormat.getNumberInstance();
nanoformat.setMaximumFractionDigits(3);// 小数点以下の桁を3桁に設定
nanoformat.setMinimumFractionDigits(3);
System.out.println("処理時間は" + nanoformat.format((double)(nanostop-nanostart)/1000/1000) + "ms <- nanoTime()");

Syntax Highlighterのテスト

 
import time
  time.sleep(t[s]) 

2012/01/21

処理時間の計測(java)

javaの時間の測定はSystem.currentTimeMillis()とSystem.nanoTime()の2種類がある.

currentTimeMillis()

  • ms単位で処理時間が分かるが,CPU,OSなどの環境で10ms~15msの誤差あり.


nanoTime()
  • ns単位で処理時間が分かるが,1μs単位以下は誤差やこの処理そのものの時間も大きく関わってしまうので安全のために10μs以上では正確だろう
この両方についてcurrentTimeMillis()はms単位,nanoTime()はms単位で小数点3桁(μs)まで表示するプログラムを作成.



 1. currentTimeMillis()
 
import java.text.*;

long currentstart = System.currentTimeMillis();

//計測したい処理

long currentstop = System.currentTimeMillis();
NumberFormat currentformat = NumberFormat.getNumberInstance();
System.out.println("処理時間は" + currentformat.format((currentstop-currentstart)) + "ms <- currentTimeMillis()");

 2. nanoTime()
 
import java.text.*;

long nanostart = System.nanoTime();

  //計測したい処理

long nanostop = System.nanoTime();
NumberFormat nanoformat = NumberFormat.getNumberInstance();
nanoformat.setMaximumFractionDigits(3);// 小数点以下の桁を3桁に設定
nanoformat.setMinimumFractionDigits(3);
System.out.println("処理時間は" + nanoformat.format((double)(nanostop-nanostart)/1000/1000) + "ms <- nanoTime()");

今回は時間を計測するのがメインだったが,それよりも有効桁などを調節するフォーマットの方が勉強になったかも.
別記事でフォーマットも書こうかな
cだとprintfで色々できるが,javaはformatをつくってそれを自分の好きなように調節して引数に数字を入れるということか,


ここを参考に




    2012/01/20

    時間の計測 (c/c++)



    プログラムの特定箇所のかかる時間を調べるには
    #include 
    
    clock_t start,end;
    start = clock();
    
    //時間計測したい処理
    
    end = clock();
    printf("%.2f秒かかりました\n",(double)(end-start)/CLOCKS_PER_SEC);
    

    ここの丸々コピーですいません。http://www.mm2d.net/c/c-02.shtml

    2012/01/19

    usbメモリのベンチマーク

    ubuntuのusbブートをusb3.0でやればもっと快適にできるんじゃないかなと思っていて.正月の初売で「usb3.0」のモノが1980円だったのでつい買ってしまった.

    買ったのはコレ
    RUF3-C16G-BK

    でもよくよく見てみると
    対応OS
    linuxが書いてないのはいつもの事だけど,macがusb3.0対応していない.
    ということはlinuxもusb3.0対応していなくて,windowsのソフト側でusb3.0用のドライバなどがあってハード面だけでなくソフト面もきちんと整備されていないとこのusbは3.0では使えないのだろうか.

    まず表面に書いてある「usb3.0&2.0」というのがおかしい気がする.3.0は下位互換をもってるんじゃないのか?

    まあ,買ってしまったのでちょっと2.0としてつかったときと3.0として使った時をベンチマークして早くなっていたらきちんと3.0として認識してるんじゃないかなと思ってやってみた.

    ubuntuでusbのベンチマークができないかなとおもって調べてみたら,標準でコマンドがあるらしい.さすがlinux!!
    $ sudo hdparm -t /dev/sdb
    元々コレはhddのパラメーターを確認したりいじったりするものらしいのでコマンドも覚えやすい.

    実験として直付けのusb2.0,usb3.0とついでにフロントのポートのusb2.0もデータをとってみた.

    結果

    直付けusb2.0
    Timing buffered disk reads:  104 MB in  3.05 seconds =  34.09 MB/sec

    フロントポートusb2.0
    Timing buffered disk reads:  104 MB in  3.05 seconds =  34.09 MB/sec

    直付けusb3.0
    Timing buffered disk reads:  230 MB in  3.02 seconds =  76.28 MB/sec

    おお!
    きちんとusb3.0になってる.しかもメーカーで言ってる70MB/sを超えてる.きちんとusb3.0として使えるんじゃないか.
    あとついでにフロントではかっても直付けにしても速度は変わらないんだね.直付けの方が安定だろうけど.

    コレがlinuxのusbブートとしても効果を発揮できるかはわからないが,少し期待が持ててきた.

    色々実験ができて面白かったな.

    ここを参考にしました.

    2012/01/18

    CUIでゴミ箱を使う

    CUIで
    $ rm
    をつかってしまうとゴミ箱に入らず完全に消去してしまうのでもとに戻せない.
    よって
    $ trash
    をよく使っている.でもこれでゴミ箱に入ったものはGUIで「ゴミ箱を空にする」をしても消えないものがある.そのときは
    $ sudo empty-trash
    をすると消える.trashのコマンドでemptyから始まるから間違えそう.

    ここを参考に
    http://axela5004.blog74.fc2.com/blog-entry-572.html

    2012/01/16

    opencvの購入した書籍紹介

    opencvをやろうと思ってubuntu10.04にインストールしてみてサンプルプログラムも何個かやってみたが,いまいち思った通りに行っていないかもしれないなと思っていた.

    主にopencvでしたいことは普通にopencvで出来ることはそうだが, cuda,kinect,android,python,ステレオ視 を使いたいためopencvの最新版(2.3.1-a)を使おうとしている.

    最新版なのでネットの情報も少ししかないだろうし,書籍も自分が使いたいものがのっているのはなかった.

    そこで見つけたのがコレ
    http://imagingsolution.net/program/opencv/opencv-2-2-3-programing-book/

    日本語で2.3まで対応しているのは今までないだろうし,自分がしたいこともandroid以外はすくなからず全て書いてある.

    本の中を見るとopencvを触ったこともないような人が初めて読むものとしては少しハードルは高いかもしれないが,ネットの情報をもとにしながら解析していけば大丈夫だろう.

    これからはこれを読んで勉強していこう.


    Impressでの添付などの際の注意点

    Impressで色々添付しないといけないが,動画がなかなかきちんと添付されない.
    拡張子も添付できるやつを何種類かしているのに,

    結果としてはImpressや動画が入ったディレクトリの名前が日本語なのが悪かった.

    今度からは全部英語にしておこう.

    ubuntu10.04にlibreoffice3.4.4をインストール

    ubuntu10.04はopenofficeだが,最新のubuntuはlibreofficeでこれからはそっちをデフォルトにするらしいので
    どうせだったらwindowsでも使っているし,10.04でも統一したい.
    派生ソフトだけどいろいろ片方で作ったものをもう片方で見ると変なことになるし

    でもlibreoffice3.3をインストールした記事は色々見るけど,3.4をインストールしてある記事がなかなか無い.
    まあだいたい同じだろう.ubuntu11.10でも3.4を使っているし,libreoffice3.4をインストール.

    ここを参考にしました.
    http://ubuntuapps.blog67.fc2.com/blog-entry-231.html

    synapticとかじゃなくてdebパッケージからインストールしないといけないのか,

    参考のwebは3.3なので違ったところはインストールしたあとの「LibreOffice 日本語パッケージをインストールしてメニューを日本語化」のところではじめから文字化けしなかった.

    3.4になって修正されたのかな.1,2回つかっただけなのできちんとインストールできているかわからないけど
    まあ文字が変なときはこの記事の文字化けのところをこっちでもやってみよう.

    2012/01/11

    またsleep関数でちょっと待つ

    今度はpythonでsleep関数を使う。
    import time
      time.sleep(t[s]) 
    pythonでまでsleep関数を使いたくないが、まあ一時的にということで

    ここを参考に
    http://d.hatena.ne.jp/Michael_e29/20110127/1296090610


    2012/01/03

    Synapticでソフトのダウングレードとバージョン固定

    ソフトのダウングレードをしたくて調べていたら、synapticでダウングレードをする方法を発見

    このサイトを見てやった
    http://ankyo.blog.so-net.ne.jp/2011-06-14-1

    ちょっと違ったところは
    「由来」ではなく「ダウンロード元」

    ダウングレードをしたあとバージョン固定をしないとアップデートでまた新しくなっちゃうのかな?

    「パッケージの強制」などは右クリックしてないなと思っていたら、上の「パッケージ」の中にありました。ちゃんと見ないと。

    2012/01/02

    待ち時間を作るsleep関数(windows,linux)

    プログラミングでよく「待ち」を簡単に導入したい時が良くある。
    windowsとlinuxではほんのちょっとだけ違う。

    ●linux
      sleep(t[s]);
    ●windows
    #include<windows.h>
      Sleep(t[ms]);
    windowsがSleepで大文字から始まるのが忘れてしまいそうだ。

    格安プリンタの購入

    HPのプリンタ Photosmart Wireless B110a を買いました。

    無線lanで、eprintとかいろいろ機能が付いていて、メーカーは安定のHP。これが4千円以下で売っていたらもう買いだと思ったので。

    これとubuntuを使っていろいろ遊んでみたいと思います。

    そしてできたことをいろいろ書いていきたいと思います。
    記事ごとに Photosmart Wireless B110a を使っていると断ろうと思いますが、もし忘れていたらこれを使っていると思ってください。