Jump to content
Search In
  • More options...
Find results that contain...
Find results in...


  • Content Count

  • Joined

  • Last visited



About MikeD

  • Title
    Junior Member
  • Birthday Oct 06, 1991

Profile Information

  • Location
    Lisbon, Portugal
  • Gender
  • Interests
    Programming, cats and TV shows!
  • Biography
    I was born. I found a button. I pushed it. I fell in love with buttons. I found a computer. I used it. I fell in love with computers. I went to school. And then a different one. And then high school. I had a computer class. I fell even more in love with computers. I found out Computer Science and Engineering was a degree. I enrolled. I got in to university. I found out about programming and algorithms. I fell in love with programming and algorithms. I found out about threads. I fell in love with threads. I found out about mutexes, semaphores and locks. I hated them. I found out about distributed systems. I fell in love with distributed systems. I found out about Software Transactional Memory. I fell in love with it. I also found out about Thread-Level Speculation. I found it intriguing and exiting. Thus, I am on the 2nd year of a masters degree in Computer Science and Engineering majoring in Distributed Systems with a minor in Software Engineering and currently working on my thesis on Thread-Level Speculation systems that use virtual memory mechanisms to achieve low read overheads.
  • Occupation


  • CPU
    Intel i7-3770K
  • Motherboard
    Asus Sabertooth Z77
  • RAM
    16GB Corsair Vengeance 1600MHz
  • GPU
    Asus Nvidia GTX 680 DCII
  • Case
    Corsair Vengeance C70 Green
  • Storage
    Samsung 840 Pro 120GB SSD, Seagate Barracuda 1TB HDD
  • PSU
    Corsair AX860i
  • Display(s)
    Asus PB238
  • Cooling
    Corsair H100i
  • Keyboard
    Razer Blackwidow 2013
  • Mouse
    Razer DeathAdder 2013
  • Operating System
    Arch Linux

Recent Profile Visitors

1,229 profile views
  1. I looked at the picture and, even before reading anything, immediately thought "Artificial Intelligence". And sure enough that is the exact picture that appears on the book we used in that class! When I have the time I'll study that again and give the problem a go.
  2. Boas! Well, then, I look forward to solving it (after submitting a few incorrect answers and spending hours figuring out why)! Until the last problem I thought the test cases were provided by the MIUP judges after the competition. How do you come up with them? Is it random or do you spend some time designing tests for the corner cases? Yeah, I once tried to set up mooshak (a few years ago, out of curiosity since some of my classes used that for project submission) but I ended up just looking at some of the files because it was too bothersome to set up apache! But it shouldn't be hard to
  3. How's everything going? Do you have an estimate on when the new gateway or the next problems will be up? I mean, you made it through summer, don't die on us now!! By the way, since many people occasionally make mistakes when entering the results into the website perhaps you could move to something like mooshak for automatic evaluation (if that's not what you are already looking at)? When I read "learning problems" I immediately thought developing applications or games as if it was a project for a class (kinda like starting by defining data types, develop logic for each aspect of the app
  4. Yeah, ever since I changed my default language from Java to Python I've been spoiled in some ways! (arg[len(arg)-1] is so much better!)
  5. 1) Instead of arg.toLowerCase() == "whatever" do arg.toLowerCase().equals("whatever") otherwise there may be errors since == will compare references and not the actual content. Sometimes it works because it assigns the same object to the same string literals but not necessarily ( http://stackoverflow.com/a/513839 2) switch(arg.length() - 1) will search the cases for a number, not a character, you probably want something like switch(arg[arg.length() - 1]) (something like that)
  6. Decision Support Systems is, as many other fields in computer science, something that you learn in a semester long class and "that's just the basis" according to the teacher! In fact, we focused our studies in data-driven DSS. Keeping that in mind the summary that I can give you right now is: "A DSS is a management-level computational system that combines data, analytic tools and models to support making semi-structured or non structured decisions." A non structured problem is a new and unusual problem for which no algorithmic solution is known. (Taken from my teacher's book) First, y
  7. Actually, you'd be surprised with the level of thought that went into languages that see everything as lists. Just to (try) to entice you: a program in Scheme is... guess what? A list! Have you ever written a function that changed it's own behavior in runtime?! I have, in Scheme (it's called Racket now, whatever). And it was awesome! And other implementations such as common lisp allow you to change the meta-protocols that control how functions and structures behave (change what happens when you call a method in an object or use a struct as an operator). Furthermore, even without diving
  8. Would you believe that I learned the basics about lambda calculus in a Natural Language class (Comp. Sci. master's degree)?! It is used to calculate the semantic of a sentence by attaching semantic rules to a context-free grammar. I wouldn't recommend starting with that article, though. There are a lot of concepts missing and the rules are not explicitly defined on how to perform beta-reduction or substitution. I did learn what a Y Combinator is and how recursion is formally represented (plus the if-else structures after some research on Wikipedia!).
  9. The Analysis and Synthesis of Algorithms classes in (at least) the two best Information Systems and Computer Engineering degrees taught in Portugal use the book by CLRS. Which obviously means I only read like a few pages of it and the rest was taught in class! I haven't seen the other one so I can't compare. What I can say is that the CLRS one helped me for the exams in the parts that I had most difficulty with (theory wise; I can't comment on the exercises because I used the ones we solved in problems classes but I think most of them were the same). I might actually have to read it aga
  10. It's not the only method but would you trust on someone else's code for a space shuttle or would you rather spend more money and resources developing something mathematically proven yourself? When I said command line what I meant was it's not some super futuristic heads-up display like in the movies or videogames! It's also not as simple (or literal) as command line! Imagine having to type "dbus-send --print-reply=literal --system --reply-timeout=500 --dest=org.iss.transport.Soyuz /org/iss/transport org.sovietspaceprogram.Soyuz.DBus.Actions.CloseHatch int16:1 > /dev/null" (completely ma
  11. Social networks (note that when I'm talking about these I actually mean any kind of service provided by a distributed system) also have to deal with reliability: if a server fails you have to use complex voting algorithms to correctly return some result, especially if you're dealing with byzantine fault tolerance (as opposed to silent fault toleration; (anyone who doesn't know what this is) google it to learn more!) or to elect the new primary server depending on who has the most recent copies of the data, etc. Who needs more reliability: a web service (social network or file collaboration sys
  12. What I meant was you don't need to upload pictures to facebook from a fighter jet. It's not mission critical. Yes, I am considering those factors. You don't need the same amount of security code in a fighter than on facebook (things like two-step authentication or privacy settings). It's not like a fighter is connected to the local cafe's wireless and you need to cipher you login info. Besides, most of those things will be implemented in specialized hardware (since most security algorithms are proprietary and secret and such operations need to be extremely fast). Which leads me to another qu
  13. Why not just using an array whose elements contain a method that carries out the desired operation? That way you can always add more and can get the number of elements in the array. As an added bonus you no longer need to change the original method.
  14. I don't understand why you all think an F-35 or even a space shuttle should have more lines of code than facebook or any other website. In an aircraft or any other mission critical equipment where lives may be in danger (e.g. medical devices) you want a real-time system with extremely efficient code and no clutter. Just the bare minimum to perform the required tasks with extremely high precision. And you need to mathematically prove the correctness of most, if not all, algorithms if you want to send a space shuttle to outer space without it exploding mid-air because some value was losing p
  15. I know there are lots of Youtubers using ads alone. Like I said, I don't think they should (more on that later). I believe someone else on this thread already said this: TV and radio have it figured out because there's no way (I think) of knowing if people actually watched the ad or not so these companies always get payed (depending on the share during that time period I suppose). YouTube (and the rest of the internet) is risky because you know exactly how many saw and/or clicked it. Which doesn't legitimize, in my opinion, ads as a source of revenue (ads at all). Forgive me (and point it ou