Last year, when I was a newbie coder (I still am, but for now, let’s just say relatively), I tried to get into a hackathon (conducted by “savethehacker“), and I screwed it up. Looking back at those days, I feel like I was quite stupid back then. I had no idea about app-development. Despite of that, I tried climbing something big, without even knowing that I’m gonna fall sometime soon. And, I did. I wasn’t selected. I got a reply after the deadline, that my app couldn’t compete with those 30 teams that got selected.
Hackathon is idea-centric!
Honestly, getting an idea and describing it to the organizers is the most difficult part. Because, that’s what’s gonna get you inside any hackathon! (and yeah, it applies to all hackathons). The organizers should feel confident about you, that your app is worthy to get part in their hackathon. This, I figured out later that year. So, idea matters! Once you get it, you’re only a few days away from winning. And, if you don’t win, it’s certain that you screwed up somewhere. Now, getting back to my story…
One fine day, during my semester exams (last month), I got an invitation mail from the same fellas, saying that they’ve come back with a much larger hackathon this time, where up to a 100 teams have the chance to get selected. I gotta do something, right? The problem is that I’m quite slow. I don’t get an idea whenever I needed one. I just think of the situation once, and it pops sometime later (sometimes, even after a few days, but it definitely pops!). So, I “not getting an idea” was an obsession for a while.
Whenever I encounter a problem that interests me, I get some kinda obsession to solve it. Happens all the time! And this time, it was in a course on “Cryptography” (in Coursera). Well, it’s been an year since I pursued online courses, because I’m simply more occupied by my own works, and I also got bored of those submissions, deadlines, quizzes, etc.
Even though they expect people to solve the problem in C/C++, I (being a Pythonist) decided to get it done with Python! The Vigenère cipher is nothing but a major update to the Caesar cipher. I presume you already know about the Caesar cipher has a keyspace of “1” – just a number to say how much to shift all the characters (so, anyone with a pen & paper can crack it, as it contains only 26 possibilities), but Vigenère extended it, giving additional security.
I’m involved in Mozilla for a few days now. So, I’m just gonna talk about my experience today…
How did it start?
I remembered Manish’s advertising about Mozilla sometime ago (well, if you’re also planning to get involved, then I suggest his post, which nails down the whole thing precisely, because this is just my experience with the community). When I had a chat with him, he said these exact words, “Mozilla is the most welcoming community I’ve ever seen!”. So, I joined Mozilla, by which I mean I signed up for Bugzilla & Mozillians which are pretty much enough for the start. I later realized that the former is for actually doing stuff, while the latter is for showing it off!
Yesterday, I got to see a nice photograph of the (controversial) ball lightning. So, I immediately liked the photograph and felt like I should download it. Well, it’s not directly downloadable, especially when the author has asked flickr to disable the option for his/her download.
In flickr, in order to protect the image content, they put a wrapper around the images which shields the image from your easy <dragging-to-desktop> action. Right-click options won’t recognize the image because you’re not on the image! You can think of it like this, whenever you try to “interact” with the image, you’re always a few layers above the image itself, that your browser can’t detect it! (in this way)
But, there’s always a workaround. Before that, let me tell you something. There’s simply no difference between browsing & downloading in the internet (technically). Because, whenever you view something (say, this photograph), you’re already seeing the downloaded copy of the file. This is done by your browser. That’s why it needs the cache. If you can see something, then you can download it. No one could stop you from downloading it because, in order to view it, you have to download it!
Okay, now back to the topic…
I feel kinda unlucky over the past two months. Diluted dialup, relocation, exams, I was constrained. Well, that explains why I wasn’t active for a while. Even after this disaster, this “brain” just can’t give up screwing the computer.
I assaulted Python in those days. I was coding. If you haven’t got into Python, trust me. You should get started. It’s a stunning pseudocode-like high level language. That means, you can take any Python code, and start reading. It’s that easy! On the other hand, it’s powerful. It can do a great deal of things that goes beyond storytelling…
Okay, the subject I got interested in lately, was encryption. In the gigantic universe of computing, there’s a galaxy called cryptography. What the species lying there do, is what we’re going to talk about today.
What if I tell you that encryption lies all around us geeks? What if it’s been protecting your money, reputation, status in this computing universe all the time? From money transfers to online payments, from GMail to Facebook, from the boring WiFi routers in your college, to NSA’s top-level secret information, everything uses encryption!!!
2013 has gone just like that. So, I thought I could post something before it leaves us forever. I’ve chosen “Brainfuck” for our today’s discussion. This language is something I’ve always wanted to write in my blog…
It’s an esoteric programming language, and if you have some idea on programming, it’s probably the easiest one I’ve ever seen. Because, it’s got only eight commands < > + – , . [ ]. As it’s esoteric in nature, it can’t be used for our regular programming purposes. But, it can always be used to convey some information like, output a simple “Hello world!” program, or say, throw Fibonacci numbers.
And, I meant “easiest” in the sense, that it’s the easiest to write. If you take understanding the program into account, life is really tough. Because, a brainfuck code is very difficult to visualize, being constructed entirely with eight symbols (and visualized only by using ASCII character encoding).
If you’re really addicted to the Internet, you should’ve definitely used torrents (especially BitTorrent). Let’s jump into it. Wait, Wait… I don’t wanna explain the whole thing, and I won’t..!!! That’s not really the point of my blog posts. What I really wanna do, is make things much simpler (just following the “Occam’s Razor“, like I’ve told you before) so that even a layman can understand (that’s our motto).
Wherever you go around and search for the magical mystery behind this “thing”, you’ll come across the introductory definition, that BitTorrent is a peer-to-peer (P2P) file-sharing protocol. Say what, the project site itself is a good place to start, as people say. µTorrent, BitTorrent, etc. are a few examples of the clients that use this BitTorrent protocol (precisely, it’ the software you use). Next stop, File sharing…
To help us analogy-fy, let’s introduce the characters in play Amy, Bob, John & Robert. Now, let’s say that Amy has a chocolate. Not quite… We’re discussing tech stuff. So, let’s smooth out this discussion by using upload, download and transfer rates. I can’t give up chocolates, and so I’ll include both. Amy has a file which the other people like to download. She can also have chocolates for my desire.