27 September 2011

Trackers and DHT, Torrents and Hashes Trees

I have been spending quite some time reading on P2P file transfers and networks such as BitTorrent so that I can better understand the technology and engineering details on the backend. One of the aspects I am interested on is on how to use magnet links and have torrentless file transfers.

It is interesting to notice that this change from the original bit torrent design to a trackerless and torrentless one conforms to a paradigm change from a distributing tool to a distributed content network.

11 September 2011

Decentralized Topology

In a generic way, browser is a term for an interface that allows navigation of objects [1]. Nonetheless, for the topic pursued on this post, the specific notion of browser is uninteresting: new browsers/interfaces can be implemented at any time but the inherent topology of the space transversed by them is fixed and defined by the space itself.

In case of the Web, the navigation topology is defined by the use of anchors and links. Those elements allow a page to reference it's neighbours and enforce a model of local authority where a page controls to where it links to. Problems show up as the inability or hard-time implementing back-links, collaborative information and social web. Additionally, certain content types do not allow links on it own, creating a web of pages rather than a web of contents.

07 September 2011

30 Days Quests

For some time I got the feeling I want to organize my life in terms of challenges or projects and improve the number of completed ones. Let those tasks be physical activities or highly advanced computer science projects that get dropped easily after drawing a solution in my mind.

I saw then the Matt Cutts' talk on doing something new every 30 days and felt that would be a great start for me. Conforming that moves along I will re-iterate on the process and start planning longer-term and far-fetch objectives.

05 September 2011

Controlling Flow: Call with Current Continuation

It is my belief that programming concepts one is able to understand and master truly distinguish a coder ability to think and design beautiful code. Learning those concepts is essential for becoming a better programmer. [I will refrain from defining "better programmer".]

Starting easily, do you remember when you tried to understand pointers for the first time? Or when you first heard about object oriented programming? Or all those fancy paradigms or data structures? It's not like you need to use them, but understanding them probably increases your awareness of how things can be done.

Also you can always survive without them, but having those tools readily available on a language allow you to focus on the implementation problem without needing to care on specific rules (e.g. Many people do OOP in pure C and many implement iterators in C++ though there is a clear lack of support for it).

I recently came with a new concept I was not aware of: a new way to control and understand the flow of computation. Well controlling flow can be done with several techniques - there is conditionals and loops for all flavours, there is exceptions and there is generators, there is callbacks, there is message oriented programming style, etc... - and there is continuations!

01 September 2011

Hello World,

It is important to note that this blog has just been called into existence and it is an innocent and young concept that had very little time to come in terms with its identity. Nonetheless this is what the author thought at the time of creation:

Through life, one comes across several paths and decisions. Some are easily justified and some feel natural and in an unexplainable way agree with one's question to Life, Universe and Everything. But other decisions do not feel natural and are not easily justified: starting a blog was one of those for me.