PiSquared Blog | Index | Tags | About me

PiSquared Blog

Blog about geeky stuff, computers, physics and life.

И к'во?

Tags: Български, политика, мнения
Created on Sun, 05 Oct 2014

Тръгнах си от Глазгоу преди 3 месеца като едно от последните неща, които направих е да гласувам за евроизбори. Сега, едно от първите неща, които правя е дежа вю – пак съм на вече познатата секция, гласувайки за български парламент.

Няма да крия, че резултатите са крайно разочароващи за мен. И не толкова за партиите, които влизат, събрали 5-6%. Това ми е ясно – здраво купуване на гласове, мотивирани хора да гласуват за патриотични и про-руски партии, носталгия към миналото, гласуване по етническо убеждение, разочарование от горните и размиване на гласовете, опит за нещо различно. Хубаво.

Това което не ми е толкова ясно – тоталния мързел и безочлив непукизъм. След година на протести, имаме 42% избирателна активност. 58% процента от хората отново, за пореден път не можаха да отделят половин час от напрегнатото си ежедневие да изразят своето мнение. Но са го изразявали и ще го изразяват всяка вечер на по чашка на въздуха и гората. Близо четири милиона оплакващи се, но не вършещи нищо


A conversation with a wolf

Tags: English, university
Created on Tue, 20 May 2014

Hello Mr Storer,

Thank you for the feedback. Allow me to address your comments.

We randomly allocate students to teams because it better reflects reality (believe it or not, you don't get to work with geniuses all the time, partly because they may not want to work with you :-) ).

Then these "real" companies should have a hard time to think how they employ people and match teams. If they match teams randomly and there happens to be such big difference of capabilities as it was this year in Uni, then this company is unproductive in the long term and I definitely would not like to work for it. (Maybe I should point that the difference is more geared towards laziness, rather than actual capability - if I see a person gives his best and as much time as possible to the project, I will never judge him how much they know or can as long as they are striving to compete and do their bests). Giving the hunger for good CS guys right now, I have too many options (from one-man-jo


What I am learning these days

Tags: English, university
Created on Sun, 13 Apr 2014

Hello, Dear Mr/Mrs Whoever it may concern!

So this is the deal: I am a third year student now. Serious stuff. Here is a random list of things I am learning while studying for the exams.


Summary entry II

Tags: English, university
Created on Thu, 27 Mar 2014

If the first semester was balanced and happy with occasional hiccups, the second semester was quite a different story. Courses like Operating Systems, Network Systems and Databases were much more demanding both in theoretical knowledge and assignments. I enjoyed them and now I can say I get these areas much deeper thanks to both the material in the lectures and the assignments which also helped me solidify my knowledge in C. It was interesting (from an academic practice point) to build a web server, chat program and disk driver even though not many of us will have to do this in the future. However, it definitely made me get a better understanding of some of the inner processes. On the other hand, optimising database queries can actually be applied to the real world and I am happy we did that.

In addition to that, the team project had reached a phase beyond just mocks and requirements capture and implementation work needed to be done.

Another semester long project was the Distribu


Week XX

Tags: English, university
Created on Thu, 27 Mar 2014

As I said in the previous week post, OCL is great. Here is how I imagine my first meeting in a bank (that I will definately go to work for):

{% rawhtml %}{% endrawhtml %}

Did you know that the site http://omg.org is actually relevant to the topic? I mean, OMG... Is Object Management Group! OMG! So these guys are doing a good job creating formal language for development. Here is what I definately read:

Actually for a whole week now, when I message my buddies, I do it like this:



Week 90n

Tags: English, university
Created on Tue, 11 Mar 2014

Formal Methods in Software Engineering. From what I got from the lecture, this is a mathematical way to describe requirements and the process of developing software.

Here are some links that completely taught me about formal methods:

Of course, that's next to the brilliant lecture slides and note materials. [TODO: Pile of bricks]

This can be useful in safety critical systems and security systems. We were introduced to the idea of the Object Constraint Language. I was left with the impression that the proves can be so hard and tricky, generated from a computer, that it's hard to understand it as a human. However software tools are really not mature enough to work with. Therefore it's a good idea, but without much practical applications.

Other good ideas


Week Adult (in most European countries)

Tags: English, university
Created on Tue, 04 Mar 2014

We did state machine diagrams in year 2, computer systems course. We dealt with finite state machines and explored their properties in semester 1 in Algorithmics 3. (Personal background experience noted) But until now, we had no idea how do draw state machine diagrams.

So now we know! Here are some links to support my thesis:

  1. http://www.dcs.gla.ac.uk/people/personal/gethin/alg3/2013/alg3_section6.pdf

  2. http://www.dcs.gla.ac.uk/people/personal/gethin/alg3/2013/alg3_pushdown_automata.pdf

The second part of the lecture - Threads! We did that too in Advanced programming 3, semester 1. With the second assessed excersise being on Java threads. And refreshed it in Networking Systems, semester 2. And the assessed excercise in NS was with C Threads. And the OS assessed excersise requires knowledge of C Threads (wit


Week Least Random Number

Tags: English, university
Created on Wed, 26 Feb 2014

Aspect Oriented development.

I loved it. I think it aspect oriented programming is really useful. I think it creates the abstraction needed for professional software development. I think the day that we spent using AspectJ was absolutely enough to grasp the main point. Maybe not understand it completely, but really get what's going on.

I didn't have any previous experience with that, so that didn't help me a lot. But I understand the idea. And that's important!

Here are some links which helped me while understanding deeply aspect oriented development - totally not result 1,2,3 of a search engine:

  1. http://en.wikipedia.org/wiki/Aspect-oriented_programming

  2. http://www.onjava.com/pub/a/onjava/2004/01/14/aop.html

  3. http://docs.spring.io/spring/docs/2.5.4/reference/aop.html

Also, I have b


The Shape of the Universe

Tags: English, university
Created on Wed, 19 Feb 2014

(Originally posted in useless Univerisity blog)

The shape of the universe is the local and global geometry of the universe, in terms of both curvature and topology (though, strictly speaking, it goes beyond both). (Wikipedia)

Astrophysicists have been trying for decades to identify the shape of the Universe through various observation techniques and tons of useless calculations. Most of them think now that it's flat. However yesterday, I have discovered the real shape - a revolutionary, never before thought of, groundbreaking and yet not so much surprising result that will change the way we are thinking about everyday stuff like butter.

Bear with me for the revelation of this unusual story. I will go with a step by step proof, with a methodology of the scientific method applied at every step. It is an interesting read that I believe will enlighten the 0.26 people that are reading this blog. Here we go!


Week Ans^wer

Tags: English, university
Created on Wed, 19 Feb 2014

As far as refractoring goes, here are some links that I find really useful:

Of course, I have used the refractoring facilities of Eclipse, I learnt that during the Google's Android camp in 2012 which was structured in a hackatonish way. I find it really useful as it saves time and helps me write better code.

Dogge meme - Such code, very IT. Much Edit

As far as software comprehension goes, I have had some experience during the summer reading other's people code. I used profilers as well. It helps to understand RAM and CPU in much deeper level. I actually asked them once to go to dinner. They refused. They said things are moving too quickly. Here are some links that I find us


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


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


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):

{% rawhtml %}<iframe width="560" height="315" src="https://www.youtube.com/embed/vNHpsC5ng_E?list=PLF206E906175C7E07" frameborder="0" allow="accelerometer; autoplay; encrypted-m


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.


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


Semester 1 Summary

Tags: English, university
Created on Thu, 02 Jan 2014

Contribution and Achievements

This is not the first time that I worked in a team but it was the first time that the team wasn’t chosen by me but selected on random. So here is to what we’ve done during semester 1:


Week X

Tags: English, university
Created on Mon, 09 Dec 2013

This week was very intensive for me. I worked on my TP every day for 8+ hours since I wanted to complete most of the implementation before I leave for my Christmas holidays. I learnt a lot, practiced a lot and played with design, Javascript, Django, Python, Postgres and the varios additional JS libraries out there that we need in order to visualiza the tweets. It is not my first encounter with any of these technologies but I definitely broadened by experience with them, feeling more secure when applying for jobs.

Tomorrow is the team presentation. I feel we made very good progres in the last 5-6 days and now feel much more secure in what is going on with the architecture, final design and technologies that we will be using. Of course, we still haven't had any user evaluations but we are busy building the system which we will fine tune with A/B testing and direct user observation. We have tons of features waiting on the MoSCoW queue and also reflected in the github issue tracker. We


Week девет

Tags: English, university
Created on Sun, 01 Dec 2013

The second sprint didn't go so well as the first one. Maybe because of the many assigments that are due really soon and (naturally) everyone does everything in the last possible or beyond last possible moment. Another reason may be because we had to learn a framework for a week in between all of that. Spring is not hard, in fact, it looks extremely nice framework (maybe except the fact that it relies a lot on Java annotations which IMHO make the already hard to follow nature of the Java code even more unreadable). But otherwise the tutorials on the webpage are easy enough the follow and I also attempted doing one of the long tutorials - really nice, easy as a song (as we like to say in my home country).

Anyway, we were able to finish the prototype and we didn't spend too much time on goldplating the code and making it look pretty. It was mentioned in the specifications that this is not an HCI so we didn't want to wrap it in bootstrap or whatever css library we stumbled upon. I perso


Week Math.pow((this.Week\ 10), $(this.Week\ floor(pi)))

Tags: English, university
Created on Sat, 23 Nov 2013

Quality assurance. Good. Now that we’ve done implementing in our first sprint, it’s good for fresh eyes to have a look at the code. We were pleased to hear the other group liked the code and the design decisions we had while implementing. We also received a great feedback as to what can be improved. For example - we will shorten the commands so that the user doesn’t need to type the whole long string but just one letter. We got several ideas in places where we got stuck. We didn’t discover any bugs that we didn’t already know about but we did mark them clearly in our trac system so that we can squash the ones we know about.

As to the lecture - standardization is a great idea. So great that not one but many organizations exist that do standardizations in different areas in our life. Sometimes however I am afraid this thing happens as noted by Mr. Randal Munroe (xkcd 927 Standards):

![xkcd competing standards](/media/20131123_week_math_pow_this_week_10_this_week_floor_pi/01_standar


Week ^G

Tags: English, university
Created on Fri, 15 Nov 2013

The first sprint week looks really good now that it's its last day. We did manage to comunicate everyday with the team and hold standups - either through Google+ or live. We identified problems, assigned tasks to people and implemented our original idea with slight modifications which resolved issues found in the process. The course work seems good enough to be tested with the new (in our minds) agile scrum method of doing things. In theory agile sounds good, in practice it's even better. There is no more weeks of wondering if anyone did something and the frustration when someone didn't - everyday you have the chance to see what happened and help if there are any associated problems.

We decided to implement the course work in Python with data stored in a MySQL database so that we can brush up that good language that we learnt in first year and revise our database knowledge. We'll definitely need it in the second semester. In the first year we didn't do object orientation but now tha

1 2 3 4 5 6 7