What is your opinion?
Wednesday, December 30, 2009
[Tech] Distributed SCM: Playing with Repos
What is your opinion?
Posted by Alexander Schatten at Wednesday, December 30, 2009 1 comments
Categories: Open Source, Processes, Technology
Tuesday, December 29, 2009
[Pub] Best-Practice Book and the New Year
It was a lot of work and required most of our publishing energy. I believe the result is good and I hope that it will be useful for some of you.
A detailed description of the book can be found at the publishers website.
If you are as enthusiastic as we are, you can even pre-order it via Amazon ;-)
Posted by Alexander Schatten at Tuesday, December 29, 2009 0 comments
Categories: Publication
Sunday, December 27, 2009
[Tech] Simple Java Template Engine
"[...]FreeMarker is designed to be practical for the generation of HTML Web pages, particularly by servlet-based applications following the MVC (Model View Controller) pattern. The idea behind using the MVC pattern for dynamic Web pages is that you separate the designers (HTML authors) from the programmers. Everybody works on what they are good at. Designers can change the appearance of a page without programmers having to change or recompile code, because the application logic (Java programs) and page design (FreeMarker templates) are separated. Templates do not become polluted with complex program fragments. This separation is useful even for projects where the programmer and the HTML page author is the same person, since it helps to keep the application clear and easily maintainable[...]"
Posted by Markus Demolsky at Sunday, December 27, 2009 0 comments
Categories: Java, Open Source, Technology, Web Development
Monday, November 09, 2009
[Tech] Integrate Tests as a Language Featuere?
The blog of Cedric Beust (author of TestNG and captured by Google) is always an interesting read.
His last posting discusses the question if generic test features should be included into the language:
http://beust.com/weblog/archives/000522.html
What do you think?
Posted by Prof. Dr. Stefan Edlich at Monday, November 09, 2009 0 comments
Categories: Miscellaneous, Technology
Sunday, November 08, 2009
[Misc] Subversion turns into an Apache Project: so what?
I had a discussion with an Apache commiter recently about this fact and about the future of Subversion. He believed, that Subversion could (or better should) go through a complete redesign to embrace features provided by distributed source code management (DSCM) systems like Bazaar, Mercurial or GIT. I personally question this future of Subversion. We already have three pretty good systems and a very competitive game is played here since the last two to three years. Subversion would start with a delay of probably three years. Until a stable version of a (partly) distributed SVN is out, all other systems will be settled and far ahead.
Your ideas?
Posted by Alexander Schatten at Sunday, November 08, 2009 2 comments
Categories: Miscellaneous, Open Source, Processes, Technology
Friday, October 30, 2009
[Tech] 7 Languages in 7 weeks
Dear Readers,
http://rapidred.com/blog/seven_languages
It is from the blog of Bruce Tate we all know as one the Java Experts and his stunning books.
- Ruby -> my personal favourite. Perhaps not the coolest now but the expressiveness and the DSLability for me is outstanding.
- Io -> Possibly the newest and coolest because the vm / object approach looks interesting.
- Scala -> Good to have Javas crown prince in here because we all have to learn it.
- Erlang -> My multiprocessor king (even if it struggles with strings. argh). Especially hot in the #nosql database scene.
- Clojure -> I already posted about the great clojure. I really love it although its really hard to learn.
- Haskell -> Good that they / he included the right educational functional concept.
- Prolog -> This surprised me a little. But Bruce writes that he wants to stretch the readers. And I never thought this could go with a nearly 40 year old language.
Posted by Prof. Dr. Stefan Edlich at Friday, October 30, 2009 2 comments
Categories: Miscellaneous, Technology
Tuesday, October 27, 2009
[Arch] Resource for Software Architecture
- Actual news and trends about software architecture
- Basic information about software architecture (concepts, styles, etc.)
- Podcasts
- Tool Previews
- A free english architecture journal
- Forum and Knowledge Base
- Tips and Tricks
Posted by Markus Demolsky at Tuesday, October 27, 2009 0 comments
Categories: Architecture
Tuesday, September 08, 2009
[Conf] Zurich Open Source Jam
- "G-WAN", Pierre Gauthier
- "Dynamics of Open Source code", Markus Geipel
- "Involving students in Open Source", Lukas Lang
- "Open Source in Africa", Michel Pauli
- "BTstack", Matthias Ringwald
- "Free Software & basic income", Thomas Koch
- "NxOS, an OS platform for Lego", David Anderson
- "Open Source in the Humanities", Tara Andrews
- Castor JDO Extensions
- Castor JPA Annotations
- Cocoon StAX
- Cocoon Profiling
[1] A look inside Google's open source kitchen, http://www.builderau.com.au/strategy/architecture/soa/A-look-inside-Google-s-open-source-kitchen/0,339028264,339272690,00.htm
[2] Google Publications, http://research.google.com/pubs/papers.html
Posted by Lukas Lang at Tuesday, September 08, 2009 0 comments
Categories: Conference, Open Source
Thursday, September 03, 2009
[Process] Distributed Source Code Management and Branching
p.s.: For my taste, just one thing is missing: some details on merging.
p.p.s.: Please no comments on my "Git shortcomings" statement, they will be censored out anyway ;-)
Posted by Alexander Schatten at Thursday, September 03, 2009 0 comments
Categories: Open Source, Processes, Technology
Tuesday, September 01, 2009
[Misc] Clojure & Clojure Book Review
Stuart Halloway, "Programming Clojure", 2009
So I might share my thoughts on this book and on the language.
For me still Clojure is more attractive then Scala because:
1. It's the toughest edge for your brain.
2. No variables and immutable data means no side effects
Hence it's not so easy to write Clojure code with much side effects.
3. Clojure has the strong concurrency concepts - if you really need mutable data - using STM (Software Transactional Memory) / MVCC, Agents, Atoms, giving you ACID Transactions without the "D" (which is only valid for databases).
4. The Java integration is really smart. Have a look:
(new java.util.Random)
simply generates an object you can easily use to work with.
5. Clojure is indeed fast because it generates pure Java byte code.
And of course all the other stuff that a hot language must have:
- Closures (I still can not believe that they are still discussion this hot feature for Java... it's a shame)
- List Comprehensions
- a workaround for tail recursion and currying and other weird stuff as
- very lazy sequences, trampolining, etc.
- An "if" See an example (if (> num 100) "yes" "no"))
- A "do" which is an iteration of statements - introducing side effects - and thus discouraged in clojure
- And a "loop/recure" that can be used to build everything you need in flow control (Stuart Halloway calls it the Swiss army knife).
The language itself has two downsides for me:
What do you think?
Regards
Stefan Edlich
Links:
- http://clojure.org
- http://www.pragprog.com/titles/shcloj/programming-clojure
- http://ociweb.com/jnb/jnbMar2009.html
- http://en.wikibooks.org/wiki/Clojure_Programming
And finally have a look at this nice language comparison: Java.next
Make a list. For every topic give points from 0 to 3. What is the most elegant for you?
Posted by Prof. Dr. Stefan Edlich at Tuesday, September 01, 2009 2 comments
Categories: Miscellaneous, Review
Monday, August 31, 2009
[Misc] Two Pragprog Books Reviewed
Book Review: The passionate programmer and Pragmatic Thinking & Learning
- Chad Fowler, "The Passionate Programmer", 2009
- Andy Hunt, "Pragmatic Thinking and Learning", 2008
- "29. Learn how to fail" (testing)
- "18. Automate yourself into into a Job" (daily integration builds)
- "28. Eight hour burn" (no overtime)
- ...
- Journey from Novice to Expert
- This is your Brain
- Get in your right mind
- Debug your mind (how your mind works)
- Learn deliberately
- Gain Experience
- Manage Focus
- Beyond Expertise
Posted by Prof. Dr. Stefan Edlich at Monday, August 31, 2009 1 comments
Categories: Miscellaneous, Review
Thursday, August 20, 2009
[Arch] UML Tools for Mac OS X
Also a consideration could be ArgoUML, which is also an Open Source tool and maybe the oldest one around. Has some issues as all OS tools, but apparently has a functioning community.
Would be happy about comments, experiences and further suggestions!
Posted by Alexander Schatten at Thursday, August 20, 2009 0 comments
Categories: Architecture, Modeling, Open Source, Technology
Thursday, July 02, 2009
[Tech] Monitor your WS calls
A very useful tool is the Open Source SOAP monitoring tool from predic8. The tool does the same as the TCP monitor from Axis, but provides a more user friendly UI and more settings and features:
- Monitoring of SOAP and HTTP messages
- Rule based SOAP routing
- XML formatting and syntax highlighting for SOAP messages
- Interception and modification of messages
- HTTP chunking
- HTTP 1.1
- Loading and saving of configurations
- Rich graphical User Interface
- Resending of messages
Posted by Markus Demolsky at Thursday, July 02, 2009 0 comments
Categories: Enterprise Integration, Technology, Web Development
[Pub] Mule Tutorial
- Event Driven Consumer
- Content Based Router
- Filter
- Transformation
- Message Splitter
- JMS (Active MQ as message broker)
- Quartz Transport
- File Transport
- XMPP transport for instant messaging
Have Fun!
Posted by Markus Demolsky at Thursday, July 02, 2009 1 comments
Categories: Architecture, Enterprise Integration, Java, Publication
Monday, June 29, 2009
[Misc] Hot deployment with Mule 3 M1
What is the meaning of hot deployment?
Check out the example on the mule homepage.
Posted by Markus Demolsky at Monday, June 29, 2009 0 comments
Categories: Architecture, Enterprise Integration, Java
Thursday, June 18, 2009
[Misc] Resilient Services & Software Engineering
"Resiliency is defined as the capability of a system to maintain its functions and structure in the face of internal and external change and to degrade gracefully when it must."The further state that:
"[...] the critical infrastructure for many firms is shifting to a substantial degree from their physical assets, such as manufacturing facilities, to knowledge systems and networks and the underlying information and communications technology systems and infrastructure.
[...] the increased reliance on ICT systems and the Internet implied by this process can actually produce vulnerabilities, unless greater emphasis is placed on protecting information infrastructures, especially from deliberate physical or software attack to which they might be most vulnerable given their current structure."
I wrote in a recent blog post about my thoughts on Twitter, which became even more important considering the latest political issues in Iran and the use of this communication infrastructure in the conflict. Twitter is (as we know from the past) not only a rather fragile system, it is additionally proprietary and has in case of failure no fallback solution in place.
But Twitter is not the only example: many of the new "social networks" are proprietary and grow at a very fast speed, and we wonder how stable the underlying software, hardware and data-management strategy is. Resilience is apparently no consideration in a fast changing and highly competitive market. At least not until now.
Analysis of the green dam system already reveal a number of serious issues. For example Technology Review writes about potential zombie networks, Wolchok et al. described a serious of vulnerabilities. Now this is not the only attempt in that direction. Germany for example is discussing "official" computer worms that are installed by the authorities on computers of suspects to analyse their activities. France and Germany want to implement internet censorship blocking lists of websites. The list of the blocked websites are not to be revealed and it is questionable who controls the infrastructure. Similar issues can be raised here.
- Usage of proprietary protocols and software that makes migration or graceful degradation very difficult
- Deployment of proprietary systems to a large number of computers that cannot be properly assessed in terms of security vulnerabilities or other potential misuses, instead of providing the option to deploy systems from different vendors for a specific purpose
- Single points of failure: many of the new startups operate only very few datacenters, probably even on one single location
- Inter-dependece of services (e.g. one service uses one or multiple potential fragile services)
- Systems that can easily be influenced by pressure groups (e.g. centralised infrastructure vs. p2p systems) e.g. to implement censorship
- Weak architecture (e.g. systems are not scaling)
- Missing fallback-scenarios, graceful degradation.
Posted by Alexander Schatten at Thursday, June 18, 2009 2 comments
Categories: Miscellaneous
Saturday, June 13, 2009
[Misc] Technical Debt
Recently I stumbled over a smart blog entry about the 'technical debt' (link).
Their technical debt is shown:
- in $ (!!! ouch this hurts)
- in a spider figure
- in the form of numbers you can drill down
- The Code coverage
- The Complexity
- The Code Duplication
- The Violations
- The Comments
If the debt is high the vendor has a problem. Vendors might think they can lock buyers in because they don't check the technical debt. But I am sure time will change and tools like this will be standard in IDEs in 5 to 10 years. Even to check projects in multiple languages.
So for me it's time to face the boss with hard dollars he has to pay back. Sooner or later. The later the more expensive. Let's fight for a technical debt / good metrics analysis as a common procedure!
Stefan Edlich
Posted by Alexander Schatten at Saturday, June 13, 2009 0 comments
Categories: Miscellaneous
Tuesday, June 09, 2009
[Tech] Cloud Computing
In the current stream of IT Conversations George Reese talks about practical aspects and experiences with current cloud-services like Amazon S3, Simple DB, virtualisation... Recommended!
Posted by Alexander Schatten at Tuesday, June 09, 2009 0 comments
Categories: Green IT, Interview, Technology, Web Development
Tuesday, May 26, 2009
[Tech] Kent Beck's JUnit Max
Posted by Alexander Schatten at Tuesday, May 26, 2009 1 comments
Categories: Java, Technology
Tuesday, April 21, 2009
[Tech] What about Maven 3
- Support of incremental buildings
- Changes about the Plugin-API
- Better Multilanguage support
- and more
Posted by Markus Demolsky at Tuesday, April 21, 2009 1 comments
Categories: Java, Open Source, Technology
[Misc] Sun and Oracle
Update: Larry Dignan from zdnet blog writes about mysql:
"Oracle gets to kill MySQL. There’s no way Ellison will let that open source database mess with the margins of his database. MySQL at best will wither from neglect. In any case, MySQL is MyToast."Well, I would not bet on that (but probably would not start a new project with mySQL either...), but it is for sure an option.
Posted by Alexander Schatten at Tuesday, April 21, 2009 5 comments
Categories: Java, Miscellaneous, Open Source
Tuesday, April 14, 2009
[Arch] Maven Best Practices
In this blog of sonatype there is a useful list of best practices with Maven, including:
- Why putting repositories in your pom is a bad idea
- Best Practices for releasing with 3rd party snapshot dependencies
- Maven Continuous Integration Best Practices
- How to detect if you have a snapshot version
- Optimal Maven Plugin configuration
- Adding additional source folders to your maven build
- Misused maven terms defined
- How to override a plugins dependency
- How to share resources across projects
- How plugin versions are determined
Posted by Markus Demolsky at Tuesday, April 14, 2009 0 comments
Categories: Architecture, Open Source, Processes
Saturday, April 11, 2009
[Misc] Open Protocol vs. Twitter: 1:0 ?
Posted by Alexander Schatten at Saturday, April 11, 2009 0 comments
Categories: Miscellaneous, Open Source, Technology
Friday, April 10, 2009
[Process] Successful Distributed Agile Development
- Fix-schedules for releases
- Continuous Build
- Ticketing
- Daily Report and Chat
- Team-Activity Streams
- Recruitement
Posted by Alexander Schatten at Friday, April 10, 2009 0 comments
Categories: Processes
Thursday, April 09, 2009
[Tech] Mavenizing AppEngine!
They describe preliminary attempts in how to "Mavenize" AppEngine projects; hope they will be able to fix also the last issues!
Posted by Alexander Schatten at Thursday, April 09, 2009 0 comments
Categories: Java, Open Source, Technology
Wednesday, April 08, 2009
[Tech] Google AppEngine (and Java)
Java
I wonder, however, how logging can be handled in that environment. Logging is usually done to a file or to a JDBC datasource. A JDO logging target I have not seen before; ideas anyone?
Build Automation and Development Process
Conclusion
Posted by Alexander Schatten at Wednesday, April 08, 2009 0 comments
Categories: Architecture, Java, Open Source, Technology
Wednesday, April 01, 2009
[Misc] Operating Systems for Netbooks
But maybe I am proven wrong?
Posted by Alexander Schatten at Wednesday, April 01, 2009 0 comments
Categories: Miscellaneous, Technology
Wednesday, March 25, 2009
[Tech] HSQLDB Version 1.9 alpha is out
However, good luck for the stabilisation-phase of the new release!
Posted by Alexander Schatten at Wednesday, March 25, 2009 0 comments
Categories: Java, Open Source, Persistence, Technology
Monday, March 23, 2009
[Misc] Hello World
Wolfram Roesler collected "Hello World" programs in 421 different computer languages!
Particularly interesting for me was "Hello World" in Chef :-)
Posted by Alexander Schatten at Monday, March 23, 2009 0 comments
Categories: Miscellaneous
Friday, February 27, 2009
[Arch] Cherish your Architecture
- hello2morrow has changed the evaluation mode for one of it's product: SonarJ (Community Edition) is now free for trial if you have less then 500 classes. I strongly recommend to use a tool like this at least for every new project start. Quality metrics and architecture definitions are now just a few clicks away and do really suppress 'the big ball of mud' every software engineer knows.
- Another nice product in the field of software quality measurement is sonar from codehaus. It really produces wonderful quality views for projects and I highly recommend to try it out. What disappointed me a little was that Java projects should be Maven alike and the two minute tutorial will not cause you to set sonar up in two minutes (installing, loading and producing metrics in SonarJ is much faster). But nevertheless the output is full of innovative ideas.
macker
..ruleset name="Simple example"
....access-rule
......deny
........from class="**Print*"
........to class="java.**"
......deny
....access-rule
..ruleset
macker
Do you have an idea of the intention?
So check everything out and be aware of your architecture!
Posted by Prof. Dr. Stefan Edlich at Friday, February 27, 2009 1 comments
Categories: Architecture
Monday, February 09, 2009
[Misc] Managing Commercial Software Projects
However, listen to to the full interview, recommended!
Posted by Alexander Schatten at Monday, February 09, 2009 0 comments
Categories: Interview, Miscellaneous, Processes
Tuesday, February 03, 2009
[Misc] It becomes quiet around BPEL?
"There are a few vendors who promote BPEL as as the one-and-only-true-way to support BPM. In fact, it is good for some things, but fairly bad at a large number of other things. It is my experience that BPEL is promoted primarily by vendors who specialize in products we might rightly call “Enterprise Application Integration” (EAI). These companies have recently taking to calling their products “Business Process Management”. Potential users should be asking the question “Is BPEL appropriate for what I want to do.” In that aim, there should be a large number of articles discussing what BPEL is good for, and what it is not, but there are very few articles of this nature."
- The people making the processes are programmers
- The activities in a process only need to send, receive or transform XML data
- Any standard will be better than no standard
To summarize, I see there are a lot of successfull SOA projects which do not use BPEL. It goes also without BPEL. However, there are scenarios where BPEL is very useful and makes sense, but I will mention, that BPEL is not the "All-Solution" standard. I am strained on the future of BPEL.
Posted by Markus Demolsky at Tuesday, February 03, 2009 0 comments
Categories: Enterprise Integration, Miscellaneous, Processes
Friday, January 23, 2009
[Tech] An easy to use XML Serializer
- Easy to use API (see example)
- You do not need explicit mapping files, like other serializing tools
- Good performance
- Full object graph support
- You can modify the XML output
public class Person {
private String firstname;
private String lastname;
private PhoneNumber phone;
private PhoneNumber fax;
// ... constructors and methods
}
public class PhoneNumber {
private int code;
private String number;
// ... constructors and methods
}
xstream.alias("person", Person.class); XStream xstream = new XStream();
xstream.alias("phonenumber", PhoneNumber.class);
String resultXml = xstream.toXml(myPerson)
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone>
<code>123</code>
<number>1234-456</number>
</phone>
<fax>
<code>123</code>
<number>9999-999</number>
</fax>
</person>
Have fun with XStream.
Posted by Markus Demolsky at Friday, January 23, 2009 3 comments
Categories: Java, Open Source, Technology
Tuesday, January 20, 2009
[Pub] Data transformation in an SOA
- Data Transformation (XML, CSV, EDI, Java, JSON,..) and custom transformers
- Java Binding from any data source (CSV, EDI, XML,..)
- Huge message processing by providing concepts like split, transform or route message fragments. You can also route fragments to different destinations, like JMS, File or databases
- Message Enrichment
- Smooks Transformer for Mule. The transformation logik is done in Smooks
- Smooks Router for Mule. The routing logik can be configured in Smooks
Posted by Markus Demolsky at Tuesday, January 20, 2009 0 comments
Categories: Architecture, Enterprise Integration, Open Source, Publication
Sunday, January 04, 2009
[Misc] Clean Code Developer
The websites name is a little related to the book clean code from Robert Martin I recently reviewed here.
Let this be one of our answers to the financial crisis.
Posted by Prof. Dr. Stefan Edlich at Sunday, January 04, 2009 3 comments
Categories: Architecture, Miscellaneous