Lablz Publisher requires to watch stock on a term>>
Lablz Publisher requires to watch stock on a terminal's site. Also stock is loaded from electronic documents and today we only allow to place a Watch on resources entered/modified online
Sometimes papinet message was not generated becau>>
Sometimes papinet message was not generated because of some errors in Order (for example transshipment point should have been Verbrugge, but instead it is something that was not recognized as Verbrugge). When Order is fixed papinet message should be generated anew in order to sent it to the client.
In order to do that:
Login to Verbrugge host
execute the following URL:
[verbruggeHostUrl]/export/edi/import/[newpl]/fileName?name=PapinetContainerTransport&target=papinet
If I'm interested in one or some resources I can >>
If I'm interested in one or some resources I can create watches or bookmarks, which is great. I can add tags to resources, but they aren't personal.
What if Taggable allowed me to have personal lablz / tags (like gmail labels), I could then mark and find resources I am currently interested in. If this becomes of interest to others I could make my tag public.
The tags could be managed via the user control panel. For simplicity users should be able to tag multiple resources via RL.
For TrackedRead resources we need extra Actions. >>
For TrackedRead resources we need extra Actions. This should work like in Webmail. We need to be able to mark all resources in RL as read, or mark certain resources as read - this should work like existing delete action. On resource view page we should have action 'mark as unread'.
We need to continue optimizing the front end. Her>>
We need to continue optimizing the front end. Here is some areas of work:
Do not set cookies for image serving domains. Firebug PageSpeed test says that Lablz home page load 40K of cookies just on images served from i.lablz.com, i1.lablz.com, etc.
Increase image load parallelism by defining more image domains (i3.lablz.com, i4, i5 etc.). FireBug PageSpeed test tells us we should do that. I think we have to add logic to use this pool of servers conditionally if request came from the modern browser, like IE8+, FF3+, Chrome 2+, Opera 10+
Make look and feel of desktop menus and mobile me>>
Make look and feel of desktop menus and mobile menus almost identical - with the exception that desktop menu shows up as a dialog.
redesign Tab menus
redesign Add/Remove/Rename Tab
redesign Bookmarks Menu, Language
redesign Time/Calendar reports menu
redesign File menu (shows up as large icon left to Search field)
redesign Source (Dude) menu
As additional benefit of this redesign new menus will be loaded on-demand making each page much lighter. But this requires adding capability to cache menu pages on browser-side (today non of our AJAX responses is cached). Also, menu pages must be added upfront to Offline Application Manifest.
Would it be possible to add a property to href wh>>
Would it be possible to add a property to href which allows the option of setting the target (parent, blank etc)? This would be useful to your originating page and also if a lablz site is embedded.
This would be vital for FloorData site to open a new window when you click on a supplier website url
Bookmark classes and Voc UI classes should not be>>
Bookmark classes and Voc UI classes should not be returned by text search along with other business resources. They confuse users. On the other hand we need to have the ability to search them separately. So, let's introduce a new class annotation, e.g.
textSearchContext
. Classes without this annotation will be considered to be in global site-level context.
Implementation notes
indexing - add field
searchContext
search - if class has textSearchContext annotation then add extra
searchContext
parameter to search query.
Touch UI has less real estate for Filter properti>>
Touch UI has less real estate for Filter properties, so to avoid scrolling we need to show the most used props on the top.
Possible approaches:
we could need track which props were used on every Filter submit. The drawback is that the statistics will accumulate only after users will perform a decent amount of Filter searches. Another drawback is that this approach does not eliminate properties that are never set.
we could maintain statistics of which properties have more values. On any particular site only a subset of properties of a given class have values. And even among those that have values some are always set, while others are rarely set. The properties with higher number of values should be shown on top. Those that have no values can be skipped altogether.
Implementation notes
We could use ClassUsage resources to accumulate the property use statistics. Alternatively we could use new WebProperty class from Vocabulary UI component.
Introducing Parent organization in ExternalOrgani>>
Introducing Parent organization in ExternalOrganization class to be able to handle requests from Holding WebSite to Partner WebSite.
The problem is the following:
Partner site does not have resources where Holding organization is referred to but instead it has resources where member of Holding organization is referred to.
There are two types of requests in this case:
1. Request from representative of Holding organization should be able to see resources which referred to all member organizations
2. Request from member organization should be able to see only resources which referred to this organization.
We've all seen email as a bit ring fenced and lon>>
We've all seen email as a bit ring fenced and long in the tooth.
This frothy new wave from Google is very exciting as it will make everyone see that traditional email is not the future.
Is this a wave everyone can enjoy?
Google's new waves however, will be manufactured and still for the fearless as they depend on teams of developers to create collaborative solutions. Consumers will have to watch and learn for a while before joining in. Developers will also need to ripple their waves out to the mobile world.
LablZ produces natural waves for everyone.
Any collaborative solution in LablZ is created through natural thought and relatively simple modelling. Looking at the ideas wave is being used for shows reflections of LablZ.
I am evaluating Ubuntu as the Linux distro of cho>>
I am evaluating Ubuntu as the Linux distro of choice for the next release of Lablz Cloud server to replace the aging Fedora 6 AMIs. Ubuntu is the most popular Linux distribution for desktop, sports a solid server and recently mounted a successful
netbook offensive
.
Distrowatch looks at the top 10 distros and tries to understand what made
this late comer to a Linux distro scene so popular so fast?
Ubuntu Cloud initiatives
And now Ubuntu is
beginning to take the Cloud seriously
. First Ubuntu had to do some catching up to Red Hat and in April 2009 they released
official AMIs
for Intrepid (8.04) and Hardy (8.10). Looks like Jaunty (9.04) is coming to EC2 any day now and
Karmic Koala 9.10 is due in October
. A huge credit actually goes to
Eric Hammond
and the community around his
Alestic.com
who were building unofficial Ubuntu AMIs till now and extended help to Canonical (commercial entity behind Ubuntu) to bring official AMIs to life.
Official AMIs
Officially supported AMIs are result of collaboration between Canonical, Amazon and the alestic.com community. Amazon's involvement means modern kernels (see the chapter below on why it is important). Canonical's involvement means that those AMIs are well tested and will be even more tested as more people will use them. It also means special arrangements will be made to make things work smoother in the cloud, like making sure that XFS file system on EBS is working without a glitch (was a problem before). This means Ubuntu repositories are hosted in EC2 environment (
us.ec2.archive.ubuntu.com
and
eu.ec2.archive.ubuntu.com
) which saves us all on traffic charges and makes package installations extremely fast. Ubuntu AMIs come in two flavors - server and desktop, the latter which includes pre-packaged NX server. But those obvious things are not all. Ubuntu has some interesting nuggets for the cloud setup. Read on.
Stop building your own AMI images
Ubuntu on first boot runs instance user-data script if it starts with #!
This is a clever way to upgrade the official AMI without bundling your own AMI. We know it quickly becomes a nuisance to keep building and upgrading new AMIs. And with small and large instances, 32 and 64 bit variants, US and Euro zones to cover, it is just too much. So, this simple trick with treating
user-data
AMI startup parameter as a script is a potential lifesaver (technique was developed by alestic.com). Time to convert my "how to build-up EC2 AMI for Lablz Apps" into the runnable script.
Private and hybrid clouds
Ubuntu has pre-packaged
Eucalyptus project
which aims to achieve API-level and command-line-level compatibility with EC2 and S3 for building your own private clouds. This is an experimental project which is expected to become much better integrated in the upcoming Koala release. This not only will allow companies to create private and hybrid clouds, but will also make it possible to download Lablz VM image to develop on your own boxes and then with one click to deploy the results on EC2. It is interesting that Sun also made a decision to make
their Cloud API AWS-compatible
. We need to see though what changes Oracle makes with Sun's cloud.
Scaling add-ons
Ubuntu images pre-package RightScale scripts. Some people will be very happy about it, but I do not see Lablz using RightScace any time soon especially with Amazon's recently introduced
Load balancing
,
Auto-scaling
and
CloudWatch
services which bill per-use, as all other AWS. Lablz also shuns away from MySQL replication which is another forte of RightScale as Lablz has own Cloud-native replication architecture. So, pass on this item.
Lablz is cooking up its own cross-database, replication scheme that is dead-simple as it is HTTP-based, creates a textual file per transaction (not huge binary log files like MySQL), has no limit on the number of slaves since it replicates via S3 (overcoming one of the major limitations of MySQL replication), is hugely reliable as replication logs are safe in S3 (unlike MySQL binary logs that need backing up), supports point-in-time recovery as replication logs are synchronized to point-in-time EBS snapshots, and customizable as it allows to replicate only the subset of data (MySQL has 3 basic switches for this) based on per-class metadata and custom rules.
Ubuntu images are also pre-packaged with the client for Canonical's own commercial
Landscape cloud management
. How Landscape can compete against Amazon's new auto-scaling offering is a mistery to me, because it seems to offer the features available for free in Amazon's AWS Console and those of a pay-per-GB of Amazon's CloudWatch. Can anybody help me to understand? Please leave a comment. RightScale at least has a 3-year leg up and is probably the best known name among all EC2 third-party vendors.
Integrated Mail server
Setting up mail server on Linux is such a pain nowadays due to Spam, Viruses and extended security requirements. I remember how it took me about an hour to setup my first Netscape multi-domain mail server in 1995. To be sure there are
many tutorials
, the
best one
by
Ivar Abrahamsen
. Ivar's tutorial also has a section on EC2 and he even pre-built mail server as a set of AMI's on top of Eric Hammond's Ubuntu images. Too bad he did not update them yet for the official AMIs! I sent him an email asking him to graciously lend his hand but he did not reply. If you have a way to bribe him to do that, I will share half of your bribe :-)
I like that
Ubuntu Server Team
chose Dovecot instead of Cyrus for POP/IMAP. Lablz is using Dovecot today on its Fedora 4 boxes.
Ubuntu Karmic Koala to be released in October is expected to deliver the
one-click mail server setup with antivirus, anit-spam, webmail, filtering, etc
. Ubuntu maintainers are also considering their choices for an open source alternative to MS Exchange groupware capabilities. The candidates are Horde, Citadel, and possibly Zimbra. Go, Canonnical! To see the progress Ubuntu Server Team is making check their
blog
,
launchpad
and
forum discussions
. Why, oh why those collaboration tools Ubuntu uses are not integrated?
Kernel improvements important for the cloud
Things below are not Ubuntu-specific, but still they are eagerly anticipated additions to the kernel. Official Ubuntu AMIs have newer kernels -
2.6.27
for Intrepid and
2.6.24
for Hardy, and likely
2.6.28
for Jaunty.
Security.
Newer kernel makes running
Lablz on port 80 easy without running as root
. We used authbind before but it was not easy, so new kernel's setcap method of authorizing a certain binary is much simpler. This method is available in kernel 2.6.26 or newer.
sudo apt-get install libcap2-bin sudo setcap cap_net_bind_service=+ep /usr/lib/jvm/java-6-sun/jre/bin/java
Note.
At this moment I am struggling with the problem: java does not start after setcap - it complains with the following message:
/usr/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory
I am researching a solution to this, see my post on
this thread
. If you know the answer, please post a comment.
High concurrency.
Newer kernel has drastically more efficient
NPTL threads
, which hopefully will break the
10K barrier
on a small AMI instance.
No need anymore to redesign your server to use a vastly more complex Java NIO
asynchronous programming model to achieve a high number of simultaneous users. So the synchronous threaded model used in Lablz server today is again considered the best of breed. To check if your Linux has older LinuxThreads or newer NPTL issue this:
getconf GNU_LIBPTHREAD_VERSION
My Jaunty answers:
NPTL 2.9
Conclusion
Ubuntu in the Cloud looks very promising to me. I am also digging deeper into the Ubuntu development and packaging process to understand how we can package the open source release of Lablz into Ubuntu. In the upcoming posts I will document the steps to setup Ubuntu Jaunty on EC2 and a Lablz server on it. Please post your ideas on how to make the most our of Lablz on Ubuntu in the Cloud - both private Cloud and a public one.
Since Lablz inception we have preferred Fedora ov>>
Since Lablz inception we have preferred Fedora over other Linux distros. It was also a logical choice when Amazon opened EC2 - official AMI images were built on Fedora. Fedora served us really well but we are getting tired of its short support cycle. As each Fedora version is reaching its end of life very quickly we are finding ourselves running around like crazy to find alternative repositories to install extra packages. This is insane and I am sure our customers will be even more conservative than we are in upgrading to new Linux versions. I have been reading up on the subject and the choice boils down to
Centos and Ubuntu LTS releases
. Before making a move on EC2 I have decided to switch my work completely to Ubuntu and see how it pans out.
LiveCD
I am testing Lablz on Ubuntu 9.04 right now. I tried to boot Ubuntu Jaunty (9.04) LiveCD version on my Sony VAIO VGN-FW290 laptop. I tested several multimedia packages to see if Ubuntu can handle my hardware. LiveCD is very nice in the sense that you boot on your machine without touching your currently installed OS. Then you can install more software to customize, but all changes are wiped out on next boot of course. Jaunty
could not adjust brightness
on my way-too-bright LCD, so after hours of googling I postponed it (other than that it was almost good). See a summary below:
The sound did not work right away - had to choose a different sound out, in and ringing devices in Skype preferences. Unfortunately the built-in mic still did not work, see the following
thread for extensive discussion
on the subject.
VirtualBox
I chose VirtualBox since it by many accounts is much faster than VMWare and eats smaller amount of resources. Also, it is open source. I installed VirtualBox 2.2.2 and loaded official Ubuntu 9.04 VirtualBox VDI into it. You can find a suitable image on
VirtualBoxImages.com
or choose the one from
this blog
, which is what I did.
After loading VDI you need to install so called
guest additions
to get higher resolution, ability to change guest machine's window size, to get rid of very inconvenient manual mouse release, to be able to share folders with host OS and much more.
Start Ubuntu guest machine in VirtualBox and login in it.
In VirtualBox menu (top of the guest machine's window) click Devices -> install guest additions.
The above step may take a minute, be patient.
Open terminal in Ubuntu
cd /media/cdrom
sudo bash ./VBoxLinuxAdditions-x86*
Reboot guest.
Sharing folders with VirtualBox guest OS
All you need is to
execute 2 commands
to see folders of you Windows host in Ubuntu guest.
In VirtualBox Devices menu click on Shared folders and click on +folder icon. Choose any folder in host OS you want to share with your guest Ubuntu. I added folder called
yoga
.
in terminal create mount point: mkdir /media/yoga
sudo mount -t vboxsf yoga /media/yoga
now if you like you can add the same commands to /etc/rc.local so that they are executed on reboot
Installing packages
apt-get is a yum alternative on Debian-derived systems, like Ubuntu. It seems to be smarter and way faster than yum on Fedora (at least comparing to FC6, which is not really fair as FC6 is old). There is also graphical package managers both on Gnome and KDE and they seem to work better than on FC6.
KDE and Kubuntu
I am a KDE user and Ubuntu come with Gnome by default, so to switch I ran:
sudo apt-get install kubuntu-desktop
After that I logged out and clicked Option on login screen to choose KDE instead of Gnome.
That simple. The alternative approach could have been to isntall Kubintu instead, which is Ubuntu with KDE as default window manager.
The little time I had to play with Gnome before I made a switch back to KDE left me with a pleasant feeling so that some day I may try to work in it instead of KDE and see how it goes. It looks like KDE and Gnome work on some interoperability, so that switching between the two is not that hard. For example, I enabled a multiverse repository (an Ubuntu's term for a repository that has extra packages, which are potentially non-open-source as opposed to a default repository called universe) and I was pleasantly surprised to see it enabled in KDE as well.
I communicate with a lot of people. It is importa>>
I communicate with a lot of people. It is important for me to be properly notified. Had I not found the solutions below I might not have moved from Windows to Ubuntu as my main working environment. I hope the day will come when all communications will happen over the Web.
Site Specific Browser (SSB)
is the concept that shows the most promise to get us there. Before finding solutions below I reviewed a set of SSB products and attempted to use some of them for a week or so. Unfortunately for all of us in the Web Apps business - the current SSB crop is still way off the mark.
New mail notifications
On Windows this has never been a problem. But on Linux I could not find a way to get notifications when new email arrives in Thunderbird, and an indicator that I missed some events. Luckily and add-on exists.
Thunderbird new email notifications
are delivered by
New Mail Icon addon
. I suppose Mac people could also use
another add-on
for sending notification to Growl. I did not test it yet, but will soon.
Pidgin IM notification
It was simpler than I thought. Apparently Pidgin has a built-in system tray icon support. Go to preferences, Tab Interface -> System Tray Icon -> Show system tray icon. Change to Always.
Mesh of Linux and Windows desktops
I am working on Ubuntu in
Virtualbox
2.2.2 on Vista host.
VirtualBox
has an amazing option called Seemless Mode - where all Windows and Linux windows are displayed as equal on one desktop. Seamless mode is activated from your virtual machine's top menu or by a shortcut right_Ctrl_key+L (VirtualBox calls right Ctrl key a Host key and allows to remap it). I moved my Ubuntu panel to the right side and thus have two task bars - Windows at the bottom and Linux on the side. This arrangement allows me to see all systray notifications on Windows and Ubuntu in the right bottom corner of my screen.
I went to the Microsoft campus (geek central) thi>>
I went to the Microsoft campus (geek central) this week to learn about how they are cumulating their cloud. The event was sponsored by
Rackspace
, a hosting company, who offer cloud services through their division called Mosso. Also on stage were cloud consultants, VCs and some development companies.
The crowd seemed to be mainly ISV's looking to move into the cloud, some to progress their business and some no doubt to survive these times.
Microsoft
started by describing their activities with Azure and Software plus Service. They cunjured up visionary Ray Ozzie to outline their view of the future (albeit an old movie). They then ventured onto BizSpark, their development packages available to ISVs. They're offering all their tools for free to startups for 1 year. They'll also get support (which they'll need a lot of) and visibility (listed by Microsoft, gee whiz). This left me thinking they weren't really offering much and unless you have a massive team of developers already deep in MS development (who will already have those tools licensed) you're a long way off actually creating anything let alone building for the cloud.
A
consultant
stepped up to the stage. He had 25 minutes. He spent 10 minutes extolling the virues of the cloud with lots of nods from the audience. He then spent the rest of his slot outlining the majot challenges of delivering, servicing and billing. It was text book consultancy; sell them the idea then tell them the daunting challenges them face and why they need help.
The
VC
appeared and cut straight to the chase. VCs don't have to think hard about the SaaS model; earlier to market, less funding, predictable profits.
Two development companies then told us their stories. Both used traditional development methods, one was a logistics system locked into Oracle Fusion and the other was an accounting system using MS SQL and Visual Studio. These were not what I'd call built for the cloud companies and solutions. Neither filled me with enthusiasm that others would join their markets and develop traditional solutions.
I think all the presenters had also been told not to mention the letters A W S too close together.
In summary this event was a reality check for folks looking to seed their own clouds. I'd highly recommend all Lablerz visit these type of events to see just how far ahead you are in terms of platform, applications, no-dev, modelling, gui, security, recovery, billing, deployment...etc, etc, etc
This is the application we submitted today to Pal>>
This is the application we submitted today to Palm for early access to webOS Mojo SDK.
Description of application:
Lablz Mobile Web Applications range from horizontal like CRM, Document Management, Project Management to vertical, like SPA, Bar & Restaurant, Retail Point of Sale, Supply Chain Management, Jobs and Real estate classifieds.
But Lablz is not just an App developer. Lablz is the first company in the world to unlock the secret of Turning Data Into Applications. Users of Lablz Apps interact directly with data, thus developers need only to describe the data structures. This makes App code look more like markup and cuts the development time 100 times
eliminating the need to write UI, database access, and middle-tier code. This revolutionary approach lowers the requirements to drastically expand the potential developer base.
But this is not the end. Lablz Ajax UI is automatically generated for both Mobiles and Desktops, saving developers the hurdle of UI design for touch, mobile and desktop screens and the hassle of testing on dozens of Browser variants. On the back end Lablz provides developers with the fully set up Amazon EC2 AMIs ready to turn new Apps into Software as a Service (SaaS) and Web Services.
Please provide any additional information that you would like Palm to consider, such as your plans for proposed integration with features of webOS:
Lablz is extremely excited about Palm Pre. Since its inception, Lablz bet on delivering Web Apps as a 100% replacement for Native Apps. Palm Pre is our dream come true.
Our target market is people with genuine domain expertise (e.g in health, insurance, retail) for whom developing Web Apps today is too hard. Integrated webOS and Lablz platform will give domain experts an end-to-end device-to-cloud toolchain to monetize their expertise.
Here is what we plan to do with the webOS SDK:
1. We need to understand how Webkit operates on webOS. We have to understand how Lablz Apps can be turned automatically into Palm Catalog Apps.
We need to know how to auto-start Apps when the phone is powered on, how to place Apps on the home screen, how to organize the upgrade process.
2. We will investigate how Palm's Push Notifications service works. We need it to refresh Web App content when it changes, to provide up-to-date state to users. We don't want users to be caught in a no-signal zone with stale content on their Palm Pre.
Lablz Apps all share the back end Watch & Subscribe mechanism and Lablz needs to integrate it with event delivery to the phone.
3.
We are interested in webOS's JavaScript APIs to Palm Pre's hardware and services.
We intend to embed device capabilities (
camera, sound, recording, location, orientation, acceleration, etc.
) in such a way that Lablz developers do not need to program them at all. For example, Lablz developers can define some property to have the type File and assume that all the tools to upload, browse, search, tag, secure, discuss, and version the files are instantly available to users. Or if File is a Photo, then capturing from the camera, auto-scaling to various thumbnails, bulk background uploading, gallery-style viewing, watermarking, copy protection, are all instantly available.
We have prototyped the above ideas with our
Browser Bhoost open source application on Android
. We created Bhoost as a wrapper around Webkit to offer a JavaScript API for GPS, XMPP, SMS, Vibration/Sound/Visual notifications, Camera, Sensors, etc. We then used Bhoost and the Lablz platform to develop a prototype Dating-after-Movies Social App. We plan to reuse this expertise with the Palm Pre. All in all, we would love to do these things while being in sync with Palm, so we can better align priorities and deliver maximum mutual value. We have been hurt by Google's giving priority to native Android Apps and letting Web Apps lag greatly behind.
Please list the languages, frameworks and tools you most often develop with, and the platforms you develop for.Examples: HTML/JavaScript/CSS, iPhone, .NET, Ruby on Rails, Flash, Xbox 360, Palm OS...
Lablz is developed on Windows, Linux Fedora and Ubuntu. Lablz Apps are developed for all major desktop browsers and all major mobile platforms. The Lablz server is written in Java, so it runs everywhere and mostly deployed on Linux and Windows. Lablz Apps have business rules written in server-side JavaScript (Rhino). Lablz Naked Objects architecture employs the modernized MVC pattern where View and Controller are generic for all Apps and all development focuses on building the Model. View (Web UI) is therefore generated as a mix of HTML/Javascript/CSS based on the Model, a set of JSP templates, and a JSP Tag library. Eclipse (or Netbeans) is used by App developers as the Model creation IDE. Alternatively, Ant-based tools are provided which can be used together with any text editor. The ability to create the Model in-Browser is in development.
This article is a stub. More can be said on the s>>
This article is a stub. More can be said on the subject of how Lablz enables developers to practice
Agile Development
.
Patterns.
Lablz implements Naked Objects pattern which facilitates Agile Development.
Metamodeling.
Lablz utilizes Java Meta and extends it by adding a simple
Meta Object Protocol
to Java via Lablz Meta Classes. Lablz Meta Classes are just normal Java Classes. Lablz implements Semantic Web ontologies, which are a form of
metamodeling
.
Requirements analysis
. Lablz models bridge the divide between business analyst and IT as they are much easier to read by non-developers and create a common ground for discussions. Upcoming Web UI for Voc will make it even more simple. Web UI for Voc allows to use existing collaboration tools directly on Voc objects. Such Lablz tools facilitate requirements analysis.
Code refactoring.
Lablz enables developers to do Agile Development by automatically adjusting Object to Relational Mapping as developer re-factors his Object Model. One upcoming project in this area is giving user the ability to change super class to abstract class without ant drop. This particular project has the DB optimization benefit. SQL table of the superclass becomes a bottleneck if some of the subclasses have a lot of resources. All subclasses pay the penalty of joining with the SQL table for the superclass. When developer adds abstract modifier to a superclass, like DailFulfillmentItem, 'ant loadforce' will run a utility that will remove huge SQL table of the superclass and move all the data to individual tables of the subclasses. We plan more of such refactoring utilities in the future.
Collaboration and continuous integration
as practiced at Lablz shop itself:
use of SVN
use of collaborations tools: CRM
Lablz runs daily a 100% automatic backup for EC2 AMI. This backup machine tests the Recovery procedure from a server snapshot, runs symbolic (.csv) backups and a set of quality assurance tests.
Less than a year ago Lablz has switched from CVS >>
Less than a year ago Lablz has switched from CVS to SVN. A total disaster it was. The productivity loss had been enormous. We have used CVS for years with almost no problems. Whatever problems existed had quick workarounds. All the hype surrounding SVN was total nonsense. SVN in Eclipse does not preserve version history when source is moved or renamed. SVN atomic commit sounds nice, but when SVN itself is barely reliable - it is of little consequence. You have to use command line tool to move/rename in order to preserve old revisions. But wait - you can't. Command line SVN tool changes .svn metadata so that Eclipse SVN client can't read it anymore and vise verse. SVN does not live up to its promise and will probably take several more years to mature - may be more, if ever. But as all our code history is now in SVN - we try to cope with it - for now. What a lock in! Unfortunately we found out when it was too late that migration from CVS to SVN did not go well either - older history for many sources was cut off at an arbitrary date a couple of years back or at an arbitrary number of revisions (some sources had hundreds of revisions). Good thing we have older CVS server and an older Lablz server working directory which we consult about once a month.
Subversive plugin blues
We chose Subversive plugin over Subclipse, as it seemed to be that Subversive was well on the path to becoming a built-in component of Eclipse like CVS client is. Subversive reportedly had much better UI and integration with Eclipse for compare, merging, etc. This decision added garvely to our SVN troubles. I
Subversive and its integration with Eclipse is extremely finicky, unlike CVS which was amazingly stable and never gave us any trouble. You need to be extremely conservative in dealing with Subversive. If you have a more or less stable setup - DO NOT CHANGE IT. Subversive plugin was recently (some time in April 2009) restructured again and whoever had the Eclipse updates on automatic - were screwed - SVN stopped working altogether. This happened on my PC and on lablz.com server, so beware. Turn off automatic updates in Eclipse (and while you are at it, on your Windows box too - my recent Vista automatic update had such bugs that it had to be rolled back on the emergency basis. Instead - setup a simple firewall, stop using IE, use Webmail for virus checks and you will be fine). The number of Subversion problems is so large that it is almost unusable. They vary from forgetting to merge the code upon SVN update and leaving you with the code that is stale to just hanging Eclipse, eating 100% cpu for 30 min on SVN Cache update (whatever the bloody thing means) and just plain killing your Eclipse so it does not start anymore. No amount of googling brings any relief. People scream but no answers exist. This thing is developed in a total darkness with no community feedback as it seems. Not all open sources projects have an open process.
A must
: always manually compare with repository every local source that was marked with letter G in SVN console output on SVN update.
It could be that Eclipse Ganymede release is to blame. We never had so many problems with Eclipse in the last 5 years. It looks like Eclipse itself is evolving in the wrong direction - they are adding millions of components that had better be implemented as Web applications anyway while neglecting the core functionality and not fixing known bugs for years. It may be heading the direction of Visual Cafe. This saga may serve as another reminder for Lablz developers - everything must have Web UI, even the core development of the vocabulary - luckily we are making amazing progress in this area. Another reminder for us - do all Lablz development in the open. Move all the discussions online. Improve Lablz CRM tools or add whatever is still missing to leave all email discussions in the past.
Installing Subversive plugin
If you experience any problems with Eclipse/SVN is to create a new Workspace and re-import all projects (choose Import -> General -> Existing project into workplace). If that does nto help install Eclipse completely anew, install Subversive plugin and SVN connector anew and check out all the sources anew. Keep in mind that different versions of Subversive plugin have different metadata format in .svn directories under your working directory source tree. You may be able to go forward but definitely not back in Subversive plugin versions. So, if checking out all sources is not an option, then you can try to do this: Help -> Subversive -> Migrate projects and settings. I had some limited success with this option - it all depends on the difference in versions between your old Subversive version and the new one.
At the time of this writing I have stabilized the setup with:
Subversive 0.7.8I20090506-1500
SVNKit 1.2.2 r5428 (did not test yet the 1.3.0)
To update See
instructions
at Eclipse site, or just follow the steps below:
Help -> Software Updates -> Available Software Tab
Click Add Site and enter URL of the
Update Site
.
On May 13 2009 this URL was:
http://download.eclipse.org/technology/subversive/0.7/update-site/
You will be presented with a list of components on this added site and you can choose all. I chose to skip those that have Mylin and those that are just Sources for a corresponding binary component. I will not present the screenshot of the Eclipse's dialog here as it changes so often recently that it will confuse you even more.