Booyah Blog
Thursday, April 25, 2013
Turmoil in server wonderlands
The simple answer is - commodity.
Commodity is the route to perfect competition, but this will answer the question for low end x86 (Intel specification) based servers.
Now what about the differentiation in high end servers where knowledge exists as barrier ?
The answer is - nobody cares about this knowledge, here comes the BigData.
Purchasing of thousands of desktops, farming them into clusters is 20% of TCO of high end servers, more scale-able and many-many-many more advantages.
BigData will make those thousands desktops to ride in parallel delivering computing power and high-availability.
The conservatism of enterprises will give 3-5 yeas more for server makers.
Thursday, January 15, 2009
Why Fixed Price projects fail (summary)
Reason No.1 - Clients (yes, clients are not aware what FP project means)
- think they can sue : this doesn't actually solve their problem of getting project delivered.
- price is fixed and known: FP projects cost more than initially agreed upon, also FP projects might be cheaper when based on Time&Material since client is paying the risk time
- financial control : FP also means fixed-scope,fixed-features,fixed-planing,fixed-timing, so no changes can be performed during project implementation comparing to ever-changing business demands doesn't present realistic picture.
Reason No.2 - Vendors
- not being experienced in performing reliable price and resource estimates
- clients providing unclear project specification, vendor fail to identify specification issues
- clients exercising severe cost pressure on the vendor beating down price, vendor degrade quality to fit
- clients adding further functionality and requirements to the project scope,
vendor accept change in scope without other changes
- poor communications leading to misunderstandings, causing a lot of rework
- clients not meeting their responsibilities (accepting milestones, providing feedback e.g.) within an acceptable time-frame, vendor is not proactive
- being inexperienced in having full project management responsibility
- running out of budget eventually causing quality issues
- Bad contract management not addressing common controversial subjects
- think they can sue : this doesn't actually solve their problem of getting project delivered.
- price is fixed and known: FP projects cost more than initially agreed upon, also FP projects might be cheaper when based on Time&Material since client is paying the risk time
- financial control : FP also means fixed-scope,fixed-features,fixed-planing,fixed-timing, so no changes can be performed during project implementation comparing to ever-changing business demands doesn't present realistic picture.
Reason No.2 - Vendors
- not being experienced in performing reliable price and resource estimates
- clients providing unclear project specification, vendor fail to identify specification issues
- clients exercising severe cost pressure on the vendor beating down price, vendor degrade quality to fit
- clients adding further functionality and requirements to the project scope,
vendor accept change in scope without other changes
- poor communications leading to misunderstandings, causing a lot of rework
- clients not meeting their responsibilities (accepting milestones, providing feedback e.g.) within an acceptable time-frame, vendor is not proactive
- being inexperienced in having full project management responsibility
- running out of budget eventually causing quality issues
- Bad contract management not addressing common controversial subjects
Tuesday, June 17, 2008
I found it! - AndroMDA
I have first use custom MDA code generation techniques in 2004, since then I'm searching for generic MDA code generation Framework and I think I found it.
The idea is that if you put a little more effort in the design phase(drawing more UML) this will boost your development a lot.
Plus the fact that most of web(j2ee) code is tedious and I can't see a reason why it can't be generated easily.
So here how I installed,configured and play with androMDA for 2 days completing their tutorial(can't wait to play with state chart diagrams for FrontEnd generation).
What is androMDA : Pack of build processes,templates and UML Profile with extended stereotypes and datatypes through XMI.
My bundle was: JDK 1.5, maven 1.0.2, androMDA-3.2, MagicDraw 9.5 (CE).
Problems:
- as 90% of the OSS-Free projects...there is exactly 1 way to make all this work(+ some obsolete tutorial sentences) - follow the steps zaelot like
- androMDA 3.2 misleading UML profile: it looks that 3.2 supports UML2... but no, androMDA 3.2 only works with UML1.4 and XMI 1.2 (both pretty old)
- UML Tools - ArgoUML (20 or 24) does not work at all with 3.2 UML profile, however MagicDraw 9.5 (community edition) works ok. Have in mind that most recent UML Tools doesn't support UML 1.4 and XMI 1.2 ( most of them : UML2, XMI 2.1 )
I like:
- it actually worked (yes many "Free" projects I've come across doesn't)
- can generate finders
- is not overhead to the overall development process(it can be hooked at design phase)
- can generate almost everything (currently I was able to generate servies,entities,hibernate xmls, value objects,web part)
- can generate complex FrontEnd (still to be verified - state chart diagram)
- pack everything nicely (into EAR of WAR)
- OSS (don't know if this is a plus but you can modify it)
- can be integrated into complex build process (of course)
- try to separate common,generated and potentially custom implemented sources
The idea is that if you put a little more effort in the design phase(drawing more UML) this will boost your development a lot.
Plus the fact that most of web(j2ee) code is tedious and I can't see a reason why it can't be generated easily.
So here how I installed,configured and play with androMDA for 2 days completing their tutorial(can't wait to play with state chart diagrams for FrontEnd generation).
What is androMDA : Pack of build processes,templates and UML Profile with extended stereotypes and datatypes through XMI.
My bundle was: JDK 1.5, maven 1.0.2, androMDA-3.2, MagicDraw 9.5 (CE).
Problems:
- as 90% of the OSS-Free projects...there is exactly 1 way to make all this work(+ some obsolete tutorial sentences) - follow the steps zaelot like
- androMDA 3.2 misleading UML profile: it looks that 3.2 supports UML2... but no, androMDA 3.2 only works with UML1.4 and XMI 1.2 (both pretty old)
- UML Tools - ArgoUML (20 or 24) does not work at all with 3.2 UML profile, however MagicDraw 9.5 (community edition) works ok. Have in mind that most recent UML Tools doesn't support UML 1.4 and XMI 1.2 ( most of them : UML2, XMI 2.1 )
I like:
- it actually worked (yes many "Free" projects I've come across doesn't)
- can generate finders
- is not overhead to the overall development process(it can be hooked at design phase)
- can generate almost everything (currently I was able to generate servies,entities,hibernate xmls, value objects,web part)
- can generate complex FrontEnd (still to be verified - state chart diagram)
- pack everything nicely (into EAR of WAR)
- OSS (don't know if this is a plus but you can modify it)
- can be integrated into complex build process (of course)
- try to separate common,generated and potentially custom implemented sources
Thursday, June 12, 2008
Reach-IT for ECHA my last project

After 8 years of development it looks over(I'm joining IBM Bulgaria GPSG Department). My Last project was Reach-IT for ECHA(euro chemical agency) it is a overall chemical substance registration application that will help EU to manage chemical trade better. Maybe one of the very few projects that BPE (WLI) is not over-design and is the actual heart of the project. Plus additional code quality requirements that comes from Euro Commission makes this project demanding and interesting.
It is now alive :)
Wednesday, June 11, 2008
SVG Language Translation (SVGLT)
In one of my previous companies I've started a SVG Translation project that does automatic translation of electronic SVG schemes to different languages.
Step by step this evolve and soon could be considered self-sustainable product.
We keep developing it together.
SVG Translation has web interface sophisticated UI that can be customized for specific business needs plus very informative logging that will help user develop complex translation process. Some of the good logging features include:
- logging of terms that were not found in the db (so user can collect and translate them for later)
- files that lacks terms
- terms not found in the db and their languages(lang that miss translation)
- asynchronous translation process
- ability to handle multiple translation languages per once
- based fully on OSS and free software
- extendability
- hyphenation
- manipulates coordinates to avoid overlapping
Step by step this evolve and soon could be considered self-sustainable product.
We keep developing it together.
SVG Translation has web interface sophisticated UI that can be customized for specific business needs plus very informative logging that will help user develop complex translation process. Some of the good logging features include:
- logging of terms that were not found in the db (so user can collect and translate them for later)
- files that lacks terms
- terms not found in the db and their languages(lang that miss translation)
- asynchronous translation process
- ability to handle multiple translation languages per once
- based fully on OSS and free software
- extendability
- hyphenation
- manipulates coordinates to avoid overlapping
Friday, December 07, 2007
Testing JSF and Trinidad with JMeter
Problem: Testing JSF and Trinidad application with JMeter .
Why this is a problem: due numerous states that must be handled .
Thinks to remember during test creation: PEBKC (problem exist between keyboard and chair) - if something is not working it is always your fault. I lost almost due days in debugging due misspelled state variable!
Ok, now let's start .....(this might help to my previous colleagues from Reflective too):)
We start with usual recording technique won't get into details here: run jmeter proxy->set proxy to browser->browse
You can remove static resources if you want (must concentrate on dynamic content).
Identify dynamic items you need to handle:
1. Username/Pass
2. Usual dynamic data
(!)3. JSF State
(!)4. Trinidad components internal state
3. In order to propagate JSF state on each page a following Post Processor(RegEx Extractor):
someVariable
$1$
1
(This is for myFaces implementation it differs for various vendors.)
After you have extracted JSF State you must populate it with next POST.Do this for each page, keep in mind that JSF State is different on each page.
4. Trinidad state is generated on previous page(that links to the URL with something.faces?_afPfm=4b28da42). So the trick is to add one more Post Processor (RegEx to previous page):
trVariableState
something\.faces\?_afPfm=(.+?)"
$1$
1
Also make sure JSF state is always encoded in POST.
So that should be, I will review later if forgot something.
Why this is a problem: due numerous states that must be handled .
Thinks to remember during test creation: PEBKC (problem exist between keyboard and chair) - if something is not working it is always your fault. I lost almost due days in debugging due misspelled state variable!
Ok, now let's start .....(this might help to my previous colleagues from Reflective too):)
We start with usual recording technique won't get into details here: run jmeter proxy->set proxy to browser->browse
You can remove static resources if you want (must concentrate on dynamic content).
Identify dynamic items you need to handle:
1. Username/Pass
2. Usual dynamic data
(!)3. JSF State
(!)4. Trinidad components internal state
3. In order to propagate JSF state on each page a following Post Processor(RegEx Extractor):
someVariable
$1$
1
(This is for myFaces implementation it differs for various vendors.)
After you have extracted JSF State you must populate it with next POST.Do this for each page, keep in mind that JSF State is different on each page.
4. Trinidad state is generated on previous page(that links to the URL with something.faces?_afPfm=4b28da42). So the trick is to add one more Post Processor (RegEx to previous page):
trVariableState
something\.faces\?_afPfm=(.+?)"
$1$
1
Also make sure JSF state is always encoded in POST.
So that should be, I will review later if forgot something.
Saturday, June 03, 2006
xADL Extension for embedded systems
This was actually my master diploma thesis.
I've investigate most of the languages that are used for describing software architecture.
Problems:
Most of the languages are invented for particular problems(projects) and doesn't fit other problems, and has strange syntax, lack of tool and knowledge, lack of interoperability.
Embedded systems evolves in recent years most of the languages used to describe software architecture doesn't fit well to their requirements, because of that a language that is extensible should be picked(no need for coming up with a new language it is born dead). There are few good articles why UML is not good:
UML is not language for describing software architecture, but OOP design.
UML extensibility via extending meta model is not good enough, or if it is than the result will be no longer UML.
Using UML artifacts (diagrams) as architecture artifacts will bring more obfuscation.
The Solution:
Picked up language is called xADL which is based on XML Schema(extensibility).
It already contains some core functionality for describing connector and components. The initial request was for having language that is capable of describing non-functional architecture characteristics.
I will continue my post later...... have to find where my thesis is....... :)
I've investigate most of the languages that are used for describing software architecture.
Problems:
Most of the languages are invented for particular problems(projects) and doesn't fit other problems, and has strange syntax, lack of tool and knowledge, lack of interoperability.
Embedded systems evolves in recent years most of the languages used to describe software architecture doesn't fit well to their requirements, because of that a language that is extensible should be picked(no need for coming up with a new language it is born dead). There are few good articles why UML is not good:
UML is not language for describing software architecture, but OOP design.
UML extensibility via extending meta model is not good enough, or if it is than the result will be no longer UML.
Using UML artifacts (diagrams) as architecture artifacts will bring more obfuscation.
The Solution:
Picked up language is called xADL which is based on XML Schema(extensibility).
It already contains some core functionality for describing connector and components. The initial request was for having language that is capable of describing non-functional architecture characteristics.
I will continue my post later...... have to find where my thesis is....... :)
Subscribe to:
Posts (Atom)