Friday, December 30, 2011

A bunch of nothingness

I stared at a cuckoo clock that went off every half hour. One cuckoo for one half hour, two cuckoos for a full hour. I couldn't take my eyes off of it. Second by second, minute by minute. In the background I could hear a river -- or was it the wind? Light was slowly fading away into the evening. I stared at a wall where the clock was hung, and nothing changed much except the clock's surroundings. I didn't mind staring at the clock, in fact it was fascinating, I could focus on nothing. After about three or four cuckoos I started sipping tea slowly. The second time I poured tea I forgot to add sugar, that second time the tea tasted a lot better, a little more of nothing.

Time went by really slow, magically darkening the living room to the point we forgot it was completely dark. I hesitated every time anything came into my mind, and cringed when anything dared to disrupt this moment. The only thing lingering in the back of my head was a possible phone call but no one called yet. A sort of ring rang, but I ignored it, the ring was so faint it must not have been important and if it was a call I didn't care. Three or four more cuckoos and I realized soon I should do nothing but listen more carefully to a ringer, I had to zone back up.

After two cuckoos I realized the mug I was holding was branded as having been purchased in Jamaica with sand on the bottom and a nice ocean in the background. It had two coconut trees on it. It then dawned on me mug holder was actually a tree itself. I explained this out loud, it seems this was the first time this was ever pointed out and discovered. I was a pioneer.

From Dec 30, 2011
My alarm went, off, it was time to go. It was my cousin calling, she came to pick me up while I was visiting my grandmother in Costa Rica. I know deep down I'll treasure this moment, I was able to focus on nothing very clearly, and I did it while in my home country on vacation. Its sounds easier than it does, but its not -- I encourage others to try a bunch of nothing for a while.

This blog post is heavily inspired by Sujith's Ruminations

Monday, December 05, 2011

The bufferbloat alarms go off... again

The bullhorn poet speaks to the horizon.
At this point if you have not heard of bufferbloat and you work for a silicon company making networking hardware then it should explain why Jim Gettys and Kathleen Nichols have published an ACM paper on bufferbloat. I was only finally convinced on bufferbloat after the elaborate track on bufferbloat the Linux Plumbers conference in Santa Rosa, 2011. Let me make this crystal clear. Bufferbloat is not a "Linux issue", it affects all Operating Systems.

At this point the central development front for fixing bufferbloat (and modernizing other things) is on CeroWrt. Despite it being based on OpenWrt and this being a Linux distribution designed originally for 802.11 Access Points I want to make sure people are aware that not only is bufferbloat a complex problem as illustrated on the ACM paper but with regards to wireless we are entering uncharted territory and the issues are made even more complex with it. For example one mitigation factor is Byte Queue Limits (BQL patches are now merged upstream on the Linux development trees) but this does in no way consider 802.11's Point to MultiPoint possible topologies and how an Access Point may need to adjust its own, not only queue size, but also rate used to transmit frames. Consider also aggregation and how big your aggregates are and should be... Its not an easy problem to solve. One paper out there that did touch on 802.11 is Tianji Li's paper and one algorithm described there is eBDP. John Linville has implemented support for eBDP for on mac80211 but currently its design requires a bit more work to get upstream. John has noted that eBDP does follow some philosophical similarities to the minstrel rate control algorithm. The issues are so complex that I would expect no other philosophical approach to the problem. In a way, the minstrel philosophy parallels similar solutions to complex problems as illustrated by Tim Harford in his TED talk about the "God complex". I should note though that eBDP does not address aggregation though. There is a lot of room for improvement and research.

If you are still not convinced about bufferbloat I invite you to read my previous blog post about my own metrics. In short run Netalyzer while uploading (bittorrent, rsynch, scp) and look for the "Network buffer measurements" section. I encourage you to also run the test without uploading anything, at least for me I also get terrible results. If you are like me and share your 802.11 network with your neighbors or family you likely will have someone uploading something at any point in time, even if its small. Forget about a corporate environment where the 802.11 network is shared among many coworkers. This is also why I never use a coffee shop's 802.11 network even if its free, I get better performance over my cell phone's 4G and even 3G network, running my phone as a hotspot, than a shared 802.11 network at a coffee shop as my link is dedicated. If my phone had 5 GHz support I suspect I'd get even better results given that current phones only ship with 2.4 GHz 802.11 devices.

Saturday, November 19, 2011

Homeless person says good morning

Sincerely happy

Today a homeless person told me "good morning" instead of asking for a quarter or food as typically happens. I was so pleased with the attitude I wanted to just give them money. In the end I was too lazy to fumble for money in my pocket for them as I was with my dog. The fact that I was told good morning though, and that I was very pleased with this, made me think - "WTF just happened, this made no sense... why was this fucker telling me good morning? Why was I pleased with the pleasant attitude on stating it was a good morning through a cheery greet although I knew that fucker was likely miserably poor, maybe banana shit crazy, without a bath for days, wandering the streets and hungry? And for fuck's sake, how could I have been so lazy to not give this fucker some money even if they were really pleasant?". WTF!

Hard light

These questions set in motion a slew of philisophical thoughts that towards the end of the day made me even question the most basic daily activities we follow without much thought. I could elaborate on that but I think its perhaps a better exercise for anyone reading this to consider these questions themselves.

Saturday, September 24, 2011

Comcast bufferbloat in San Francisco

My ISP, Comcast, is sucking big red hairy balls today in San Francisco. Bufferbloat issues to the max. Here are my netalyzr results of relevance. Is your ISP sucking as bad as mine? Try out netalyzr yourself. Let me know what you get for this metric. I will note that ITU-T G.114 recommends a maximum of a 150 ms and that > 400 ms is completely unacceptable. If you get worse results then expect VoIP to suck. Not only is my uplink sucking though but also my downlink!

I am also not downloading anything except just streaming Pandora 24x7 here, and I pay for this service. Because of this, this issue is more severe as capacity seems to be throttled by something else, and I can only blame Comcast right now for that. Curious what others see. Would be nice if we had graphs of this by regions. I'd like to thank Jim Gettys for educating people on this severe issue, Bufferbloat.

Network buffer measurements (?): Uplink 1000 ms, Downlink 610 ms

We estimate your uplink as having 1000 msec of buffering. This is quite high, and you may experience substantial disruption to your network performance when performing interactive tasks such as web-surfing while simultaneously conducting large uploads. With such a buffer, real-time applications such as games or audio chat can work quite poorly when conducting large uploads at the same time.

We estimate your downlink as having 610 msec of buffering. This level can in some situations prove somewhat high, and you may experience degraded performance when performing interactive tasks such as web-surfing while simultaneously conducting large downloads. Real-time applications, such as games or audio chat, may also work poorly when conducting large downloads at the same time.

The Leader of the . . . Bloat (Song following)

Wednesday, September 14, 2011

Educational issues with polynomiography

Charles Darwin

Today I heard the news of Intel promoting open research in Universities. In short, Intel is requiring Universities that receive funding from them for specific research to not only open source the software they come up with, but also to promote open research by prohibiting the universities on staking claims on patents. This is priceless, I applaud Intel for this, its an evolutionary step in research and I hope it proves pivotal and others will follow.

774 - Neuron Connection - Pattern

This news bit triggered some synapses in my brain and brought back memories of an unpleasant experience while studying at my University, Rutgers, which I'd like to finally document and rant about publicly.

Rutgers University 2010 毕业典礼
While studying Computer Science at Rutgers University (Class 2003) I realized I really enjoyed mathematics. I liked math so much I had even decided to co-found the University's math club during my time there. Even though the Bachelor of Science undergraduate degree only required up to Calculus II (integral calculus) as a requirement, I decided to take a few extra math courses -- just for fun. One of them was Calculus III (multivariable calculus), another was new shiny course on Polynomiography. Its my experience with Polynomiography while at Rutgers which I'd like to document.

Eight is Enough
Polynomiography is a coin termed by Dr. Bahman Kalantari, it deals with a method of visualizing polynomials. It does this by using algorithms to find the roots of the polynomial and colorizing the complex plane based on tendencies of coordinates on the plane to being close to one root or another. If you don't get this description do not worry, even for me its all fuzzy at this point, but understand its a neat way to make art out of math. The course was fun, and the idea was surely innovative. This course set itself apart from other math courses in that in the end of the course you can write software using the materials learned as part of your final class project. Since I was starting to become passionate about software development then I was really excited about the course.

Debian GNU/linux
There is one thing that set me apart from my classmates and gives this short story a twist, apart from mathematics I was also passionately into Free and Open Source Software, for both the philosophical aspects of it, and the technical merits of it. Its to the extent I also co-founded the Rutgers University Student Linux Users' Group to help find other locals interested in talking about and geeking out about FOSS. Because of my involvements with both passions and my new course I decided I was going to release the software I come up with as free software under the GPLv2. Neat, right?

One technical aspect about polynomiography which made it even more interesting for me was that it dealt with complex math. As it turned out the programming language I chose to write the software in, C, only recently had gotten complex math added to it, via the ISO/IEC 9899:199 standard, referred to as C99. At that time there wasn't much code out that used complex math in C, let alone Graphical User Interface applications using complex math, and the landscape was even worse for FOSS software using complex math. As I envisioned it, my software would enable a lot of users be able to learn from programming with complex numbers in C, but also educate folks on Polynomiography and on graphical user interface development. I was stoked!

I remember the day I presented my final project. The Teaching Assistant (TA) of the course present. Everything went well until I mentioned my intent on releasing the software as free and open under the GPLv2 license. My professor's eyes opened widely, eyebrows to the top, he spilled his coffee on the floor while staring at me, and immediately told me I could not release the software. I was shocked! I believe the TA was just as shocked. Ackward moment.

Legal research
I decided to reach out to Rutgers legal team and talk bout this. If you have never visited your University's legal department, specially the one that deals with Intellectual Property I encourage you to do so. Fancy. I have carried around for years the business card of the person who I met with but for the life of me I cannot find it right now. It was explained I could not release the software, that they could try to talk to Dr. Kalantari but that he had a firm position on this. I had been holding the attorney's business card because I meant to eventually try to fight this but I never had enough time.

And now comes the rant part.

niña mala
Almost 10 years have gone by now and Patent 6,894,705 sits protected, assigned to my alma mater, Rutgers, The State University of New Jersey, and I never was able to release software for a course I took at Rutgers. Dear Rutgers, for what purpose do you hold this position? Why do you offer a course if I cannot even write free software with the stuff you taught me? Are you fucking kidding me? What the fuck! What kind of shit is this? Fuck you. To future students: ask and do not tolerate this shit, go beyond where I got -- take this to the top. This is unacceptable for educational institutions.

Glad I let that out... For those curious, I did manage to pass though, with a B+.

happiness is a warm gun.