All Posts from Oktober, 2009

Stromverbrauch Macbook Arbeitsplatz

Oktober 28th, 2009 | By Christoph in Software-Development | 2 Comments »

Letzte Woche hatte ich mir rein aus Interesse mal ein Strommessgeraet von den Stadtwerken geholt, um mal meinen Arbeitsplatz im Arbeitszimmer durchzumessen.

Strommessgeraet1

Komponenten:

  • Macbook 13″ 2.16 GHz Intel Core 2 Duo (gekauft Oktober 2007),2 GB RAM
  • 24″ TFT Samsung SyncMaster 245B
  • Schreibtischlampe
  • DENON Verstaerker als Stereoanlage
Geraet Verbrauch minimal Verbrauch maximal
Macbook 13″ (gekauft Oktober 2007) 35 Watt 39 Watt
24″ TFT Samsung SyncMaster 245B 23 Watt 73 Watt
Schreibtischlampe Halogen 15 Watt 15 Watt
DENON Verstaerker als Stereoanlage 16 Watt 28 Watt
Summe 89 Watt 155 Watt

Durchschnittskosten pro 24h: 0,56 EUR (normale Freizeitarbeit, kein Freelancing)
Durchschnittskosten pro Jahr:  ca. 205 EUR

Minimal / Maximal:

Mit Minimal meine ich, dass der die Helligkeitseinstellungen beim Display bzw. die Lautstaerke der Stereoanlage minimal war. Maximal heisst beim Display volle Helligkeit und Lautstaerke etwas ueber Zimmerlautstaerke.

Fazit

Interessant was die Helligkeit allein ausmacht. Auch wenn alle Geraete ausgeschaltet sind, werden noch ca. 5 Watt gezogen. Das gilt auch fuer den Sleep-Modus des Macbooks, wo immer noch 9 Watt messbar waren, auch wenn alle anderen Geraet ausgeschaltet waren.

Aus diesem Grund schalte ich ab jetzt immer die komplette Steckdosenleiste ab, wenn ich das Haus verlasse.

Resolving Hibernate exceptions with MySQL on Linux because of case-sensitive table names

Oktober 16th, 2009 | By Christoph in Software-Development | No Comments »

Today I tried to deploy my application from my OSX dev machine to a server on Amazon EC2.

I was running into exceptions like this:

Caused by: org.hibernate.exception.SQLGrammarException: could not load an entity: [app.model.entities.Jobs#8]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1895)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:71)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:65)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3072)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:434)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:415)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:165)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:207)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:126)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:905)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:822)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:815)
at org.springframework.orm.hibernate3.HibernateTemplate$3.doInHibernate(HibernateTemplate.java:569)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
… 30 more
Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table ‘database.Files’ doesn’t exist

Although all my table names are lowercase it seems that Hibernate tries to create case-sensitive SQL queries which relate to the name of my POJOs (e.g. MyPojo) .

While this was working on my OSX it didn’t on Fedora Linux on EC2.

Solution:

In my /etc/my.cnf I had to add the following configuration property:

lower_case_table_names=1

Thanks to the following articles which helped me:

http://www.parkroad.co.za/mysql-case-sensitivity-table-names-between-windows-and-linux-systems

http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html

https://forum.hibernate.org/viewtopic.php?p=2394017

Resolving trouble with Ruby On Rails with MySql on XAMPP on OSX Snow Leopard

Oktober 9th, 2009 | By Christoph in Software-Development | 3 Comments »

I was trying to work through the Get Started guide of Ruby On Rails but I had issues when I was trying to run the command “rake db:migrate” the first time.

It was complaining that the mysql gem was not up to date or something and I had to do a “gem install mysql”. But that resulted in errors as decribed in the following blog posts:
http://wonko.com/post/how-to-install-the-mysqlruby-gem-on-mac-os-x-leopard#comment-5544

http://boonedocks.net/mike/archives/175-MAMP-and-the-Ruby-MySQL-Gem.html

I had issues as I was using XAMPP and “gem install mysql” was complaining about missing mysql.h I had to upgrade my XAMPP and additionally download the XAMPP developer tools.

Go to http://sourceforge.net/projects/xampp/files/ and download:
xampp-macosx-1.7.2a.dmg
xampp-macosx-1.7.2a-dev.dmg

Of course first I had to remove/backup my existing XAMPP folder under /Applications/xampp Then I installed the new version and after that the xampp-macosx-1.7.2a-dev.dmg developer pack. this xampp-macosx-1.7.2a-dev.dmg contains the mysql.h header files and so on. After that dev tools installation the XAMPP folder has a new folder called “include” which has all the mysql header files like mysql.h Then the following command line worked for me:

sudo ARCHFLAGS=”-arch i386″ gem install mysql — –with-mysql-dir=/Applications/XAMPP/xamppfiles/

Note I was pointing to the xamppfiles base-dir as the mysql-dir, because then all the paths are relative as if this would be the mysql root dir.

Update: But as I am writing this, I was running into new trouble. It seems I need to update to the 64bit MySQL Version because of Snow Leopard, because now I am running into new problems:

Couldn’t create database for {”username”=>”root”, “adapter”=>”mysql”, “database”=>”mydatabase”, “password”=>nil, “socket”=>”/tmp/mysql.sock”}, charset: utf8, collation: utf8_unicode_ci (if you set the charset manually, make sure you have a matching collation)

According to http://www.techskater.com/ruby-on-rails/problems-with-mysql-gem-and-rake-on-snow-leopard/ this seems to be related to Snow Leopard and MySql 32bit vs. 64bit. On Snow Leopard the Gem Mysql needs to be build against a 64bit mysql or so.

I am currently reading http://weblog.rubyonrails.org/2009/8/30/upgrading-to-snow-leopard to resolve the issues and update MySQL. Let’s see…

Update 2: So I have finally installed MySQL 64Bit as suggested on the page above and I can start it. A “rake db:create” has also worked now as I could verify via MySQL Query browser. Let’s see what is the next thing which is not working…

Update 3: It really looks I am done and I am currently working through the Getting Started Guide.

Conclusion: 3 hours wasted to get it running on my OSX Snow Leopard. I did the same yesterday on my Windows machine at work and I didn’t have any such problems. It seems to be only related to Snow Leopard.  You might just read this page http://weblog.rubyonrails.org/2009/8/30/upgrading-to-snow-leopard and ignore everything above, but I leave it in this blog post for further reference. The difference is that you might not continue using the MySQL from XAMPP but a standalone mySQL. But you can still use phpMyAdmin from XAMPP or MySQL Query Browser to manage your database.


Eclipse PDT and XDebug finally working

Oktober 5th, 2009 | By Christoph in Software-Development | 1 Comment »

Yesterday I wanted to give myself a little update what’s going on in the PHP world as I was deeply involved in Java/J2EE in the last 4 years and haven’t done any PHP work besides maintaining some of my websites.
So I decided to give the Zend Framework a try and started going through the Quickstart guide.

Something what always enjoyed in the Java world was the availability of easy debugging. In PHP in the past I have used ugly “echo …” debugging statements and never really digged any deeper. Now the time has come and I read that it is possible too but maybe with some more setup efforts.

Environment

The following articles helped me to get setup:

Even though the articles are pretty good I had some minor problems, especially figuring out what exactly I have to add to my php.ini.

That’s why I give you what I have added to the very bottom of my php.ini which lives in the following path: /Applications/xampp/etc/php.ini

[xdebug]
zend_extension=/Applications/xampp/xamppfiles/lib/php/php5/extensions/no-debug-non-zts-20060613/xdebug.so
xdebug.auto_trace=1
xdebug.remote_enable=On
xdebug.remote_host=”localhost”
xdebug.remote_port=9000
xdebug.remote_handler=”dbgp”

The xdebug.so was mentioned in first tutorial above and I got it from here (Komodo IDE: http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging)

Here are some important infos and screenshots which might be helpful in understanding my setup:

  • php executable: /usr/bin/php
  • php.ini: /Applications/xampp/etc/php.ini

One of the most important things was the Path-Mapping, which maps your Eclipse Project structure to the URLs of your web-application.
URL of my app in the browser: http://localhost/zendtest/ZendFramework-1.9.3PL1-minimal/quickstart
Local-Path: /Applications/xampp/xamppfiles/htdocs/zendtest/ZendFramework-1.9.3PL1-minimal/quickstart

This mechanism is important, because it tells the debugger when to stop. If those settings are not correct (and they weren’t correct in my case) then the debugger will not recognize to which file the current URL in the browser belongs to and basically will not stop or will not stop at where you have placed your breakpoint.

Screen shot 2009-10-05 at 6.43.22 PM

Last but not least some screenshots which show the my setup and configuration:

Screen shot 2009-10-05 at 6.40.32 PM

Screen shot 2009-10-05 at 6.41.29 PM

Screen shot 2009-10-05 at 6.48.11 PM

Screen shot 2009-10-05 at 6.46.41 PM