Sunday, December 6, 2009

TOEFL registration

Recently, I decided to take the TOEFL exam. TOEFL is really useful if you want to get a position in a foreign company or if you want to study abroad. So I googled where I have to register: www.ets.org.

To sign up for the test you have to register at the web page at first place. So I tried to do it. I intentionally use a verb 'try' here because I failed. Why? The reason is a little strange architecture of the site. It doesn't allow anyone to have multiple user accounts. If you had registered some time ago you have to remember your login information! Write it down! They are not mailing any login information! Although the architecture of the web page seem really strange and inapt, there's a reason why ETS needs a web page with limited registration. The delay between two subsequent TOEFL exams is limited.

If you had registred and you don't remember you login information, the site provides some assistance to retrieve login information. Unfortunately, I found all these assistance procedures completely useless. I wasn't even able to figure out my user name. And, due to some lower/uppercase issues, I also failed to provide correct answer for the control question. After few wrong tries the site was blocking all other tries.

In case you have troubles, you can call a help desk. But it's an american phone number. I'm not really eager to call to the US! So my last chance was an e-mail. Fortunatelly, several emails and days later, ETS representatives sent me a new password and my forgotten user name. Really, write it down!

Friday, October 16, 2009

Python Challenge

Recently, I was writing about a convenient way of learning some Vim basics. Today I'm writing about a convenient way of learning Python. Python is an interpreted programming language, very useful for various computations, it's an extremely strong "calculator".

Learning a new programming language always brings some inconvenience. If you are an experienced programmer, you can usually figure out an algorithm solving the problem quickly. Then the problem is to realise how to write it down in the new language, and learning the syntax remains the biggest problem for you. I came across an interesting way of learning Python - Python Challenge. You can find it on the address http://www.pythonchallenge.com. The learning is done by a series of task you have to fulfil. A task is often in the form of a riddle and you have to write a simple program to solve it.

So, if you are interested in learning Python and/or enjoy solving riddles, try it!

Friday, September 25, 2009

The Power of Vim

Every *nix programmer definetely knows Vim editor. Vim is an extremely strong editor. Although there are many GUI-based editors, I think Vim is superior. Once a programmer masters the efficient commands and command combinations, he be much faster in his work.

Although I know and use Vim several years, I don't know every command it provides. There are too many of them! Recently, I ran into a blog post mentioning a tutorial for Vim called 'vimtutor' which I hadn't know before. If you have Vim installed, try it!. Type 'vimtutor' and let it guide you through the tutorial. It shows only the basic commands, still, I think it's a great start to Vim.

Monday, July 27, 2009

Precedence Constraint Posting (PCP) search strategy in Choco solvera

Using a PCP strategy in Choco constraint solver is rather problematic. The solver natively supports search strategies based on assigning a value to a variable. On the other hand PCP strategies are based on posting constraints. This is not natively supported. There are basically two way how to gain this functionality in Choco solver.

The first way is to extend the model with some extra constraints that can be bound to a variable, then AssignVar strategy with a specified variable and value selection can be used. To solve a scheduling problem a preceding constraint is suitable. The constraint has an extra boolean variable that specifies the precedence of given tasks. The search strategy then decides about these boolean variables first. Unfortunately, only several constraints has a variable that can be effectively used to create a PCP strategy.

Another way to use PCP strategy in Choco is much more complicated, the point is to implement an extension of abstract class AbstractLargeIntBranching that does what is required. Likewise, some useful selectors can be defined. The advantage of this approach is the generality, you can implement whichever strategy you like. I implemented some PCP strategies this way. A good pattern for this is CstrBranching class. It is a PCP implementation that can be found in svn sources in version 2.0.0 of the solver. The svn address is https://choco.svn.sourceforge.net/svnroot/choco.

Friday, February 6, 2009

Easy youtube video download

Recently, I found on the internet an easy and tricky way how to download videos from youtube.com. Lots of people surely heard about some programs or plugins enabling video downloads from this website. The way I'm going to write about here is much more easier and moreover you needn't install any program or plugin on your system. You only have to view the video, that you wish to download, on youtube.com and then write in you address link:
javascript:if(document.location.href.match(/http:\/\/[a-zA-Z\.]*youtube\.com\/watch/)){document.location.href='http://www.youtube.com/get_video?fmt='+(isHDAvailable?'22':'18')+'&video_id='+swfArgs['video_id']+'&t='+swfArgs['t']}
The browser (I tested it only with Firefox 3.0) than offers you saving the video. You can also create a bookmark in your browser with the command and put it on the bookmark toolbar. Then you only click on the bookmark while you are watching desired video.

Monday, January 19, 2009

Erasmus and team projects

At present I'm studying at Utrecht University in the Netherlands as an Erasmus student. I found interesting that much more team work is required to pass a course there. At my home university it is not so usual.

Team work offered me less work to do. Well, I thought that first. I soon realised I was wrong! I supposed I would have less work because I would share the work with other team members. The amount of work on a project seemed approximately similar like at my home university, the difference was that I could share it. But doing a team project does not always make it easier! Especially for Erasmus students. Home students usually know each other quite well and set up teams with their friends. But what should an Erasmus student do? Foreign student also find some new friends, mostly among other Erasmus students. So they often work on a project with other Erasmus students. And there is the catch!

Not everyone is used to the same amount of work and not everyone has sufficient knowledge to be useful for the team. People are coming from different countries and different universities, sometimes they don't even study the same field at their home universities. The result is that you sometimes have to do others work.

I had two team project experiences in Utrecht and both wasn't much positive. The first time I had two other people in my team, fortunately one was my friend from home university, so we were used to work hard and we had both the same knowledge. The third member of our team wasn't as trained as we are. He for example has never programmed in Java, which was essential for our project. Shortly, we had to finish the project in two people. The second team project required a team of two people. I've done my part but my colleague wrote me few days before the deadline that he didn't intend to finish it, moreover he didn't do anything. I discussed these problems with other foreign students and some of them had the similar experience.

To close up I have to say that team projects are basically beneficial but not for Erasmus students. They don't know their partners enough.

Friday, January 16, 2009

Apple's slide

It's few days since Apple CEO Steve Jobs said he's temporarily stepping away for medical reasons. Many rumours foreran the announcement. The rumours and the temporal resignation caused some 14% stock slid. These 14% means $12 billion in market value. Now look at it again. Does this really mean that Jobs is so essential for Apple? Was everything that Apple shown during last years only one man's show?

Jobs is known to be an outstanding entrepreneur. His management style is said to be temperamental and his personality as demanding and aggressive. Fortune magazine noted that he
"is considered one of Silicon Valley's leading egomaniacs". Steve's biography is voluminous. He co-founded Apple with Steve Wozniak in 1976, in 1985 he resigned from Apple and founded NeXT. Buyout by Apple (paid $429 million) in 1997 drove Jobs back to Apple. But that was not all. He also bought Pixar Animation Studios a former graphics division of Lucasfilm Ltd. in 1986 for the very nice price of $10 million (George Lucas needed to finance his 1983 divorce). Pixar was acquired by the Walt Disney company in 2006 for $7.4 billion. Steve then became Disney's largest single shareholder with approximately 7% of shares.

Although I think that Jobs is really good as Apple CEO (better to say as CEO, no matter where), I can't believe that the invisible hand values Jobs for some $12 billion and that Apple is supposed to be unworthy without Jobs. Is Apple really a bunch of idlers doing nothing without its lion-tamer?

Thursday, January 15, 2009

Blogging time

Recently, I fell in love with blogs. Well, only with the informative and juicy ones of course. I would never read some stupid celebrity blog. I am a man of science and not a man of gossips. I found out that I can learn many really interesting things on blogs. Some blog posts are much more specific and informative than any online news and since I am not much interested in reading printed media, reading blogs is the best way for me to find useful information.
As I wrote, I am fond of science and also a little egoistic so starting to write my own blog was an easy decision. My wish is to reach the same quality some of my favourite blogs show and also to have lots of readers.