Information Technology Blog

Wednesday, August 31, 2005

jobs@gotjava ...

It’s almost 3 years ago now since I was working on architecture and design for the Java Lobby Job Project . A lot of things happened since then. There were only a few sites where you can bid for small projects. Today there are many interesting sites that offer services of that type. http://www.wizbids.com is really close to what we had in mind. I was looking for a review of these sites on the Net, but I could not find it so far. There is however a dedicated section on http://www.rateitall.com . If you are reading this and know one - please drop me a note. Also let me know if you are thinking about writing one, I would like to contribute.

First of all http://www.linkedin.com is really deserved to be mentioned although it’s not really for finding a gig or a job per se, but you can achieve the same goal minus small contract s and bidding part. It puts an emphasis on your personal network and your profile is really a reflection of that. The credibility of the information there is easily verifiable. Linkedin is also allows you to query jobs and contracts from external services.

Here is the list of sites that offer projects for bidding and allow you to build your personal professional profile:


I would be really interested to learn about different experiences with these sites. So far from what can tell from my personal experience is that http://www.wizbids.com/is very close to what I had in mind for the service like that. Unfortunately it's very short on IT projects offered. Guru.com on another hand is full of projects, but very slow for some reason. There were also opinions posted on the Slashdot.com about some of the sites. http://www.guru.com/, http://www.wizbids.com/, http://www.elance.com/ get a favorable mention there.

Tuesday, August 30, 2005

Amen brother or another article on why XML should be used with caution

In "It's the XML Configuration File's Fault" author points out that XML is a killer technology in a very literal sense - it kills productivity. Personally I went through a pain of at least 3 projects where heavy use of XML had a huge negative impact on application performance and also caused tons of hard to maintain code. The resulting applications were bulky, slow and pain to maintain. The author actually found himself in Python Land before he realized that it was not Java itself to blame. OK, Ant author had already apologized (http://blogs.tedneward.com/default,date,2005-08-22.aspx) and others will follow when they get it. What should we do about it now? Here are a few ideas:

- Use annotations wherever possible and makes sense: Hibernate, EJB3 are using it already
- Don't ever design languages using XML semantic! Please.
- Don't forget about property files for configuration, often you don't need XML
- Avoid using projects that force you into editing XML all the time. Specially so if these XML files are big
- Anytime you find yourself using XML for anything else then data and configuration: stop and think. Chances are there is much better way.

And BTW, may there is a need for new format to replace XML with before people get to far off with Binary XML project. Perhaps considering Python popularity, its great semantic elegance should be considered. For example, how about PML:


book in-stock:true
name:The Salmon of Doubt
author:Douglas Adams


much better looking then:


{book stock="yes"}
{name}
The Salmon of Doubt
{/name}
{author}
Douglas Adams
{/author}
{/book}


And one more thing, we need this new mark up to be embeddable into other languages syntactically.

Monday, August 29, 2005

Projects and sites that create large repositories of creative digital media content

I've decided to summarize a few of my recent findings around digital media sites. I will compile more or less up to date list of the links sometimes soon. I will publish these categorized links under http://www.digitalmediaplace.com:8080/links.jsp . Some commercial sites can be found there already in no specific order. I was asked recently to put a new link in for a mid size stock photography site. This URL seems to be getting popular.

Just like in case with software, commercial creative content creation efforts get a serious competition from the people who just like to create “cool” video, images, art etc. and share it with others. Someone had pointed out that most of the creative art ideas are being generated “at home” and not at the office. While there are many good sites with content “for sale”, the big attempts to aggregate content in any form of “free” are starting getting on the radar recently. The last entry in this area is http://www.youtube.com/ . Watch out, they’ll get scooped by Google or Yahoo any day now ;-). I guess the http://www.flickr.com/ is an “old news” by now, but the site is wildly popular, although there have been great sites like that before with much less hype. http://www.pbase.com/ comes to mind and it was probably one of the best & first which started as a hobby projects.

The most significant effort in the “free” category is probably the Wikipedia family: http://wikimediafoundation.org/wiki/Our_projects . I would personally nick-name this project the “The Encyclopedia Galactica”. The collaborative effort to create central knowledge base to which anybody can contribute and collaborate at the same time - is nothing short of revolutionary. Wikipedia goes far beyond Encyclopedia: Wikimedia, Wikinews, Wikibooks are very significant in its own rights. The projects are ultimately changing the way we generate and process information. It a lot more decentralized with instant feed-back. Wikinews and Wikimedia projects are the most exciting recent projects.

Here is embeded video from youtube.com:


Embedded images from Flickr.com:

Sunday, August 28, 2005

Video Editing on Linux: Kino, ffmpeg, mpeg2enc, mjpegtools, ImageMagick, Gimp ...

For quite some time now I had a video footage I wanted to edit. Video editing is really the only thing I'm still running on windows most of the time. The programs I was using on Windows are slow, memory hogs and also crashing quite often. I have yet to edit single small clip on Windows without crashing a program a few times. (YMMV, may be it's just me ) I've tried most of the popular ones on Windows with Movie Maker being absolutely the worst! Well, this time I decided to try editing clip only on Linux. So I did and uploaded video to youtube.com . The clip became an instant hit with 400 views in a single day! I'm sure its popularity has nothing to do with editing it on Linux, but it was nice anyway and Tanya and I had a few chuckles about it. Here it is, the notes below the clip:


I had the Kino installed and configured and I just had to create devices manually:

$ mknod -m 666 /dev/video1394/0 c 171 16
$ mknod -m 666 /dev/raw1394 c 171 0

Commands for batch processing:
$ ffmpeg -i output2.mpeg -f image -img jpeg still_%03d.jpg # this will export mpeg stream into a sequence of jpeg files
$ for file in `ls -1 *.jpg`; do jpegorient 270 $file; done # rotate all images in current directory 270 degrees clock vise
$ ffmpeg -hq -i img%d.jpg /tmp/a.mpg # put images back into the MPEG stream
$ convert $fname -resize 640x480 $name # resize image
$ jpeg2yuv -f 25 -I p -j still_%03d.jpg | yuvdenoise | mpeg2enc -f 8 -o /var/tmp/1.mpeg # put together images, denoise and pack up into mpeg
$ mplex -f 8 clip.mp3 in.mpg -o out.mpg # adding sound
$ cat 001.kinofx.dv | dvgrab --stdin --format jpeg --jpeg-quality 100 # output DV stream into *jpg files

Here is a useful one-liner if you have a bunch of files that you would like to rename into filenames with sequential numbers ready to be imported into MPEG stream:

$ let c=0; ls -1 | while read fname; do mv $fname img_$c.jpg; let c=c+1; done

Kino is an awesome tool that I'm sure needs more exposure. Very stable, easy to use and simple. Ability to use command line tools for batch processing is a huge plus.

Notes: FOBS looks very promising, check it out later: http://fobs.sourceforge.net/

Tools of the trade:

man mjpegtools
man mpeg2enc
man ffmpeg
man convert
man mpginfo

https://sourceforge.net/docman/display_doc.php?docid=3456&group_id=5776
http://mpgtx.sourceforge.net/
http://ffmpeg.sourceforge.net/
http://mjpeg.sourceforge.net/
http://www.kinodv.org/

Wednesday, August 24, 2005

Java vs, Ruby, Python, PHP etc.

More productive development platform will compete hard with Java. I think Python is better positioned for this then Ruby or PHP. Unlike PHP, Python is also a general purpose language and unlike Ruby it's more mature and have way broader support and popularity. I guess that's where Groowy was heading. What if one takes:

- persistence framework
- MVC framework
- xml framework

and built it syntactically into something like Groovy? Would it be the answer? I wish I had time ...

The Innovator's Dilemma: It's Happening to Java

http://www.servlets.com/blog/archives/000068.html

Tuesday, August 23, 2005

When do you use XML, again?

Here is an interesting blog entry by Ted Neward. I would like to add that one day someone may want to apologize for XSLT and other attemps to use XML as a base syntax for programming languages. Bad idea!

http://blogs.tedneward.com/2005/08/22/When+Do+You+Use+XML+again

Wednesday, August 17, 2005

Linux 2.6 vs. Solaris 10 ...

Here is an awesome article on Solaris 10 x[3,6][2,4] potencial. I'm thinking: why does anything have to kill anything else. Having both is actually much better then having either one Linux or Solaris. It will create healthy competition (and it does) and insures choices down the road. Migration from/to Solaris and Linux is really easy comparing to Windows for example. Solaris is good and Linux is very good. OS is becomming a commodity and real action shifts to application/service arena. What we really can't live without is the FOSS!

http://www.theregister.com/2005/08/16/solaris_x86_not_too_shabby/page4.html

We need dtrace-like functionality on Linux too. It's really powerful.

Teamsite, CMS etc.

What I'm learning so far from the observation of our experiences with Teamsite CMS is that we are not using it right. Working area per group of users is a terrible idea IMHO because it breaks a very fundamental principle of isolation of concurrent changes. Attempt to fix it with creating additional workflows is making this problem only worse. There is also an issue of Teamsite stability from what it seems or luck of knowledge on how to administer it or both. Having working area per group of users in part motivated by costs. It created a somewhat schizophrenic situation. On one hand we have a CMS to have content management problem solved, on the other because of the headaches associated in dealing with it - we are trying to avoid using it whenever possible. I think we should be open at least considering alternatives for minimizing the costs and simplifying content management.

Here is an interesting CMS review http://www.cmswire.com/cms/cms-reviews/index.php

Matt had recommended considering Magnolia http://www.cmswire.com/cms/open-source-cms/magnolia-revs-java-open-source-cms-000650.php

The article above seems to recommend OpenCMS:

http://www.infoworld.com/article/05/08/08/32FEosscms_1.html?s=feature
http://www.infoworld.com/reports/32SRoss.html


Mumbo Looks very good and has online demo which is very impressive

http://www.mamboserver.com/

More: Free Content Management Buyer's Guide

http://www.hannonhill.com/google-bg.html?s=content+management

Here are tons more:

http://www.cmsreview.com/OpenSource/directory.html

Sorted by Language

http://www.la-grange.net/cms