[ctrl] + [alt] + [F1] でtty1に切り替わる。
[alt] + [F7] で元に戻る。
2012年2月17日金曜日
2011年8月8日月曜日
水温計のない車
水温計のない車に乗っていますが、先日オーバーヒートしました。すぐに止まれない状況にあったのですごく焦りました。後のエンジンへのダメージ等を考えると、早めに察知してオーバーヒートになる前に対処したいので、次回、購入する際は、警告灯のみの車は避けようと思いました。
修理工場で診てもらったところ、ラジエターのファンが回っていないとのことでした。
修理工場で診てもらったところ、ラジエターのファンが回っていないとのことでした。
2011年7月23日土曜日
meegoを外付けhddにインストール
公式サイトの説明に従って、usbフラッシュメモリにイメージを書きこんで、起動。ブートローダのメニューから"Installation only"を選択して、インストールガイドに従ってインストール。インストール後、外付けhddから起動すると、"kernel panic"うんぬんメッセージが表示されて起動失敗。ネットで調べ、カーネルの起動パラメータに"rootdelay=10"を追加したら無事起動した。(パラメーターの設定は"/boot/extlinux/extlinux.conf"で行う)
meegoを少し動かしてみた。常時使おうとは思わなかったが、選択肢が増えたことはいいと思う。ssd、ファンレス、軽量なnetbookにインストールされれば、面白いかなと思う。
meegoを少し動かしてみた。常時使おうとは思わなかったが、選択肢が増えたことはいいと思う。ssd、ファンレス、軽量なnetbookにインストールされれば、面白いかなと思う。
2011年7月9日土曜日
iOSアプリ > iBook > 英和辞書の使用
http://d.hatena.ne.jp/softether/20100730
すごく快適になる。電子書籍リーダーの多くに大辞泉等との連携機能があるが、アプリへ組み込まれると、速度の面でこれにはかなわないなあと思った。(意味を表示する際に、改行を適当に入れて見やすいようにしてもらえるといいなぁ。iOSのAPIに辞書機能があれば、連携よりもサクサク動いて他のアプリのレベルが上がって良いと思うのだが。)
すごく快適になる。電子書籍リーダーの多くに大辞泉等との連携機能があるが、アプリへ組み込まれると、速度の面でこれにはかなわないなあと思った。(意味を表示する際に、改行を適当に入れて見やすいようにしてもらえるといいなぁ。iOSのAPIに辞書機能があれば、連携よりもサクサク動いて他のアプリのレベルが上がって良いと思うのだが。)
2011年6月13日月曜日
2011年6月11日土曜日
Eclipse > CDT > マクロの展開
ソースファイル上のマクロにマウスポインタをのせるとツールチップに展開された形が表示される。さらにF2キーを押すと、ポップアップで表示され、下部にあるボタンを押せば、マクロが展開されていく過程を知ることができる。
2011年6月8日水曜日
GTK HelloWorld
Eclipseを使ってGTKのHelloWorldをやってみた(WindowsXP、MinGW導入済み)。
- Eclipseをダウンロード(CDTが同梱されているタイプ)して、インストール(解凍)。
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/heliossr2
- GTKをダンロード(All-in-one(全部入り)タイプ)して、インストール(解凍)。
http://www.gtk.org/download/win32.php
- GTKインストールディレクトリにある
"gtk+-bundle_2.22.0-20101016_win32.README.txt" ファイルに記載されているように、パスを通して(後のために環境変数に登録)、手始めにコマンドを入力する。
>pkg-config --cflags gtk+-2.0
>gtk-demo
- デモが問題なく表示されたので、Eclipseを起動、適当にC,C++プロジェクトを作成。
- GTKサイトのサンプルソースを作成。
http://developer.gnome.org/gtk-tutorial/stable/c39.html#SEC-HELLOWORLD
- プロジェクトのプロパティからインクルードパスを通す。
C/C++ Build > Settings ---Tool Settingタブ > GCC C++ Compiler > Includes にてパスを通す。
%GTK_HOME%\Include\gtk-2.0
%GTK_HOME%\Include\glib-2.0
%GTK_HOME%\lib\gtk-2.0\include
すべて通すのは手間がかかるので、コード補完がある程度出来る程度にしておく。コンパイルに必要なパスは、Build Variablesにて設定する。
- コマンドプロンプトにて以下を実行
>pkg-config --cflags gtk+-2.0 > a.txt
>pkg-config --libs gtk+-2.0 > b.txt - コマンドでリダイレクトしたテキストファイルの内容をBuild Variablesに追加
(プロジェクトのプロパティ > C/C++ Build > Build Variables)。最初のコマンドの内容を
gtk-inc,次のコマンドの内容をgtk-libとでもしておく。 - プロジェクトのプロパティ > C/C++ Build > Settings --- Tool Settingタブ
GCC C++ Compiler > Commandline pattern と
MinGW C++ Linker > Commandline pattern の末尾に ${gtk-inc}と${gtk-lib}を追加。 - プロジェクトのビルド、実行。
久しぶりにEclipseCDTを触ってみたが、以前と比べるとIndexerが固まることがなくなったような気がする。Ctr + o でアウトラインがポップアップで表示されると、やっぱEclipseっていいなぁって思う。
2011年6月7日火曜日
エクスプローラーからカレントフォルダを選択してコマンドプロンプトを開く
ずっとこういう機能があればっと思っていたが、やっと見つけることができた。
http://www.atmarkit.co.jp/fwin2k/win2ktips/325openhere/openhere.html
ソースファイルをエディタで開くときにコンテキストメニューの"送る"を利用していたが、この記事を応用して、コマンドを追加し、ステップを減らすことができた。
環境変数PATHへの追加もやってみたがこれはできなかった(set path=%path%;%L)。
http://www.atmarkit.co.jp/fwin2k/win2ktips/325openhere/openhere.html
ソースファイルをエディタで開くときにコンテキストメニューの"送る"を利用していたが、この記事を応用して、コマンドを追加し、ステップを減らすことができた。
環境変数PATHへの追加もやってみたがこれはできなかった(set path=%path%;%L)。
2011年6月5日日曜日
vim taglistのインストール
- taglistをダウンロードする
- $HOME\vimfilesに解凍しdocとpluginフォルダを生成
- ctags等にパスを通す環境変数PATHに定義するか、_vimrcにて変数Tlist_Ctags_Cmdで実行ファイルを指定($HOME\vimfiles\plugin\taglist.vim の最初の方を読むとよくわかる)
- vimを起動
- コマンドを実行してヘルプタグを生成:helptags $HOME\vimfiles\doc
- 試してみる:e 何かのソースファイル:Tlist (Tは大文字で)
ウィンドウが分割されてメソッドやフィールドが表示されたときは感動した(*^^*)
2011年6月4日土曜日
OpenOffice > Python, C++ > 複雑なツールバーの作成
テキストボックスやコンボボックスを持つツールバーを作成するチュートリアルをやってみた。
DeveloperGuide
http://wiki.services.openoffice.org/wiki/Framework/Article/Generic_UNO_Interfaces_for_complex_toolbar_controls
SDKのexampleの中に対応するサンプルソースがある(example\cpp\complextoolbarcontrols)。C++で実装してある。
http://hermione.s41.xrea.com/pukiwiki/index.php?Extensions%2FComplexToolbar
Pythonで実装してある。
C++, Pythonともによく知らないので、サンプルコードを流用してイベントを拾ったら、OpenOffice BasicのマクロにDispatchしてしまえば、簡単に面白いツールが作れると思う(DeveloperGuideのサンプルならBaseDispatch#dispatch内で)。
DeveloperGuide
http://wiki.services.openoffice.org/wiki/Framework/Article/Generic_UNO_Interfaces_for_complex_toolbar_controls
SDKのexampleの中に対応するサンプルソースがある(example\cpp\complextoolbarcontrols)。C++で実装してある。
http://hermione.s41.xrea.com/pukiwiki/index.php?Extensions%2FComplexToolbar
Pythonで実装してある。
C++, Pythonともによく知らないので、サンプルコードを流用してイベントを拾ったら、OpenOffice BasicのマクロにDispatchしてしまえば、簡単に面白いツールが作れると思う(DeveloperGuideのサンプルならBaseDispatch#dispatch内で)。
2011年6月3日金曜日
OpenOffice > Basic > 選択された文字列を取得
'文字列を取得する
'Calcの場合は選択されているセルの文字列
'Writerの場合は選択されている文字列
'Calcのセル内で選択されている文字のみを抽出する機能はない
Function GetSelectedText
controller = ThisComponent.CurrentController
selection = controller.getSelection()
iName = selection.ImplementationName
If iName="SwXTextRanges" Then
GetSelectedText = selection.getbyindex(0).String
ElseIf iName="ScCellObj" Then
GetSelectedText = selection.String
Else
GetSelectedText = ""
End If
End Function
'Calcの場合は選択されているセルの文字列
'Writerの場合は選択されている文字列
'Calcのセル内で選択されている文字のみを抽出する機能はない
Function GetSelectedText
controller = ThisComponent.CurrentController
selection = controller.getSelection()
iName = selection.ImplementationName
If iName="SwXTextRanges" Then
GetSelectedText = selection.getbyindex(0).String
ElseIf iName="ScCellObj" Then
GetSelectedText = selection.String
Else
GetSelectedText = ""
End If
End Function
vim ctags
- タグファイルの設定:set tags=tagfile1,tagfile2...
- タグジャンプするCtr + ]
- 元の位置に戻るCtr + t
- タグファイルの作成(vimのコマンドではない)ctags -R -f outputfile_name search_directory_path例 ctags -R -f c:\tags c:\project1\src-R 再帰
2011年6月2日木曜日
OpenOffice > Python > Eclipseでデバッグ
OpenOfficeのPythonマクロをEclipseでデバッグする方法
EclipseにPydevプラグインをインストールし、Pydevプラグインの機能であるデバッグサーバーを使用することでリモートデバッグできる。あくまでもサーバーであるため、シグナルを送るのはクライアントであるPythonマクロということになる。つまりPythonマクロにサーバーにリクエストを送るためのコードを埋めこまなくてはならない。(Eclipse上でブレイクポイントも貼っても意味が無い。)
参考
http://pydev.org/manual_adv_remote_debugger.html
EclipseにPydevプラグインをインストールし、Pydevプラグインの機能であるデバッグサーバーを使用することでリモートデバッグできる。あくまでもサーバーであるため、シグナルを送るのはクライアントであるPythonマクロということになる。つまりPythonマクロにサーバーにリクエストを送るためのコードを埋めこまなくてはならない。(Eclipse上でブレイクポイントも貼っても意味が無い。)
参考
http://pydev.org/manual_adv_remote_debugger.html
vim 基本
- ディレクトリの移動
:cd directory - ファイルを開く
:e filename
- バッファを切り替える
:b filename - 次のバッファ
:bn - 前のバッファ
:bp
- ファイルの先頭に移動
gg - ファイルの末尾に移動
G
- 直前の操作を取り消す(アンドゥ)
u - リドゥ
Ctr + r
- 上書きモードに移行する
R
- 行をコピー(ヤンク)
yy - 貼りつけ(ヤンクしたものを)
p - 選択範囲をクリップボードにコピー
Ctr + Insert - クリップボードから貼りつけ
Shift + Insert
2011年5月31日火曜日
makeファイルの内部マクロ
$@ - ターゲット名
$(@F) - ターゲット名(パスを除く)
$% - ターゲットメンバ名
$(@:"変更したい文字列"="変更後の文字列") - 文字列の変換
$(subst "変更したい文字列","変更後の文字列","全体の文字列") - 文字列の変換
参考
http://www.c.csce.kyushu-u.ac.jp/~seiichirou/wiki/index.php?Makefile%A4%CE%BD%F1%A4%AD%CA%FD#content_1_10
-- 使用例 --
1.ファイルの拡張子を変更(%はワイルドカードとして機能)
$(@:%.text=%.txt)
2.ファイルの拡張子を変更して、パスの"/"を"\"に変更
$(subst /,\,$(@:%.text=%.txt))
1を入れ子にする方法ではできなかった(正しい記述が出来ていなかったのかもしれない)。substで入れ子にする方法はまだ試していない。
$(@F) - ターゲット名(パスを除く)
$% - ターゲットメンバ名
$(@:"変更したい文字列"="変更後の文字列") - 文字列の変換
$(subst "変更したい文字列","変更後の文字列","全体の文字列") - 文字列の変換
参考
http://www.c.csce.kyushu-u.ac.jp/~seiichirou/wiki/index.php?Makefile%A4%CE%BD%F1%A4%AD%CA%FD#content_1_10
-- 使用例 --
1.ファイルの拡張子を変更(%はワイルドカードとして機能)
$(@:%.text=%.txt)
2.ファイルの拡張子を変更して、パスの"/"を"\"に変更
$(subst /,\,$(@:%.text=%.txt))
1を入れ子にする方法ではできなかった(正しい記述が出来ていなかったのかもしれない)。substで入れ子にする方法はまだ試していない。
2011年5月30日月曜日
OpenOffice > Java > Googleの翻訳サービスを利用してピンインを取得
マクロの配置方法は以前の記事を参照して下さい。
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.zip.GZIPInputStream;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import com.sun.star.lang.IndexOutOfBoundsException;
import com.sun.star.lang.WrappedTargetException;
import com.sun.star.script.provider.XScriptContext;
public class B {
private static final String URL = "http://translate.google.co.jp/translate_a/t?client=t&hl=ja&sl=zh-CN&tl=ja&multires=1&otf=1&pc=1&srcrom=1&ssel=0&tsel=0&sc=1&text=";
public static void a(XScriptContext sc) throws IndexOutOfBoundsException,
WrappedTargetException, IOException, ScriptException {
String word = Util.getSelectedCellValue(sc);
if ("".equals(word)) {
return;
}
getPinyin(word);
}
private static void getPinyin(String word) throws IOException, ScriptException {
String response = getHttpResponse(word);
if (response == null || "".equals(response)) {
return;
}
String pinyin = extractPinYin(response);
setStringToClipBoard(pinyin);
}
private static void setStringToClipBoard(String s) {
Toolkit kit = Toolkit.getDefaultToolkit();
Clipboard clip = kit.getSystemClipboard();
StringSelection ss = new StringSelection(s);
clip.setContents(ss, null);
}
private static String extractPinYin(String response) throws ScriptException {
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
String s = "";
engine.put("s", s);
engine.eval("var a = " + response);
engine.eval("s = a[0][0][3]");
return (String) engine.get("s");
}
private static String getHttpResponse(String word) throws IOException {
String response = "";
BufferedReader br = null;
try {
URL url = new URL(URL + URLEncoder.encode(word, "UTF-8"));
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Accept", "*/*");
conn.setRequestProperty("Accept-Encoding", "gzip, deflate");
conn.setRequestProperty(
"User-Agent",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)");
conn.connect();
int rc = conn.getResponseCode();
// String rs = conn.getResponseMessage();
// System.out.printf("%d %s\n", rc, rs);
if (rc == HttpURLConnection.HTTP_OK) {
br = new BufferedReader(new InputStreamReader(
new GZIPInputStream(conn.getInputStream()), "UTF-8"));
String line = null;
StringBuffer sb = new StringBuffer();
while ((line = br.readLine()) != null) {
sb.append(line);
}
response = sb.toString();
}
return response;
} catch (IOException e) {
throw e;
} finally {
if (br != null) {
br.close();
}
}
}
}
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.zip.GZIPInputStream;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import com.sun.star.lang.IndexOutOfBoundsException;
import com.sun.star.lang.WrappedTargetException;
import com.sun.star.script.provider.XScriptContext;
public class B {
private static final String URL = "http://translate.google.co.jp/translate_a/t?client=t&hl=ja&sl=zh-CN&tl=ja&multires=1&otf=1&pc=1&srcrom=1&ssel=0&tsel=0&sc=1&text=";
public static void a(XScriptContext sc) throws IndexOutOfBoundsException,
WrappedTargetException, IOException, ScriptException {
String word = Util.getSelectedCellValue(sc);
if ("".equals(word)) {
return;
}
getPinyin(word);
}
private static void getPinyin(String word) throws IOException, ScriptException {
String response = getHttpResponse(word);
if (response == null || "".equals(response)) {
return;
}
String pinyin = extractPinYin(response);
setStringToClipBoard(pinyin);
}
private static void setStringToClipBoard(String s) {
Toolkit kit = Toolkit.getDefaultToolkit();
Clipboard clip = kit.getSystemClipboard();
StringSelection ss = new StringSelection(s);
clip.setContents(ss, null);
}
private static String extractPinYin(String response) throws ScriptException {
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
String s = "";
engine.put("s", s);
engine.eval("var a = " + response);
engine.eval("s = a[0][0][3]");
return (String) engine.get("s");
}
private static String getHttpResponse(String word) throws IOException {
String response = "";
BufferedReader br = null;
try {
URL url = new URL(URL + URLEncoder.encode(word, "UTF-8"));
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Accept", "*/*");
conn.setRequestProperty("Accept-Encoding", "gzip, deflate");
conn.setRequestProperty(
"User-Agent",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)");
conn.connect();
int rc = conn.getResponseCode();
// String rs = conn.getResponseMessage();
// System.out.printf("%d %s\n", rc, rs);
if (rc == HttpURLConnection.HTTP_OK) {
br = new BufferedReader(new InputStreamReader(
new GZIPInputStream(conn.getInputStream()), "UTF-8"));
String line = null;
StringBuffer sb = new StringBuffer();
while ((line = br.readLine()) != null) {
sb.append(line);
}
response = sb.toString();
}
return response;
} catch (IOException e) {
throw e;
} finally {
if (br != null) {
br.close();
}
}
}
}
2011年5月29日日曜日
vbsでショートカットの作成
インストーラを使用しない配置するだけのプログラムがたまってきたので、それらへのショートカットをつくるスクリプトを作成した。vbsは初めてだが、便利な機能があっていいなと思った。これからも活用していきたい。
** 参考にしたサイト **
フォルダの再帰
http://www1.u-netsurf.ne.jp/~tomo_c/tips/R23Lev15.html
拡張子の取得
http://www1.u-netsurf.ne.jp/~tomo_c/tips/WSH003.html
ショートカットの作成
http://www.atmarkit.co.jp/fwin2k/operation/wsh06/wsh06_03.html
DimとSetの違い
http://www.mhl.janis.or.jp/~winarrow/vbscript/htm/vbs598.htm
Sub CreateShortCusts(sFolder)
Set folder = fso.GetFolder(sFolder)
For Each f In folder.Files
If fso.GetExtensionName(f.Path)="exe" Then
Set objShortCut = objShell.CreateShortcut(f.Name + ".lnk")
objShortCut.TargetPath = f.Path
objShortCut.Save
End If
Next
For Each f In folder.Subfolders
CreateShortCusts(f.Path)
Next
End Sub
Set objShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Dim sFolder
sFolder = "D:\Applications"
CreateShortCusts(sFolder)
** 参考にしたサイト **
フォルダの再帰
http://www1.u-netsurf.ne.jp/~tomo_c/tips/R23Lev15.html
拡張子の取得
http://www1.u-netsurf.ne.jp/~tomo_c/tips/WSH003.html
ショートカットの作成
http://www.atmarkit.co.jp/fwin2k/operation/wsh06/wsh06_03.html
DimとSetの違い
http://www.mhl.janis.or.jp/~winarrow/vbscript/htm/vbs598.htm
Sub CreateShortCusts(sFolder)
Set folder = fso.GetFolder(sFolder)
For Each f In folder.Files
If fso.GetExtensionName(f.Path)="exe" Then
Set objShortCut = objShell.CreateShortcut(f.Name + ".lnk")
objShortCut.TargetPath = f.Path
objShortCut.Save
End If
Next
For Each f In folder.Subfolders
CreateShortCusts(f.Path)
Next
End Sub
Set objShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Dim sFolder
sFolder = "D:\Applications"
CreateShortCusts(sFolder)
登録:
投稿 (Atom)