Friday, October 25, 2013

Knowledge is the Currency of the Future: time to show how much you’re worth

I am not a mean person. Shit, I’m not even unpleasant. I do my best to find the best in everybody, find something that they are passionate about, find something I can learn from them. To that end, I love meeting people. All kinds of people. I love talking to everybody I know.

Except for one person.

This is a person who I have done my best to cut completely out of my life. When I see him, I don’t acknowledge his presence. When he speaks to me, I keep my responses short and curt. I don’t engage with him on any level, for any reason, and I can honestly say that I don’t care on whit about him. All of this because he’s a compulsive liar.

I sometimes feel that my treatment of him is unfair, even cruel. But one of the most important lessons I learned growing up is that who you associate with is a choice, and your friends can reflect back on you without your even realising it. So I made the decision that I don’t want somebody in my life who I know will lie to me for no reason.

This is because I am, forgive my lack of humility, very smart. I recognise patterns that are invisible to others, I learn things quickly, and I just know a shitton of random bullshit. And one thing I am certain of is that knowledge is the most powerful resource in the modern world.

Asymmetrical knowledge gives a trader on the stock market the ability to make millions of dollars in seconds. That’s why there are rules against insider trading: it makes the game ridiculously unfair. Or think of the “classically” prestigious professions of doctors and lawyers. They both have to go to school for a long ass time because they need to know a lot of things, basically all the time. I don’t know limbs from the limbic system, so I’m grateful that there are people who are willing to go through the arduous process of learning all the little bits and pieces of my body so when i start leaking blood they know where to put the plug (that’s how medicine works, right?)

Knowledge has absolutely paved the way to where we are today. If you, dear reader, have not yet read about how Jeff Bezos quit his job at a hedge fund to sell shit on the internet, please do so. The gist of the story is he knew the internet was growing incredibly quickly, and he made a smart bet that it would keep growing.

And here we are today, with many tech startups offering web services to a variety of clientèle, and some of the fastest-growing spaces involving lowering the barrier for entry to the internet. Knowledge gave Bezos enormous power, and facts continue to propel the new, digital world.

One needs only to read of the trials of some of these startups to realise the power and value of data-driven techniques. I’ll point you towards this excellent post by Alex Turnbull, the founder of Groove, to illuminate what a data-driven approach means. In this approach, the facts are the most important part of the iterative process. Not whose idea it was, not necessarily what others are doing, but does the applied method get results. And this pattern repeats everywhere; Jezos’s Amazon.com is notoriously data-driven, and it’s seemed to work out pretty well for them so far.

---

If knowledge is power in the digital age, the next most important element of success is honesty. If you have data that’s painting a clear picture but you ignore it, you’re being dishonest and you will suffer. Enron execs were able to lie to their investors to make short-term stock profits, but when a mountain of bullshit collapses it has catastrophic effects for those unlucky enough to get caught up in the lie-lined casket.

Corporate lies are one thing, but you’d be a fool to not understand that these struggles are repeated in miniature with interpersonal relationships. It’s easy to spot a failed relationship when the partners no longer feel like they are able to be honest with one each other. Toxicity between people I feel can be measured exactly in the amount of dishonesty that exists between people.

There is, of course, a line, faint and wavering though it may be. If you walk up to somebody on a bus and tell them that they’re wearing the ugliest hat you’ve ever seen, you are an asshole because, even though you’re being completely honest, that didn’t need to be said. The person is unlikely to thank you for pointing out how atrocious their headgear is; more than likely they are wearing it because they like it. If your honesty isn’t helping, it could very well be hurting.

Still, I wish we lived in a world where people’s honest opinions were valued above the personal ego. I wish we lived in a world where I could tell people exactly what I was feeling all the time. I wish we lived in a world where I could know exactly what others thought of me, because I’m certain there are aspects of my life where I am lacking simply because nobody has pointed out to me that I’m doing something silly.

But that is not the age we live in. We’re lucky if we can get one person with whom we can be completely open and honest, let alone everybody we know. And yet, we are not totally powerless. We have the power to choose the person who we are, and we have the power to choose who we spend our time with.

So for you, dear reader, I am trying to do my best to be as honest as I can without harming myself or others. I want people to know my experiences, to listen to what I have deduced in the life I’ve lived so far. I wish I had more to offer the world at this moment, but the best I can do is to share my well-formed thoughts, opinions, theories, and the things I know to be true. I’ve never regretted giving up a lie, so I‘ve no qualms about surrendering the essence of my being in a text-based bottle to the sea of information.

I would be overstepping my bounds to ask you to like me; you are going to like what you’re going to like. But I hope that you can learn. I hope that something I say resonates as true. I hope you appreciate honesty. I hope you desire to always be honest. Because honestly, I fucking hate liars. Fuck ‘em.

Twitter and the Death of Talking Real

This post was born after I read this NYT article. Read it or don't it doesn't matter nobody's reading this blog anyway.

The tl;dr on that story is that a by all accounts capable, intelligent, and driven employee on Capitol Hill was fired because of his snarky twitter comments.

Now, let's look at a somewhat related video of a presentation given by Christopher Poole, creator of a website that has been condemned/embraced as the "internet hate machine".

tl;dr people aren't a single entity, they are different for different audiences, and they should be allowed to speak as whomever they please. People need to sometimes engage their dark sides.

If you haven't guessed already, dear non-existent reader, I think that the sacking of Jofi Joseph was ridiculous. I can absolutely understand why it was done, but I think that the fact that somebody can be fired for their non-work-sanctioned commentary on their own fucking field of expertise is idiotic in the extreme.

I will start by asking who was harmed? I couldn't give less of a shit about the ego of politicians and their assorted hangers-on. Bitch if you can't put up with criticism, particularly valid criticism, you should get out of the public sector, period. It's well-known in development of videogames and films that there are going to be attacking you for no reason, not because they don't like what you've done, but because they're sad pathetic people who've nothing better to do than annoy anybody with any amount of notoriety.

But Msr. Joseph wasn't even doing that. Here's a sample tweet from the article:
AUG. 23 Hey @AmbassadorRice I doubt that Assad is reading your Twitter feed, so you can dispense with the tough-sounding macho tweets from today.
Not only is that mildly amusing (in my opinion, the chief purpose and good of Twitter), it makes a good point. Politicians using twitter to promote policy is the dumbest shit I've ever heard. It's a way to rally support around your cause (follow @WendyDavis if you're a fan of women's rights), but you need to be real about how people use twitter. The average tweet consumer isn't going to read a tweet condemning the Syrian regime and say "HEY YEAH YOUR RIGHT FUCK ASSAD I DIDN'T KNOW HE WAS A DICK UNTIL I READ THIS TWEET THANKS TWITTER THANKS @AMBASSADORRICE." They're going to scroll past it like so much other garbage clogging many a feed.

I have a philosophy that a company that will fire you/not hire you for some dumb bullshit is not a company worth working for, but I'm certain that this culture of always towing the party line for all external communication is endemic in Washington D.C. I think that the rise of certain companies and people willing to talk real (Paul Graham, The Jezos) is proof that people who tolerate and institutionalise bullshit are on their way out. I'm sure people have always thought it, but I truly believe that with the Internet boom people will no longer be able to get away from the truth.

People who are unwilling to confront the truth are the last bastion of the failures of society. If people are unwilling to tolerate a light needling from somebody not speaking in an official capacity, how can they be expected to respond to the same criticism in an official context?

Thursday, October 24, 2013

Ask Obvious Questions

In the conclusion of my university-driven study of computer science, I've found time to reflect on my courses. I've had good professors and bad professors, good classes and bad classes, classes where I've learned a lot and classes where I've learned a little and classes where I've learned next to nothing.

I've already been making inroads into my career after school, working in small teams to design and build software applications. My last large project for the university is exactly this, working a small team to design and build data processing tools.

But I'm not talking about that here. What I'm talking about is the most counter-productive pattern I've seen in otherwise fine students: a seeming inability to get the information they need to do what is expected of them.

I've on multiple occasions witnessed students talking to each other about how difficult an exam was, talking about how they aren't learning anything in the lectures but being expected to know the information on the test. Tough love requires the love before you can get tough, so I hold my tongue, but here's what's up: if you're not learning in the lectures, that's entirely on you. If the class were just to read a book and take a test, there wouldn't be lectures at all. The value of the professor being right in front of you is so that your questions can enhance what he has to say. If something's confusing you but you say nothing, you gain nothing and you're unlikely to get back on course by yourself.

I sometimes wonder why this happens, particularly in the CS courses I've taken as compared to courses out of other departments, and I think it has something to do with the disparity of skill levels coming into the major. There are people like me, who taught themselves how to code and delight in the problem solving aspects of the coding, then there are people who are playing the game, noticing the average salary of a software dev and making the decision when they get to school that that's what they want to do.

There is nothing wrong with either of these avenues into the field, but this gap presents itself in several interesting ways:

  • Some people who are newer to the field may not be super familiar with the terminology and shorthand for talking about the problems. They become confused when things are written on the board, but they find that when they ask questions in class that others consider blatantly obvious, they find themselves the object of scorn from the people who code in their free time. This is discouraging; nobody likes to believe that they are very far behind the pack, so to save face they hold their questions, telling themselves that they should understand what's being written.
  • The time taken to complete a coding task, whether it's implementing some bullshit network protocol or writing a series of SQL queries, can vary drastically. I'm personally proud of being able to kill atomic tasks in a single sitting, but I've seen others spending literally all of their free time in debuggers trying to figure out why whey are getting the wrong results. I think this is the wrong way to approach the problems period, but I take no joy in telling people who are busting their asses that they were doing it wrong the entire time, so as long as they get "good enough" results eventually.
  • The more you know, the easier it is to learn. This is true across disciplines; I think the best example is language acquisition: If you know two languages, it's becomes much easier to learn a third because you have options of how to remember the words and the syntax. The French "Je sais" is much further from the English "I know" than the Spanish "Yo se." So it is with everything: patterns often repeat, so already being familiar with the patterns makes learning new things much easier. This can further amplify the skill gap, again disenfranchising students.
But here is where the fatal flaw comes into the equation: people are often asking what others are doing, rather than asking themselves what they need to understand what's going on. Making this shift towards making learning a personal experience not only benefits people in the academic field; it's important for one's career and life.

If I don't understand, one of 3 things are generally happening:
  • The explanation is unclear. Either there is information being assumed of which I'm not aware, or it's being presented in such a way that I'm failing to make the leap from what I know to what I'm figuring out. Asking specific questions can literally only help.
  • There's a gap in my knowledge. Whoever's talking expects me to know something I do not know. If this is my fault (like if I decided not to attend class in a couple of weeks) than this is a wakeup call that maybe I'm not so smart as I think, and I'm going to need to find the prof after to catch up on what I've missed. If I don't think it's my fault (and again, I should know if it is) than the speaker has made a bad assumption as to what I/we are aware of, and he must be notified that what he's saying is going over his audience's head, or he'll keep on speaking to a room full of people who don't get what's going on.
  • I'm doing something dramatically wrong, and I need to make a change. There are times when I literally understand nothing, and I find myself unable to follow what a speaker is saying for any more than a few sentences at a time. When this happens all the time, it's a red flag that I need to get out. Not everybody has to be good at all things, and just because something is lucrative or prestigious doesn't mean it's for you. I would recommend anybody who doesn't really understand how loops work after three months of studying to stay the fuck away from CS and instead pursue a career that is more in line with their interests and skills.
This is a really long-winded way of saying that people need to ask more questions to the people who know the answers. I constantly bug coworkers with questions about how X or Y works, even if I can find an explanation online. Why? Because a webpage doesn't know what I need. I know what I need, and if I ask smart people specific questions, they can give me exactly the answers that I seek. I can read the Wiki article on Hadoop, but when I ask people what it is, they can condense it for me, give me an example I'm familiar with, confirm or correct my impressions of if I'm understanding it correctly. That is the value of asking questions, and that is why it saddens and angers me to see my peers falling into the trap of blaming the subject matter instead of grabbing it by the balls.

But ultimately, this sort of behaviour isn't going to be corrected by simply telling people that they can ask questions; they know that. The real problem is that they feel uncomfortable to ask the questions. They feel judged, and sometimes they are right. So it's also important to foster an environment where questions are answered enthusiastically, honestly, and without scorn.

Of course, there's never any magic bullet when it comes to teaching. But I'm afraid that the fairly clear divides between those coming in with nothing and those coming in with a hobbyist's enthusiasm creates a tension that needs to be massaged into harmony by both sides. Those who know more need to be happy to share their knowledge, but they also need to be patient and understand that not everybody has the same experience that they do. Those entering from the bottom need to understand that they are starting at sometimes a significant disadvantage from some of their peers, and that they're going to need to work a little harder to get to the same level of understanding. The desire to catch up is not a weakness, it's a strength.

Monday, October 21, 2013

Fuck Comments

I fucking hate comments on most webpages. What a stupid fucking concept. Why did people think that on a website about news and facts that there should be allowed a den of pseudo-anonymous commentary with concern of "facts" and "truth?" Why should there be a shitstorm of non-tech experts at the bottom of a tech article? Did people honestly not think that would be a problem, despite how notoriously terrible comments are? Did people not realise that what might be said on their site might be associated with the site? Do people not know about youtube?

If people want to discuss the news, they absolutely should be allowed to, but not on a news site. It's for the fucking news. Link that shit on reddit and talk about it. But keep it off the site. Newspapers don't just allow anybody to say whatever and then distribute it all over the world. Do you know why? Because that's a stupid ass-backwards idea of how events in the world should be presented to the public.

I can see arguments for comments: it'll increase how long people stay on your website, which can increase add revenue. It makes the people commenting feel like they have more of an investment in your site, so their more likely to come back. But the kind of people who spend all of their time talking in the comments on a website are not the sort of people i would want associated with my site.

I think there is even some value in comments, if it's a dialogue with the author. Sometimes, say, a blog author can respond to an attack on the thesis of a point; this has clear value. Perhaps the author can tighten his post up, or in other ways continue the debate about a particular subject. This seems like it's clearly adding value to the website, but not every website gets this same value from interactions with the larger community.

Ultimately, it's every website's choice whether or not to allow comments. It should be every author's choice whether or not to allow the community to respond to her post on her own site, if she feels like drinking raw sewage. But it should not be a foregone conclusion for all websites. Just because implementation of a comments system is becoming easier doesn't mean it's necessarily worth having.

Because really, fuck comments.

Monday, September 2, 2013

the core principal of good interface

I think about shit in my free time. I think about things that I interact with, that I use. And I've decided that there is one core principal that should govern UI design (or interactive design in general). Here it is:
Success in design is measured by how easily a user is able to articulate his will to the application
I think it's kind of simple, but there are nuances. For instance, sometimes the user needs to learn how to actualise his will to the machine. Just as you cannot communicate before you know how to speak, sometimes you must learn the machines language before being able to speak to it.

For example, I used to play a lot of Halo. I played so much Halo that I was able to move my avatar in the game as easily as I can move in real life. It became instinct and muscle memory; initially I had to think about pushing the sticks in the right direction to get my guy to move over to where I needed him to be, but now it's as simple as me just moving over to another chair in a room. This is success in physical design (the controller and the inputs), software design (esp. for aiming in Halo; controller auto-aim is absolutely necessary for users to hit what they're shooting at without feeling like it's unwieldy), and I also practiced a lot.

Let's take another application. Why not blogger? It's what I'm using right now and it's easy enough to repro.

First, the good: Blogger caters to people making and posting on blogs. Creation of the blog is stupid easy; from blogger.com when I'm logged in I can easily see the new blog button on the left side of the page. It's separate, I don't have to look hard to find it, and i can just click, pick a name, url, and template and i'm good to go. That's awesome for the average use case, and executing my will of creating this blog was trivial.

Design of the blog was a bit more tough, but it's a more complicated operation. I'm not writing the js and html myself, so I'm dealing with the UI of blogger for design. From the url of the blog, I'm able to click on "Design" in the admin bar. From there, I click "Customise" and I'm golden. I got rid of the background, changed some fonts, changed a few back, then started fucking with the layout.

I didn't really know what I wanted here, so I got rid of the sidebar. I didn't like where it put the About Me widget, so I deleted it. Then I couldn't figure out how to add it back in. It told me to go to "Design > Page Elements" to add widgets, which helps none at all when I don't know where that is. A protip: Just add a link if you're directing a user elsewhere. Directing a user to go elsewhere is fine if they know where you're directing them, but I have no idea where "Design > Page Elements" is. Well shit.

I went back to the main page because I know that there was a link that said "Design." That gets me back to where I was, with no "Page Elements" in sight. Turns out the way to change it is to access the blog from the Blogger dashboard, go down to "Template" and click the orange "Customise" button under the rendering of the blog. Not only were the instructions given not helpful, they were incorrect. Which is gross. But I found it and the UI for adding the widget back was p nice, so I can't complain too much.