On: Apple TV Generation 4

I’ve been fortunate to have been offered an development kit for the Apple TV Gen 4 and have been using one for the past month

The Remote is a Lightning cable, and the box does come with a long Lightning cable, however the Apple TV is a USB-C device, which is kinda odd, giving that it would made more sense to use just lightning since tvOS is just a slim down version of iOS. Maybe this is a stealth plan from apple to prepare everyone to USB-C on an iPhone. Anyway,I was forced to buy a 20€ cable to connect the box into my computer, so I could write apps and reset my Apple TV (a necessary step to upgrade the Apple TV to upgrade to the public version of tvOS and access the App Store).

Writing apps is just like writing apps for iOS but I did find some problems migrating touch code into Apple TV, since you don’t have a multi touch device. In terms of an set top box, is quite nice. Netflix and Plex work great, and apps do make sense when using on a tv. However is the small things that make some tasks on Apple TV annoying. For instance, you have to to enter you password into every service, and you have to use an on screen keyboard that works worse than my Samsung TV one (e.g. you can’t scroll letters past right to loop around to the left most item) but you have the option to set up the TV by touching an iOS device. The remote is undoubtedly a flawed design. You can’t figure on the dark in what orientation is in your hand. If you touch the remote while using another input, the Apple TV will wake up and switch your TV input to it. Games are required to being playable using only the command, however the remote has only two buttons and the touch pad available to apps, making playing games ranging for weird to plain unusable. Siri on your remote may be the answer to a smart TV, but is not available in Portugal, nor you have the chance to use the US version.

Clearly there is potential here (notifications, multiple panels within a video feed), but this is the iPhone 1 of Apple TV.

CL21 and thoughts on a modern lisp

I’m a great lisp lover, and for years I’ve been thinking about updating common lisp into a more modern idiom. Today, I’ve just saw that someone was working on CL21, a Common Lisp for the 21th century. Here are the things I wish I had.

    • Fluent Data Structures – This is something that I love from Python, JavaScript, or any other script language. You can declare a dictionary or an array as : a = { "elements" : ["one", "two", "three"] } I can’t tell you the number of times this time of syntax allowed me to prototype something. Also, I would like to have slices and comprehensions.
    • String manipulation – This is a big one. When lisp was created, the focus was symbolic programming. Today most of my day is occupied doing some kind of  string manipulation, being JSON or some CSV. String manipulation in Lisp is ridiculous. What in python is done by: a = "foo" + "bar" Is done in lisp by: (setq a (string-concatenation "foo" "bar))
    • The 90’s – This is a simple but hard one. File I/O API that doesn’t feel it was stuck on dot matrix printers times. A standard thread API. A standard HTTP library. Etc..
    • Better package management – I still prefer the namespace method of C++, instead of the package model of Java. But at least something better.
    • Cased programming – Yeah, we now have better character-encoding schemes, can we use Lower and Upper characters?

More than this, what I wish lisp gave me is the simplicity and pleasure I get when using python to do some task. I still do this day can use lisp as a go to language, because all of these small inefficiencies remove me the focus on solving the actual problem.


Somehow, I’ve went somewhere.

It felt like the bottom of a well. I don’t know how I got there, I just did. I could see the sky, the clouds and stars, at the top. I could even see the light from bon fires, and the shadows of people going by. At first I hoped that someone would pull me out of there. It was for me logical thing to do, someone would have to miss me. And so I waited floating on that shallow dark water for some salvation. Days passed. Hope turned into hopelessness. And I got angry, like it was the Universe duty to get me out of that well, and it wasn’t doing its job. I kept waiting for help that never came. Anger turned into anguish, life turned darker. If the Universe wasn’t taking me out of that well, maybe that was what existence was supposed to be, a shallow dark well devoid of warmth. Yet I kept waiting for that golden rope, that would take me out of that well instantly. Little by little the well became something that was. Life was defined, and by limited the perimeter of that well. And the rope became just something mythical, that if attained it would put me where I was supposed to be.

Then, one day I remembered that I could stand. It was just well after all. Another day I felt the well walls. Maybe I could climb them. I tried, and fell back dozens of times, trying all sorts of paths. With each try the same hope for the rope salvation kept coming. But with each try, the angriness, the anguish and the hopelessness faded. After a while, nothing else matter, only climbing the well. There was no motivation, no epiphanies, just climbing. Fuck ropes, fuck the universe, fuck everything else. Getting out was the only objective. And just as I was climbing, well walls started changing, like a gradient.

The well never had a top. Its all continuous, so it never existed a place to anchor that rope. And for all that matter, there was no rope. It never was. Unwillingly I got myself into that well, and only I could get out of it. The only tragedy is that there are no life lessons, no prize, no glorious outcome. It just is and continues to be.

On: The engineer manager

Engineers are amazing tools of society. In a puristic world an engineer essentially offer solutions for real problems. But realistically speaking engineers are masters at consensus.

One of my engineering school teachers use to say that “There aren’t really solutions, only compromises.”. For most of my professional life this has has been true. Getting information systems that actually benefit people and societies comes down to compromises, getting the common done, the most agreeable agreed. People aren’t available to chasms of change, and sometimes improving 5% can have huge beneficial improvements

Because engineers need to be managed, as every single person of society, they tend to see this task as a annoyance, or a problem needing to be fixed. It is quite trendy today to say that to say that engineers are great managers. I have a dissenting opinion.

Management does needs fixing. I, has a engineer, have zero patience for things like casual Fridays or team building exercises. I do recognize that teams (even in the army) come out of effort and respect, not from silly activities. I wish I could end this silly activities.

Engineers tend to see management as a problem. The types is activities I’ve mentioned are common because they have effective results. Statistically speaking, if you do these activities in large sets of people they tend to have x% of effect.

I’ve been purview to a lot of engineers middle to upper management. My observations tend to conclude that engineers take the same approach on management that they take on problem solving. They don’t see management actions as definitive but more as compromises. E.g.: We do X now because all stakeholders agree this is the best option.

The problem is that management doesn’t work the same way. The reasoning behind management is more akin to military thinking. Sometimes you do Y now, screwing A, B and C, because you know that in the long run your are getting what you want. Even if this is suicidal. This is different from Cost/Benefit analysis. You don’t always get value for your actions, not even in a predictable future.

Aereo wouldn’t exist in a pure engineering approach to management. It is a stop gap solution to a problem, that has zero diversification chances, and clearly was created to open a breach in the Network control of media on the Supreme Court. This company makes zero sense on the short or long run. However, everyone can see the potential of positive verdict from the SC.

There are more examples as this. See the Apple vs Samsung approach of getting shit done. Apple, doesn’t give you what you want. It gives you what it thinks you may find enjoyable and it finds is best for Apple. Samsung tends to reach a compromise, giving everything that everyone may want, or get attracted to.

More examples, Eric Schmidt vs Larry page. Eric had a engineering approach to problems. It did lots of concurrent products, lacked focus and tried to get everyone on board (vide Android). His management style never seemed defiant, always consensual. Larry’s inheritance is a fragmented company (android and chrome), a bunch of useless products, and lacking core products for the next decade (E.g. Google Plus or if you will, an identity product).

Management, for better or worse is a different beast of engineering. And the same way you can’t ask a bean counter to do your job, an engineer cannot expect to have the same tool set than a manager. Your reasoning is biased to think in another way. There are counterexamples of course. But asymptotically both approaches are clearly incompatible.

On: Twitter


I’ve finished “hatching twitter” last night. Is a well written book about the history of twitter. I feel however that the only person to come out of it as a decent human being was Biz. Noah, that everyone touts as being screwed out of  twitter when it was founded, comes out as being unable to cope the pressures of starting a company. Ev as a entrepreneur who can’t make decisions or to have a concise vision for the company, and getting friends a job.

However the person that I think it hurts the most is Jack Dorsey. By the end of the book although he is shown as coming on top, having returned to twitter, having bought as $12M dollar house but without any friends.

Given recent news, both the companies seen as the proof of Jack being heir apparent to Steve jobs are in trouble. And that doesn’t work well for Jack.

First, Square is imploding, searching for a buyer. Given that is a payment company, it doesn’t play to his favor that one of the reasons he was ejected from CEO was his miss handling of twitter finances, according to the book.

Second, Twitter is going through tough times. Low revenue, sign ups down, and their price on the stock market taking a dive, Twitter is going through another rough patch.

The main problem with twitter is and always was the definition of what was twitter. The reason of why they can’t find find revenue or the right focus for the company is the inability to accurately explain actually is twitter. In fact the best description of twitter I’ve heard is “the web nervous system”.

I think twitter is by far different things for different people. for politicians and companies is a way to promote their message. For me is a way to have a low resolution insight to the life’s of people I care, while not feeling completely alone on earth. It can be other things, like self promotion, a pulpit or a theater stage.

What I think twitter should do (and this is me, a person who never founded shit or managed squat) is to focus on the third parties. One of the genius things that Facebook have done is to create a healthy platform where others can live. Twitter should be a intermediary between their network and the huge pool of apps that want to look to their network. Open up the fire hose, allow third parties to attach metadata to tweets or accounts. Focus of what little meaning you can extract from a tweet.

Make people pay for this access, and forget about advertising. Advertising is almost impossible to make it work on twitter. Either I’m following a company or you are forcing me to watch to crap their spew. This may work on Facebook with images and videos. But on Twitter is way too low res for this to work. On my android every “sponsored tweet” comes with a yellow mark that makes me think “fuck off”. I know that Gazprom Football promoted a tweet last week, but I cant remember shit about it. However I do remember on some Facebook ads, as shitty as they were.

Twitter is trying to fight mills that it can’t conquer, and my fear is that it may collapse.

The problem is that twitter isn’t a null value object. It has a intrinsic value. But if the walls come tumbling down on it self, it will be hard to prevent it from going to a sleazy ad network or something like that. Google would eat it up whole, Facebook doesn’t care. Maybe Microsoft or even worse yahoo. Either way would be a former shell of it self. And I guarantee that it will never be another Arab spring if things go under.

in On | 635 Words

Geocitify the web

Ever wanted to back to the good old days when you opened a web page and an X-Files MIDI file started playing? When the entire web was “Under-Construction”? add this:

javascript:(function(){ var el = document.createElement("link"); el.setAttribute("href", "http://divshot.github.io/geo-bootstrap/swatch/bootstrap.min.css"); el.setAttribute("rel","stylesheet"); document.getElementsByTagName("head")[0].appendChild(el); }());

into your bookmark bar and you can turn every bootstrap site into a geocities page.

From this: Into this: Screen Shot 2013-04-10 at 6.52.23 PM

Emacs got sentient

I started using emacs when I got into colege, around 2003. Emacs, at that time, was this weird program that once I got in I couldn’t get out (hadn’t learned to do C-x C-c yet). Over the course of next 10 years we have grown to know one anther. With each project I’ve changed my emacs to its particular needs and learned its shortcuts to improve my efficiency. After nearly 10 years both me and it got accustomed to one another.

However after 10 years things aren’t perfect. For instance, my emacs caugt some kind of Alzheimer when working with either HTML or XML, reverting always to sgml-mode. I’ve narrowed down what is making it act like that to somewhere in the middle of my Rails configuration. The odd part is that I’ve never written anything of consequence with Rails and should be able to remove it. However, if I do that, keybindings that I’m accustomed to stop working and the behavior of my emacs changes.

I’ve tried it to rewrite it at least two times, but the end result never ends with the same behavior, like some Frankenstein version of my old Emacs.

So I’ve come to this point where my Emacs gained this “personality”, but if I try to change it, or remove its bad parts, the “personality” changes and I no longer recognize it. In some sense, is like the Phineas Gage case.

I couldn’t continue working like that, with an editor doesn’t want to change. So I’ve sought refuge in Text Mate, and Sublime Text 2. But they are not the same thing. They are very decent editors, but they don’t know me like emacs would. There is always something missing, like a quad buffer window split, but I don’t know if I can handle another midwork crisis, where emacs, as a spoiled brat, “forgets” cua-mode, doesn’t let me reactivate it and reverts back to the yank and killing system until I’ve restarted the app.

For the third time I’m gonna try to rewrite my .emacs. If it doesn’t change, that’s it, I’m leaving it for good. You can follow it here (https://github.com/nurv/dotemacs)

Why popes shouldn’t resign, a logic approach

Benedict XVI has decided to resign. From a pure logic standpoint this is a weakness point for the catholic church. When the new pope is elected by the conclave there will be two persons alive planet with the gift of infallibility. That means that is possible for a occupant pope to have a different opinion on a subject than the former pope. This creates a paradox. If both popes have different opinions, either both popes are dogmatically right on divergent opinions (e.g. may be right AND wrong to use a condom at the same time) or the pope doesn’t have infallibility, one of the core dogmas of the catholic chuch.

This is why no one is going ever hear or see Benedict XVI after February 28.