Saturday, December 19, 2009

New Article #56

Equalities with Sums of Powers




Sunday, July 05, 2009

New Article #55

My Ubuntu [Read this article]

I'm on Ubuntu for more than 6 months now! Trivial eh? For me it was a long sweet road, with sweeter prize at the end. Consciously I tried to avoid writing about it prematurely, since I have many time installed linux, only to frustratingly move away back to old windows. This time I started with 8.10 (some how 8.04 attempt failed) as it was released, and even upgraded online to 9.04 without any permanent damage!

Once you stick, Linux grows on you. Off late, I even feel that a strange new OS is becoming more popular than Ubuntu, on other people's PC: Windows. No exaggeration, but I'm so much at home with ubuntu, that even the old monopoly look alien and unatural. Strangely I'm proud that I can feel so close to linux, more so after almost 5-10 years of earnest attempts.
...

Saturday, February 14, 2009

New Article: #54

Object Oriented Build Management [Read this article]

Have you ever wondered how a build tool can make big impact to the way we code and deliver? If you have then this is where you will find your answers, if you have not, you will get more questions and some answers to them as well! This article will explain about some of subtle aspects of build management using Maven tool drawing parallel to various object oriented concepts that we are familiar with and how that can be applied to build management. Here we will also see how migrating to an build using maven can help the project in making the development a lot easier, to have a better Java code management and how it aids in getting it to the new level in configuration management.

...So the concept is to have these extra meaning (only those which may not vary too much from project to project) built in to the configuration management system, apart from creating sub-projects. This conventions to tag the semantics of the files could be denoted by its root folder name (src/main/java) or a special file (POM file) inside a folder denoting a special meaning (say that it is group, or a parent POM). This makes it more object-oriented and easy to separate them and have an appropriate root folder structure for the same.

This article brings in another perspective of applying object oriented principles to build management using Maven 2. In summary, we saw about how it helps in code health, configuration management restructuring and libraries management to our advantage, and all of these with our 'sub-project' thinking. It does not cover various nitty-gritty of 'how' each of them can be done using Maven...

Sunday, November 30, 2008

Moving to free Google-apps Sites.

http://www.google.com/sites/overview.html

Happy to share that tattvum.com now has moved to google apps - sites. You might remember that it is already in google apps for email, which also gives extra flexibility to create and share documents, which we are not using. The domain name is with godaddy, with MX pointed to google apps, and A record to space2host. That was past! The space2host is expiring in jan, so I was exploring if there is a simple model to host a site with our own domain name? All I'm using space2host is for static html.

I tried Page Creator of google, but looks like that is deprecated for Sites. Indeed Sites is wonderful, and with some nifty DNS forwarding and a www CNAME, as suggested by google, we have a very custom made and very flexible website all free, except for the domain name with godaddy.

Please check, http://www.tattvum.com and kindly alert me if I have missed anything in the one-day sweet effort of transition.

Hopefully now, with the totally online way to draft and publish new articles (even blogs?) maybe I/we can write more often.

Reflecting on this experiance, I think Sites is a superset of all Google's previous efforts: Start page, Page Creator, even Docs eventually? All you need is just gmail (this includes talk) and sites? Even with some tweeking it provides all benefits of XWiki, and Groups! Great direction.

Tuesday, November 11, 2008

On GWT GUI and pure POJO applications
(no DB code, no GUI code)

http://code.google.com/p/kiyaa/wiki/TemplateSystem
http://code.google.com/p/google-web-toolkit-incubator/wiki/UiBinder

OK, I passed through many doubts, leaps and revelations while working with GWT generators to make the GUI creation simpler. I have been creating GUIs for more than 10 years now, from Delphi of borland. Though the usage of widgets might be inevitable, why not GUI creation be just a POJO with annotation (and some minimal API if needed)? After 2-3 years now EJB realizes it can be.

For GUI the key is to separate 4 things: CSS for style, HTML for layout, POJO for logic, and widgets binding underneath to POJO data types. GWT recognizes this clearly. CSS and HTML is very popular and pretty good in what it does.

For logic, on any day, GUI widgets can grow and should, and all the while even smallest of programming language has data types that are richer than what you can show on GUI. So GUI should be best done as a program over the attributes/properties/variables with no direct reference to gui and its properties.

Finally to make all things link up, we need the data types mapped to the widgets, some standard and allow escape routes to create new widget for new or old data types.

So it boils down to a good set of GUI neutral pojo-property annotations, that makes sense in java and has enough hints for GUI.

If this stage is reached, emboldened by hibernate/JPA effort to do the same for db, we can then aim to have the same POJO to work in server and for GUI with all its bells and whistle. Of course RPC should be possible with minimal hints as GWT has already showed it possible with elegance. Like public/private/protected we may need new modifiers or annotations might be just enough. That is while creating the pojo, annotate which has to go to client, and which will be persisted and also which will be shown in GUI and how!

Think of that, a full blown application in all its glory (performance and capabilities) just as a properly done collection of objects, and every aspect highly configurable.

Of course Ruby on rails does this (mmmm... maybe that is it? If only it had java in backend and GWT in front ;). I also saw ACE of sun sometime back but it looks dead now.
http://research.sun.com/projects/ace/

Nothing new as an inherent interest of all, but destination looks incredibly close now. If GWT believes, it can do it radically soon. Maybe think this way, take POJO, apply JPA annotation to it, and now add new GWT GUI (ideally generic standard) annotations to it. Create HTML and run GWT over it. Presto. RPC, html binding all taken care of.

GWT can keep adding to the standard data type mapping, and allow custom routes for experts.

In this light declarative UI looks bit out dated (?!) because maybe component binding will become a less common daily chore.

Sunday, December 23, 2007

New Article: #53

What is Balance?
[Read this Article]

Recently I floated in a 12ft deep swimming pool for an hour! This was my first time ever and I'm 34 years of age. No huffing and puffing, no extra inborn lung/body capacity, and yet there I was, and even the hand leg movements is just to relax and not to float. Don't believe me? Or maybe you believe this, and also assume that I'm kind of a mystic who can walk on water!? Of course probably not the second, but that is the kind of extreme stance we take when we encounter an balance act. If something is fantastic, either it has to be impossible practically, or it is some awesome mystery. Maybe there is another uninteresting option, that of meticulous practice: Kind of go daily to the field, slog it out, practice all day, and slowly you become a master. So anything fantastic is either one of these 3 options: Impossible, Mysterious, or Boring. Right? So not worth trying for? Now all ye non-swimmers, and even swimmers who cannot do the above, how do you see it? I can assure you I really did this (call me, I can show you), I'm no born swimmer, and finally this does not take years of boring practice (in fact I feel I can teach this to anybody interested, in under 10 minutes).

Ah! There you see it, it is kind of a trick. Right? The 4th reason for anything fantastic is a secret trick? Maybe there is a 5th reason then.

... Programing is not natural. If you consider basic global variable based programming, all you need are only 4 concepts: Maybe statements (assignment and expression), Variables, Loops, Branch. This is the complete set for even full mastery, and you might take say 1-2 hours to explain all in detail with an example. And yet the newbie cannot program even simple "Add all numbers below N" like non-trivial 3-liners. So what is the problem? Teaching methods? Maybe a programing gene?! Nope. The confidence to be able to break any logical problem into a program is also a 'Balance'. Why a balance, why not just term it as a knowledge? As we saw, not all all knowledge is a balance. Memorizing is not a Balance. You don't forget programming if you have not learned to do it once. It does not come really incrementally but only in snaps.

Saturday, October 13, 2007

Stabilizing updates to the site...

1. Made the side navigation uniform in all pages
2. Included google analytics in all pages!
3. Included blogger link in the left navigation
4. Included blogger rss/atom feed in all pages for browser support.
5. A minor bug of a-tag like behavior due to malformed a-name-tag

Nothing significantly visible yet that was some work. Whew!