Archive for the opensource Category

We use a combination of Ubuntu + Eclipse + PHPEclipse + Subclipse in the office as a stock standard developer machine setup. Developers are free to make changes, but when in doubt this is what they get.

Over the pass couple of months though, as we have added more code into the repository we noticed that the Eclipse had really been slowing down and crashing frequently, primarily due to large memory consumption. However , developers who had dropped the Subclipse plugin and resorted to the command line client (which is the way I like it ;-) ) did not seem to be having any issues.

We had until then also been using the  packaged version of eclipse that was provided by Ubuntu. Seeing that there was a new version of Eclipse 3.4 and Subclipse 1.4 out we decided to see if there was a way to solve this issue and upgrade our default install.

Long story short, it turns out that the Subclipse can either be made to use SVNKit which is a pure Java implementation  or JavaHL which is a wrapper for the native C library. Turns out we had been using SVNKit all this while. No prize for guessing which one is faster and handles large repositories better ;-) .

The problem though (as identified in the FAQ entry) that since the JavaHL requires local library support you need to make sure that the version of Subclipse you are using supports the version you have installed in your machine. With Ubuntu 8.04, the  packaged version is libsvn-javahl_1.4.6 , which means that you are stuck with Subclipse 1.2, as Subclipse 1.4 requires the  libsvn from Subversion 1.5. Looking through Google I stumbled upon Basilisk’s blog entry that details the problem out and enumerates possible solutions. I choose the option of running Subclipse 1.2.

So a quick recipe to getting Eclipse 3.4 (directly from the download site) + Subclipse 1.2 with the JavaHL binding running on Ubuntu 8.04 is as follows:

1. In a terminal window, do the following. This line of command is used for installing java6-jre. You need to use the Sun provided java for things to work properly.

sudo apt-get install sun-java6-jre

2. Then type this to install the libsvn-javahl library that will be used by Subclipse.

sudo apt-get install libsvn-javahl

3.Type the following to set the Sun-Java as your default JVM. This will make sure that whenever an application looks for the java command it will be using the Sun provided version.

sudo update-java-alternatives -s java-6-sun

4. Then go to the eclipse site http://www.eclipse.org – got to the download section and (http://www.eclipse.org/downloads/) and download the Eclipse package relevant for your use case. For my case I downloaded Eclipse Classic from http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.4-200806172000/eclipse-SDK-3.4-linux-gtk.tar.gz

5. Save it into your destination folder. For my case I saved it into my home dir. (And that is what the instructions will assume from this point onwards).

6. The in a terminal do the following. Please note that the path to cd into (in the example’s case it is ~) should be replaced with the path that you actually saved the download into during Step 5.

cd ~
tar -xvzf eclipse-SDK-3.4-linux-gtk.tar.gz

7. If you type ‘ls’ now there should be an additional folder called ‘eclipse’.

8. Now we need to edit the eclipse.ini file which is in the newly created eclipse folder and add a single line at the end of the file as follows “-Djava.library.path=/usr/lib/jni” I found out that this is so that the JavaHL libraries are picked up by Eclipse.

gedit ~/eclipse/eclipse.ini

Original text:
-startup
plugins/org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar
–launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.100.v20080606
-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m

After editing:
-startup
plugins/org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar
–launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.100.v20080606
-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m
-Djava.library.path=/usr/lib/jni

9. Now you can start Eclipse by clicking on the Eclipse icon with the eclipse folder.

10. Startup Eclipse.

11. Click on Help->Software Updates->Available Software from file menu in Eclipse.

12. Click on the “Add Site” button.

13. Enter a name i.e subclipse, and the URL: http://subclipse.tigris.org/update_1.2.x (Thanks Basilisk!) (Note the link to ver 1.2 not 1.4)

14. Click on “Finish”.

15. A list of features will be presented, open the list and check the one labeled “subclipse”. There will be optional packages available as well. I was only interested in the core subclipse components.

16. Click on “Next”

17. Keep clicking through till your done.

18. The install will ask you to restart your eclipse, choose yes and continue.

19. Upon Eclipse restarting go to Menu item Window>Preferences. Once the pane Pops up select the item Team > SVN. The preference should come up and there should not be any errors. If errors come up it is probably caused because for some reason your default java is still not pointing to the sun java. For more info on this you can refer to this ubuntu forum discussion.

Anyway – I hope somebody finds this useful. Feel free to add amendments and corrections in the comments.

“So what is passed over the wire? Is it some form of compressed text containing SQL, XML or JSON” – Me

“No. Its our own custom, proprietary binary messaging format.” – ISV and soon to be partner (who makes some enterprise-type software) we have to integrate with

Why is it, that in this day and age, there are still ISVs (some rather small) that think a home-brewed , closed (either in terms of standards or source code), component is better then using or implementing  something open and community developed. 

Commodity components

If I may be so bold, I would argue that components that have already been developed in the open should be considered as commodity and these ISVs are better off innovating higher up in the application stack. This can take place by either using open source libraries that already implement open protocols or building components based on open standards. Not adopting this approach is akin to the automobile industry not using OEMs but rather manufacturing every part of their car on their own. If BMW and Daimler can move towards co-operating , wouldn’t it be silly for ISVs not to be doing the same.

Resistance

The common arguments I have heard again such moves tend to be:

1. “Our closed components are a competitive advantage. We do not want to adopt something that will make it easy for other players to speak to us.”

Guys, welcome to the 21st century. Interoperability and data portability is becoming important, and more so in the enterprise space. The tides are changing from closed to open systems and customers are being reeducated to see this as a feature. Using standard or open components will give you this feature for free, without extra effort.

2. “But this is our secret sauce, our differentiator”

This is a bit more tricky as there might be situations where this is valid. It seems counter intuitive at first, but the more niche and specific your product is, th more sensible it is to roll your own and keep it inside. However the more general and mass interest it is, the more sensible it is to open and collaborate.

A simple rule to determining if this is a valid argument is to determine if there are existing open components or standards implementing what your secret sauce does. If there is, its time to search for a new recipe as your secret is being commoditised. Instead of fighting, collaborate on this component, benefit from the extra eyes and feedback and move up your value chain.

3. “We have custom/specific needs”

I find it hard to believe that if your component is general enough to have open standards or implementations,your use case is so specific that it is not catered for.

A tangential use case might be indicative of a deeper architectural issue. This would be a  be a great time to ask the question , “Why isn’t anybody else doing it this way?” and “How do other folks tackle this problem”

Lastly, maybe the need has not been catered to yet, instead of turning away and rolling your own, use this as an opportunity to engage and discuss these needs with the community. This is your opportunity to contribute ideas and embrace the community instead if running off and cooking your own.

4. We don’t accept open licensing (AKA – Open source, isn’t that like communism ?)

In this interconnected world , no ISV is an island. If Microsoft can open up to the need of dipping its toe in the open source lake, then its high time you do too. Although code contamination is a concern among some quarters, that matter should be handled by more stringent code audits and license criterias when using open source code. Some licences such at the BSD and Apache have been argued to be more business friendly then the GPL. These licences allow for collaboration and closed environments to co-exist. Issues regarding software  patents are sometimes raised, however, with software patents, you are effected as long as you write software, closed or open.

Upsides

There are many upsides to sticking with open standards or components as well, such as reducing the need for training of new hires as well as ensuring that the development of the component does not get stale due to lack of upkeep the code. There is also the benefit of continuos review and injections of ideas from the community, things that your homebrewed code or specifications will never benefit from.

Caveot emptor

At the end of the day though, the decision is surely going to need to happen on a case by case basis. There might always be a good enough reason to go it your own. I hope, however, that we raise the bar on these type of decisions and realise that sometimes the decision to go your own is less sound that it initially seems.

At the very least I will be able to spend more time writing and reading blog posts then wrting code to push proprietary binary bits around.

Its sad that most of the time, Malaysia or Singapore gets on Slashdot, its for something silly, embarrassing or downright disturbing. Sigh.

Slashdot | Singapore Firm Claims Patent Breach By Virtually All Websites

“A Singapore firm, VueStar has threatened to sue websites that use pictures or graphics to link to another page, claiming it owns the patent for a technology used by millions around the world. The company is also planning to take on giants like Microsoft and Google. It is a battle that could, at least in theory, upend the Internet. The firm has been sending out invoices to Singapore companies since last week asking them to pay up.”

S’pore firm claims patent to image search : News : Internet – ZDNet Asia

Dubbing itself “pioneers of visual search technology”, Vuestar Technologies said it owns the patent to the technology that enables “Internet searching via visual images”.

In sum, the company implied that any Web site that uses pictures and graphics to link to another site or Web page will need a license from Vuestar.

“Those who use visual images which hyperlink to other Web pages or Web sites…whether on the first page or subsequent pages of a Web site require a Vuestar ‘license of use’,” the company said on its site.

In other words if you have images on your websites which double up as links these guys will send you an invoice of around S$5000. Currently the company claims that the patent is enforceable in Singapore, Australia, New Zealand and the United States.

This type of patent trolling can only be fixed with some form or real patent reform (Not this.). Too bad most countries are more interested in signing bilateral FTAs with the US that include cross nation patent enforcement and harmonization. What tends to happen during this harmonization is laws are modified to suit a lowest common denominator (With the US most often then not being the lowest denominator). This tends to err on the side of big companies and existing copyright/patent holders and screwing Joe public.

With the debate on patent reform in the US still going on, is this a smart thing for countries to be doing ?

Take for example, the Singaporean experience :

MinLaw – United States-Singapore Free Trade Agreement – Intellectual Property Chapter: Factsheet On Provisions With Major Impact

2 Extension of Current Copyright Term of Protection

Where the term of protection for a work is calculated on the basis on the life of a person, this term of protection shall be life plus 70 years after author’s death. Currently this is life plus 50 years. (Art 16.4.4 (a))

Where the term of protection of a work is not calculated on the basis on the life of a person, this term of protection shall be not less than 70 years from the end of the calendar year of the first authorised publication of the work. Currently it is 50 years. (Art 16.4.4 (b))

So they increased copyright protection by 20 years. Was this in the best interest of the Singaporean public ? Was this something the Singaporeans wanted?

What about the Singaporean DMCA ? Was that a reasonable trade off, considering that there is still much opposition to the DMCA in the US? Will the Singapore version of the DMCA benefit from any reform that might happen due to this opposition?

In the end, its the people who get screwed over.

No Love for VueStar | ThinkingNectar

On a parting note, what on earth was the officer at IPOS thinking when he/she issue the patent?

Sigh.

  • Viagra ordre
  • Cialis en ligne
  • Levitra en ligne
  • Propecia acheter
  • Viagra acheter
  • Acheter cialis
  • Ordre levitra
  • Ordre propecia
  • En ligne viagra
  • Vente cialis
  • Levitra bon marche
  • Propecia en ligne
  • Viagra online
  • Buy cialis
  • Order Levitra
  • Buy propecia
  • Buy viagra
  • Cheap cialis
  • Cheap Levitra
  • propecia online
  • Viagra prescription
  • Cialis online
  • Buy Levitra
  • Order propecia