Sunday, January 27, 2019

Software Architecture

This was an interesting read to me because it managed to convey the ideas and the intuition behind the thing that it was explaining (software architecture) without saying a single word about how anyone is supposed to actually go and create ‘a software architecture’. It kind of makes sense, since the thing it is talking about is very abstract itself. “It should do this, and do that without too much of this, and with just the right amount of that, but always taking that into consideration.” But not a word on ‘you might want to use these diagrams’ or ‘use a text file’, ‘a mailing list’. Just ‘a document’.

What I understood from that is that the document defining software architecture can be a lot of things, because you can do software architecture in a lot of different levels. At the beginning that didn’t quite ‘click’ with me.
But if there’s a position from this reading that I can agree with is this: from a programmer's perspective, knowing about and having your design (or ‘architecture’) in hand is like a guiding light. Like a scuba diver’s lifeline, or the mission objectives in a video game. It keeps you on track. When you take on a project, defining that higher-level ‘solution’ is a problem that you should only solve once, and the solution you produce must be one you can adjust later but most importantly, it must be one you can trust later. Because later you’ll be concentrated solving the fun lower-level implementation details and you don’t want to be questioning why you were doing all this to begin with. No one has time for that, you already went through it. Having that clear ‘architecture’ in mind allows you to go ‘oh, this is why things are this way, this is what that is supposed to do, this is how I’ll make it happen’.

In my experience, I’ve received this guidance from lots of different places: from a well-defined project folder structure (that is initially empty), to an ugly-looking drawing-diagram that conveys just the key points of what the thing I’m working on has to do. This is why I think it makes sense for the author not to talk about the object representing the architecture as anything other than ‘document’.

Sunday, January 20, 2019

Moon Machines: Navigation Computer

I believe that the Moon Machines: Navigation Computer documentary presents a good example, a good argument of why careful design is important in almost every piece of technology one sets out to make.

In my opinion, the documentary presents the story of the computer (and computer software) that guided the navigatio of the first Apollo mission to go around the moon and back. It mainly presents such story through the experiences of the 'programmers' and engineers behind that project. People who were (at the time) young students from MIT.

These people tell stories of something that ended up being a software project, but at a peculiar time in which software was a very new thing. As such, it is evident that the study of it's contruction and the processes behind it were not a thing yet. It is in those personal stories by the developers in which the argument for the need of a study of software making study becomes evident. The tales of the developers and of the unfolding of the project are stories of hardship, of problems that software projects of today sometimes suffer too.

With the knowledge we have today it was easy to look at the problems they mention: being behind schedule, and having the role project demoted because of it's lack of readyness, as a consequence of the lack of experience and planning that they had. But it is also not hard to relate to the frustrations they underwent as precursors to these problems: not eve knowing or planning what they were supposed to do, having no clear goal or requirement in mind at the beginning and poor organization between the teams of software and hardware.

I think that those people, thosw first developers, are  to thank for the knowledge that today, to a certain extent, shields us from falling into doing the same. For the knowledge that software is just another piece of technology product of engineering, and that like any other engineering project, ends up being better if coming from processes of design, planning and careful thinking.

Thursday, January 17, 2019

Intro

Hi there!
Welcome to my blog for the software design and architecture class!
I'm Gerardo, most people call me Gerry. I'm the 8th semester of the ISC program and I have the 'regular' schedule according to the program.

At the moment I do not have any particular expectations from the course other than to go through a large amount of good practices to follow when constructing larger software projects. I believe that most of them will make sense and will actually be helpful and of guidance when the time comes for us to actually work on such projects. (Hopefully, and maybe, just maybe, we'll get to play around with legos again).

 I'm generally interested in computers, programming, and what computers can be made to do for us as a species through programming. I like knowledge. Other interests of mine include videogames such as the Halo saga and Super Smash Brothers. Generally I spend time learning random stuff on the internet and watching anime and/or going out with my partner.

Recently I re-watched Netflix's Devilman crybaby and I enjoyed it just as much as the first time, it only reaffirmed my opinion that it is am true masterpiece and a modern classic. During the winter break I also watched 'Rascal does not dream of bunnygirl senpai' and Trigger's 'SSSS.Gridman'. I enjoyed both very much, although I'd take the latter one if I had to pick. When there's nothing to watch I just binge the infinite Rick and Morty stream while I do other stuff.

At the beginning of the winter break I challenged myself to read Cormen's Introduction to Algorithms. It's been tough. I'm also reading 'A Tour Of C++' by the dude who made C++ himself. I figured I should know the language before I graduate.

Music-wise I've been listening to lots of 'electro'(?) in my search for music similar to Porter Robinson's 'Worlds', with artists such as k?d, Robotaki and Illenium. I've also been listening to local jazz by 'Alex Mercado TrĂ­o'.