Posts

Are you really Agile?

Image
From what i have seen, Agile Software Development is widely misinterpreted nowadays. Many people think to be agile, they just need a process like scrum to define a framework of sprints and iterations. They will sprint until they exhaust and change until they stagnate. But when you'd ask them what principles of objectoriented design are, they'd answer: "Aww yes, we use classes". And when you'd asked them if they did test driven development, they'd reply: "Ahh, this is the thing where you write tests first, isn't it?". Bottom line, people think to be agile without caring about good software design. But in the end, the most important thing is what nobody cares about. It is the agility of the software that they are producing. So if you want to be agile, a process and a mindset is not enough. You need to keep your software agile. By that i mean, you need to keep the design of the software as clean and flexible as possible, to be able to apply any futu...

VHS

VIPER VIDEO recorded our set at Cheer Up Charlies in Austin on June 1, 2013 and made VHS copies. They're available here: http://vipervideo.bigcartel.com/product/the-men-cheer-up-charlies-6-1-13 Thanks to Adam. -Freckles

spring-data-rest in Action

Image
What is spring-data-rest? spring-data-rest , a recent addition to the spring-data project, is a framework that helps you expose your entities directly as RESTful webservice endpoints. Unlike rails, grails or roo it does not generate any code achieving this goal. spring data-rest supports JPA, MongoDB, JSR-303 validation, HAL and many more. It is really innovative and lets you setup your RESTful webservice within minutes. In this example i'll give you a short overview of what spring-data-rest is capable of. Initial Configuration  I'm gonna use the new Servlet 3 Java Web Configuration instead of an ancient web.xml. Nothing really special here. public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class <?>[] getRootConfigClasses () { return new Class <?>[]{ AppConfiguration . class }; } @Override protected Class <?>[] getServletConfigClasses () { return ...

My First Experience On Developer Boards

Image
I should have probably titled this post as Marsboard VS Raspberry Pi VS Cubieboard VS pcDuino and so on but that would be actually unfair since these boards are very, very different from each others. This post is about what I've learned from such delightful and hostile at the same time Software, over such state of the art and unthinkable, at least until few years ago, piece of HardWare! What Are You Looking For This is the very first question you should ask yourself before ending up like me: with all these boards and completely different projects/ideas behind each of them! Just For Fun In this case the Raspberry Pi is probably your best choice. The community is awesome as well as its support for any related gotchas! I've stopped counting the amount of kickstarter projects related to the little Pi and I won't link here any of them to be fair with all others: freaking cool ideas! Not Fun Only Here the Raspberry Pi is still one step forward ... I mean, you will rarely...

Good Bye Redeployment. spring-loaded, an Opensource Classreloader

Redeem yourself from hot deployments and OutOfMemoryException. spring-loaded is an opensource classreloader and a promising alternative to JRebel . It does not offer as many features as JRebel does, and it does not support any framework just yet. Nevertheless, its a great tool that can save the time you are waiting for that servletcontainer to restart again. What it can do: add/modify/delete methods/fields/constructors modify annotations on types/methods/fields/constructors add/remove/change values in enum types What it cant: support framework specific changes like Spring MVC @RequestMappings change log configuration on the fly It is not getting the attention that it deserves, so give it a try. Just download from github already, and add the following to your JVM parameters: java -javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify

dblite: sqlite3 for nodejs made easy

OK, I know, the well known sqlite3 module is cool and all the glory to it ... well, it didn't work in my case :( The Why node-gyp is great but it's not as portable and does not scale as I'd like to. If you try to use sqlite3 via npm in Arch Linux ARM , as example, even if the native sqlite library is there and usable that won't work ... moreover ... What really bothers me is that node-gyp does not update within the system as any other system package would do. You need to rebuild, recompile, re-do everything, even if you distributed a specific linux version that trust the package manager for updates and does not want to bother users with build tasks. This is quite common in embedded hardware and related Linux distro so I've asked myself: why on earth I cannot simply pacman -Syu once in a while and just have automagically built for me the latest version of sqlite3 , the one the whole system is using and trusting anyhow, together with any other update including...

Why REST is so important

Image
This post is dedicated to REST, an architectural style of shaping webservices and the most misunderstood concept in the history of IT. This post is addressed to you who is designing webservice apis not being fully aware what REST actually means. I'm trying to give you the idea. This post is also addressed to you who think to know what REST means, when in reality you have no clue, just yet. Yes i have met such people in the past - plenty of them. It's not going into the details of the Richardson Maturity Model , and it's not gonna make you a REST expert. There are plenty of guides on the web for that: slides, youtube videos, blogposts, books and more. Rather than going into the details, i'm going to link some good resources at the end of this post. So lets start with The meaning of REST Representational State Transfer. This sentence is not only what REST stands for, it is also the tiniest possible description of what REST actually means. Didn't get it? Read it aga...