Sunday, April 25, 2010

SAP IDES 4.7

The best place to start learning SAP is to try out the SAP IDES, International Demonstration and Education System. Here are some of the default settings for IDES 4.7 after installation:
  • Client ID: 800
  • Login user/pwd: sap*/06071992
  • Login user/pwd: ddic/19920706

Saturday, April 10, 2010

How to remote debug Tomcat server code?

Either you are a developer of Tomcat or you would like to see how the Tomcat works in a live mode, you may want to set a few break points in the Tomcat codes and to see the code in the live run. How could you set up remote debug for tomcat? Thanks for the JPDA(Java Platform Debug Architecutre) we can easily achieve this goal.
  • Start tomcat server with remote debug enabled with JVM parameters: -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y and make sure you setting suspend=y to let the tomcat server suspend and wait for debugger to attach to it.
  • Start your debugger, I am using Intellij Remote Debug, and here is the settings: Host: localhost Port: 8000
That is all. Happy debugging.

Sunday, April 4, 2010

Install lxml on Cygwin

To install lxml on Cygwin you need jump through a few hoops, to save who wants to get it done smoothly, I write down the necessary steps:
  • Make sure install the following package for cygwin by using Cygwin setup libxml2, libxml2-devel, libxslt, libxslt-devel, python-libxml2, python-libxslt
  • If you got lots of errors about debug format:
    • try to add -gdwarf-2 to CFLAGS
      • export CFLAGS="-gdwarf-2"

Using pip, virtualenv, and virtualenvwrapper in Cygwin

I have been using pip, virtualenv, and virtualenvwrapper in Cygwin for long time, it is pretty handy to isolate my development environment for each python projects I am working on. But I still need to think about what need to be done to setup all the pip, virtualenv, and virtualenvwrapper on Cygwin. To save my time and help anybody would like to setup the stuff on Cygwin, I recorded the process as following:
  • Use Cygwin setup to install Python for Cygwin.
  • Install easy_install in your Cygwin: download and run ez_setup.py in Cygwin.
  • Install pip by using easy_install: eazy_install pip.
  • pip install virtualenv
  • pip install virtualenvwrapper
  • add the following lines into your ~/.bashrc
    • export WORKON_HOME=/cygdrive/c/labs/virtualenvs
      source /usr/bin/virtualenvwrapper_bashrc
That is all, now you can create a new virtualenv in your Cygwin: mkvirtualenv my-first-env. You can use pip to install the specific packages you need for your virtualenv. To activate your virtualenv: workon my-first-env. To deactivate your virtualenv: deactivate. To remove the virtualenv: rmvirtualenv my-first-env.

Monday, March 29, 2010

Using HQL Console for JPA facet in Intellij

You got a complicated HQL or JPAQL in your code that has some problems, you need to verify what exactly the query is doing, how should you go ahead to test run it in your database? One option is that you can read the HQL or JPAQL and manually translate it to SQL statement and run the sql statement in your Database, however, this method is error prone and tedious. Another option is use the HQL Console came with Intellij, I found this method is easy and more accurate comparing to the previous options. Here is how I did it:
  • Create a DataSource in Intellij, let's name it datasource_1
  • Go to the Project->View:J2EE structure->right click the module your pojos are located in, edit the JPA facet properties to set datasource_1 maps to the desired Persistent Unit, and set the default JPA provider to: Hibernate.
  • Project->View:J2EE structure->right click the Persistent Unit, you should be able to start HQL Console.
  • You can paste your HQL or JPAQL in the HQL Console and try it out, or you can generate SQL for it and run the SQL in your DB.
Update: In Intellj 9, there is a little bit change where you can find the Persistent Unit to start HQL Console, you should click the Persistence tab on the left corner of Intellij 9.

Wednesday, December 9, 2009

Unable to access jarfile on Cygwin

Today I ran into a strange problem on Cygwin: I give the full path to the jar file for the java command, but strangely, the java runtime shows me the error message: Unable to access jarfile /cygdrive/c/pathtojar/.yuicompressor.jar. What is going on? did I have a typo? No. Then Why? After scratch my head enough, I figure out that the java in Cygwin does not like Unix format path to specify the jar file. You can use cygpath to do the trick to convert the Unix format path to mixed(-m) or windows format(-w) path, the java command will happily take it and use the jar file. Here are the two commands that works for me:
  • java -jar `cygpath -m /cygdrive/c/pathtojar/.yuicompressor.jar`
  • java -jar `cygpath -w /cygdrive/c/pathtojar/.yuicompressor.jar`

pip install python packages makes it easy

pip is easy_install replacement, and it is easy to use. Here are some features I recently used:
  1. To install something from Python Package Index, for example, Django 1.1, you just issue: pip install django, it will download it and install it.
  2. To see what Python Packages were installed by pip, you can use command: pip freeze, of course, you can redirect the output to a file and pass around.
  3. To uninstall a Python Package, for example, Django 1.1 installed in step 1, the command is: pip uninstall django.
  4. To install some Python Package you may run into error: No distributions at all found for xxxxx, you can supply the package file url to the pip install command, for example, if you want to install Django 0.96.5, here is the command: pip install http://www.djangoproject.com/download/0.96.5/tarball/, this one is pretty cool, if you can find the package gz file, then you can install it by using pip.