Skip to content


Hudson

Hudson is a continuous integration application. It monitors execution of repeated jobs, such as building a software project or jobs run by cron. Is highly customizable through the use of plugins, which allow you to use it on almost any project you may be developing. I’ve added a brief reference of it in the toolbox.

Posted in Architect, programacion. Tagged with , , .

Cobertura

Cobertura (coverage in Spanish) is a tool for Java applications that checks how much coverage your unit tests offer. I’ve added a brief description and some links in the Java section of the toolbox, here. I hope it will help you improving your code coverage and quality.

Posted in java, programacion. Tagged with , , .

Testability Explorer

Today I’ve been playing with Testability Explorer, a tool that verifies how testable is your code and warns you of areas where you can improve. This is helpful for beginers in Unit Testing as most of the time the issues you have while creating the tests, which discourage following a TDD approach, are caused by bad practices on your part.

I’ve put a small summary of the tool in the pages section.

Posted in java. Tagged with , , .

Seam 3 and Maven 2

Although Seam 2 has a great tool in seam-gen, which facilitates the common tasks of a Seam developer, it’s using an ant-based build system. That’s not too bad in itself, but probably a Maven-based project would be better.

If you think like me, rejoice, as Seam 3 will use Maven 2 as the primary build system. The SVN repository has been updated to reflect this change. Beware Seam 3 is still under development, with no release date planned, so in the meantime you are stuck with Ant. But the future looks brighter ;)

Posted in java. Tagged with , , .

Google App Engine and Django

There is no doubt that Google App Engine is a marvellous platform. It eliminates the burden of thinking about scalability at an acceptable cost and provides interesting services like authentication using Google accounts. The downside is the coupling with Google’s infrastructure, something not really appealing to a certain audience. But even so, it’s still a good platform.

As you may know Google App Engine can run applications built in Python. The problem is that the API it provides uses Django 0.9.6, not the latest release, and it won’t (probably) be updated soon. Due to the limitations on number of files and size using the latest Django in your App box is not a trivial matter.

Enter the world of App-engine-patch, a project built to remove the hardships of the task. As you can find in the official documentation of Google App or the Getting Started guide, building a new application with it is quite straightforward. A sample project is provided that can be used as a template for your webapp. Another benefit of this package is Ragendja, a series of snippets that show you how to code certain common tasks.

Yes, that easy. You can do the test using the sample project, deploy it and verify everything works. And then add your own code.

Enjoy!

PS: can’t add an example as my Google App Engine has been disabled, no idea why. And as my mobile was already used I can’t create a new account. Wonderful :)

Posted in programacion, python. Tagged with , , , .

A Story about Architecture

I’ve been reading this post from the blog Pensamientos Agiles (both links are in Spanish). If you can understand Spanish it’s worth reading. If not, try to use the automatic translation from Google, should be readable enough and even if you miss some details, the ideas are still there.

The entries linked on that post describe the efforts to improve the way software was built in the company of the author. When he joined it there was no real “procedure” to design and build software, and he introduced some new standards and rules for developers. He was lucky to have a relative freedom and, being able to take several decisions, he changed completely the tools used. The results were quite good, with issues arising as is expected in a change of this magnitude, but worth the effort.

An interesting reading, recommended to everybody.

Posted in Architect. Tagged with , .

The Path of the Architect

Busy and tiring day, but with the reward of having solved some hard-to-track bugs (although luck has been involved, somehow). Time to read some posts on Coding the Architecture, a nice blog for software architects.

While reading those old posts I had pending I stumbled into this template for assessment of your architect skills. As the author mentions in the related post, it can be used for both recruiting an architect or to guide the training of one. An architect should be an all-round type that can tackle the problems from all perspectives. In some companies is not so easy as systems will take care of some stuff (which is good!) but in the end you should have a basic knowledge on all the mentioned areas.

So if you are (like me) an aspiring architect, there you have your training-sheet. Start improving on all related topics: read, learn, practice… and build!.

PS: Go United! I hope this night we’ll get our 4th Champions League Cup!

Posted in Architect. Tagged with , .

What kind of architect are you?

Browsing the morning feeds I’ve come across this article which explains all the kinds of “IT Architect” that you may find in a company. Which one are you (or will you be)?

User Experience or Presentation Architect – This person is responsible for the graphical user interface design or other presentation channel design such as mobile, kiosk or web. This person provides overall presentation design authority by engaging business users, analysts or application designers. There may be different variations on the role depending on the whether the focus is on technology or business aspects. For example, an organization may have its presentation architect focus more on usability aspects from business point of view such as work flow abilities or human usability aspects. While the technology focused version may focus on aspects like technology compatibility with various platforms, browser versions, internationalization etc.

Business Architect – Architects in this role may be called by many titles, such as Functional Architect or Business Process Architect. In some cases Business Analyst roles too may crossover into this role. Essentially, a Business Architect designs business processes or functional aspects of an IT design. IT systems often do not fully meet business requirements in their entirety and hence the growing influence or interest in such an architect profile. The renewed interest in BPM (business process management) related activities have resulted in growth of demand for experts in this area.

Application Architect – This is an architect who designs the software aspects of an IT system. The role is often called Software Architect or logical architect. Essentially, this person is going to analyze the business requirements and then convert them into logical software design so as to offer business functionality using technology capability. Depending on the nature of the business, software may also be offered as a turn-key solution or product, often creating an overarching solution to solve a specific set of problems. This may mean performing the role of software architect from business or solution perspective and such architecture roles may also be termed as Solution Architect. As you can imagine, presentation and business architects are required to work very closely with an application architect to ensure the alignment of presentation and business process requirements and design onto the logical software constructs of the IT system.

Technical Architect – This classification of architect role is probably contains the most variations. Essentially, this person is responsible for the core technical design aspects of the IT system which are not covered by business architecture or the application architecture. This may include off-the-shelf system software implementations, network design or hardware design. Depending on the nature of the business, this person may also be called a Middleware, System or Infrastructure Architect. Each variation subtly changes the focus of the respective job. For instance, Middleware Architects tend to focus on the plumbing of Application Servers, Enterprise Service Bus or Messaging layer etc. The Infrastructure or System Architects typically focuses on DataCenter focused hardware or network design Dedicated Network Architects can also be assigned to this architecture role.

Data or Information Architect – To cover all the core aspects of IT design, I must mention the Data or Information Architect. There is a debate going on about the exact terminology to use with this role. Purists will often claim that, Data on its own means nothing and processing it into meaningful Information is more valuable for business. Hence the role of architect should be focused on Information and not on Data. Others counter that argument by claiming, Data is something you analyze and need to architect around to produce meaningful information. Other related roles are business intelligence, data mining or database design architects.

Service Architect – With the ever increasing popularity of Service Oriented Architecture (SOA) it is not a surprise that, roles specific to SOA are in demand. Essentially, the philosophy of SOA is that IT systems designed in a modular and reusable fashion reduce the risk, time and cost of IT systems development. Hence, Service Architects provide a new and distinct dimension to the previously mentioned architecture disciplines. A Service Architect defines business or technical service specifications which can be developed as independent but reusable components. More lengthy discussions and definitions of SOA and Service Architecture are now available in popular literature.

Posted in Architect. Tagged with , .

Security, cache and more

Windy and rainy Saturday, as usual in Dublin. Good time to review those links which piled up during the week, before doing your daily chores. And I found some interesting ones I would like to share:

  • Guice and Spring collaboration: old news, but Guice and Spring have defined a common set of annotations for Dependency Injection, wishfully this will help to standardize this field as, IMHO, one of the main issues with Java is how many frameworks and libraries we have that do the same task in such different ways.
  • Also, Guice released version 2 of its framework, with the usual array of novelties. Good to see how quick this framework evolves.
  • Moving to another library, I got this article about Hibernate Caching and some issues than can arise with its query and L2 caches. It provides nice solutions, if you ever have memory issues this may help you.
  • Ever had to create a login system? Maybe you should read these two articles about rainbow tables and storing passwords. I have to acknowledge I did not thought it was such a big issue. I should go back to 1975? :P
  • If the previous articles arose your curiosity, you may want to test how strong is your password, which you can do here. Good luck, and follow the hints to create your new one.
  • And also related to passwords, I found Clickpass, a simple way to have a starting huge userbase for your application, using their existing accounts on services like Facebook, Google or OpenID (or some others). After reading the previous articles, is probably the best option for your application.
  • As a bonus link, the web of IASA, a young foundation aiming to create a certification program for software Architects, which is publishing some interesting content in its web.

Posted in Architect, programacion. Tagged with , , , , , , , , .

Sun Java App Store

It’s official: Sun will create an App Store for Java applications, copying iTunes and similar sites. Given Java is probably the most spread application around (even more than Windows as Linux computers may also run Java) this store gives access to a potentially huge market, quite interesting for entrepreneurs and developers.

But also raises 3 questions:

  • Will it suppose the killer app for JavaFX and help to spread it? Right now Flex is the leader on RIA environment, but the potential market of this store can push the balance towards Sun. And please, forget about Swing/AWT/SWT. Not for this store.
  • How will other stores (specially Android, which provides lots of Java-based apps for its mobiles) compete? We will see some fusions or agreements between vendors?
  • Given the success of iTunes and other stores is related to the mobile market, will this store have the same degree of popularity? No iPhone/iPod/Android linked to it to bring customers.

Answers coming next June, 2nd. I wish I could be there…

Posted in java. Tagged with , .


So Be IT is Digg proof thanks to caching by WP Super Cache!