My main blog
Labels
Sunday, June 14, 2015
disable python stdout buffering
python -u # didn't work for me...
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) # worked
Sunday, April 13, 2014
DOS | Temporarily change working directory for a single command
pushd myjava & java -Djava.rmi.server.codebase=http://10.203.111.166:20380/murex.download.guiclient.download -classpath %CP% com.ocbc.quest.murexgateway.MurexServer 19673 & popd
This DOS command line does 3 things
1) temporarily chdir into “myjava” folder and
2) run a (long) java command line, and then
3) restore the previous directory.
Actually, the java process blocks the script forever. If you use ctrl-C to terminate the blocking java process, you still get back into the previous directory J
See
Friday, December 14, 2012
cygwin to access a remote shared folder
Windows' builtin pushd will auto-mount the share to a temporary drive, which is accessible from Cygwin.
C:> pushd \\myserver\photos\original
Z:\original>
c# log each msg with line number + thread id
It also logs the file name, method name and line number of top 2 levels on the call stack
public static void Info(Object o, bool isStackTraceNeeded = false)
{
/*According to MSDN:
* An operating-system ThreadId has no fixed relationship to a managed thread, because an unmanaged host
* can control the relationship between managed and unmanaged threads. Specifically, a sophisticated host
* can use the CLR Hosting API to schedule many managed threads against the same operating system thread,
* or to move a managed thread between different operating system threads.
*/
var winThrId = AppDomain.GetCurrentThreadId();
var thId = "/T" + Thread.CurrentThread.ManagedThreadId + "/" + winThrId + "/ ";
#region locator
StackTrace stackTrace = new StackTrace(fNeedFileInfo:true);
var frames = stackTrace.GetFrames();
StringBuilder locator = new StringBuilder(StackFrameToStr(frames[1]));
if (frames.Length > 2)
locator.Append(StackFrameToStr(frames[2]));
var locator2 = "{" + locator.ToString().Trim() + "}";
var msg = thId + locator2 + (o ?? "_nul_");
#endregion
if (isStackTraceNeeded) msg += "\n" + stackTrace;
log4n.Debug(msg);
//System.Diagnostics.Trace.Write("Trace is possible as well.");
System.Diagnostics.Debug.WriteLine(msg);
Console.WriteLine(msg);
return;
}
public static string StackFrameToStr(StackFrame f)
{
return Path.GetFileNameWithoutExtension(f.GetFileName()) + "." + f.GetMethod().Name + "." +f.GetFileLineNumber() + " ";
}
}
c# get base name from a full path
Path.GetFileNameWithoutExtension(string)
Usage example:
public static string StackFrameToStr(StackFrame f) {
return Path.GetFileNameWithoutExtension(f.GetFileName()) + "."
+f.GetMethod().Name + "."
+f.GetFileLineNumber() + " ";
}
Tuesday, November 27, 2012
Monday, August 22, 2011
simple snoop table to monitor DB access
charp1 VARCHAR(16384) DEFAULT '' NULL,
charv1 VARCHAR(16384) DEFAULT '' NULL,
charp2 VARCHAR(16384) DEFAULT '' NULL,
charv2 VARCHAR(16384) DEFAULT '' NULL,
nump1 VARCHAR(99) DEFAULT '' NULL,
numv1 FLOAT DEFAULT 0 NULL,
datep1 VARCHAR(99) DEFAULT '' NULL,
datev1 DATETIME NULL,
ts DATETIME DEFAULT getDate() NOT NULL,
/* one way to use this table is to save multiple params when calling a proc
insert snoop(charp1,charv1,nump1,numv1,datep1,datev1,sproc)
values('param1',?, 'param2',?, 'param3',?, 'myProc')
*/
sproc VARCHAR(99) DEFAULT '' NULL,
ident INT IDENTITY NOT NULL,
remark VARCHAR(99) DEFAULT '' NULL
)
Friday, April 29, 2011
svn folder comparison
local changes, in an offline fashion.
No such feature in subclipse.
exceed copy-paste between win32 and X-windows
and X windows. I know 2 options.
Note I always enable auto-copy-x-selection and
auto-paste-to-x-selection.
-- option: X-selection-page -> X Selection Associated With Edit
Operations set to Primary --
Lesson? "Primary" is the default. In this mode, don't use the xwin
context-menu.
* Simple-Select (without middle-button or context menu) to copy from
unix, paste to win32? Yes
* Simple-Select (without middle-button or context menu) to copy from
unix, middle-button to paste to unix? yes
* Select from win32, middle-button to paste in unix? Yes
* Select from win32, context-menu->edit->paste in unix? no
-- option: X-selection-page -> X Selection Associated With Edit
Operations set to Clipboard --
This is suggested on some webpage. It also enables copy-paste between
unix and windows.
Saturday, May 29, 2010
capture text selection in a JTextComponent
public void caretUpdate(CaretEvent e) {
int dot = e.getDot();
int mark = e.getMark();
if (dot == mark) return; // no text selection
if (!(e.getSource() instanceof JTextComponent)) return;
String selection = ((JTextComponent) e.getSource()).getSelectedText();
Sunday, March 9, 2008
Thursday, July 12, 2007
for loop dos^shell
--shell:
i=4; while [ $i != 0 ]; do
i=`expr $i - 1`
done
The let command is a replacement for the old method of performing shell arithmetic using the expr command.
# Note: != syntax is easier to remember and less error-prone than -le. Now, If you must count from 1 upward,
i=1; while [ $i -le 4 ]; do
i=`expr $i + 1`
done