Wednesday, April 28, 2010

9000 Agp 350mhz 0x4c66

Majowa evangelism Software craftsmanship


Presentation on the theme of Software craftsmanship was quite warmly received during the Poznań 4Developers , and met with considerable response from the community.

why I thought it worthwhile to continue to promote the profession in our industry - in particular, that our community begins to more clearly indicate some problems.

therefore invite all interested stakeholders on Software Craftsmanship to a series of free conference, where I plan instance:

- lubelskie IT day - May 12, Lublin
- Infoshare - May 14 in Gdansk
- Javarsovia - 26 June in Warsaw

/ / = =================================

welcome the fact that the theme of craftsmanship also appears on JUGach: Warsaw and Wroclaw

Wednesday, April 21, 2010

Clairol Daily Defense Conditioner

Google Application Engine



Today will be about fairness.

looks promising

cloud Google - GAME generally looks great. Free (up to certain limits), we get a platform that is able to carry one thousand transactions per second and store terabytes of data for us in nonrelational based BigTable . For this access to many Google services such as security, storage of images, download content pages through ichni cache, memcache etc.
powerful
we can program in Python or Java (the truncated version, excluding standard classes and the prohibition to use certain libraries).

general assumption is: Developers (and consultants;), in most can not configure a scalable environments or write scalable applications, which is why We provide them with a platform that will address this problem in a manner transparent. So we have the opposite approach to Java EE. Take the issue of business and the cloud will be scaling. The direction seems to be right.

So we start playing ...
On a good day short of the official presentation of the main page as it is good and quickly slaps the applications and fires them into space: http://www.youtube.com/watch?v=P3GT4-m_6RQ
must admit that the plugin Eclipse is a model: a simple use (3 suggestive buttons), works and provides everything
- local server emulation cloud and its resources (database)
- a tool that automatically "enriching" bytecode for the classes of entities ichniej "implementation" JPA
- a utility that discharge application in
space - a simple wizard that generates all the spaceport
(do not dare zmawenizować generated project, because it is usually a week in the back and in the end it may be that we lose hotdeploy)



WTF?

But, but ... the film gets going with time ... One
of the largest software companies on the ground shows how to write code in. .. Java Server Pages. Look closely and learn: the logic and data access w. .. scriptletach (sic).

course, big boys know that they are scriptlety depricated. A knife, fork the scene saw a little child, and will later be programmed so as he grows up?? Then again, we read in the newspaper about the tragedy that took place in a peaceful project. Where were the parents? "?

Hmmm strange, strange ... no but does not cling to the details, it's just such an example. But we can always design the elegant and the whole base layer with a proven framework.



LIMITATIONS OF SEVERED

Unfortunately, as mentioned at the beginning of the JVM is no limit, and not everything works. Seam Although you can start after 15 speszyl hooks, but they all say that it is not worth the risk. Fortunately, good old Spring is officially operating. Many brave bloggers publish hello worldy and tutorials how to put together. It appears that one copy from each other;)

Ba, even 2 books GAME prefer Spring and show how to configure it. Hmmm I wonder why only servlecik discuss Spring MVC and diplomatically not address the more advanced zagdanień ...?

Unfortunately, however, does not work to the end!
example, when we use the technique of interlacing Aspektowych and run time, we have strange errors ClassNotFound. Locally, work, and the cloud is not. What
implies that we can forget about aspectual, elegant service and transaction security.
So why do we need Spring? Only the injection? It makes no sense.



NOTE ON persistence

matter, you can live without the Spring, let us more ... Non-relational database BigTable was covered by Google's interface JDO or JPA (optional) so we feel like at home.
Not exactly ... specification has a number of limitations imposed by the solution architecture BigTable - terms of scattering data structures on different machines on the side of the clouds.

Fine szczególik only mentioned in the documentation is such that aggregates of entities are grouped into families . For example, if we have the entity Order, which has the list of ZamówionychProduktów it's family. What does this mean?

Entity can only belong to one family.
implication: If we have a contract and invoice entities and entity Kleint, which must be connected to the Orders and Invoices is unfortunately not possible. Your child may have one parent. Of course you can get around this in the Order and the Invoice object to use keys to the customer. But then we lose the ease of programming and dependence on the Cloud API.

Please note that the approach to data modeling in nonrelational database requires a different "attitude" - that the nature of the solution. If nierelacyjnie can object? But not quite - well, how? Personally

I prefer this approach, the Order or Invoice is indeed the key to the customer but also niepersystentne Customer field, which is set in it a separate question (this is not a big expense in BigTable database, which is really a multidimensional HashMap). These types of details can encapsulate the objects Repository that return data "folded" so that was convenient. OK, one problem solved.


transaction may involve only operations on a single family.
Thus, if the application logic family wants to save both the order and invoice to be are two separate transactions. And what if in the meantime, something unpleasant will happen? Hand carving and cleaning:)
Besides, as I mentioned, Spring AOP transactions do not work, so ink stains code of business transactions within the JPA API.


Datanucleus - "Implementation" JPA
Besides the fact that it is truncated also contains several errors - do not work, even in some simple examples of the tutorials JPA. The official group is hanging a lot of questions - no answers.



NAIL

Presentation
The presentation frameworks tested the JSF.
1.2 (with Seam) works.
2.0 works after applying one simple speszyl hook.

works in the sense that it starts up. In 2.0 there are some problems with the injection ManagedBeanów. RichFaces or ICEfaces does not have a version for the clouds. Officially PrimeFaces partially working. Again, this is not reliable and information - AJAX in general is falling apart.

And you can forget about running the methods with a parameter with the new engine expressions (el-api in version 2.2). Cloud refuses to cooperate with the new achievements.

//==============================

Given the above limitations:
- lack of a convenient framework (including support for AOP)
- poor ORM functionality requiring many manual operations
- mental model of programming prior to about 10 years
We have a significant drop in productivity.

guess where these JSP scriptlety and static methods in a promotional film? Could only make this work?
Too bad the blogosphere community and stops at the Hello World and does not verify a bit more thoroughly and reliably.

Finally I must add that very different assumptions in the construction of a cloud received Amazon. We get hardware and operating system. Nobody does not impose additional entities we built the hardware and does not come to us from our shoes in the years developed and tested a model of programming. And most importantly - it works:)