Migrate your iPhone and Android apps to Windows Phone 7

February 20th, 2012 by Ioan Cocan in Mobile, Windows Phone 7

Do you have a hit app you want migrated to the new WP7 platform? Contact us (form or contact at tremend.ro) and we’ll provide you a free quote.

Perelman’s Cigarcyclopedia for Windows Phone 7

February 1st, 2012 by Ioan Cocan in Mobile, Windows Phone 7

We’ve migrated the Perelman’s Cigarcyclopedia to Windows Phone 7, it is available here (US) and here (UK). We have it available for iPhone, Android and Blackberry already, we thought of trying out the Marketplace and the development ecosystem.

For an experienced Microsoft developer the development and debugging are easy, the learning curve is quite small. Compared to the other platforms we found it very easy to develop and submit to Marketplace. We received very informative feedback from the testing team (seeing the level of feedback we assume at least some tests are manual) and after some small fixes it was up in the Marketplace.

If you have an app that you want developed or migrated to Windows Phone 7, contact us here.


Rightsflow acquired by Google

January 13th, 2012 by Ioan Cocan in General, PHP, Startup

Congrats to the Rightsflow team for the recent acquisition by Google. We are glad that we were able to bring our contribution to this success. Tremend provided software services for implementation of Limelight (songclearance.com), Rightsflow’s main licensing tool.

Limelight allows music licesing for the song you want to cover either in digital, physical, streaming or ringtone format. You can enter the song information, pay the royalty fees and you will receive a PDF license after Rightsflow’s licensing department verifies the copyright ownership and pays the royalties on your behalf. The solution integrates with PayPal Pro for payment processing. You can also bulk upload songs for a faster experience.

Good luck to Rightsflow team, now part of YouTube!

FRF competition management

January 11th, 2012 by Ioan Cocan in Java, General

As part of an effort to meet UEFA guidelines in footbal competition management, the Romanian FA started an initiative to have a full featured management solution. Initially built in Java (Hibernate/Spring) and Flex we migrated it in 2008 to a Symfony based solution that has been continously updated since then. Although a fine solution at one point, the Flex grew and as it was not modular thought out it became difficult to maintain it.

The solution mantains major leagues (1,2,3), youth and feminin competion data including the official referee delegations. The system allows to generate games based on specific combinations (Bergers). Data is displayed in the official websites: frf.ro and frf-cca.ro (the referees website). Along with several listings and exports the systems provides features such as SMS or email notifications for referees, account info that allows referrees and observers to fill in their personal data, availability, online referee reports and much more.

A FoxPro based solution that was used to mantain player history and memberships was migrated to the solution allowing much more flexible management for player club membership. The database has now over 35.000 registered players since 1960.

The technical solution extensively uses Symfony admin generator, built in caching for information such as competition rankings. Symfony proved to be a very flexible solution with great features for data migration between application versions.

Future plans include registered club access to player information and also an automatic online transfer system. The goal is to have a complete and automated solution that allows all participants in the game to fill in their reports electronically (clubs, referees, observers, FA members).

Drupal Commerce for ePayment module

November 27th, 2011 by Ioan Cocan in Drupal

Inspired by Drupal philosophy of contributing code and modules for the community, we have released a module that provides ePayment support in Drupal Commerce. Available here.

Just install the module, configure standard ePayment parameters and you’re ready to process payments. You can also set a debug mode for the IPN confirmations and switch between production and test mode from the Drupal admin, very handy for a Drupal live site.

Feel free to extend it and contribute some more for the Drupal community.

Tremend 6 years

November 16th, 2011 by Ioan Cocan in Java, General

Tremend teamTremend is now 6 years old, a new year of projects and challenges. So what is new in this past year?

We’ve extended our expertise in technologies such as Drupal and Grails. Published custom modules in Drupal (Drupal Commerce for ePayment), delivered new solutions with Grails (Orange Karaoke). We’ve delivered a highly scalable solution for Orange Romania (Orange My Account), the customer care portal.

We’re up to date with mobile development, released several new apps (iPhone and Android) and mobile sites. A Windows Phone 7 app is on the way, as well.

For the 7th year we plan to deliver more with our expertise and grow into new areas (HTML5, more mobile). And more blog posts.

Tremend at first Marathon

November 16th, 2011 by Ioan Cocan in TremendTeam

Bucharest Marathon

Bucharest hosted in October 9th 2011 the 4th edition of its marathon. A competion now registered in the league of international marathons, aimed to grow, to promove sport and action.


Although there are no long runners at Tremend we’ve motivated ourselves to train before the competition for a few times on an athletic stadium. A good surface that helps the knees, we hear. Our goals: finish the race. And if we could do it under 4 hours, that would be great. And we did exactly that. Ioan, Ionut, Petrica, Max run in a rainy morning with 10 degrees outside, along other hundreds of people. Being our first competition everything was new and fun, the cold outside was the last thing to think about. We also forgot about pictures, we only have few from the finish lap, available on Facebook.

Thank you Dragos for the support and precious advices. It was a great run, we’ll do it again next year and maybe there will be a Tremend 2 team as well!

Taxonomy additions Drupal module

February 1st, 2011 by Ioan Cocan in Drupal

Our first Drupal module: http://drupal.org/project/taxonomy_additions ads various additions to the core Taxonomy module. Meet Andrei (amateescu at tremend.ro) in Brussels at Drupal Developer Days 2011, 4-6 February.[QR]

Meet us at IDG Devworld 2010

October 26th, 2010 by Ioan Cocan in General

Marius will have a presentation about Hotnews.ro high traffic website, problems and solutions. Details here: http://www.idg.ro/devworld-2010

Perelman’s CigarCyclopedia for Android now available

October 20th, 2010 by Ioan Cocan in Android, Mobile

Perelman’s guide is now available in Android Market.

See it here: http://www.cyrket.com/p/android/com.deviceiq.cigarcyclopedia2010/

As paid publishing for Android Market is not available in Romania, it is released under our partner’s name DeviceIQ.com.

Perelman’s CigarCyclopedia for Blackberry now available

October 6th, 2010 by Ioan Cocan in Mobile

The popular Perelman Cigar Cyclopedia for Blackberry is now available in Blackberry AppWorld:


The approval process took about 10 days.

For the iPhone users: http://itunes.apple.com/us/app/perelmans-pocketcyclopedia/id356717371?mt=8.

An Android version is in final testing, will be available later this year.

Hotnews.ro application at Nokia Calling All Innovators

September 20th, 2010 by Ioan Cocan in Mobile

Hotnews.ro application developed by Tremend for Nokia devices has been shortlisted for Calling All Innovators Day:


You can download the app here: http://store.ovi.com/content/30479.

Spring+JPA with MySQL/Oracle configurations

September 6th, 2010 by Ioan Cocan in Java, General, Spring Framework

Spring Framework

During development for a solution based on Spring+JPA+MySQL/Oracle we came across two settings to watch for.

1. Database isolation level

The default isolation level in MySQL is REPEATABLE READ, different from the default in Oracle (READ_COMMITTED). It seems this is kept for historical reasons related to the replication. Still, the effect is that for example a database query will return the same result, no matter if some other transaction has meanwhile changed the database.

For checking the current MySQL isolation level: SELECT @@GLOBAL.tx_isolation, @@tx_isolation;

For changing the isolation level add: “transaction-isolation = REPEATABLE-READ” to you MySQL configuration.

2. JPA transaction configuration

For those accustomed to Hibernate default configuration, the default JpaTransactionManager comes with a different default for behavior related to transaction configuration. The “globalRollbackOnParticipationFailure” is set to true, that means a failed transaction will trigger a global rollback. If you want to change that and be the decision maker if the global transaction should be rolled back or not, set globalRollbackOnParticipationFailure to false.

Javascript mp3 player

February 12th, 2010 by Marius Hanganu in General, Javascript
flash javascript mp3 player

flash javascript mp3 player

Seems impossible, right? Well, it is :-). The title is a bit misleading. You can’t play mp3 in javascript. Not yet at least. Not without a flash object behind the scenes.

But when it comes to searching a flash mp3 player that has also a customizable skin and javascript integration you won’t have so much luck. The players that allow flash – javascript communication are not skinnable, and the ones that are skinnable, don’t allow communication with javascript.

So after a bit of hacking here’s the final result: http://blog.tremend.ro/wp-content/uploads/2010/02/flash-javascript-mp3-player/test.html

The script is based on this excellent flash mp3 player which involves a hidden flash mp3 player. The main headache is actually not the UI which uses a simple scriptaculous effect for scrolling (just drag and drop the cursor to see it working), but actually making sure the commands from javascript to the flash player work on all browsers.

Another bonus feature added is the ability to jump to different sections of the audio file. The sections are described in a javascript configuration object. An UI for this feature can be easily built using your favorite UI framework.

File not found: transaction …, path …. SVN mysteries behind an Apache Reverse Proxy

December 6th, 2009 by Bogdan Nitulescu in General, Tools

We have an SVN server somewhere on our intranet, but since outside people want to access it, I put it behind an Apache reverse proxy. It was fairly straightforward. Here’s an excellent tutorial if you want to know how to do it: http://silmor.de/49 .

Basically, you have the intranet apache that’s configured to serve SVN, and you have an outside apache in your firewall’s DMZ that proxies the request:

ProxyPass /svn/ http://intranet.example.com/svn/
/svn/ http://intranet.example.com/svn/

It was all fine when people checked out their sources, but there were strange errors during commits. 7 files commits worked ok. When you tried 8 files or more, you got something like…

File not found: transaction ‘431-12’, path ‘/parser/XMLparser/XMLparser.sln’

It took a lot of sweat to find out why 8 was the magic number – and after a lot of packet dumps and tracing, I found out that one of the servers used HTTP keepalives, and the other one rejected them.

So here’s a couple of rules not to be broken when proxying SVN requests:

Keep the same paths. Do not try something like ProxyPass /svn/ http://intranet.example.com/my_svn/ . It will fail with a cryptic error message at the worst of time.

Keep the same configuration.  Check your /etc/httpd/conf/httpd.conf on both servers for differences in your configuration. In my case, I had “KeepAlives On” in one server and “KeepAlives Off” in the other. When I put them both to On, it worked just fine.

« Previous Entries Next Entries »