Stuckness shouldn't be avoided. It's the psychic predecessor of all real understanding. An egoless acceptance of stuckness is a key to an understanding of Quality, in mechanical work as in other endeavors. It's this understanding of Quality as revealed by stuckness which so often makes self-taught mechanics so superior to institute-trained men who have learned how to handle everything except a new situation. - Robert Pirsig, Zen and the Art of Motorcycle Maintenance
Monday, December 21, 2009
Debugging Java
'-Xdebug -Xrunjdwp:transport=dt_socket,address=41422,server=y,suspend=n'
and then use jdb to connect to the port 41422.
Installing JDK 1.5 on Ubuntu
http://www.debian-administration.org/article/Installing_Sun%27s_Java_environment_on_Debian_systems
In particular one important step is running:
fakeroot make-jpkg jre-1_5_0_03-linux-i586.bin
Tuesday, December 15, 2009
Using Multiple Java versions
Thursday, November 26, 2009
My gdbinit file
set print pretty on
set print object on
set print static-members on
set print vtbl on
set print demangle on
set demangle-style gnu-v3
python
import sys
sys.path.insert(0, '/home/amit/downloads/gdb_printers/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
Monday, November 16, 2009
Date output for a distinct filename
> date +%Y-%m-%d-%H-%M-%S
2009-11-16-16-33-48
outputfile=/tmp/my-application-output-`date +%Y-%m-%d-%H-%M-%S`.txt
Friday, November 6, 2009
Ubuntu: Upgrade from 9.04 to 9.10
Update : I dont know if it is just me or the new Ubuntu has better music drivers. I am using Rhythmbox, and I think the quality of music is better after the upgrade.
Its like falling in love with Ubuntu all over again.
Epiphany: The Fastest Browser on Ubuntu
Ubuntu: Missing Skype from Panel?
Wednesday, November 4, 2009
Starting an EC2 Instance for Company-wide Development Tasks
Created a generic account (amazon does not allow EC2 instances to be transferred from an account to another, so don't use your personal account to set up an instance for your company) using a generic email, say sales@mycompany.com.
Then go through the process of setting up your AWS account and starting using EC2 (you'll need credit card for this). This process is quite straightforward thanks to the amazon ui (at a few places there are ambiguities though).
Now next I have to set up svn and trac on the EC2 instance. For the company-wide password management, probably LDAP would also be needed. Seems like an onerous task. Lets see tomorrow.
Tuesday, October 27, 2009
Turning Off the Annoying Windows Beep (on Server 2003)
Monday, October 26, 2009
Installing Hudson as a Service on Vista
http://www.mikebosch.com/?p=137
Doxygen Doxyfile Changes I Usually Do (To the Default Generated File)
EXTRACT_ALL = YES
REFERENCES_RELATION = YES
REFERENCED_BY_RELATION = YES
the following for browsing through sources:
SOURCE_BROWSER = YES
INLINE_SOURCES = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
for collaboration diagrams:
HAVE_DOT =YES
Sunday, October 25, 2009
Mediawiki SMTP Setup On Windows
Tuesday, October 20, 2009
Installing Secure SVN Server on Windows
I started out with setting svn server as per http://www.codinghorror.com/blog/archives/001093.html. Then I followed http://turnleft.inetsolution.com/2007/07/how_to_setup_subversion_apache_1.html.
In the middle I got stuck with htpasswd command as it would not execute, saying "Illegal character :". Something to do with the file path. So I installed cygwin, including openssl (followed http://daveonsoftware.blogspot.com/2007/06/installing-cygwin-with-openssl-package.html). After this the htpasswd command worked fine.
Then, as per http://raibledesigns.com/wiki/Wiki.jsp?page=ApacheSSL I set up apache with ssl.
I tried to start Apache, but won't. In Event Viewer I saw it returned error code 1. As per http://www.issociate.de/board/post/474531/2.2.6_won%27t_start_-_The_Apache2.2_service_terminated_with_service-specific_error_1_%280x1%29..html I debugged httpd.exe using command line. It said "DAV is not allowed here". The following configuration (amendment over the "turnleft" solution above) worked (I have replaced SVNParentPath by SVNPath too):
<location /svn>
DAV svn
SVNPath C:/svn/repository
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile conf/svn-passwd.pass
AuthzSVNAccessFile conf/svn-authz.conf
Require valid-user
</location>
Creating a service under windows
sc create svnserver binpath= "c:\svn\bin\svnserve.exe --service -r c:\svn\repository" displayname= "Subversion" depend= Tcpip start= auto
sc config binpath = ...
Thursday, October 15, 2009
Latex Figure Numbering Incorrect
Tuesday, October 13, 2009
Useful Synchronized Notes
Thursday, October 8, 2009
Using Xterm on Ubuntu
My simple .Xdefaults file:
! you should run> xrdb < ~/.Xdefaults
xterm*font: -*-lucidatypewriter-medium-r-*-*-12-*-*-*-*-71-iso8859-*
xterm.vt100.background:black
xterm.vt100.foreground:grey
Wednesday, October 7, 2009
VMWare Player with Ubuntu on Windows Vista
Probably a more straightforward way is to download from http://www.vmware.com/appliances/
Saturday, October 3, 2009
Trying out Medical on Ubuntu 9.04
Wednesday, September 30, 2009
Hudson: Memory Leaks and Other Issues
Out of Memory
The memory usage of Hudson build system rose to 800MB or so after I left it to run for a couple of weeks. Some component seems to be causing leaks. There have been earlier complaints about memory leaks in Hudson, for example, http://www.nabble.com/hudson-memory-leak-td23221034.html but not sure whether these issues were confirmed and/or solved. As per Hudson "Memory Leak Document" at http://wiki.hudson-ci.org/display/HUDSON/I%27m+getting+OutOfMemoryError, I have restarted JVM with the suggested option of "-XX:+HeapDumpOnOutOfMemoryError". I am not running Hudson under distributed build. It is possible that some plugin is eating the memory.
Doxygen Plugin
With doxygen plugin I get:
FATAL: error
hudson.AbortException: The directory 'C:\Users\g0700201\.hudson\jobs\
at hudson.plugins.doxygen.DoxygenDirectoryParser.retrieveDoxygenDirectoryFromDoxyfile(DoxygenDirectoryParser.java:278)
CCCC Plugin
I dont know how anybody ever got this plugin to work. Will cccc I get:
Parsing cccc results
hudson.AbortException: Parsing file error
at com.thalesgroup.hudson.plugins.cccc.CccccParser.invoke(CccccParser.java:76)
at com.thalesgroup.hudson.plugins.cccc.CccccParser.invoke(CccccParser.java:50)
Saturday, September 19, 2009
Using Thunderbird within NUS / Setting up LDAP
- Choose Add Dir.
- For ldap-server, enter ldapstf.nus.edu.sg (for staff address book) or ldapstu.nus.edu.sg (for student address book)
- For search-base, enter DC=stf,DC=nus,DC=edu,Dc=sg (for staff address book) or DC=stf,DC=nus,DC=edu,Dc=sg (for student address book) Set use-implicitly-from-compose and Pine will lookup names you type in the To: line while composing messages in the directory. If there are multiple names that match you will be prompted to select from a list of matching entries.
I had setup thunderbird with IMAP. I installed the add-on "Email Address Crawler" https://addons.mozilla.org/en-US/thunderbird/addon/9995 which crawls all mails and reads addresses into the address book. Then I ran the crawler on my Inbox and Sent Mail. This was enough for all the email addresses I usually use.
I also checked the option: "Preferences > Composition > Addressing > Automatically Add Outgoing Email Addresses to My: ".
Monday, September 14, 2009
Hudson Too Has Problems (Subversion Update Mode)
I was wishing that hudson would not have many bugs, as its GUI is quite sleek. But turns out it is not so. I'm facing a curious problem: although I've set to "svn update", hudson always tries to delete the workspace at the end of the build, and always fails. This problem has been reported before here: https://hudson.dev.java.net/issues/show_bug.cgi?id=86&historysort=new.
The bug report says the issue is already fixed, but I am facing the same problem even now. It may be triggered because I am using "local directory" option to check out svn code into a particular subdirectory in the workspace (then it is an another bug).
On a side note: The fix of the above bug report is scary -- just a "/" can cause such a mess -- this probably means the code is not too well written; that's why I'm facing a similar bug.
Update: Sept 22, 2009
I am quite happy with hudson so far, although I had trouble here and there. In summary I face the following troubles currently:
- Hudson deletes the svn checked out code (using CMakebuilder), even when "use svn update" is marked. To work around, I've reverted to clean build, and reduced the frequency of checkout. Update: It turns out the problem was due to CMakebuilder plugin, which cleaned up the directory, not hudson.
- I'm not sure how to use Hudson CMakebuilder plugin on windows. To work around, I modified the shell script provided at http://schneide.wordpress.com/2009/04/07/cmake-builder-plugin-for-hudson/. Then Hudson complained that it can't execute sh, so I installed cygwin and appended its bin directory into my PATH environment variable. I don't have time to try cmakebuilder again after installing cygwin, but that might also work fine. I believe that the CMakebuilder plugin has created more problems for me than it solved. It needs to be rewritten. I will try to do it next week.
- I can't install Hudson as a Windows Service through the dashboard. I'm getting AccessDenied error as below, even though the current user has Admin privileges.
WMI.WmiException: AccessDenied
at WMI.WmiRoot.BaseHandler.CheckError(ManagementBaseObject result) at WMI.WmiRoot.ClassHandler.Invoke(Object proxy, MethodInfo method, Object[] args) at WMI.Win32ServicesProxy.Create(String , String , String , ServiceType , ErrorControl , StartMode , Boolean , String[] ) at winsw.WrapperService.Run(String[] args) at winsw.WrapperService.Main(String[] args)
Sunday, September 13, 2009
Installing CDash
Warning: Read Conclusion at the end of this post now.
* download Apache and PHP as described at http://public.kitware.com/Wiki/CDash:Installation. Make sure you enable the PHP modules as listed on the Kitware link.
* configure PHP and Apache as described at "Configuring PHP" and
"Running PHP 5 as an Apache Module" respectively on this page: http://www.thesitewizard.com/php/install-php-5-apache-windows.shtml
* Download CDash and copy to apache htdocs directory (remove the CDash version number if any)
*Create cdash/config.local.php as on the Kitware link.
* Now I tried to open http://localhost/CDash/login.php in my web browser. This returned "Fatal error: Allowed memory size of 134217728 bytes exhausted" at line 180 of config.local.php. Reading this file revealed that the file recursively included itself. So I commented out the lines as follows:
//$localConfig = dirname(__FILE__).'/config.local.php';
//if ( file_exists($localConfig) )
// {
// include($localConfig);
// }
After this change, the url opened file. The only remaining thing now is to set up the database.
* I installed MySQL as at Kitware link. During installation I set an administrator account called 'root'. I use this account to login into MySQL. Then I run:
mysql> create database cdash;
mysql> create user 'cdash'@'localhost' identified by 'passwd';
mysql> grant all privileges on cdash.* to 'cdash'@'localhost' with grant option;
I make the corresponding changes in cdash/config.local.php to set the:
// Hostname of the database server
$CDASH_DB_HOST = 'localhost';
// Login for database access
$CDASH_DB_LOGIN = 'cdash';
// Password for database access
$CDASH_DB_PASS = 'passwd';
// Name of the database
$CDASH_DB_NAME = 'cdash';
// Database type (empty means mysql)
$CDASH_DB_TYPE = 'mysql';
There were errors even now, as I tried to register a new user. Then I tried to open http://localhost/CDash/install.php -- this indicated:
Database Type: | mysql |
Database Hostname: | mysql |
Database Login: | cdash |
Database Name: | cdash |
Admin Email: __________
Admin Password: ______
This is different from what I wanted -- I wanted the Database hostname to be "localhost". I could not figure out how CDash set it to mysql (I think this is a bug; which does not augur well for CDash. Probably it has a lot of bugs). Anyway, I proceeded with creating an Admin by filling Email and Password. This worked.
There is still some problem with opening http://localhost/CDash/index.php. This just shows some php script -- so the PHP script is probably malformed.
Conclusion: I think it would be too much effort to work with CDash as even installation is so tedious. I'll move to using Hudson for now, which from my limited previous experience was rather user-friendly.
Friday, August 28, 2009
Second Interaction with Tesseract OCR
After this I tried running
tesseract phototest.tif test1 segdemo interas per their instructions, but it would not work. I realized this is because of missing file at /usr/local/share/tessdata. Therefore, I did:
sudo cp -R
But this undid the change done previously (in the first installment) for english recognition. Therefore I had to copy the eng data files again:
sudo cp -R
After this I ran the viewer on my own image. It worked but it kept on saying
ScrollView: Waiting for server...
ScrollView: Waiting for server...
ScrollView: Waiting for server...
ScrollView: Waiting for server...
Some problem with starting the server. I retried with the image they provide in
Sometimes I had to manually kill the previous java GUI as it would not allow the GUI to start the next time.
I still have not not been able to run the viewer with my own images. Some catch there.
Thursday, August 27, 2009
Rdesktop woes: Connecting from Linux to Windows Vista
I also installed "GRDC" Gnome RDC client, which works quite well (as well as windows rdesktop client).
Still in lookout for a better solution to connect to Vista, without the freezes.
Excluding Multiple Directories using Doxygen EXCLUDE tag
EXCLUDE =
Doxygen is such a nifty tool. The pleasure would have been additional if the config files contained very simple format examples.
Default Doxyfile for Code Understanding
28c28
< project_name =" ---"> PROJECT_NAME = project_name
300c300
< extract_all =" NO"> EXTRACT_ALL = YES
305c305
< extract_private =" NO"> EXTRACT_PRIVATE = YES
310c310
< extract_static =" NO"> EXTRACT_STATIC = YES
473c473
< show_directories =" NO"> SHOW_DIRECTORIES = YES
590c590
< recursive =" NO"> RECURSIVE = YES
683c683
< source_browser =" NO"> SOURCE_BROWSER = YES
688c688
< inline_sources =" NO"> INLINE_SOURCES = YES
700c700
< referenced_by_relation =" NO"> REFERENCED_BY_RELATION = YES
706c706
< references_relation =" NO"> REFERENCES_RELATION = YES
738c738
< alphabetical_index =" NO"> ALPHABETICAL_INDEX = YES
977c977
< generate_latex =" YES"> GENERATE_LATEX = NO
1342c1342
< have_dot =" NO"> HAVE_DOT = YES
1390c1390
< uml_look =" NO"> UML_LOOK = YES
1482c1482
< dot_transparent =" NO"> DOT_TRANSPARENT = YES
First Interactions with Tesseract OCR on Ubuntu Linux
$> tesseract text_image.jpg result
Unable to load unicharset file /usr/local/share/tessdata/eng.unicharset
I made the changes as per comment by caitifty on Feb 28, 2009 (sigh, there is no permalink) at http://code.google.com/p/tesseract-ocr/wiki/ReadMe . The change is to replace/add the tessdata directory at /usr/local/share/tessdata . After this, I get
$> tesseract text_image.jpg result
Tesseract Open Source OCR Engine
name_to_image_type:Error:Unrecognized image type:text_image.jpg
IMAGE::read_header:Error:Can't read this image type:text_image.jpg
tesseract:Error:Read of file failed:text_image.jpg
Segmentation fault
It appears that it does not recognize jpg file input. So I use imagemagick's "convert" tool to convert to tif format that tesseract seems to recognize.
$> convert text_image.jpg text_image.tif
and then
$> tesseract text_image.tif result
Tesseract Open Source OCR Engine
Image has 8 * 3 bits per pixel, and size (1000,171)
Resolution=200
$> cat result.txt
The last command produced the recognized text. The results were quite good.
Wednesday, August 19, 2009
Sourceforge: Recovering Wikispaces Dump after Migration to Mediawiki
Don't be. It is easy. I did this (as described at https://sourceforge.net/apps/trac/sourceforge/wiki/SFTP):
:~$ sftp
Connecting to frs.sourceforge.net...
The authenticity of host 'frs.sourceforge.net (216.34.181.57)' can't be established.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'frs.sourceforge.net,216.34.181.57' (RSA) to the list of known hosts.
sftp> help
sftp> cd /home/groups/c/cr/crackpot
sftp> ls
cgi-bin htdocs persistent wikispaces-dump.zip
sftp> get wikispaces-dump.zip
Fetching /home/groups/c/cr/crackpot/wikispaces-dump.zip to wikispaces-dump.zip
/home/groups/c/cr/crackpot/wikispaces-dump.zip 100% 648KB 49.8KB/s 00:13
sftp> quit
Monday, August 10, 2009
Flickr with Linux (Aug 10, 2009)
* Postr
* Fireuploader (firefox plugin)
* jUploader
Postr and Fireuploader appear buggy and have a somewhat unintuitive interface. I struggled with them a lot. Finally I read somewhere on the net about jUploader.
I downloaded jUploader (not present in Synaptic Package Manager on my ubuntu). After authentication, the first problem I faced is that it does not recognize "JPG" (uppercase) extension. So I had to change all my filenames to lowercase using
rename 'y/A-Z/a-z/' *
I also changed the default permission on upload from public to private from its menu. Then I just dragged and dropped my photos onto jUploader, selected all photos, added to photoset and clicked on upload. It worked just fine after this. Although not perfect, jUploader was close.
Note: I faced the problem of "I don't recognize this file format" because there was no privilege to read the image file as my current user.
I installed the flock browser, which also worked just fine (or should I say marvellously fine).
Friday, July 31, 2009
Rotating Wallpaper/Desktop Background in Ubuntu
Thursday, June 18, 2009
Some Refactoring Notes
Used to indent code:
find . \( -name "*.hpp" -or -name "*.cpp" \) | xargs astyle --indent=spaces=4 --brackets=block --indent-labels --pad=oper --one-line=keep-statements --convert-tabs --indent-preprocessor
Generating Code::Blocks Project using Cmake:
cmake -G "CodeBlocks - Unix Makefiles" ..
Regular Expressions used during refactoring using Code::Blocks:
search replace
utility::shared_ptr<([\w ]*)> \1\&
What Sucked
There is no machine learning in the editors. Therefore, every task has become repetitive.
Wednesday, June 17, 2009
Understanding boost::ptr_container
For example, you would probably expect from a vector of pointers to return a pointer when you perform indirection:
std::vector
int* p = v[i]; // ok
But ptr_vector returns a reference:
std::vector
int* p = v[i] ; // error: does not compile
int& p = v[i]; // ok
But the interface of ptr_vector is suited to work with algorithms:
find(v.begin(), v.end(), 3); // works only with ptr_vector
Transform Iterators
The transform_iterator can used with maps to traverse over just the keys or just the values contained in the map. An adaptor can be written to convert a usual iterator of a map into an iterator that traverses only over the value. This adaptor would have to be rewritten for ptr_map and its relatives because of its different interface.
Erasing An Element Using auto_type
typedef boost::ptr_set
S s;
int* j = new int(3);
s.insert(j);
s.insert(new int(5));
s.insert(new int(7));
S::iterator it = s.find(3);
s.release(it);
std::cout << *j << std::endl; // produces 0xfeeefeee using VS
If the second last line is changed to
S::auto_type r =s.release(it);
the correct value 3 is printed. r acts just like auto_ptr: it holds a reference to the object and thus prevents it from destruction. The user has the responsibility to destroy r when the object is no longer needed. r can also be dereferenced:
and the pointer can be released using r.release().
Currently, you also cannot store a pointer to a const inside the ptr_container.
Comparison with std container of pointers
TODO
Comparison with std container of shared pointers
TODO
Conclusion
The different interface of ptr_containers can be frustrating for new users but hopefully not so much after reading this article. The newer interface makes clear that the ptr_container has exclusive ownership and thus reduces bugs when compared to using a standard container of pointers.
Wednesday, June 10, 2009
Latex Image
jpeg2ps -h -r 600 image.jpg > image.eps
Thursday, May 28, 2009
Connecting to Wired Connection on Linux, Else to Wireless
Wicd connects to a wired connection if there is any, else allows you to connect to a wireless. It works just fine, but does not connect to the wireless automatically (not sure though, probably only sometimes). But I what I needed works just fine with wicd and I am totally satisfied.
Thursday, May 7, 2009
Upgrading to Jackalope
Wednesday, May 6, 2009
Back to Wired Connection
Friday, April 17, 2009
Beamer Font Problem
LaTeX Font Warning: Font shape `OT1/cmss/m/n' in size <4> not available
(Font) size <5> substituted on input line 87.
Further, in the dvi output the headings did not appear well. Compiling with another example from http://www.math.utah.edu/~smith/Beamer showed the same problem.
This was a RED HERRING. Finally, when I built the ps from the dvi, all worked just fine.
Thursday, March 26, 2009
Python
One good way to install is using easy_install, but it looks not possible for python 2.6. Finally I gave up on easy_install. I downloaded the matplotlib library (for python 2.5 as there is none corresponding to 2.6).
Finally I concluded that there is little support for python 2.6 and I uninstalled the 2.6 version and installed the 2.5 version.
Wednesday, March 25, 2009
Installing Mingw
First, you have to make sure the directory where you are installing has no space character in its name. Next, they "recommend" installing in C:\Mingw.
Third, when I tried a custom install with g++ and mingw-make included, there was a problem: the link connection to mingw-make download site never worked. This lead to problems during installation. I retried the installation (giving the same installation path), but the same problem occurred again and again. Finally I did a standard installation, which worked just fine.
I will retry installing the mingw-make by updating mingw later on (right now the connection breaks).
Saturday, February 7, 2009
Skype with Ubuntu Woes
http://tips4nongeeks.blogspot.com/2009/01/skype-sound-problem-in-ubuntu.html#comment-form
I'd encourage you to "try" this - I don't have much technical insight into why this works, so it might not work for your case. For mine it did. I am using Acer Aspire laptop.
Hello friends,
after messing with commands and stuff around to try to
solve the famous skype echo, I finally solved this pain in the ass!!
for intrepid ibex ubuntu.
If you follow this step by step your skype should work, at least I garantee that you will learn something.
so first of all don’t use the commands to remove any package
from your ubuntu specially pulseaudio, is useless and you will have an other pain in the ass trying to find what package to install:
1) for the audio playback echo (when trying to make a call),
-go to the small skype logo located in the bottom left corner
when you are loged in skype-> go to options-> sound devices
- change all default options to “pulse”.
Now you should be able to make a call test without the message
‘audio playback problem’ or stuff like that.
And you will have the next typical echo that your microphone
will not be working.
2) for the microphone echo (im using a headset):
-go to the upper panel in your window where is all the application-places-system options, in the right upper corner you will find a small speaker icon-> right click with the mouse-> open volume control-> preferences-> select all options specially those like headset- capture-capture1-capture2- input source- etc. those are not working !!!!
-now in the volume control ->label “options”-> change default options for “Mic” and “Digital Mic1″.
-in the next label “recording”-> maximum volume for all the stuff.
- The device should be “HDA alsa mixer”
-finally confirm in ->system-> preferences-> sound preferences, that the sound capture is set to “HDA analog (ALSA)” similar to the previous point.
Now you can try to record something with the ’sound recorder program’
it should work.
And the best Skype should work, no shity messages no shity problems (although when I use the inbuild mic instead of my headset the sound is so so).
I hope my suggestions are useful.
best of luck,
bye.
Friday, January 9, 2009
Refactoring my c++ code using bash
find . \( -name "*.h" -or -name "*.cpp" \) | xargs grep -i ActionResource -l | sort | uniq | xargs sed -i 's/ActionResource/Actuator/g'
and similarly for actionResource, ACTIONRESOURCE, ACTION_RESOURCE
find . | grep -v ".svn" | xargs grep -l TemporalInterval | xargs sed -i 's/TemporalInterval/TimeInterval/g' <-- this is for CMakeLists.
Renaming files
find . \( -name "*.h" -or -name "*.cpp" \) | sed 's/\(.*\)ActionResource\(.*\)$/mv "&" "\1Actuator\2"/'| grep ^mv | sh
Deleting ! files from svn
svn stat | grep ! | cut -f 3- -d " " | xargs svn del