PiSquared Blog
Blog about geeky stuff, computers, physics and life.
И к'во?
Tags: Български, политика, мненияCreated on Sun, 05 Oct 2014
Тръгнах си от Глазгоу преди 3 месеца като едно от последните неща, които направих е да гласувам за евроизбори. Сега, едно от първите неща, които правя е дежа вю – пак съм на вече познатата секция, гласувайки за български парламент.
Няма да крия, че резултатите са крайно разочароващи за мен. И не толкова за партиите, които влизат, събрали 5-6%. Това ми е ясно – здраво купуване на гласове, мотивирани хора да гласуват за патриотични и про-руски партии, носталгия към миналото, гласуване по етническо убеждение, разочарование от горните и размиване на гласовете, опит за нещо различно. Хубаво.
Това което не ми е толкова ясно – тоталния мързел и безочлив непукизъм. След година на протести, имаме 42% избирателна активност. 58% процента от хората отново, за пореден път не можаха да отделят половин час от напрегнатото си ежедневие да изразят своето мнение. Но са го изразявали и ще го изразяват всяка вечер на по чашка на въздуха и гората. Близо четири милиона оплакващи се, но не вършещи нищо
...moreA conversation with a wolf
Tags: English, universityCreated 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
...moreWhat I am learning these days
Tags: English, universityCreated 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.
- You should have so much feedback with a client, it should be handled in a TCP rather than UDP way.
- C gives you enough rope to hang yourself. And 60% of the Internet.
- Implementing a round robin scheduler with no pre-emption will solve your time problems. * The no pre-emption is actually the key here.
- How to draw stick figures and call them "UML Diagrams".
- Waterfall is so XX century. Agile is new and good. Magical! It even makes lazy people, un-lazy!
- Slow start is actually quite exponential.
- Thombstone diagrams... who... who uses that?
- CGPGrey + Numberphile guy = Great, no... GREAT podcast!
- Gant and PERT charts, kanbana... all kinds of stuff to keep the boss happy.
- Draaaaaaaaaaaaaaw.
- Write blogs!
- How imp
Summary entry II
Tags: English, universityCreated 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
...moreWeek XX
Tags: English, universityCreated 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:
- http://www.omg.org/spec/OCL/2.4/
- http://cs.ulb.ac.be/public/_media/teaching/infoh302/oclnotes.pdf?id=teaching%3Ainfoh302&cache=cache
Actually for a whole week now, when I message my buddies, I do it like this:
```
...moreWeek 90n
Tags: English, universityCreated 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:
- http://homepage.cs.uiowa.edu/~fleck/181.html
- http://web.mit.edu/16.35/www/lecturenotes/FormalMethods.pdf
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
...moreWeek Adult (in most European countries)
Tags: English, universityCreated 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:
-
http://www.dcs.gla.ac.uk/people/personal/gethin/alg3/2013/alg3_section6.pdf
-
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
...moreWeek Least Random Number
Tags: English, universityCreated 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:
Also, I have b
...moreThe Shape of the Universe
Tags: English, universityCreated 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!
- During the wee
Week Ans^wer
Tags: English, universityCreated on Wed, 19 Feb 2014
As far as refractoring goes, here are some links that I find really useful:
- http://refactoring.com/
- http://msdn.microsoft.com/en-us/library/719exd8s.aspx
- http://www.c2.com/cgi/wiki?WhatIsRefactoring
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.
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
...moreWeek 1^2 + 1^2 + 2^2 + 3^2
Tags: English, universityCreated 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
...moreWeek NGC 6402
Tags: English, universityCreated 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
...moreWeek Fatal
Tags: English, universityCreated 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
...moreWeek Mg
Tags: English, universityCreated 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.
...moreWeek ?v=5FFRoYhTJQQ
Tags: English, universityCreated 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, universityCreated 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:
-
Create a team organization document. This was our first task as a team but we didn’t have much of an idea what organization should we describe - organization for the Team Project or the PSD assignments? I don’t think this was clearly understood. However we liked the agile methods so we tried to brainstorm about that.
-
Assign risks. Again, not clear in the beginning. We had no idea about the group assignments and what will this involve. And on the Team Project we were just getting started to understand the scope of the problem - too early to assign risks. So we tried to generalize them and later edit them and narrow them down as things became more clear (and after we got feedback) which was good.
-
Setup trac server and git repository. I think tha
Week X
Tags: English, universityCreated 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
...moreWeek девет
Tags: English, universityCreated 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
...moreWeek Math.pow((this.Week\ 10), $(this.Week\ floor(pi)))
Tags: English, universityCreated 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
...moreWeek ^G
Tags: English, universityCreated 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
...more