Don't wanna be here? Send us removal request.
Text
Nemo vir est qui mundum non reddat meliorem
"What man is a man who does not make the world better?".
(Balian, Kingdom of Heaven)
Scene on Youtube
Discussion on StackExchange
1 note
·
View note
Text
Data Structures vs. Algorithms
“Data dominates. If you’ve chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming”
Rob Pike
0 notes
Text
Evolution
“You don’t do anything, you let it evolve.”
Sergiu Celibidache
3 notes
·
View notes
Text
Thou Shall Not Take Bananas for Granted
I went to the store today, and between others I quickly grabbed a kilo of bananas scanned them in a hurry, and dropped them in the basket. I love the self scanners; together with Spotify they remind me like nothing else that I live in the 21st century! No interaction with humans while you’re buying stuff and your soundtrack streams seamlessly straight from Sweden :)
And then it hit me. I have absolutely no feeling of thankfulness when I buy bananas. Nothing. Zilch. Nada. None. And you, my dear reader, probably you also don’t have any such feeling towards bananas. And maybe this serves you right, but for me it should not be like that.
Let me tell you a fragment of a story.
I grew up in communist Romania. The policy of the government was that the country will import less than it exports. They cut all kinds of expenses, including electricity and water, and that was not always pleasant. But in time, the country almost completely got rid of the foreign debt. This is laughable nowadays, when Romania like every government and even every local authority are borrowing money from financial institutions… but that’s another rant for another time.
In any case, because of this policy of not importing too much, and because bananas do not grow in Eastern Europe, we only saw the fruit for Christmas. That was the one time in the year when the government imported and distributed a scant quantity of bananas to the stores. People would queue for long hours to be able to buy. (In fact, I remember that the best strategy at the time was, if you saw a queue, to first sit in line, and then ask what are people waiting for. You would gain several places like this).
The bananas were also green and had to be home-ripen. Everybody knew at the time that bananas should be covered in newspapers, and left somewhere in warm temperature till they would ripe.
An apocryphal story says that once, my grandma received bananas from one of my uncles. And since she never saw anything like that before, she thought those were actually some weird cucumbers gone bad, so she fed the cows with them.
In any case, I’m digressing. The whole point of this time trip was for me to remind myself and to you dear reader to be grateful for being able to have bananas any time we like. (Don’t you find it funny how I am breaking the fourth wall here, like I would be Woodie Allen in Annie Hall, although I suspect I am talking alone anyway?).
So yes, I think we should all remember, every now and then, where are we coming from, and be thankful for it. Sure the bananas are just a very simple example, and metaphor. There are many other things that I need to remind myself to be thankful for, things that I nowadays I take for granted and I could not even imagine having them some time ago.
And if you think that bananas are trivial, then I’ve got news for you: I have an even more basic reason to be thankful. And this one is an actual holiday for me.
Two years ago, in August 2014, I attended a conference in Vienna for one week. Unbeknownst to me, I ended up contacting a terrible pain in my neck. The moment I would try to look up, I would feel this horrible pang in my neck. I could not turn my neck. I could not walk. I could not enjoy anything, because of the pain.
I went to the pharmacy, and described the horrible situation in which I was. The kind lady there, recommended a warm patch, and I think I burned her down with my gaze at that moment trying to convey the following: “i’m dying here woman, and you’re recommending me a warm patch?”. You see, I was convinced that what I got was some injury to my vertebrae or something really horrible. Long story short, with the warm patches, in two days, my neck eventually recovered.
For the remaining two days, my biggest pleasure was to simply walk around and turn my head. Using my neck without the pain was a joy I hadn’t experienced in a long time.
We don’t know what we have, until we lose it. And that’s ok. The thing which really bothers me is that once we get it back, we still too easily forget.
So, to make sure that I don’t forget, or that if I forget, I will remember every now and then of the times when I thought I was doomed to never look up again, I have decided that for me, August 25 will be the “Day when my pain in neck went away” day, which I will observe yearly.
And now that I’m writing this I wonder when should I institute the Banana Day as a the next personal holiday.
0 notes
Text
Repetitive Suffixes
The other day I was reading some code, and I saw a lot of classes named based on the following pattern:
- ContactsOverviewTableViewController: UITableViewController
- AddContactTableViewController: UITableViewControlle
- FindContactTableViewController: UITableViewController
I get it, they are all table view controllers, but do we really have to mention that in their name all the time. Isn’t this like saying HomerSimpsonCartoonCharacters and BartSimpsonCartoonCharacters every time you talk about the corresponding cartoon characters?
Reading code like this is a drag. Can’t we do something about it?
Reminded me of a blog I’ve seen recently about how if we stopped appending Exception at the end of the exception class names, the code would become less boring, more readable, and how those cases where by removing Exception the class name is not good enough, were actually bad names in the first place. But do you think I still have that link? Nope.
0 notes
Text
Semicolons Were Wrong... All Along
Just realized that Swift does not require a semicolon for ending a line.
I’ve been writing a lot of Python recently, I liked this, but never gave it too much of a thought. But today, looking at the pull request of one of my students, I realized that if think about it, this makes a lot of sense from a usability POV.
Indeed, it optimizes for the most frequent case, which is that a statement ends at the end of the line. I think that more than 90% of the lines in Java end with a semicolon.
In fact, if we really wanted to use semicolons in PLs, it should have been the other way around all along! The semicolon should have been required for those less than 10% of the cases in which the statement does not end with the end of the line. And this would make more sense, because it would be in line with the actual meaning of a semicolon in natural languages – that the statement is not over yet!
0 notes
Text
Our Obsessive Fascination with Science
For some reason, our society is obsessed with science. In fact, any domain that wants to have some respect nowadays, needs to append “science” at the end of its name. Computing science. Social science. Behavioral science. Climate science. Economical science. Food Science. etc. The good news is that once we’ll append science to every human endeavor, we’ll be able to drop it again.
Thus, no wonder that Matt Damon in The Martian gets declares that he’s going to “science” his way out of the red planet… And Neil deGrasse Tyson likes that.
Now don’t get me wrong. Science is an important aspect of society. But we should stop putting it above everything else. Too often I hear the dismissive observation: “bah, that’s only engineering”. So here’s the catch. It’s not “only” engineering. It’s ENGINEERING. What I mean is that not only science without engineering can’t exist, but rather, for most of the human advances, it was the other way around. Henry Petroski, professor at Duke:
Throughout history, a full scientific understanding has been neither necessary, nor sufficient for great technological advances. The era of the steam engine, notably, was well into its second century before a fully formed science of thermodynamics had been developed. […] Had Marconi believed his physicist contemporaries, he would have “known” that wireless telegraphy signals could not be sent across the ocean around the earth curvature.
I hear that those astronomers that get huge amounts of money to look very far into the universe spend two thirds of their budgets on software engineering.
So why the obsessive fascination with science? There are probably many reasons, but one that comes to my mind right now is our individualism. We live in a society which is highly individualistic. We find thus very attractive the simplistic story of the scientist, who alone fights with disease and unveils the secrets of the universe. Just as we admire sportive, the singer, the startup creator. Zuckerberg, Shakira, Neil deGrasse Tyson, and Serena Williams are much more enticing to us as story protagonists than the team who was working on the Boeing 747 wing design. Or the people at the Xerox PARC who invented the Ethernet.
But we should remember that without the team work of the engineers at Xerox PARC we would have not heard of any of the other ones.
I guess I’m thinking about my software engineering course that’s starting soon. And about my software engineering research, which evidently has to be scientific if I am to get grants. Because after all, grants are the fundament of a career in science.
Update: A few weeks ago, after writing this rant I attended a meeting of the SE research community in the Netherlands and could not stop smiling when one of the speakers said this:
“I never went into the University wanting to become a scientist. I wanted to be an engineer. To construct systems”. Jan Frisco Groote
0 notes
Text
Good Code is Readable Code
Code Quality is the Holy Graal of software analysis. And developers seem to agree that good code is readable code. Or at least, this seems to be the overwhelming consensus between several dozen developers interviewed by the people at IntentHQ [1].
At the beginning, I thought: wonderful! I like readability. It is an beautiful concept and it will be easier to define, and maybe automatically detect, than quality, which is a very abstract concept after all.
But maybe I got too easily excited. It is evident that what’s readable for an expert is not readable for a novice, right? And what’s readable for a novice, is boring for the expert. Although nobody said that boring code was bad. Maybe we’re onto something here…
But I suspect that boring code might not be the full answer, and we will have to work a bit more to define what readable code is. In any case, one thing that I find exciting is that if we switch our discussion from “code quality” to “code readability” we also shift our focus of attention: while the former is about the code, the latter is about the people.
0 notes
Text
Fred Brooks on Complexity of Source Code
“Software entities are more complex for their size than perhaps any other human construct, because no two parts are alike (at least above the statement level). […] In this respect software systems differ profoundly from computers, buildings, or automobiles, where repeated elements abound.”, Fred Brooks, The Mythical Man-Month
0 notes
Text
The Most Interesting Job in the World
Today I helped teach kids programming, planned two theses with bachelor students, worked on a stubborn research problem with a PhD student, fixed some culinary details for an event with our secretary, bid on reviewing some of the latest papers published in software engineering, and pair programmed with a computer science professor.
I might have the most interesting job in the world!
0 notes
Text
Your Original Research Idea
If your research idea is so original that nobody thought about it before… then look again at the related work.
You would be amazed by how often when you do a comprehensive search of the related work you discover that another scientist stole your idea, travel with it back in time, and published it in a prestigious conference before you…
This is why doing a literature survey at the beginning of the PhD is better than at the end when you are writing the thesis. On the other hand, if after doing survey the idea starts to look less original than at the beginning … read the next post to feel better.
I mean, think about how many stupid ideas you’ve seen already. It does not matter how stupid they are, somebody has already thought about them. If it’s hard to come up with an original stupid idea, how about something that’s really brilliant?
Modern art is, it seems to me, a domain where originality is an ideal to which people aspire. The other day I saw that a Dutch artist turned a Dead Ostrich into a Quadcopter. I guess this is quite original. (Surely, if you don’t consider that he has done the same thing with his cat before.)
At the beginning of my PhD, I remember talking to a professor that I respected a lot who was a pioneer in the domain in which I was trying to contribute to. And she told me, not to worry if what I did was not original at the moment. If I did it on my own, and if I kept going I was going to bring a new perspective to the field since it would be impossible that I did things exactly like everybody else. And she was right.
If other people have similar ideas to yours, that’s good. In economics they call it that there is a market for your product. It means there is potential in there. So keep going!
0 notes
Quote
“Our greatest glory is not in never falling, but in rising every time we fall”
An Old Chinese Man
0 notes
Text
Secret of Change
“The secret of change is to focus all of your energy, not on fighting the old, but on building the new.”
Socrates
1 note
·
View note
Text
How to Read a Research Paper
Do it in three passes:
50'000 feet read. Get the big picture: read the abstract, section headings, conclusions, glance at related work.
Quick pass (1 – 2 pomodoros). Familiarise yourself with concepts and ideas. Don’t try to understand everything. Underline things that are not clear. Highlight things that are important.
Detailed read (2 pomodoros – … ). This is the time where you must understand the details. After this reading you must have enough understanding to criticise the paper.
0 notes
Text
Academia, Courage, and Innovation
Academia should be the place where every now and then we also do cool and crazy stuff. This is the place where we should be working on things that nobody did before. Things like a search engine for the entire web. Things like programming languages for kids. Things like flying quad-copters that play badminton. Tools that completely revolutionise the way people learn. Things that the industry and industrial research can’t be working on since they don’t necessarily bring money immediately.
Besides academia, I also had the chance to work in industry and industrial research. In industry you get the chance of working on products that will immediately serve the people but at the price of very rigid constraints on your creativity. You innovate only in the measure in which it helps the bottom line.
Industrial research is better. If you’re lucky enough to be working for one of the large corporations that has a research department you might have more freedom to innovate. But you will still have to make sure that your work will eventually serve the company.
Academia is the place where you have the freedom to push the boundary without caring about the immediate profit. This is the place where we have the least constraints from stakeholders and investors. Sure, when not driven by immediate demand, one risks working on something that will not be immediately useful… but this is one of the ways in which we can take the long view, and work on things that nobody else works on because they are not immediately profitable.
Now it is true, this might be considered a bit of a naive approach. There are constraints in academia too. Often one is hired to work on a project. And also often, one has to think about his career. I remember a great discussion with an inspiring person from our community who was saying: “I can’t let my students risk their career. They have to publish, and make sure that they are building a name in the community and investing in their future.” And this is true, in the measure in which each of these people wants a career in academia. And in the measure in which the career is guaranteed by working alongside with the other researchers on the same problems.
And maybe, when one is a PhD student he can’t have too many projects on which he would be working. In fact, that is the great thing about being a PhD students: working on one project, and having the chance to focus.
On the other hand, when one is a bit more senior, it would be good that he distributes his efforts in in some safe projects but also invests time in some more courageous projects, some projects that might fail, but which when they succeed, would have a really great impact.
So ask yourself, what’s your brave, courageous, innovative project. And next time you see me, ask me the same question :)
0 notes
Text
Book Review: Tell My Sons

Lt. col. Weber has terminal cancer, and he decides to write a book for his children. He talks with candor about his life, his cancer, his ambition, and his philosophy of conduct in life. It is a story of resilience in the face of difficulties, which Weber thinks should not be avoided, but rather faced, and if possible with humor. The images in the book will remain with one for quite some time, particularly the frankensteinish open wound, persistent after surgery, with which the man tries to live a normal life, in a display of grit hardly seen before in non-fiction.
We all like stories, and most of them are along the same old structure: hero faces hardships, but perseveres, and maybe with the help of some allies, eventually wins, and in the process develops. And the first part of Weber's life as glimpsed through the reports in the book might look like that. But the focus of the book is on the continuation of that story: hero is surely about to go down, and the only thing that he can do is to go down with dignity. Just like the quartet in the Titanic movie who play while the ship is sinking.
The story forced me to look again at my life, with a newfound appreciation. Life is a miracle that we are all given and we should cherish while it lasts ... because miracles don't last forever.
1 note
·
View note