Anything I can find I'll try to blog about it, be it GIS, mapping, programming, graphics, CAD, networking, gadgets, music, both in English and Arabic. Technically everything tech-related and tech-unrelated.
2010-03-03
The Linux Kernel age
This interesting article gives some stats about the Linux kernel, the largest Open Source project ever, it gives some idea about how dynamic such a project is actually (a more detailed version is here also).
The same author did some more analysis on who contributed mostly to the kernel, the numbers are very informing.
2010-01-28
Oracle Sun Acquisition complete
The event talked about many technologies that is affected by the acquisition, like:
Java
- JavaFX is the highlight of presentation layer technologies.
- Will continue to address Desktop (SE), Enterprise (EE) and Mobile (ME) platforms, and will try to converge the APIs between SE and ME and use JavaFX as the common presentation technology.
- GlassFish will join WebLogic as the Application Server platform for Oracle (positioning it for the Developers and the Open Source community while position WebLogic for the enterprise and mission-critical installations)
- GlassFish will continue to be the reference implementation, based on Open Source model, with commercial support for it, parts of it will be ported to WebLogic, most probably it will form the foundation for newer WebLogic releases and powers its Java EE-certified core.
- Web Center will be the strategic Portal solution (against Sun GlassFish Web Space)
- The JRockit JVM will be positioned on the same support level as the reference HotSpot JVM, most probably is that more interactions between the core-JVM and the JRockit in the upcoming years.
- Oracle JDeveloper will continue to become the premier IDE for Oracle and Java Enterprise Applications (for Database and Java EE based Applications, SOA, and ADF-based applications)
- Oracle Pack for Eclipse will continue to be developed to provides integration between Eclipse and Oracle, but no major new offerings (which was expected)
- NetBeans will continue to be an Open Source offering, and stay as very wide covering as it is now (for covering the complete Java portfolio) and support for NetBeans Platform will continue.
- Support for Hudson, Oracle Team Productivity Center, maven, Subversion, BugZilla, and many other ALM tools to be shared among JDeveloper and NetBeans
- The Matisse Visual Forms Editor from NetBeans will be integrated in JDeveloper
- SOA & Application Server Adapters will be shared from JDeveloper to NetBeans
- Continue support and development in Solaris and Unbreakable Linux
- Higher integration between the Oracle Database and Solaris ZFS
- Virtual Box will be continued to be developed and integrated with Oracle VM (to use the same Oracle Virtual Machine template format)
- Solaris Logical Domains (LDom) will become Oracle VM for SPARC and managed through Oracle VM management consoles
- Oracle VM for x86 will add support for Solaris
- Continued support for Solaris Containers and Dynamic Domains (on M Series Servers)
- Next version of Oracle VM will include Virtual Iron technology with better APIs and management console
- Sun VDI Broker will be continued to be development (including Secure Global Desktop)
- Oracle VM Storage Connect and ASM will continue to be used for Storage Virtualization
- Open Storage systems will be used for Storage at the hardware and low-level functions
- Oracle Enterprise Manager (For managing Database, Middleware, and Applications) and Sun Ops Center (for managing Hardware, OS and Virtualization) will be support for the short-term
- Higher connectivity between Enterprise Manager and Ops Center will be developed in the mid-term to allow shared alerts and events, and allow some data to cross applications (12-18 months)
- In the long-term, the Enterprise Manager will consume the functionality of Ops Center and become the unified management console of all the Oracle products
2009-04-21
Oracle to Buy Sun

Oracle Buys Sun (from Oracle.com) | Sun and Oracle (from Sun.com)
Earlier yesterday, Oracle has announced that it has reached an agreement to purchase Sun Microsystems for $9.50 per share, making it a $7.4 billion deal, by this acquisition, Oracle will have a complete end-to-end product line that focuses on data and business requirements in the largest enterprises.Oracle has been trying to enter the hardware business lately by its HP Oracle Database Machine, which is essentially a complete rack of HP hardware and Oracle Software, but this last acquisition will bring Oracle completely into the major hardware business, this will give it a complete line of products, from the largest UltraSPARC supercomputers Sun creates and maintains, to its mid-range SPARC servers, , to its Blade servers and high-density computing, to its carrier-grade Netra servers, to storage-oriented servers, to the entry-level x86/x64 servers, down to workstations and thin-clients; not to mention a complete processor architecture and alliances with both the major x64 market players, Intel and AMD.
Oracle will also get a complete software stack to build complete systems using its Oracle software, this includes the Solaris/OpenSolaris operating system, which is (quoted from the Oracle press release) the largest platform Oracle is deployed on, the bleeding-edge ZFS storage engine, the Lustre filesystem which is geared toward clustered supercomputers, and engineering expertise Sun have for building such large-scale installations.
But the crown jewel in this purchase is definitively the Java platfrom, Oracle has been the third-largest contributor to the Java environment (after Java's Own creator Sun, and IBM with its Eclipse/Rational product-line and its WebSphere middleware), Oracle has its Oracle Fusion Middleware product-line which it enhanced by its acquisition to the BEA WebLogic product line, its JDeveloper IDE product, it contribution to the Eclipse Foundation, and its native support for Java inside its core Database product-line.
Oracle will also benefit from Sun earlier acquisition to MySQL, which fosters its position as the major (and mostly the only) player in Linux database business (keeping only the relatively smaller player PostgreSQL) and IBM current offerings, DB2/Informix which focuses more on IBM integrated services/platform than being an active player in the Linux market.
Oracle does have overlapping products with the Sun portfolio, like its GlassFish Application Server (which overlaps with Oracle Application Server and BEA WebLogic), its NetBeans IDE (which doesn't completely overlap, but somehow, with the JDeveloper and the contributions to the Eclipse foundation), its MySQL database product (which is not positioned as a direct competitor to the Oracle database, but none the less it has managed to grab a good market share in the Internet-centric database field), and its open source VirtualBox virtualization software (which overlaps with the Oracle VM product, which is based on Xen).
This is no where the overlap that was to be there if the deal with IBM has managed to succeed, it would give the new IBM overlaps in its complete hardware business (which Sun competes across the complete line), its processor business (the POWER vs. SPARC), its Operating Systems business (Solaris vs. AIX & z/OS), its development tools business (NetBeans vs. Rational/Eclipse), its application server business (GlassFish vs. WebSphere), and its database business (MySQL vs. IBM DB2/Informix); this would leave IBM with just one piece of software it really wants from Sun (beside its server market-share), which is of course the Java platform, and quite frankly, it is not worth the $7.4 billion Sun was asking for (which is the same price Oracle agreed on to complete its acquistion).
I was worried that such a merger/acquisition would make too much mess in the Sun portfolio, but now as Oracle is the new Sun, I'm not so worried; Oracle will benefit directly from the hardware business, the processors business, the Operating Systems business, the Java platform, the office productivity products; and will have minimal impact on the development tools and the virtualization products; the remaining parts where Oracle will probably have a major impact is the database business and the application servers business (which are minor parts in the Sun products line).
We will see how such acquisition will result in the near future, and how the open sourcing of many products of Sun will shape the future of such products.
2008-11-03
Branching and Merging in Subversion
Subversion (and Subclipse as my current UI to it) has a somehow tricky branching and merging technique, I've tried it for some time and the only way I managed to do it is by:
- The main trunk is branched using Team -> Branch/Tag (this initiates a Commit which is recorded in context to the branch, not in the main trunk; you can get its revision number by showing the history of the project linking to the branch or the main repository in the SVN Repositories view, but not the project linking to the trunk)
- You can select to switch to the branch in the same project, or keep this project linked to the trunk and checkout another project linking to the new branch
- Edits can be done independently from both the trunk and the branch where the commits don't conflict (as they are in fact different files)
- When you need to incorporate a change that has been done in the trunk but not in the branch (like a bug fix or to keep the branch up with the trunk), the Merge command can be used:
- Select the project containing the branch
- Select Team -> Merge
- In the "From" group, press the select button beside the revision number
- In the available revisions select the revision you branched at (the Commit of the branching order)
- In the "From" group, press the Select button beside the URL text box
- Select the trunk folder
- In the "To" group, check "Merge to HEAD revision" to incorporate all the changes done in the branch, from its creation to the current most up-to-date revision
- This will create a modified working set locally (the project linked to the branch will need to be committed)
- At this stage, you need to update the project first (using Team -> Update) before the modified files can be committed
- Finally, select Team -> Commit to publish the merged files into the branch
- Select the project containing the branch
- In the reverse direction, when you need to merge back changes from the branch into the trunk (where edits has been done in both the branch and the trunk), all you need to do is to select the project containing the trunk and select the branch as your "From" URL, you still need to select the revision number of the Branching commit (for all the changes you committed to the branch to be included and not just the newer or latest ones)
I find a special shortcoming in the Subversion branching and merging system; when merging, it doesn't merge the changes in its revision number, meaning that if you did changes to the branched files in revisions 105,106,107 & 108 to the branch, and then merged and committed the changes to the trunk in revision 109, you will only see all of the changes suddenly occur to the file in revision 109 and later, not in an incremental way as it should be.
This is not a major shortcoming, as you can always return to the branch and check its changes in the revisions it was committed in, but it is still an unintuitive solution.
Experiments with Subversion
I've been experimenting with Subversion, and it turned out to be great tool, even for single developers, where its ability to indefinitely remember changes and track versions is indispensable to any software project that is more than a small hack.
Also the ability to work with it is very important to contribute to any major open source software (especially the ones I'm currently interested in as uDig, PostGIS and OpenLayers).
I'm using Subclipse and TortoiseSVN to handle the communication from and to my SVN repository, Subclipse is particularly easy and handles all of my needed functions with tight integration to the Eclipse platform; I've tried the Subversive and it didn't seem to recognize the SVN connector library (neither JavaHL nor SVNKit), I think the Subversive plug-in is more feature-rich, but until further attempt, Subclipse is very stable to me.
I've also read about Git, Mercurial and Bazaar, and I think the Distributed Version Controlling Systems are really interesting, but they seem to not fit so well with my development model, you can check about some notes about them here and here.


