Quickly saving the program preferences in Java

Many of us just need a quick way of storing some preferences on a given program. Writing files with settings is one way, writing these things on a database is another.

What I needed was something as simple as storing the last used folder on the "Open file" dialog of a Java based program. The idea is making life for end-users (and myself) whenever trying to open the same file and avoid the need of navigating a long extension of folders just to get there.

This is what I use in Java:

Start by declaring the prefs object, where "Custom.class" should be replaced by a valid class:
Preferences prefs = Preferences.userNodeForPackage(Custom.class);

And that's it, no more fuzz.

How can you use this later? Look below.

Example to read a string:
String lastUsedDir = prefs.get("LastUsedDir", "");

Example to write a string:
prefs.put("LastUsedDir", file.getParent());

So, if you're using Windows then these settings get written in the Windows Registry. If you're using Linux or Mac OS, they are written on a preferences text file on disk. What matters is that you don't need to worry any more about these details. Quick and simple solution achieved.


The wonders of JAXB

I never enjoyed XML.

There is nothing in it that would make like more of XML to store settings than for example an old fashioned INI file. It is simple, anyone can read and edit.

They say XML is readable and editable with a text editor, I don't share the same thought. I've used XML across the years for a myriad of stuff but the fashion never got to my taste nor convinced me much - until today.

I had a problem. Wanted to save objects from a running program onto the disk. I don't want to use Hibernate nor go into the trouble of setting up a database. I want something simple, something that I can just code in a few lines and keep performance at best peaks.

And here we go: Try JAXB using this example -> http://www.vogella.com/articles/JAXB/article.html

It is simple. When I mean simple, I mean as simple as creating a class, adding up the setters and getters for the variables that you want store and add one annotation. After this, two or three more lines wherever you want to make use of this information: brilliant!

Works great, works fast. I'm still a die-hard fan of INI style files to keep settings but I now use XML to store complex objects in a simple fashion.

Great stuff.

Steak time

A night with some real steak. Already missed a good quality meal for a while now. It just seems easier to eat fast-food and forget about the rest.

Oh well, it had the same flavor as the cow meat from the Azores, albeit more expensive and not so much to eat in terms of quantity.

New phone: Samsung Beam

It was around a year since the last time I got a cellphone. Last time was a Samsung Galaxy v1 and this time was a Beam.

In overall, the old phone still works great and I will now pass it along to someone else who might enjoy it better than me.

Being my birthday, I just decided to indulge myself onto another tech-savvy gadget that few others would understand. The thing that I like the most from this new phone is the external pico-projector.

Believe it or not, it is a full fledged video projector inside the phone that turns any wall in a darker room onto a giant sized tv set. Very fun, especially for sliding through pictures.

One year passed and this device costed about the same as my previous device. I still remember when back in 2002 I ordered a Sony Clie pda whose high point was the support to mp3 and pictures (no phone call support).

Technology moves at a fast pace, so must we do the same to keep up with the changes.

re7zip, the eco-friendly unzipper

Following our series of tools based in Java, you find now available re7zip at http://reboot.pro/files/file/224-re7zip/

When thinking about what this tool does, you wouldn't imagine it as ecologically friendly but this is a wonderful factor when you consider the time and resources that such a small tool saves you from using.

Imagine the case where you want to grab a small file from a DVD or CD archive that is stored in ISO format somewhere around the Internet. Typically you would need to download the whole image, let's say some 700Mb to 2.5Gb and then extract the file you need from the archive.

You need to wait some time and you need to use quite some disk space. On the middle of this operation you just fudged the network with a transmission of billion bytes that you won't be using at all.

Well, while reflecting about a solution to this matter we came about with re7zip.

You might already be familiar with 7zip, the popular open source alternative to Winzip. Being open source, we picked the source code and added the missing link: support for opening HTTP streams from the Internet.

Might seem strange why we pick on ISO files, but consider them just as an example. In reality you are now capable of extracting files from just about any kind of archive that 7zip already supports, such as 7z, XZ, BZIP2, GZIP, TAR, ZIP, WIM, ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR and Z.

Now it seems a bit more powerful doesn't it? :)

Not yet happy with just a good idea, we went further and coded the tool in Java. In practice means that you can now run the tool under Windows, MacOS and Linux without need to compile a single thing.

After all this work was done, we just published the code again as open source for everyone in the world to use it in their own projects if they wish to do so. You find the code at https://code.google.com/p/re7zip/

This is certainly not a tool to cater those who would prefer a nice user interface, but it is a nice tool for those with a geek and eco-friendly heart.

Have fun, share your work with world.

reWIM ready for the public. Create WIM archives from Java

It was the year 2007 when Windows (r) Vista was released and along with it came the dreaded WIM archive format.

To this date I can only wonder the reasons why Microsoft in its infinite wisdom decided to launch an (yet) other file format intended to archive files. Of course that I can imagine the reason, this new archive format was only intended to be manipulated with MS tools and 5 years passed without an efficient way of replicating these archives without them.

In the meanwhile, all the fans of Windows customization suffer in angst for a better way of doing things. Using the tools provided by Microsoft is nice and dandy but let's face it, there is a lot more that can be tweaked and there is no plausible reason to keep this format so closed when it would even be more interesting to Microsoft that more people play with Windows nowadays.

So, I decided some years ago to work on a way of changing this situation. I don't like using/installing Windows drivers for something that is nothing more than a glorified zip file. More friends joined the fun since some years ago and we are now finally capable today of presenting an independent tool: reWIM.

Nowadays we see more tools from other developers that perform similar functions without resource to Microsoft drivers so this project was aimed to bring not only the original intended functionality but also some new nifty features along the road.

For example:

  • It is available in pure Java. This means that it will run across any mainstream operative system without worries
  • It has a nice graphical interface that supports the command line interface as well
  • It was specially tailored for Windows PE boot disks, meaning that allows custom XML data and optimization to make these archives load faster
  • Last but not least, it is multi-threaded. Executes in parallel several processes that compress the data and create archives faster, especially fast on multi-core machines.

I am happy. It was a long road to reach this far and the tool is finally available for everyone to enjoy completely free of costs. Some will always find a reason to argue and point flaws, as far as I'm concerned: the mission was accomplished, we create archives without admin rights, drivers or silly workarounds.

Have fun!

MySQL as option for large scale file repository

Further improvements were made. There was interest in getting files onto the server so that later it would be possible to perform checksum analysis on them.

Initially I was pondering to store all files inside the file system. Some time ago I had already tried to store a few hundred thousand files under the same folder, however the result was bad. After reading more about the matter, I could use a more specific file system such as XFS or go all the way with Hadoop over the existing file systems to compute hashes over the existent repository.

Both these options were good, however came disappointing upon implementation stage. Setting up a XFS from a remote server would cause offline time and bring risks of disk space shortage as I would have to allocate a large portion of the EXT3 file system.

Running Hadoop seemed nice from all the papers and articles that I was reading, however, it would force all files to be placed inside a clustered file system that would still be out of reach or require specific interaction. At this point I was neither happy with XFS nor Hadoop.

So, since MySQL is performing so well, why not give it a go at database storage?

At first I would be fast to claim that file systems are faster than databases at any given day of the week. However, what is the use of speed if then you lose time (and hairs) to transverse quickly through all the files?

I decided to give a change to MySQL and started uploading files directly to the database. As result: I am happy!

This way I am adding all the files under a normalized table and can perform queries to select files added on a specific date, with a specific size or mime type. Above all that, I don't have to deal with a special file system and can keep all data together.

Not everything is perfect for sure. One might complain about the need to extract files from MySQL onto somewhere in order to apply an algorithm. However, think it this way: now we can also connect directly to the database and it will provide results faster than a typical file system. On top of that, we don't have to manage two system, just one that can one day be clustered away on some cloud environment if desired.

Tradeoffs for sure and so far I am happy with this decision. If later we need a file system, we can still have one. If we want specific collections of files, it will be a breeze to put them together using MySQL.

Take care!


I'm proud to announce the opening of http://filename.pro/

This platform is my effort to make available a security platform. With this site becomes possible to query file names and hashes, looking for more information about them at other sources.

It is not a grand opening, it is a work in progress. Meaning that I will be adding more features and improving the site usability as time allows. One of my goals is integration with ninjapendisk and open the possibility for users to report malicious files and names.

For the moment, I am really happy with the current result. Today it was possible to improve the MySQL performance to a point where one can execute a query over 25 million records and output the result under a single second.

For the future, additional hashing algorithms are planned for inclusion. At the moment ssdeep is already confirmed to be possible both at the server (PHP/MySQL) along with client side (Java) support and I am still learning more about approaches that can be included next.

GO Launcher

I really like my phone. It is an oldie for today's average (Samsung Galaxy 1) however it just fills most of my needs such as email reading, note taking, web browsing and sporadic picture snapshots.

However, I was feeling a bit down because of the aging user interface. While playing on the stores with the newer Ice Cream Sandwich version from Android, I was really hoping that something could be applied to my current phone without need of buying a new device.

The answer to my hopes came from the GO launcher. It is a freeware product much in the magical taste of WindowBlinds with the difference that this one is completely free to use.

With this go launcher I was able to completely overhaul the user interface to my liking. I tried a few themes and eventually stick to the ICS look & feel that one finds across the google marketplace.

The top status bar is kept hidden most of time now, I removed text labels of the icons, added a bigger grid to lodge more icons per page and removed the static icon bar from view.

Now it looks like a fresh and renovated machine without losing any data nor needing to spend money on a new device. One other option would be flashing the ROM of my device, however I'd really hate losing all my stored data and risk wrecking the phone.

I am happy. Could finally customize and place the most often used icons on the front page.

The page with the all applications is now sorted alphabetically, an improvement when considering that the stock option left huge gaps when an app was uninstalled and used no sorting whatsoever so it was mess. Now I can even remove apps straight from the all apps view, much alike the newer ICS.

If you have an Android phone, go ahead and try it out.

Not only this runs well on my Samsung S1 as I have also tried this on a tablet running a very old/slow/limited version of Android and still performs quite well without noticeable battery drain or slowness.

And if you don't like it, just uninstall and carry on but at least you tried it.

Have fun!

Git: Why so complicated?

Recently I've been juggling through a lot of projects that nest between themselves and I'm finding myself in troubles with the management of diverse SVN repositories.

Sometimes they simply get broken while developing and this is really unpleasant. So, I've started looking for alternatives.

I quickly got interested in trying out Git. The wonder versioning tool that is so popular across domains like github and many others. I read pages explaining that the days of SVN were over and a better day came along.

From what I could read, it was indeed wonderful. All the config is placed inside a single folder instead of having to deal with nasty .svn folders all over the place (yes, I know how to "export" but still the pesky .svn get in the way while developing, notoriously when browsing the file system from your program).

Yes, all seem wonderful from what I read on the official wiki page.

However, the nuisance is installing the darn thing.

It seems to have been made with the intention of cursing Windows users since it does not use a authentication system based on user/password but rather a system based on allowed SSH users.

All this is nice and dandy to solve. Just generate an ssh key with putty-gen under Windows and then place that key on a fresh assembla.com repository. You will soon discover that you are unable to login for some odd reason and then be left onto to wrestle with an infinity of problems.

I hated it.

If I can't put it to work in 10 minutes then I am quite sure that it would give serious headaches explaining other co-developers how to set up and keep Git running. Worse even would be explaining them the concept of "push", "pull" and "clone".

Sincerely, I just want a versioning system where I don't need to dedicate so much attention. Farewell Git, I don't like SVN that much but at least it works flawlessly out of the box with Netbeans and that is what I need right now.

Using the cellphone to count your steps

Recently I found a friend of mine counting her steps on daily basis.

As a company challenge, each employee was given a step counter to see for themselves how many steps are done per day. The recommended average for an healthy living are 10 000 steps per day and I kind of liked this initiative, deciding to try it for myself.

I didn't wanted to spend any money for an extra gadget and decided to look around the android marketplace, discovering this nice one: Accupedo

Some years ago I had bought a simple/cheap device to keep track of steps, it was fun that nowadays one can use the cellphone for this task.

I've been using it for the past week and it is fairly accurate once you setup with your details (height, weight, step length). If you are a person like me that likes to look at statistics and keep track of results, then this type of application can give you a real result of how many steps are made across each day.

For me, one of the best features is that I already carry the cellphone on the pocket across the whole day and so nothing special changed on my daily routine. My cellphone is a Samsung Galaxy S, not a high-end device on the current days but it is nevertheless filled with nice features and affordable enough for my use.

As defects, I need to point out that vibrations are sometimes erroneously interpreted as steps. For example, if you are riding the bus/car then you will need to deactivate the application to keep these things from getting counted as steps.

Other than that, it does help me to work my way to reach 10 000 steps each day. Lately I notice that working in an office for 10 hours and feeding yourself with french-fries and meat every day is taking a toll on the size of the belly, so this app is welcome to remember that time/effort for sport is very much needed.. :)

Have a nice (and healthy) week!
Nuno Brito

Reboot on the top 40k sites and my opinion on Java

One month has passed since we first broke the barrier of the top 50k sites and today I notice that we passed over the barrier of the 40k as seen on the screenshot.

Recently we have been passing with so many things at the same time that it even gets difficult to look at the web stats and see how our community is growing on a global level. Projects keep being published and released at a good rate, more than ever it becomes necessary to provide stable results and well tested tools. Unfortunately not everything happens the way I would like to see, but in overall we still maintain a positive attitude.

Lots of reactions against my preference for Java programming and how it impacts the tools being released such as reWIM.

To some extent I do understand their reaction, to many people Java equates as a bloated platform with bad support and plenty of nuisances to end-users.  More often than not, this is correct.

However, I see Java from another perspective.

I am not adopting heavy frameworks such as Hibernate, SEAM or JBoss that would require hundreds of RAM megabytes and several hours (days) of troubles just to run. We are not getting tied to any specific operative system, IDE or even CPU type. Furthermore, nowadays any end-user can install Java without pain on their machine regardless of their desktop/mobile brand (except on iPhones/iTablets because Java is forbidden there, not really Java's fault).

As always, I am investing my efforts in the future. Java is used because the work we share today will continue running tomorrow. I am not tying this coding effort to any specific user interface, we are allowing end-users and other developers to integrate our work from their web environment, from a normal desktop application or run directly from a command line.

I am opening the doors so that our work can run from a distributed platform. Has anyone ever noticed how well Java takes advantages of machines with several CPU cores? This kind of advantages are priceless.

This does not mean that I adopt Java as a solution for everything related to programming, it just means that I am very familiar and understand perfectly where this platform can help me.

Regardless of what anyone says badly about Java, just open your mind and you will be happily surprised.

Trying out CloudFlare, a CDN service to power websites

Last week I decided to try out the services from CloudFlare: https://www.cloudflare.com

When you look on their website, you are greeted with a wealth of improvements in terms of speed and load distribution that promise your performance to increase dramatically.

While in my case I can't agree with the promised performance level, I do agree that a performance improvement increase exists. When trying out the CDN freely provided by CloudFlare I do enjoy the fact that our static resources that get loaded on each new page request are now being handled by other servers across the globe.

This fact alone is enough to speed up the loading time required for a user to access our site at http://reboot.pro and save precious server resources required to handle all these requests.

Over a few days of trial, this screenshot depicts what has been saved by their service. So, 30% of our content was provided by a CDN at absolutely no cost for our side.

Does all of this comes without a price? Is it really free?

The service is free in the sense that you don't pay money. However, it does come with certain prices and pitfalls that you might want to avoid:

  • Promotions. CloudFlare has emailed me with campaigns to install addons (free) from third-party companies. I personally just ignore them, don't need to install anything else that I don't need.
  • Extra features. They only provide some services as part of the "pro" edition that costs 20 USD a month.
  • Advantages. Their dashboard contains some options to enable services like "clicky". I'm quite sure they get a revenue cut from each user enabling this "Advantage". I personally recommend getting away as far as possible from clicky since it is not free and breaks the trust of people in your site's links
  • False offline page. They provide a service where your cached pages are shown whenever the server is offline. This sounds nice and good. However to my surprise, while testing the site from a few of my machines across the globe I saw the offline page instead of the site. This page prominently advertised the god's bless of being served by CloudFlare. In resume, it fools visitors into thinking that a site is offline just to use as opportunity to advertise themselves and I hated that, but hey, I'm getting what I pay for..

Furthermore, for the CloudFlare CDN to work you need to nominate the nameservers of your domain to use the CDN nameservers.

While I see the advantage of using a cloud based name server, I also understand that I am basically giving them a way of intercepting the traffic from my website and changing it in any other way that I would be unable to trace. I won't be surprised be these guys get soon bought over by some government or google just for the sake of information control.

Other issues
While testing, the FTP access could no longer work when using the domain name as before and a workaround was needed.

In overall
I am criticizing CloudFlare so that you can know what to expect. In overall, I am happy with the service so far. After disabling most of the added "features" and disabling the annoying "Offline pages" you can enjoy the service and bring a faster web experience to your visitors.

Take care!

Solving error 500 when activating a Wordpress Theme

Recently I was tasked of moving a web portal from an old architecture onto a more up to date accommodation.

My platform of choice to manage content is Wordpress nowadays. The reason is mostly due to the huge popularity of the software, the freedom from license costs and the painless upgrade/expansion of features.

It was required to preserve the same look & feel from the old portal (based on OpenCMS). So one of my first tasks was hiring a designer to replicate the same theme onto the new portal.

This was done in a satisfactory manner, the only problem occurred when moving from a test machine (my windows worstation running on xampp) to the pre-production machine (suse linux).

Wordpress would be running but every time I would try to activate the theme it would simply crash the whole software application and reply with a ERROR 500 message.

I've looked around the web and many people were pointing as culprit a badly written .htaccess file that halted apache from serving the page, some others advocated a lack of appropriate permissions and however, none of these cases helped my situation in concrete: permissions were correct, .htaccess was empty.

I needed information, to know more than a simple "ERROR 500" and get details. Apache provides a nifty reporting log that can be activated through .htaccess. At least in theory this would have helped me, however in practice I simply saw no log being generated where I wanted one.

The machine had been specially tailored to provide no details whatsoever, in order to prevent attackers from exploiting potential vulnerabilities (it's all about security by obscurity I guess..)

So, different approaches needed to be taken.

I remembered that PHP can be run from the command line too. And if it runs from the command line, we get output. Turns out that my instinct was correct.

When doing something as simple as "php index.php" from the SSH window, I was capable to see why and where the error was occurring. It was complaining about mb_substring(), this reminded me that I might be using a PHP version different from the one on the server and that was the correct situation.

To solve, I just remembered that "mb_" stands for multibyte and that previous PHP versions come shipped without that feature. This could be solved by simply removing the "mb_" from the conflicting commands and the legacy command would still be valid.

This solved the matter. After some ten edits I was seeing the intended template working on the new portal at the new server.

Talk about troubles.. I am just writing this here so that more people in future can keep some sanity if they ever stumble in similar situation.

Good luck!

I'm very happy to have finally discovered support of Beanshell script files inside Netbeans.

For the readers not aware of Beanshell, it is literally speaking a PHP version of Java. Consists on scripts written in Java-like language that are interpreted at run time: http://www.beanshell.org

Beanshell is not one of those hype things that you hear about and then vanishes the next day, the project is just as old as Java itself and still rocks today!

I'm a big fan of Beanshell as you can see. It was added as the scripting framework for the Remedium project. My only sorrow was not being able to use the Netbeans IDE to edit these files. Ok, you can edit any text file inside the IDE.

However, I missed the nice syntax highlighting and polished/familiar features provided by Netbeans and had been using Notepad plus since the past year.

Right now, everyone can include beanshell scripts inside their Java projects. Head out to the project from Thomas Werner at sourceforge: https://sourceforge.net/projects/nbbeanshell/ and install it on your IDE.

If you like this plugin, don't forget to vote at the sourceforge page.

One piece of advice, you will need to install the latest Netbeans (version 7.1.1 at the time of this writing) to get it running without any fuss.

I was very happy to see this plugin installed, now I can finally work with Netbeans again... :)

CPanel support on reboot.pro

We've done a server overhaul this weekend and thanks to the generous sponsoring from R1Soft we are now making available CPanel to our forum members.

In practice, this means that we started making available the opportunity for our members to register by themselves a subdomain on reboot.pro and use it for hosting web pages and sites such as Wordpress, MyBB and so forth.

Even nicer since we also had the means to acquire the lifetime license of Installatron that allows our community members to install these software packages without worries about setting up any MySQL databases or uploading files.

As for the server overhaul by itself, we gave a serious leap to reinforce the server security which had been under serious attack over the past two weeks. A lot of work to complete a smooth transition, credits go to Mikorist that made most of the heavy work, found a good backup server and did all this in record time so that we could did not place any forum site offline.

Hope you enjoy the new work conditions, more details can be read at http://reboot.pro/16676/

ACE or Codemirror?

Recently I wanted to implement a way of directly editing script files from my server on a browser window.

Looking around for prospective projects, the most prominent one looked as ACE: http://ace.ajax.org/ from the Cloud9 IDE. Looked nice and I gave it a go for a day. Unfortunately, I found myself struggling to make it work as required for my purposes and it was not working under Internet Explorer.

A bit disappointed, I looked around the wikipedia article: http://en.wikipedia.org/wiki/Comparison_of_JavaScript-based_source_code_editors and decided to try out CodeMirror: http://codemirror.net/

Interesting enough, I got it working as intended under 30 minutes and it was working fine under IE as well as other browsers. As far as I'm concerned, CodeMirror has gained me as a fan of their project.

Breaking the 50 000 barrier on Alexa

Today we broke through a milestone in mainstream popularity. The reboot.pro community is scoring on the top 50 000 web sites on earth.

Little by little we are moving up the charts. We started using the new reboot.pro in early 2010 and the results are positive so far: http://nunobrito1981.blogspot.de/2010/12/fresh-start-on-alexa-rank.html

The next milestone is reaching the top 30 000. The value is not far from reach if the current trend continues for more two months. Plenty of changes are being introduced to improve usability and provided services, this means more work to get changes implemented however it is certainly worth the time and effort.

We are building a site to stand the test of time and gather quality knowledge for future generations. Albeit the current Alexa score is a good motivator, our main aim is to bring better quality in the art of booting computers.

The next challenge is to preserve our community small, friendly and personal as always, despite the masses of daily visitors/users that we get nowadays. Lots of fun for sure, lots of reboot going on.


Coverage on Com! of the WinBuilder Leopard project

A very nice surprise this month.

The Com! magazine in Germany has published an intensive report on the mini-windows topic and they elected the Leopard Project authored by MaxRealQNX as a legal way for building a nicely customized windows.

Of course that I am very proud to see this happen. Over the past months we are getting regular attention on PC magazines, the difference is that this month it was worthy of being displayed on the cover page, the editorial, the DVD and include an article with 8 pages of information.

The whole article can be viewed at http://reboot.pro/gallery/album/3-2012-march-com-leopard-project/

Very nice motivator.

We are finally getting the necessary motion to leap onto more challenging projects.

Converting Java bytecode to .NET executable

There exists a nice manner of running Java programs without the need for a Java Virtual Machine.

Look on the IKVM project that is found at http://www.ikvm.net/

Converting an existing JAR file to EXE is just as simple as typing:
ikvmc -target:exe myapp.jar
Of course that this means that you are not depending on Java, but rather on .NET to run your program. However, this is a nice tool to allow developers/users pick the most adequate weapon (platform) of choice.


Helping the FreeDOS effort

Our community at reboot.pro has been officially recognized as a FreeDOS supporter.

We have already been hosting (and welcoming) discussions about FreeDOS for a very long time now (8 years). This recognition is certainly a good reason to commemorate and feel honored about.

Our community is found listed at the official support channels on http://www.freedos.org/freedos/lists/ alongside with the forum community of "DOS ain't dead" at http://www.bttr-software.de/forum/board.php

For me, these are very good news. I'm still a big fan of console based applications and really miss the time when running some tool would not require an Internet connection and 100Mb of RAM..

Go FreeDOS go.. :)

Adding a site policies legal page at reboot.pro

Recently I added a page that details the legal position of the user generated content at reboot.pro

This step was necessary after one of our members that was unhappy about a sequence of events at the community has decided to officially notify me (as admin of reboot.pro) that his posts and writings were copyrighted and subject to a series of limitations.

Ever since the inception of our community, we strive to treat each and every member on a personal and fair manner. However, the liability of legal action is a risk that we never had to deal before in the past.

To avoid ambiguities in regards to our position on this matter, I have made available a page that details our site policies. They can be read at http://reboot.pro/about/policies

It is based on the forum policies found at the Ammnesty International web site: http://www.amnesty.org/en/forum-policies

Basically, it sets out the rules and what to expect from our services. It is nothing more than what we have already been doing for years, with the difference that is written to make things a bit more clear.


Uploading and downloading your music with Google

For those who have access to the Google Music service, it feels nice to be able to upload your music collection onto a cloud environment and then listen your songs from just about everywhere using just a web browser.

However, one my issues was how to retrieve back the musics to the hard drive if necessary.

This was solved with a nice look on the "Music Manager" from google. It comes with a nice option to download your music directly from the cloud down to your machine without any nuisance.

So, enjoy the service with some good songs and no worries.

Downloading torrent files from the command line using rtorrent

Recently I need to download some drivers from driverpacks.net and noticed that now they only offer the option to download through torrents.

Unfortunately, my workstation is limited and does not allow either admin rights or access to ports other than 80.

I do have access to SSH on a Linux machine running Ubuntu that is outside my firewall. However, I had no access to a desktop through VNC or NX clients.

So, command line is all that is left to get torrent files. On this short blog post I will show how it can be done in a few easy steps.

1) Install rtorrent using "apt-get install rtorrent"
2) Use "cd" to change onto the dir where you want the files to be located
3) Run the program, type "rtorrent"
4) Press backspace to open the dialog for a new torrent
5) Type the full download URL with http:// (I use http://goo.gl to shorten the direct URL address)
6) Press enter, watch rtorrent work

To quit rtorrent, press "ctrl+q".

This is not complicated and from there I can grab the files using direct download onto my workstation.

I hope this tip helps other people out there. If you have any doubts, just write a comment below.

Take care!

Creating ISO images with Java

I'm happy to have stumbled on a nice project that allows creating ISO images from Java.

You can find it at http://jiic.berlios.de

Haven't had yet a chance of trying out the code to see if it can be used in lieu of the old mkisofs. However, reading the code at the test case already gives a good idea that it is suited for the task.

In the past, interacting with mkisofs has always been a troublesome relation. Just to keep things in context, I have been wrestling with the non-elegant mkisofs command line progress window for six years now: http://www.911cd.net/forums//index.php?showtopic=16829

Kudos to Jens Hatlak at http://jens.hatlak.de/


Installing Windows 7 in Hebrew language

For the first time I am installing a Windows under a language and character set that I am nowhere familiar with. The idea is to test some of my software under a different localization and verify what else needs to be dynamically be converted from English to other languages.

These are the times where I really see the work from Microsoft as a deep effort to make the install coherent and intuitive across the globe. For those curious, I leave a screenshot of my installation screen.


WinBuilder supporting the WIC program

WinBuilder is helping the WIC (Women and Infant Children) program that is provided by the Texas Department of State Health Services. Besides providing past and future versions of our software royalty free for their use, we are also committed to help them with active support their technical projects where our knowledge can be applied.

I'm really happy to see our software helping others in such a positive manner.


Free photo storage on google plus

If you are a fan of picasa, flickr and the such, then there is a nice feature on google plus: free storage of pictures.

This is nice when considering a cloud storage of your favorite pictures.

More details can be found at:
Google+ provides unlimited storage for photos uploaded in Google+, which are automatically resized to 2048 pixels. Videos up to 15 minutes in length are also free.

Have fun while the freebie lasts! :)