Week 1^2 + 1^2 + 2^2 + 3^2

Tags: English, university
Created on Sun, 16 Feb 2014

Behavior driven development is a new thing for me. It looks like an improved, revised and more human-oriented refinement of Test driven development. It describes the process as a human would like to see, not in terms of some artificial tests that while might be uselful, are sometimes hard to grasp. The workshop on JBehave is easy to follow and useful.

HOWEVER... I start feeling that PSD tries to introduce as many software frameworks as possible in it's given timeframe without actually giving us the time to explore it and really understand it. Starting with the Spring fiasco in the first semester, where we were already overloaded with work from other courses, this brought nothing new to my mind and as a team we strugled to understand exactly what is that and why we would need it to do our second sprint. We continue with Jenkins, OSGi (Apache Felix) and now JBehave. While it may be interesting to get a taste of the technology, I don't think it's too productive as it mostly wastes our time not doing our team project which for most teams is in it's final stages. I know that because I worked with Ant and Maven during the summer and I am convinced that the time PSD gave us for ant and ivy was not nearly enough to get what is happening. I am hearing the voices of my fellow students that say they have no idea what these are doing at all. And I feel like them for the rest of the frameworks.

Wouldn't it be better to merge PSD and the Team Project? Remove the artificial excercises that PSD gives and rather use them in practice in the real Project. Still keep the lectures and optional tutorials, but don't force us to use frameworks which we can't possibly grasp in less than a week. Rather give us the option to use whatever we want covering the principles of PSD in our team project. Wouldn't that make more sense?

Week NGC 6402

Tags: English, university
Created on Fri, 07 Feb 2014

The consortium was a very interesting experience. 14 people who have hardly ever talked to each other, gathered in a room to discuss something we hadn’t had time to read or understand what exactly is required from us. 13 people kept silent some minutes. I started to speak.

“So... any ideas what to do? Anyone?”

Laugh from 12 people.

“Yeah, well, we were given this piece of paper. And I guess we need to do it.”

Good - I thought to myself. No one takes this seriously.

“Okay, so I see some user stories here. And there is cost and priority. Shall we start reading them one by one?”

11 people blushed and tried to hide as if I was going to pick them. But the others showed a bit of excitement - I guess they thought of me as someone who can lead them and they wanted to just follow. Pure old education - a person (with very, VERY questionable authority) stands in front and speaks and 10 other listen to him.

So we started reading them. And we started voting in the MoSCoW system. That took about half an hour.

“And now what?” - I said. 9 of the fellows never even voiced their opinions.

Silence. Then laugh. We didn’t have the slightest idea. I saw cost. Made a stupid joke about assigning bitcoins. Laugh. Silence.

Then one of the supervisors entered the room. She asked us if we have a plan.

Hah! A plan. Yeah, we had a plan. To lose another day doing PSD. Rather than doing an interesting team project, or read the Operating systems book and playing with Linux. Rather than writing code for creating a web server, making a website, rather than optimising SQL queries and actually doing computing science, we were planning. Oh my Random, I so hate planning!

Another 8 minutes we did mostly nothing while we suggested playing poker or something to assign cost. Someone was running for paper, then we decided to use the board and voice our opinions.

I started to understand what we needed to do. Another MyCampus. AGAIN! In the first semester we did it twice, then threw it away. Now we are going to do it for 7 weeks. And throw it away.

“Shall we move number 6 to the Could section?” someone proposed.

Oh, the heat of the debate! Everyone took part, we started discussing it as if it was our life.

Just kidding. We moved it. Period.

Later in the afternoon, after I was pondering and writing code for my team project (which I’m super psyched about!) we had to return to the room and create components diagram. 5 minutes no one had any idea what is that. I stood up and started drawing. People thought I had an idea. Oh boy!

Anyway, after they got it that I’m just a drawer, not a professor, they started taking part.

I have no idea what I'm doing dog meme

It was painful, boring and useless. I thought that we have to separate the components and each team work on a component for the next few weeks, then we gather again and we combine or whatever. Nope. Turns out each team will do it’s job, this meeting was just educational. Got it. Okay. I am educated now, can I not do any more PSD?

Oh, oh! 4 minutes left! We need to draw officially, send the picture and present.

Me and my team mate who actually does work besides me met our supervisor on the way out. The 3 of us spoke briefly about our project. Turns out we are in a pretty good position of publishing a paper! Yey! Enough fun, back to reality...

All righty, presentation. The room was full (unusual). We were the 2nd to go. Each and every one of us were making jokes. No one took it seriously. It was actually good one hour, full of laugh!

What a way to lose a very precious day of 100+ bright young minds! Bravo, University of Glasgow! Bravo! I care about the accreditation from IET, BCS, GTFOFHfKLSHJ78 and all the rest. I would like to please waste another 1 year doing PSI, another countless hours writing blogs and essays.

Week Fatal

Tags: English, university
Created on Tue, 28 Jan 2014

Architectural design patterns brought back memories from last year’s software design patterns in OOSE2. Even though most of them were known to me, it was good refresher and an easy topic to read about.

I remember that last year I finally got to know the model-view-controller (MVC) after practicing it in one of the other courses assessed exercises. Seems that these patterns are almost everywhere (duh) as we are discussing some of them (client-server, peer-to-peer) also this year in DIM3 and even OS3 (pipe and filter, message oriented).

While I was studying for the finals last year, I remember I found this guy on youtube who turns out is making very, very useful videos about many topics in computing science. Here is the playlist with his design patterns (code is also provided and thoughtfully commented):

Week Mg

Tags: English, university
Created on Tue, 21 Jan 2014

It took me the better part of the week to make my mind understand the difference between an object and component (of course, next to reading and writing about all my other courses) but I think I finally got it. A component is a group of objects that can live by itself and can connect via middleware to other components, providing ins and outs of the component.

It does resembe a lot an object, but an object while it's describing an entity, it usually cannot work by itself. The closest to a component in fact is actually a merge by a package and an object.

The workshop was interesting, having a glimpse of Apache Felix although I think it will take me some more time to really grasp the concept (maybe work proffesionally on it?).

I also rebooted the team project this week, after a very lazy winter vacation. We are having some minor troubles with python but otherwise the front end is almost done but the backend does need some more work especially on the algorithms and scoring part.

That's the week wrap. Now party!

Week ?v=5FFRoYhTJQQ

Tags: English, university
Created on Tue, 21 Jan 2014

I have been using Apache Ant and Ivy during my last summer internship and I must say it has a very nice easy learning curve. After about 10 minutes of simple tutorials and a bit of tweaking, you understand the basics of it and it solves hours of problems. You are ready to go in no time - automate lots of tasks when you want to recompile or deploy things quickly when the boss asks you that he wants a demo in 10 minutes. This is a website that helped me getting it.

I haven't used Jenkins though but I did have some experience with open source development. Launchpad does something similiar once you update your code and push it with bzr push. Now I understand what it does in the background and in my eyes, this is a step further from ant and ivy - even more efforts saved on mundane tasks, leaving the programmer worry about the more human problem aspects like algorithms, data structure, abstraction and code writing. I think there are many advantages in the continuous integration - like immediate feedback on non-functioning software, automated tests and metrics produced by them albeit some drawbacks like setting up time and necessary development of a test suite.

As I am looking into the schedule, this semester starts from the last thing - the dellivery and evolution of software and then digs deeper into testing, architectures and modeling. The warm up material was useful to get into the tone of the continuous integration and also understand a little real world examples as the lecture concentrated more on abstract implications.