From time to time you have to learn something new. If you go to bed and think about what you have learned today and there comes nothing into your mind. Stand up and read something in a lexicon just to be able to say that you have learned something that day.
Currently I am back on learning something for my job. jQuery is a development language for internet development, a library which makes it easy to develop web pages able to be running in different browsers.
I bought a book and started reading chapter after chapter until I came to this nice chapter about programming a monster page where you can swap images to define the face of numerous different monsters. Click here to see the page I have developed with help of that book. Many thanks to the writers of the book for the images and the idea!
Why is estimating the effort necessary for a software development project so much more complicated than estimating the construction of a building? Because a software development project is a new project with mostly new people and often new technology for every new project.
Once again I had to experience that the estimation for a project was too optimistic. It is easy to estimate the expectable effort if yourself will be the person who has to realise the project. I remember that all estimations I did for myself where exact.
But as soon as the project is larger and is about a new business area, you have to do more work. You will have to do different kinds of estimations, for example a SCRUM story point estimation, a comparison with a similar project, a function point analysis and so on.
Now, there is the cone of uncertainty which tells us that an estimation done before the projects requirements were investigated properly could be far far away from the real effort you will spend. And the estimation will only come down to a more realistic value if you do another estimation after the requirements are clearer or even after you have started developing.
NoSQL-Database is something quite new. I heard the first time about it a couple months ago and even read an interesting article about the topic which was in truth too complicated for me.
But recently I run into the question who a web shop like Amazon is storing its data. Surprisingly this is no secret and Amazon has published a description about their technology and you can even download an API to connect to the database and you can create your own DynamoDB on the Amazon cloud.
Here is a short summary about the concept in German. I had no time to translate it into English so far. Hope it is correct from a technical point of view!
This is a great book about development. One of the best books I ever read to increase my skills necessary for my job. Not only that all the different possible architecture are described in a very understandable manner.
This book also makes clear, that you do not always need the most complicated architecture. For a simple application, a simple architecture could totally fulfill your needs.
Which leads back to one of the most important principles in software development: KISS, keep it short and simple. Software gets at the end always much more complicated that planned or expected at the beginning. Lot of developers do not fear the complexity of the source code they produce and at the end you get stuck in a messy code, impossible to have the necessary overview.
Once again I saw when reading this book, that many of the architecture, similar to design patterns are used without knowing them by name. Whatever design or architecture you select for your application, important is that you and your team know it and keep coding to the selected pattern.
Fowler also describes in a very clear example the data mapper which is a pattern I created myself years ago out of long experience. Its nice to see that I was on the right way and that a guru like Fowler describes it in a very similar way as we designed it then.
Here is the result. It took me only minutes to implement it and as you can see in the different sheets, I have also implemented the Julia set in the same workbook.
The sheets are for 3 different resolutions and you see that the range where both sets are visible is from -2.2 / -1.5 to 0.8 / 1.5 for the Mandelbrot set and from -1.8 / -1.5 to 1.8 / 1.5 for the Julia Set.
I realized the different colors with conditional formatting which is a nice feature of Microsoft Excel. Points which are part of the set are black, points which are not part of the set are colored. The color depends on the number of iterations necessary to decide that they are diverting and is going from red and yellow to white.
You can download the Excel workbook from here. You might have to allow the basic script!
I am a fan of the Mandelbrot set since I have seen it the first time. I developed a screen saver for windows which displays the Mandelbrot set and zooms in randomly.
I also tried to develop something similar for the iPhone but did not succeed for the time. When I was investigating possibilities to draw lines in HTML code, I saw that with HTML 5 there is a new tag <Canvas> which allows exactly what I need.
Here is the result. I have created a page which shows the Mandelbrot set and the same for the Julia set. Both are very impressive. You can zoom in by clicking somewhere in the graph and even move the graph with the mouse.
Here is the page with the Mandelbrot set and
here is the page with the Julia Set.
We are working with SCRUM now for more than a year. But I did my first SCRUM training a couple of days ago. Was a very interesting training with a lot of nice people. I the three days duration of the training, it never got boored.
One picture was especially impressive: it shows the product backlog as an iceberg. The story is the following.
The product backlog consists of epics (very large user stories), user stories and grains of sand. It is not necessary to detail and estimate epics until they become part of the release backlog.
And it is not necessary to detail user stories into grains of sand until they become part of the sprint planning. This picture is very nice and easy to memorize. Thank you DasScrumTeam.
Since I have an iPhone, my wish was to create my own iPhone application. But not so easy as I immediately saw.
First, you have to have a MAC where you can install the iPhone development studio. This was the biggest problem. I buyed an old MAC on ebay but found out, that the MAC I had bought was to old. And after three months it died.
Months later I had the opportunity to buy a Netbook from a friend. And the guy had installed MAC OS on this Netbook. So the biggest hurdle was taken.
The rest was quite simple. For an experienced developer it is not so hard, to learn a new development language within a few days. And after two week or so, I were able to publish my first application.
The application is similar to something I already did years ago for PCs. It is a software which draws a triangle. You can move the corners of the triangle and the most important special points, lines and circles of a triangle are drawn.