rant – Terminally Incoherent http://www.terminally-incoherent.com/blog I will not fix your computer. Wed, 05 Jan 2022 03:54:09 +0000 en-US hourly 1 https://wordpress.org/?v=4.7.26 Technology Brings us Closer http://www.terminally-incoherent.com/blog/2012/09/03/technology-brings-us-closer/ http://www.terminally-incoherent.com/blog/2012/09/03/technology-brings-us-closer/#comments Mon, 03 Sep 2012 14:01:19 +0000 http://www.terminally-incoherent.com/blog/?p=12593 Continue reading ]]> I honestly don’t know where do the normal folk get their notions about technology. They must be talking about this stuff on Faux News or some other low brow TV shows because I keep hearing people mouth the same tired old, techno-phobic catch-phrases without thinking. It is as if at some point the society at large established that technology is bad, but we are gonna have it anyway, and there is to be no re-evaluating of this position.

I have no clue why so many people got into their heads that the Internet is a “mixed bag” that offers a lot of benefits but also has a lot of drawbacks. It is great for research, education, business, commerce, self improvement, entertainment and etc, they say, but it is bad for the society as a whole. It pulls people apart. It makes them interact less.

My question is: on what planet exactly is this estrangement happening? Where the fuck does the internet (and technology in general) erect walls to human interaction? Because I’m certain it is not on planet Earth, or at least not on the East Coast of the United States. Where I live, the internet has been a force of good, wholesomeness and it actually brings people closer.

Let me give you a few examples from my personal life. Granted most of this is anecdotal evidence, but so is the shit other people use to justify their (incorrect) opinions so it’s not like I’m braking rules here.

One of the most common complains about technology is the text vs talk straw-man argument: that we text more than we talk these days. And yes, it is a straw-man because text messaging did not replace or subvert regular telephony in any way. It simply provided another channel for communication.

In the olden days (that so many people seem to long for) you had to wheel out your rotary phone and painstakingly dial a long number, wait for the other person to pick up the phone, say “hello” couple of times back and forward, and then communicate the actual message along the lines of “I shall be departing shortly, and ought to be with you within a fortnight”.

These days you just text the other person “I’ll be there in 5min” and you are done. Its quick, easy and most importantly asynchronous. The recipient of the text message does not need to be at their phone, or even have it with them in order to receive the message. It is like email for your phone – or like a quicker, more convenient version of voice-mail. Convenient because you can read it instead of listening to it.

It is fundamentally different and used for different purposes: asynchronous communication vs synchronous conversation. It is an additional communication channel and I’d say having another way to communicate with a fellow human over the distance is an improvement.

And yes, people text more than they call. Why? Because it is better. When voice was all we got, we used it for everything. If you only have a hammer, then every problem starts looking like a nail. If you have a hammer and a screwdriver, then you suddenly realize half of the “nails” are actually screws and you can use the more appropriate tool.

I seriously don’t need you to call me for everything. If you need me to pick up milk after work, fucking text me. If you want to let me know you gonna be here in 5 minutes we don’t need to have a conversation. If you want to send me a funny picture of your cat… Well, good luck doing that over the phone line.

Phones are for intimate, personal conversations – it is for the important stuff. It is for telling someone you love them, or that you miss them. Voice communication is for those times when you want to empathize and connect. Text is for impersonal daily bullshit. I see no problem here.

And if you still long for the times of voice only communication, what about Skype and Face Time? Yes, text messaging is impersonal, but it is not the only thing we got out of this whole internet and telephony revolution. We also got video phones – like in the old science fiction movies. Those forms of communication are actually more personal because you can actually see the other person. It is as close, intimate and personal as you can get without actually meeting in person. The spectrum goes both way.

But you will notice that people use Skype and Face Time less often than they use regular telephony. Why? Because voice only communication is more convenient.

Somehow people got it in their heads that back in the day people communicated more, because they had to do it in person. This is absolutely false. Or rather, the people who lived close to each other probably did this. But if you moved to another town or city, the communication was often severed or severely restricted.

Do you really think things were better when people had to either meet face to face, or write snail-mail letters? I do not. My mom lives on a different fucking continent – an ocean away. And yet, I can talk to her every other day via Skype.

Hell, thanks to Facebook, Twitter and personal blogs I am able to keep in touch with friends and relatives that I never really meet in person because we just live too far away, or have too incompatible schedules to be able to hang out often. And yet, we talk, interact and are big part of each-other’s lives. If it wasn’t for social networking, we would probably grow apart and become estranged.

You want to know another funny thing? My cousin met her husband thanks to online dating. If it wasn’t for the internet, she would have never met him. They didn’t have any mutual friends, they did not share same hangouts and their social spheres did not intersect at any point. Based on their work, their schedules and preferences it would be extremely unlikely for them to even bump into each other on the street by accident. But thanks to the magic of the internet they met, hit it off and are now happily married.

I honestly do not understand how could anyone claim the technology we have now is tearing people apart, deteriorating the social connections and erecting walls that impede interpersonal communication. In my experience, the technology is doing the exact opposite. It provides us with new, more specialized channels of communication. It makes communication faster and more immediate. It makes physical distances irrelevant to interpersonal relationships. It allows people to be involved and plugged into the lives of their close ones even if they live far away. Technology is wonderful, and it is helping us be more social. It brings us closer. If you think otherwise, then I’m sorry but you are wrong. Either that, or you are using the technology wrong somehow.

]]>
http://www.terminally-incoherent.com/blog/2012/09/03/technology-brings-us-closer/feed/ 13
Fluency With Technology http://www.terminally-incoherent.com/blog/2012/05/28/fluency-with-technology/ http://www.terminally-incoherent.com/blog/2012/05/28/fluency-with-technology/#comments Mon, 28 May 2012 14:33:30 +0000 http://www.terminally-incoherent.com/blog/?p=12134 Continue reading ]]> I teach a course called “Fluency With Technology”. I did not come up with that designation – it came from up above, and the first time I saw it, I considered it silly. Over the years however I grew to appreciate it and like it. It is a wise course name – a poignant one. For we must be fluent with technology the way we are fluent with languages to function in modern society.

Technology surrounds us, and permeates every aspect of our existence. It is a conduit through which we do business, conduct our social affairs, trade, maintain our health and even meet potential soul mates. If you don’t speak the language – if you can’t produce electronic data on your own you are like a foreigner in your own country. Like a stranger in your own home land you need a translator and a guide to help you fill out forms, order goods online or do any kind of business. You are helpless and dependent on the good will of other – a digital invalid.

Our society is quite open minded and forgiving of the differences of it’s individual members. Those who are physically or mentally challenged usually receive aid and assistance. We make accommodations for them, we go out of our way to meet their needs and make things accessible to them. Granted we don’t always to enough, but we try. Technologically challenged individuals however receive no such assistance. There is no aid, pity or accommodations for those we cannot exist in digital age. If you can’t navigate the information highways, it is by your own choice and nothing else.

We already make our user interfaces as accessible and as easy to use as possible. We study usability, we observe how people use electronic devices and make them bend to their needs. But we can’t make things that use themselves. We build tools, not electronic, mind reading butlers. There is a degree of fluency that is required to operate them. Most people will agree that cars are not difficult machines to figure out. The concepts and principles upon which they are built are fairly intuitive and straightforward to understand. The user interface is quite simplistic. And yet, no one expects a car to “just work”. Mastering the machine takes some practice. But somehow, somewhere we got this silly notion that computers (which are infinitely more complex than cars) should “just work” without any effort or learning involved. People see an electronic computing device and immediately switch their brain off.

“I am not a technology person, and therefore I don’t need to learn this!” – where did this attitude come from? Why do people behave like this around electronics, but understand that everything else requires learning and effort to master? Is it a holdover from a bygone era when computers were still considered a fad? Or is it our fault? Have we coddled our users too much? Is our constant struggle to make user interfaces simpler and more accessible hurting the average users in the long run?

It can’t be the latter, because improved usability is intrinsically a good thing. It helps everyone – both power users and novices alike. So it must be the former. People cling to the past that no longer exists – analog era. The great the slowness of the pre-information age. They cling to it, and instill the old values in their children. They hobble their impressionable minds by hammering in Luddite philosophies and installing learning barriers.

“You can learn anything if you put your mind to it son, except electronics – that’s black magic not to be trifled with.”

It is a defeatist attitude. It is harmful. It produces adults with crippled minds, and only partially able to participate in the collective mind share of planet Earth. Consuming some, but not contributing much to the ever growing body of human knowledge. Only able to dip one finger in the ocean of the information (or maybe wade in up to their ankles if they are lucky), whereas those fluent swim and dive in it every day. Granted, you don’t need to be a diver – but you ought to be a swimmer, least you want to drown.

Non swimmers get easily overwhelmed. They burn out under constant flow of information. They have to disconnect, take vacations from the internet. Those of us who swim daily have learned to effectively filter such things. We are infovores, but we do not usually consume more than we can chew. We let the information flow over us, past us and carry us along it’s current. We let it trickle through our fingers, as we sieve for things of importance. We know how to flow with the current, and when to get out. We have intuition, and gut instincts about these things. But you can’t develop these if you are barely able to use the tools that connect you to the turbulent seas of data. You need these to survive the relentless tsunami of irrelevant data that is on the horizon. Information overload is not something you avoid – it is something you learn to surf, to navigate, else you burn out quickly.

Recently, something changed. There was a paradigm shift. Smart phones are cool now – everyone has one. People use them with joy and unprecedented glee. Being good with your iPhone for some reason does not bear the “computer nerd” stigma. Everyone partakes in the joy of discovery as they share new apps, new games and new social network gimmicks on their mobile devices. This is good. This is brilliant. This is game changing. Information age is sneaking up on people who swore it off long ago – who were raised and taught to distrust and despise it. They are becoming subverted. The hip and cool smart phones are a bridge to the new era. As we slowly transition away from traditional desktop and laptop computers to mobile wearable devices, and as those devices become more powerful we will not be leaving these folks behind. Maybe not fluent, but conversational. No longer strangers in the digital realm.

Few people realize how much power they are holding in their hands right now, and how that power is incrementally growing with every year. For your phone is not a toy. It’s not a phone either. That little black rectangle is your exo-cortex. It’s your mind outside of your mind. It is a brain without neurons. It is your in-silico memory. It allows you to record your memories at any time and anywhere. It connects you to the entirety of human knowledge and achievement from anywhere and at any time. It connects you to your loved ones, your acquittances and your clients. It is your mobile computing platform, data storage and communication hub. So is your laptop for that matter, but you don’t always have a laptop, and even if you do, you don’t always have it connected to the internet. Your phone however is online 90% of the time – the connectivity is it’s main function and the main selling point.

If you fancy yourself a “computer illiterate” person, please realize you are someones burden. There is a person in your life – maybe a relative, significant other, or your IT guy at work, who is doing all the heavy lifting for you. You are like a child – you must be held by hand, and walked places. You do not speak the native tongue of the land – you need a constant aid of a translator. You crawl on your belly, whereas everyone around you has learned how to walk and run upright. You are a blast from the past, and you are dragging everyone around you down. You should feel bad. You should be ashamed.

Become a productive member of society. Take responsibility and learn the tools you need to use in order to succeed in the modern world. They were not made to confound you. They just require time and effort to master – just like everything else in this world. You can start by getting yourself a bridge – iPad is a good choice because of the large screen, but phones are good too. Walk it daily. Learn every inch of it. Make it your primary computing tool. It’s your ticket to the future.

]]>
http://www.terminally-incoherent.com/blog/2012/05/28/fluency-with-technology/feed/ 10
Science vs Humanities http://www.terminally-incoherent.com/blog/2012/05/23/science-vs-humanities/ http://www.terminally-incoherent.com/blog/2012/05/23/science-vs-humanities/#comments Wed, 23 May 2012 14:05:30 +0000 http://www.terminally-incoherent.com/blog/?p=12073 Continue reading ]]> I found this gem on Reddit the other day and I saved it to share with you guys because it is a clusterfuck of horrible. According to the story that came attached to the picture, it was a print add in either a university promotional catalog or the campus newspaper – I can’t recall which. Either way it was an ad for Humanities department, which was clearly written by an idiot.

Wait, hold on – before you scold me for being a science geek elitist, please take into account that I have great respect for folks in humanities. I read a lot of books and I sometimes fancy myself a literary critic of certain genre works, so believe me – I have nothing against the good folks with Literature degrees. I think they are not only good people, but also productive members of society – we need folks who are well read – if nothing else just to point me towards good things to read, so that I can inject condensed knowledge and beauty into my cranium by the way of well written prose and/or poetry.

I mock business majors, and people with fake degrees (communications anyone?) but I don’t think I have ever said a bad word about writers, poets, literary scholars and philosophers. I am constantly humbled by their knowledge and consider them to be a fellow species of nerd, even if they wont admit it. So it actually pains me to see shit like this being used to advertise humanities:

Science vs Humanities

Science vs Humanities

Let’s count all the things that are wrong with this picture:

  1. Blatant anti-intellectualism and disregard for the sciences – check
  2. Lack of understanding of what scientists actually do – check
  3. Implication that science does not concern itself with ethics – check
  4. Lack of understanding what cloning is – check
  5. Finally, what’s most baffling – and indication that the author of said avert does not understand what Humanities do either – also check

The first point is especially annoying, because they should have known better. The whole “what has science done?” cliché is old and tired and needs to go die in a ditch. Hollywood loves this damn trope, but university professors should know better. Shouldn’t universities foster a culture of appreciation of knowledge in all shapes and forms? Isn’t the point of liberal arts education to give student a broad understanding of all different fields of knowledge? Isn’t science education just as important as education in literature, philosophy and arts? Apparently not, according to whoever make this advert. It strikes me as childish.

I would love to hear why is it not a good idea to clone a damn dinosaur. I read Michael Crichton’s book, you know – the one with a park full of Jurasic period critters, and the main thing I got out of it was that greedy assholes will always ruin a good thing. That was the main message – don’t be a greedy fuck, and don’t underestimate mother nature, because that bitch is fucking awesome. The rest was pretty much “OMG, dinosaurs are soooo rad, and I know Unix!”. Or something like that. I don’t actually remember a big speech about playing god being in there, though I think they added one in the movie adaptation. I thought that Jeff Goldbloom talking shit about science was a bit out of place, seeing how the entire breakdown of security in park was basically the fault of Newman from Sinefield. But I digress.

My point is that there is no compelling reason not to clone a dinosaur. If we could do it, it would be an awesome experiment, and we would learn a lot from it. Hell, we are already cloning Woolly Mammoths so I really don’t see a problem here. What is the ethical conundrum here? How could an embryonic Jurassic lizard fuck things up for everyone?

I mean, maybe if you let it gestate, be born, then feed it for a few years, let it grow to full size, then piss it off and let it loose in a major city – yeah, that could be a problem. Not a problem with science itself mind you, just a problem with your stupid brain not comprehending the fact that it is not actually legal to release large wild carnivorous animals in cities.

Do you know what you call a scientist who clones a T-Rex, and lets him grow to full size without putting in appropriate safeguards? A fucking idiot who deserves to be eaten. Here is a little anecdote about elephants you might have seen on a motivational poster somewhere: allegedly circus animal trainers tie a baby elephant’s leg to a wooden post to prevent them from wandering off. Over the years the animal learns that tugging on the rope is fairly useless, and by the time they are fully grown they actually stop trying. So when the trainer ties a mature elephant to a tiny wooden stake, with a flimsy rope that would never hold it, the animal stays put because it remembers the rope being unbreakable.

While this story is likely bullshit, it illustrates an important concepts: we know how to deal with big animals. The reason why we don’t have elephants, lions, tigers and dragons rampaging though the cities every other day is that we have devised methods to tame and subdue them. Also, dragons don’t exist but that’s besides the point. While a Tyrannosaurus might be big and scary, it is an animal just like an elephant. Put it in an elephant pen with a huge ass reinforced fence (you reinforce the fence by weighing the damn thing, cross comparing with elephant weight and adding shit to the fence until it can withstand that much weight) and it will stay put. Unless it can “Hulk jump” like a boss, of course. But that’s not really something the animal can keep hidden. If it never jumps while it’s a baby, it likely won’t jump when it’s mature. And if it does jump like a motherfucker, then you put a roof over the pen.

In fact, you don’t even need to build all of this in advance. You will have plenty of time to incrementally improve your new pets habitat as it grows. A baby dino can probably be kept in check with a piece of rope, and a rubber band around it’s snout. If you are worried about it rampaging across the city, you can humanely put it down long before it becomes larger than a horse.

Unless of course you happen to be an idiot who thinks that cloning means “to make an exact copy, like on a xerox machine” which it does not. And being a humanities major does not exempt you from this little thing called “research”, which I affectionately call “five fucking minutes with Google”. I would hope that any aspiring literary genius wanting to write a story about the dangers of cloning would take at least 5 minutes to make sure they know what they are talking about. I mean, it’s not Hollywood kids – if you want to make literature, then you need to at least try to make sense. Unless of course you want to write the next Twilight or 50 Shades, in which case college education is the worst thing you could do to your brain. If you have ever taken a single literature or creative writing course, you know way to much about story structure, plot, character development and literary devices to write like Stephanie Meyer or E. L. James.

What I would really like to know is the reason why the creator of this image thought that the job of a humanities major is to teach scientists about ethics. Last time I checked, morality fables were kinda low brow. A story titled “A scientist made a dinosaur, and then got eaten because hubris is bad” ain’t exactly something to aspire to, isn’t it? It’s very much an old and tired cliché. I’d hope you would encourage students to write something more ambitious than that. To say something new and interesting about the human condition.

A wise man once said that a picture is worth a thousand words, and I think I just proved that. I created well of a thousand word shaped knowledge bearing data objects, ranting about a very dumb image from the internet. I ought to have better things to do with my life than that, but I do not, and that’s why you love me. If I wasn’t around to tell you about all the insignificant stupidities that really grind my gears, who would. I provide a valuable public service here, damn it!

]]>
http://www.terminally-incoherent.com/blog/2012/05/23/science-vs-humanities/feed/ 19
Why Plain Text http://www.terminally-incoherent.com/blog/2012/05/21/why-plain-text/ http://www.terminally-incoherent.com/blog/2012/05/21/why-plain-text/#comments Mon, 21 May 2012 14:02:12 +0000 http://www.terminally-incoherent.com/blog/?p=12033 Continue reading ]]> Recently Chris Wellons shared some an really interesting thoughts on why a lot of programmers tend to flock to certain kinds of tools – powerful text editors, plain text formats, markup over WYSIWYG and etc.. Here is what he said on the topic:

In my experience, software developers generally prefer some flavor of programmer’s tools when it comes to getting things done. We like plain text, text editors, command line programs, source control, markup, and shells. In contrast, non-developer computer users generally prefer WYSIWYG word processors and GUIs. Developers often have somewhere between a distaste and a revulsion to WYSIWYG editors.

Why is this? What are programmers looking for that other users aren’t? What I believe it really comes down to is one simple idea: clean state transformations. I’m talking about modifying data, text or binary, in a precise manner with the possibility of verifying the modification for correctness in the future.

File formats generated by WYSIWYG word processors tend to be opaque to source control tools – they like to store data in binary format, or lumps of compressed XML soup – where each edit introduces perturbations throughout the file. Tools to that allow to search and compare such files are few and far in between – most are built into the bloated text editors and come burdened with finicky, crippled GUI’s. There is nothing as elegant and flexible as the Unix diff command that would work for Microsoft Word or ODT documents. Changes in plain text files on the other hand are easily tracked – be it manually or via source control. They produce clean, human readable diffs. I agree with Chris on this – clean state transformations are a killer feature, but they are not the only reason why many of us are repulsed by WYSIWYG.

Rich text formats actually have many disadvantages compared to plain text, whereas they offer only a single advantage: a promise of user friendliness (a promise which they fail to deliver, but more on that later). Overall, the choice of plain text over rich text is a pragmatic one – it boils down to handling and maintenance. Plain text files are simply much easier and straightforward to work with – especially when it comes to collaboration or maintaining a large set of data over a long period of time.

  • Size – Plain text files are typically much smaller in size. WYSIWYG formats are complex and store a lot more than just your data – they also store garbage, and endlessly compounding collections of metadata that can’t be easily pruned from the file. Yes, we currently live in a day and age when Terabyte drives are quite affordable, so storing few extra megabytes here and there is not a problem. The problem is moving these things around.

    I have seen Excel files ballooning to over 30MB in size. Such monstrous files are virtually impossible to transfer over standard email connections. Modern businesses bravely move towards paperless workflows only to realize their network infrastructure cannot support their multi-Gigabyte zip files. Granted this is a problem that would have existed without Office and WYSIWYG formats, but they exacerbate the issue.

    How does this affect me personally? Well, I prefer my data to be backed up on a regular basis. Storing a lot of my writing in plain text helps to make backups faster and more space efficient. I’m sure someone will scoff at these meager space savings, but hey – I’ll take what I’ve got – especially since size savings are not the only benefit of using plain text.

  • Compression – plain text files compress well. MS Office OOXML files on the other hand don’t compress at all – they are already compressed and still huge. This is almost directly linked to previous point and it is worrisome of the same reasons. Large data dumps from accounting systems can be compressed quite well, but users want these dumps in Excel. A lot of times simply converting such files to a CSV and re-saving them in XLSX format causes 200-300% increase in size, without ability to compress. Many of such files become impossible to email after the conversion.

  • Parsing – Plain text files are easy to work with programatically. Reading from and writing to text files is very easy in most programming languages. Most of the time all you need is 2-3 lines of code, unless you are working with Java (in which case you need about 200 lines of boilerplate and class declarations). Doing the same with MS Office or ODF files is a complex task that usually requires third party libraries or plugins. Thankfully, these are readily available but they do create dependencies in your code. Not to mention that many of such libraries slide out of compatibility as Microsoft always tweaks their file formats between Office versions, and not all maintainers can keep up with these changes.

    Why would a geek and a weekend hacker like me want a programatic access to notes and text documents? Duh, think about it. I hope you can figure this out on your own.

  • Search – plain text files can be easily searched using simple tools such as Unix command line utilities grep and find. Windows people don’t usually realize this but these tiny applications can iterate over hundreds of text files in mere seconds. Searching within rich text documents is a much more complex issue and there are few built in OS level search tools that could accomplish this task. Those which can, are unable to do it very fast because the process of opening and scanning these files for relevant strings is a complex task. Modern desktop users often utilize powerful indexing engines (such as Google Desktop Search or Windows Search) to get around this problem. These are usually custom tailored to the task of parsing specific rich text formats and they slowly scan your drives in the background.

    I’m not saying that desktop search is bad – I’m saying that it is an overkill if all you want is a quick way to search your notes for specific keywords or sentences. And even if you do desire a database driven search index of your files, generating one for plain text documents takes almost no time, whereas indexing large collections of Word and Excel files will take many hours.

    A lot of my old notes (from ancient times) are still locked up in proprietary WYSIWYG formats. Sometimes I want to search through them but I quickly realize I can’t grep that far into the past. A constant reminder of the mistakes of my youth I guess.

  • Resilience – Plain text files are fairly resistant to damage. Even if they become corrupted, large amounts of data can still be recovered. Word and Excel documents become corrupted quite often, to the point where there exists an entire software industry branch for “Microsoft Office File Repair tools” that provide data recovery services to the business sector. And I’m not just talking about actual data corruption – due to disk failure or bad network transfer. I’m talking about corruption that stems from the internal implementation of these files – like for example the “too many formats” Excel issue.

  • Privacy – Microsoft Office products sometimes inadvertently include sensitive information in their files. There are methods to remove that information, but the default is to preserve it. A lot of people have been burned by this “feature”, including high profile British politicians

    It’s astounding that this is even a problem, but somehow, someone down the line made a decision that rich text formats ought to carry a lot of meta-data with them, and it became a de-facto standard. While I’m not against meta-data on principle (it is beneficial when you want to index and categorize content for fast searching – which as I mention is a problem in the rich text world), I am very much for privacy. I always wonder how much information business organizations leak out by simply emailing each other word documents.

    It is even better when two security conscious companies exchange AES encrypted zip files, via PGP encrypted emails, while at the same time shedding
    all kinds of confidential metadata, because the file they exchanged was previously used on 16 other unrelated projects.

  • Future Compatibility – plain text is the safest way to preserve data. Software companies go out of business, file formats fall into disuse (real player videos, lotus notes files, etc..) and standards change. Microsoft may seem an indestructible corporate powerhouse today, but 20 years from now they may no longer exist. And if they do exist, you can bet your sweet ass that they won’t support Office 2003 format anymore. Locking up your data in proprietary formats is foolish and most people outside the intellectually stunted corporate ghetto of business school graduates realize this.

    Open standards are great, and open standards that use plain text file formats are even greater. Why? Because even if the spec is lost, plain text is relatively easy to figure out. Future digital archaeologists will only need to stumble upon or figure out the concept of an ASCII table to be able to decode most of plain text documents just by examining their contents in a hex editor.

    And yes, I do understand that there are many encodings, and the world of plain text is far from uniform. Still, figuring out the few dozen encodings and their quirks ought to be easier than trying to work out how is data stored in the binary .doc file, without access to a copy of Microsoft Word to reverse engineer the damn thing. Or figuring out the “a thousand zipped XML files” format of OOXML.

    I suspect that few centuries from now, historians will assume that majority of the people living in this day and age were Linux nerds because open source software, open standards and plain text files will all that will remain after us. Scholars will continuously argue about what our people might have been hiding in the Terabytes of inaccessible binary data they can’t decode.

    We don’t have to go that far into the future to see the effects of this though. There are ancient folders on my drive, that survived my youthful nonchalance towards backup. They contain notes and short stories saved in Corel Word Perfect format – software I no longer own, use or need. Back then I used it, because that’s what was available. I did not know enough to make an educated decision. I could not have known that many years later I will be sitting there, staring at incomprehensible files that I cannot open without downloading some sort of viewer tool from the vendors website. Fortunately Corel still exists, and still supports their product. But that did not necessarily had to be the case.

  • Clarity – if you want to have “formating” in plain text files you need to use explicit markup. Whether you are using HTML, Markdown or LaTex you essentially type in your formating commands as textual blocks. Whoever is working on your file next, can probably figure out what you intended to do from the markup even if you messed it up, or if parts were deleted while reformatting. You can easily tweak, or clean up said formating code by hand.

    WYSIWYG rich text documents purposefully hide that stuff from the user. The claim it is for clarity and user friendliness but this is really a matter of perspective. When you are typing up a paper, you may not want to deal with markup. When you are editing and proofreading something for release however, you want to have full control over the document. You want to be able to tweak and correct every aspect of it. WYSIWYG tools wrestle that control away from you, and abstract it into a series of useless toolbars and context items.

    If you have ever wrote a serious paper in Word you know the frustration of trying to make it behave – especially if you are trying to make it do some very specific things: for example, to place a figure just so, to lay out tables or images side by side, to have some pages in different orientation to accommodate large charts. The more you try to do, the harder it becomes to keep it all together and a small change on one page, may have catastrophic effects on everything below. What’s worse, there is usually no way to predict these issues. Editing documents in Word is a game of chance – every time you make a change you have to inspect the entire document for problems, and keep your Undo button ready to back-track.

    I have some really neat examples of how the transparency of markup improves the user experience in my LaTex vs Office post. Please check it out to see animated examples of some of the WYSIWYG issues I mentioned above. This is the failed promise of user friendliness I mentioned. Yes, typing up a Word document is pretty user friendly. Opening said document later, deleting a single character and seeing the entire document collapse upon itself and contort into an unimaginable mess is not friendly at all. Tools like Microsoft Word are only user friendly up to a point.

That last point especially is very, very important. I would say it is more important than clear state transformations. I would say that hidden markup is the root of about 70% of issues you will run into when working with Word and Excel. I just made that number up, so feel free to substitute another one if you are so inclined. But trust me – a lot of the things you see Word users complain about stems from their inability to comprehend and anticipate WYSIWYG paradigm concepts such as invisible control characters. You simply can’t comprehend why Word does certain things until you understand markup language – especially opening/closing tags, and what happens when you leave them open.

Here is an interesting thing I discovered: learning markup makes people better at Word. I teach kids HTML. Very basic stuff, mind you – no CSS or anything like that. The most complex thing they create is a table, and for the sake of simplicity I show them the font tag (I know it’s wrong, but it makes more sense than shoe-horning inlne CSS there). Then I go back to Microsoft word and explain to them how it puts these invisible tags in the documents. And it is pretty good at keeping them matched up, but sometimes it fails. So that’s why once in a blue moon you delete something, and it causes the rest of the document barf up upon itself. I swear to you, you can usually see a little light bulb appear over the heads of like one or two students in the class. The rest of them remains ignorant, but that’s just par for the course. You can’t win them all but seeing a few select individuals have this world view shattering epiphany is what teaching is all about. All of a sudden these few students instantly understand why Word sucks, and are armed with knowledge on how to battle and tame that software beast. They are no longer baffled by mysterious “computer doing stupid things” but instead realize the society sold them a $300 piece of shit, and requires them to use it.

So there you have it. I’m pretty sure there are more compelling reasons why use plain text over rich than that, but this is all that I can think of right now. On the other hand I can’t think of a single argument for the reverse side of the argument, other than the old and tired “end users won’t understand plain text in notepad” mantra. I honestly don’t know a single logical reason why a self respecting geek would subject himself to a WYSIWIG purgatory. Other than ignorance of course. And there are a lot of ignorant geeks out there.

These guys are almost worse than your common garden variety of a luser (technophobus ignoramus luserati if you want to use fake latin). Lusers simply don’t know any better, and they don’t understand logic. I have learned to accept that – them creatures are slaves to the emotion, and impervious to facts and empirical evidence. We geeks operate a little bit differently – we like to think of ourselves as rational beings. But alas, we don’t always behave that way. There are otherwise wonderfully clever individuals out there who know that MS Word sucks, and love to complain about it but won’t take the plunge and peel themselves away from WYSIWIG. You show them LaTex and they scoff at the syntax. You give them Markdown, and they go “Yea, but no.” Then they go and rant for hours about how no one can make a Word processing tool that works. They see the problem, and yet they refuse the accept the solution. WYSIWIG simply does not work.

Over the years I have learned that smart people do stupid things all the time. Once can be an expert in one field and a complete idiot in a related one. The most valuable traits in a human being are an open mind, willingness to try new things and an ability to admit and learn from mistakes. If you find a person who exhibits all these three traits, hire them immediately. Or marry them – whichever seems more appropriate at the moment.

Chris – this is not refutation of your claim. I do agree that clear state transforms are important, beneficial and definitely a factor. They are just one of many factors why WYSIWIG sucks. Maybe one day we will have a better way of editing documents that is neither like WYSIWIG, nor like markup. If it’s indeed superior to both, then I’ll switch. But until then, I’m going plain.

]]>
http://www.terminally-incoherent.com/blog/2012/05/21/why-plain-text/feed/ 16
This is why we can’t have nice things – a response to Jeffrey McManus http://www.terminally-incoherent.com/blog/2012/04/27/this-is-why-we-cant-have-nice-things-a-response-to-jeffrey-mcmanus/ http://www.terminally-incoherent.com/blog/2012/04/27/this-is-why-we-cant-have-nice-things-a-response-to-jeffrey-mcmanus/#comments Fri, 27 Apr 2012 14:09:32 +0000 http://www.terminally-incoherent.com/blog/?p=11931 Continue reading ]]> Some of you have probably heard about the University of Florida scandal by now. If not, here is a quick recap: they axed their Computer Science Department, fired everyone they could, publicly humiliated the tenured professors they couldn’t fire and then transferred all the money that used to fund the department into their Football program. No, I am not exaggerating. I wish I was, but that’s exactly what happened. As you can imagine, we were all really busy hating the U of F for this decision, and then a wild Jeffrey McManus appeared.

Jeffrey McManus is a Pokemon of the Troll CEO variety and he runs some sort of online learning program that bootstraps young programmers with some basic functional programming skills so that they can go into the corporate world and piss everyone off by using bubble sort for everything. Or something like that. I don’t really know, nor do I care. The point is that in order to promote his ventuee he made a delicious and relevant troll bait titled: More Universities Should Shut Down Their Computer Science Programs.

Oh yes, he went there. And you know what? It worked. I bit the bait hard – I swallowed it hook, line and sinker. This is more or less an epic Dvorak style trolling and I fell for it and it’s too late to stop now. I started writing a response in his comment thread, but then realized it was long enough to be an entire blog post.

So here is my response. I know you shouldn’t feed the trolls but I just couldn’t resist. I put rel=nofollow on the link above, and I’m going to quote parts of his article below so you don’t even have to click on it, in an attempt to minimize the amount of Google juice he can get from me.

Let’s start at the top, and see what this guy has to say to support his outrageous claim:

Most undergraduates and professionals actually want to learn applied software engineering, not “computer science”. Most companies want to hire college graduates who know applied software engineering. But most university CS programs don’t actually teach applied software engineering. This isn’t to say that CS isn’t useful or valuable (even to someone who goes on to become an applied software engineer). But the majority of university CS programs are oriented to training undergraduates to become either systems programmers or academic computer scientists. I’m going to go out on a limb and say this isn’t what most 18-year-olds who enter undergraduate CS programs actually want to do…

I am going to go out on a limb and say that most 18-year-olds who enter undergraduate programs don’t actually want to learn calculus either. Or science for that matter. If I had a dime for every student I heard complaining about having to take “stupid math and science” classes I would have like a big jar of dimes.

By that logic, Math departments should not teach students calculus, differential equations and theory but instead focus on accounting and financial statistics. Actually, let’s close Math departments too, because Business School already does all that applied stuff. And then we can funnel all that money into Football (cause that’s what University of Florida did)!

I think Mr. McManus is mistaking what the purpose of a university is. If you want to learn a trade, you should go to a trade school. There are plenty of programs out there that teach applied software engineering and they don’t take 4 years, and do not come with a set of liberal arts requirements. The purpose of a liberal arts college education is to take an uncouth rube, and forcefully impart eye opening knowledge and culture into his or her frontal lobes. Once they are knowledged up and cultured enough, you help them focus their interest on one area of academic excellence. Or if you fail, and the knowledging up and culturing does not take root, you put them in the Business department which functions as a kidney of every university – it gather the academic refuse and salvages what it can before evacuating them into the world.

I’m not saying that universities should not offer courses that may help students find jobs in the industry. They should, and most are. It’s just that this is not a primary role of a university. Almost no BS or BA degree (other than Busness School degree – because, you know – kidney) guarantees you a job in your field. BS in Chemistry does not mean you are trained to be industrial chemist. A BS in Physics does not make you a rocket scientist. It only stands to reason not to expect a BS in Computer Science to make you a Software Engineer.

What a BS or BA really means is “you are certified to have a broad theoretical knowledge in this field”. You know a lot of theory, now you need to be trained to do a job. Why do companies hire students with CS for programming jobs? Because in theory, they ought to be easier to train to your specific purposes.

If someone goes to a trade school and learns to program in Java, he only knows how to program in Java. If someone gets a BS in Computer Science the expectation is that they not only know how to program, but also how to teach themselves a new language and possibly even how to write a domain specific language to resolve an particular issue. Not that this is often a good solution. The point is that when you hire a kid with CS degree the expectation is that they can grasp non trivial things easier than someone who just learned a trade.

For example, a CS graduate should be able to figure out that the proper way to sort products in the web store he is building for you is not by average rating, but by Lower bound of Wilson score confidence interval for a Bernoulli parameter. This is why CS is a science and why we make CS students take so much math. Because regardless of what people in the industry might say, that stuff is crucial.

It should not be necessary for two universities located within commuting distance of each other to have the same academic department (this goes for any department, including English Literature as well as CS). To put this another way, wouldn’t it make more sense for UCLA and Cal State LA to have a single, combined computer science program that’s among the best in the country, instead of two mediocre computer science programs?

And how do you propose to do that? How do we share resources between two competing universities? Who gets research grants? Who gets the prestige? How is that shared department managed? Which dean decides what curriculum is going to be taught? When a student takes a course, which university gets paid for it? Do they split it down the middle? How is grading handled?

Also, how do you expect students get from one campus to the other if they don’t have a car? Do you set up a shuttle service? Which university pays for the maintenance? Do you maybe have the professors drive between campuses instead?

Honestly, this is a logistics nightmare. This is one of those awesome ideas that sounds great until you spend 5 minutes to actually thing about it, only to realize it is not feasible without complete overhaul of the way both universities would be managed.

Unless of course Mr. McManus means it should be done the U of F way – fire or humiliate all the profs at university A, and force them to seek employment at university B thus “merging” the departments. But then you just funnel students to another university…

Most university computer courses simply aren’t that good if your goal is to get a job doing applied software engineering. This is because the Ph.Ds who are teaching in these programs generally got their degrees from five to ten years ago at a minimum, when the tools and tactics for software engineering were very different. The industry simply changes faster than academia. Most (not all, but most) universities just can’t keep up with this pace of change using the standard administrative playbook. This isn’t a criticism of the smart, hard-working folks who work in our CS departments; it’s a criticism of the way their departments are organized.

While this might be true, it does not mean we should start shutting down CS programs. Here is a newsflash: most universities have shitty departments. If you go to a university which does not focus, fund or care about CS then you will likely not get the best CS education. This is mostly common sense. Most universities have small, under-funded physics departments too. Should they close them as well? Oh wait, never mind. Physics degree does not teach you a trade, so of course it is useless in McManus’ eyes.

You could of course ask what is the point of having a bunch of shitty departments instead of a few good ones. After all, no one who wants to study computer science would purposefully pick a university with a small, underfunded and poorly performing department, right? They would go to a reputable school that invests in CS.

See, the problem with this is that a lot of students don’t know what they want to study when they apply to colleges. Did you know what you wanted to do for the rest of your life when you were 17? I know I didn’t. I did not declare my major till the second semester of my junior year. I knew I liked technology, but I also liked science. I had as much fun in my Bio/Chem classes as I had in my programming ones. I also loved to write, and read. So my first two years in college I wavered between Biology, Computer Science and flirting with humanities. I could have went either of these ways.

That’s really the point of liberal arts education – your first few semesters you do an in-depth exploration of all the subjects that interest you and figure out what do you want to do for the rest of your life. And if you find something you really love, and your university has a shitty department in that field, you can always transfer to a different university with a stronger program in that direction after two years.

University academic departments in general should have limited charters and should be reorganized frequently. (Again, not just CS departments, but all departments.) I spent nearly all of my undergraduate career working in academic administration, and I can say that academic departments exist mostly to protect resources (mostly money and people). They don’t really exist to serve students. One good example is cited in an awesome book on educational reform called Crisis on Campus by Columbia professor Mark Taylor: one of the most pressing problems that humanity has today is obtaining clean drinking water. Yet no university has a Department of Water. Why is this? Because campuses are an endless successions of zero-sum games: the formation of a new department necessarily means that resources must be taken away from existing departments, so existing departments viciously defend the status quo, even when that doesn’t align with reality. Computer science education has not been in alignment with reality in a long, long time.

I’m sorry but “Department of Water” is one of the stupidest things I have ever heard in my life. Should we also have the Department of Soap? What is being proposed in this paragraph is a trade guild system, not an academic reform. McManus is essentially saying that we should identify external environmental issues and structure our education around them. So people would have degrees in Water Reclamation, Industrial Pollution Management, Food Shortages, Overpopulation, Solar Energy and Rodent Extermination. What a splendid idea.

Fuck math, science, arts and humanities – they haven’t been aligned with reality since Pythagorean times. From now on, we don’t teach Computer Science – we are the “Making Enterprise Server Side Applications using Java” department. Give me a break.

Once again, this was never, ever supposed to be a purpose of universities. Universities teach you liberal arts and the big picture stuff. They are not supposed to teach you how to solve specific existing problems, but how to identify, classify and approach problems and how to teach yourself new things in order to resolve them. Problems we see in the world right now, may no longer be problems in 4 years when the current batch of college graduates leaves the university seeking jobs. If we teach them only the things that are useful and relevant right now, then they will leave our establishment with a body of knowledge that is at least 4 years stale, if not more. This is silly. What you are supposed to learn at a university are the things that are timeless – principles, ideas, philosophies, paradigms, the scientific method. Big picture stuff. Universities are designed to produce educated, cultured and knowledgeable citizens who can apply their education in many different domains and to many different problems.

Besides, the department of Water has the same problem as the department of Computer Science – it does not give graduates a clear career path. What kind of job training would Dept. of Water provide? I could go out on a limb and argue that graduates from department of water don’t really need the broad theoretical background in water shortage related issues. Instead they should be taught applied salt water reclamation because that’s what most of them will probably end up doing.

You need to have a good basis in algorithms and higher math to be successful as a software engineer, and computer science provides that. That’s probably true for systems programmers. It’s not really true for the remaining 99% of software engineers, the vast majority of which will never do pointer arithmetic and shouldn’t really have to. (If you accept this argument, then you must also accept the notion that all plumbers must have the ability to smelt copper and forge their own pipes, because how could you possibly lay pipes effectively without having ever created one with your bare hands from elemental materials?) Otherwise, you’re just enforcing the priesthood of the technologist, which is not a good thing for the profession or for society.

Wow… Really? You are going to compare programmers to plumbers now? What happened to “Software Engineers”?

Throughout the entire article McManus uses the phrase “Software Engineering”. When see that label, I think about designing, and building very complex systems. You know – engineering stuff. Plumbers don’t build complex systems – they screw pipes together – usually use a blueprint given to them by someone with a degree in hydroelectric engineering. I’m sure most students who take CS at a university level have higher aspirations than making GUI buttons in Visual Studio – which is a comparable type of work to that of a plumber. To design these complex systems however they will need knowledge of algorithms.

Also, pointer arithmetic? Where did that come from? Pointer arithmetic is plumber work. You can teach an orangutan to do pointer arithmetic. That is not computer science at all.

To Summarize

McManus is dead wrong because he either does not understand what computer science is, or pretends that he doesn’t for the sake of the argument. He is either quite good at trolling, or he is ignorant accidentally created something twice as inflammatory as he intended to because his complete lack of understanding of the subject.

Computer Science is an academic subject. It is a very expansive field of study that extends above and beyond what McManus seems to deem practical “applied software engineering”. In my CS career I have worked on a quite diverse set of projects:

  • Protein molecule folding (biochemistry)
  • Genome analysis (biology and bioinfomatics)
  • Unattended automatic database integration (database theory)
  • Simulating excitable media using cellular automata (medical field & cardiology)
  • Feature extraction and hyperspectral image processing (aeronautics and military applications)
  • Online Commerce Applications (shopping cart, product ratings, etc)
  • Practical Steganography applications (we devised a way to embed lyrics directly into mp3 files)

A friend of mind did a thesis on intelligent text parsing and built a system capable to auto-magically grade homeworks to a certain degree of accuracy. Bunch of kids I knew designed a galactic collision simulator for the physics department. I don’t know – maybe I was just lucky to end up in a cool, agile and flexible department run by a lot of passionate people. But you know what – I got to work on a lot of interesting projects from various fields. And as I was working on these projects I was thankful that the university and the department had the foresight to make me take all the prerequisite science and mathematics classes, because they were fucking useful and relevant to just about everything I was doing.

My department also forced me to learn not just Java but C++, Perl, and Lisp. And because I was already multi-lingual I went ahead and learned Python and Ruby for fun, and LaTex to write my Masters Thesis.

The degree opened my eyes and taught me that I could use my skills in many different ways. I could actually do science wit it. I could work with other scientist and solve really interesting problems. I could work for the military… Or NASA. Or I could go into medical infomatics and work with healthcare providers. I did not have to sit in a cubicle and write Java back end applications for a bank or financial company.

And sure, I actually had 3 semesters worth of Software Engineering instruction which was actually very, very useful. But it was not the focus of the program. Especially since I did not exactly end up being a software engineer. I ended up becoming an IT Admin and PHP hacker, but it was mostly circumstantial and random. Thanks to my education however I was able to quickly pick up the new skills and adapt. And I could do it again, and dive into a drastically different technology niche if I had to.

McManus however seems to think that the only thing we should be teaching kids is how to build enterprise level web applications using, I don’t know, Java and Agile methodology. That’s dangerously short sighted.

]]>
http://www.terminally-incoherent.com/blog/2012/04/27/this-is-why-we-cant-have-nice-things-a-response-to-jeffrey-mcmanus/feed/ 7
Passwords are Inherently Insecure http://www.terminally-incoherent.com/blog/2011/12/21/passwords-are-inherently-insecure/ http://www.terminally-incoherent.com/blog/2011/12/21/passwords-are-inherently-insecure/#comments Wed, 21 Dec 2011 15:27:47 +0000 http://www.terminally-incoherent.com/blog/?p=10860 Continue reading ]]> Passwords are really bad from security standpoint. They positively, absolutely suck. You know how I know that? Because I can actually remember a lot of peoples passwords, that I never asked for. People just tell them to me while I help them with their computers. Or they write them on a sticky note and put it on the keyboard so I can log into their shit to fix it.

I don’t remember anyone’s birth dates, I can’t memorize my own phone number but I can recall bunch of stupid passwords (that I don’t care about) from the top of my head. Why do they get stuck in my memory? Because they are way to simple. The super-secret password of some random guy on the street is usually the name of their wife, girlfriend, mistress, son or pet hamster followed by the year and/or purchase of birth of said creature. Or their favorite sports team – you know, the one they always talk about.

The most common passwords out there are not love, sex, secret and god or whatever else The Plague (that poseur) came up with in that one movie. No, the most common passwords are jenny57, john81, riders66, hunter2 and of course password123. Short, sweet, easy to guess, easy to remember, vulnerable to a dictionary attack, helpless against rainbow tables.

That’s just how it is.

Why? Because people don’t give a fuck. Identity theft is some shit that happens to “other people” and not you, so why would you even bother? No one outside our industry cares about passwords or security of their online accounts. No one!

Sometimes I wonder if “normal” people think me a creep, seeing how I am super secretive about my passwords and accounts. I have passwords on everything, I always lock my machine when I leave my desk. My behavior is probably setting off red flags everywhere. Being security conscious is just not a “normal” thing.

A “normal” thing is this:

“My password is hunter2 – I use that for everything including my bank, har, har, har. Don’t tell anyone!”

I always balk when they do that. Why would you tell that shit to anyone? Why would you jeopardize every online account you own? Why would you risk some dude getting their hands on all your hard earned money. You can tell that stuff to your wife, but not to some guy you work with, or are distantly related to. I know I’m a handsome, trustworthy and honest looking guy. Ladies tell me this all the time (usually right before they announce they prefer to be “just friends” cause I’m cool like that). But that is no reason to trust me with that vital information.

I also like this gem:

“But what could anyone do with my Gmail password? Read my spam? Hardy, hur, har, ha! Am I right?”

Yep, totally right. They wouldn’t be able to do nothing. They surely wouldn’t abuse the “I’m dumb and I forgot my password again” feature of every website in existence to issue password reset requests, that would collect in your inbox and give them access to everything you have ever signed up for. Nope, that would never happen.

And it’s not like you use that very same username and password to log into your bank, isn’t it? It’s not like your bank sends you emails with your bank account number and other useful info to that Gmail address, so that the bad guy would instantly know where to go to steal your money. No, that would be silly.

After all, you are not rich, important or interesting enough to warrant such attention. Identity theft only happens to those other people, but not you.

Ignorance, denial and stupidity do not change the fact that passwords are, and have always been a really stupid idea. No one in their right mind will actually come up with a long secure password that would not be vulnerable to a rainbow table attack because they are not going to remember them. It’s just not possible or practical. If you will force them to create such a password, they will write it on a sticky note and glue it to their monitor so they don’t have to look for it 17 times a day. If they don’t care about the security of their own personal email account that everything else they have ties into, they surely won’t care about the account on your service.

Of course there are things that are more secure than pass-WORDS. Pass-PHRASES for example are infinitely better, easier to remember, more robust and less vulnerable to all known attacks. But that boat has sailed a long time ago when everyone on the internet collectively decided that pass phrases can go fuck themselves in a corner while wearing a bowler hat.

Original source: http://xkcd.com/936/

No one uses pass phrases. Let me rephrase that, there is no service out there, that I know of, that encourages it’s users to use a pass-PHRASE instead of pass-WORD. Those services that even bother to force their users to employ more secure passwords, usually do it by telling people how many upper and lower case letters they should have, how many numbers, and etc. So what do people do?

They use JeNnY57, JoHn85, HunTer2 or if you are really strict passWord1@#. Still easy to guess, still vulnerable to a dictionary attack capable of capitalizing letters, and still included in every single rainbow table ever made. And of course users get pissed, because they can’t remember the exact capitalization they used so they end up gluing this one to their monitor as well. Wouldn’t it be more secure if they could use something like this instead:

My friend HamsterFace doesn’t wear his parachute pants on Tuesdays.

How much better is that than HunTer2? It’s way much better, that’s how. Let me count the ways:

  • It’s goddamn long
  • It has capitalization
  • It has non-alphanumerics
  • It doesn’t have any numbers, but look how fucking long and complex that is anyway
  • It ought to be easy to remember unless HamsterFace will start wearing his stupid pants on Tuesdays

Now, tell me who will let you use an awesome pass phrase like that in their service?

No fucking one. That’s who. Be honest, that pass phrase wouldn’t work in your own service wouldn’t it? Cause you probably used VARCHAR(32) for the password field didn’t you? Cause, you know – we might run out of fucking bytes or something when we get seven billion users and become the new Facebook or something, right? No? You VARCHAR(64) then? Tough, it still won’t fit, cause that baby is 67 characters long.

Wait, stop. Rewind. Why are you not hashing and salting that entire thing? Why does it even matter how long the password is? It still will hash to a fixed byte value no? So why would you even care what the user types in?

Did you, per chance, decide to make the password character array variable with a fixed to save memory instead of using a string like a reasonable and non-stupdid person would? You know, in case your theoretical seven billion users all try to log in at the same time? Or is there some other contrived reason why you wouldn’t handle longer passwords? Was your hash function taking too long perhaps, so you decided to optimize it instead of not giving a fuck? I mean, users only log in every once in a while – if it takes a few seconds longer than usual page reload, that’s perfectly fine. No one cares, as long as everything else is fast. But you optimized it anyway, didn’t you?

You know what? I won’t deny it – I did it too. Not recently, not all of this, but I have created really, really, really stupid log-in schemes in the past. I’m just as guilty as the rest of the internet. We are all stupid like that. Premature optimization is like premature ejaculation – you don’t think it will happen to you, but then it feels good in the moment, and it just does. Afterwards you get terribly embarrassed, and you don’t want to talk about it when someone calls you out on it.

It happens to everyone – especially when you are young and inexperienced. I’m of course talking about premature optimization, not that other thing – that never happened to me… And never will cause I’m awesome at “the sex”. Like level 85 in it so fuck you. The point is we shouldn’t optimize to early.

Ideally password fields ought to be unbound, and allow as much crap as the user is willing to type in. If they want to paste the entire text of The Great Gatsby in there, let them. Why not? Giving your password a reasonable character minimum on the password field responsible and praiseworthy. Putting an upper character limit on it is… Beyond stupid. Let me use an analogy to explain to you just how stupid it is. Otherwise you might not get it, and I will have to explain again and we don’t want that.

If you are an American, and you went to high school sometime this century you probably had a locker with a cheap combination padlock. You also probably had that friend who would “prime” his padlock with the correct combination, so that he wouldn’t have to enter it upon returning. He would go to class, smoke a cigarette in the bathroom, then prance over to his locker, pull on the lock and it would just open. He could have not bothered with the whole padlock thing at all, and just leave the damn thing unlocked – but you know, stupid is as stupid does.

And then that one time some asshole stole all the shit from his locker, and he was outraged and baffled how this could have happened. A genuine genius, that friend of yours. I bet you can’t wait to see him at the reunion.

If you are not an American, go watch any High School related movie and/or TV show that was made in the US and you will see what I mean. Those lockers in the hallways – you put your books and your jacket an your illegal drugs in there when you go to class and write BASIC programs on your Texas Instruments calculator while the teacher drones about some shit you actually know more about than him. That’s what everyone does in High School, right?

The friend is the guy who always walks up to the main character while he is putting shit into the locker, and talks about really stupid stuff. The one with the dumb face. You can’t miss him – he is in every movie.

Are we all on the same page now?

Yes?

Good. Let’s continue.

When you put an upper character limit on your password field, you are actively encouraging your users to be that friend. And if you have other arbitrary restrictions then you are even worse than that.

Guess ho has the stupidest arbitrary character restriction on their passwords? Just make a wild guess?

Give up?

Banks.

Yep, the people who you trust with your money have the dumbest rules about what characters (and how many) you can use in a passwords that will protect your life savings from evil dudes from the internet. There was this great article out there aptly titled FUCK PASSWORDS where I found this here gem:

Fuck banks indeed!

Go read the entire thing – it’s funny, insightful and also humorous. As you can see, the author makes a clear case here: banks are pretty much the worst offenders when it comes to mind bogglingly stupid, arbitrary password restrictions. They should be the guys that insist that you use the strongest and most annoying passwords, but instead they force you to use short, and dumb ones.

Why? I don’t know. Perhaps their programmers suffer from that premature ejaculation optimization problem we talked about. Perhaps their back end is a legacy FORTRAN or COBOL system, and passwords longer than 10 characters just don’t fit on the punch cards. Perhaps their entire online thing was written by the 13 year old nephew of the CEO. Who the hell knows. There should not be any reason for these restrictions, and yet, here we are.

Compare this to Twitter which just cares that your password is longer than six characters. Any characters – mind you. Not just the nice ones. Not just plain ASCII with no spaces or symbols. Any fucking thing you want.

Compare it to Google or Blizzard who will let you use two factor authentication. You know what that means? That means that even if a bad guy guesses that your password is “hunter2” (you know, cause you told him at least twice) he still won’t be able to get in. He would also have to steal your phone / key fob, and guess your password at the same time. Which is way harder than breaking into your Chase account. They could break into your bank while sitting on their couch, eating Cheetos and calling people “fags” on Xbox live. To hack into your Gmail or WoW account they would actually have to:

  1. Get the fuck up
  2. Turn off Xbox
  3. Put pants on
  4. Wipe Cheetos stained paws on said pants
  5. Leave mom’s basement
  6. Locate your ass in this here physical realm
  7. Steal a physical thing from your fucking pocket without you knowing
  8. Then guess the password

Most of these guys don’t actually go through with any plan that requires them to do anything beyond step 5. I mean, if you actually have to go and interact with the dude you are trying to rob face to face, this thing becomes serious business. You might as well stay home and break into his bank instead.

I know this whole password bullshit seems like like something that was made up by Terry Pratchett or Douglass Adams for the sole purpose of being satirical and silly. Sadly it is not. It is real life. In fact, these two guys are not nearly as funny as you think they are – they are just good observers of how really, really stupid we behave as a species.

I swear, sometimes I feel like the few of us here, on the internet are the only fucking sane and coherent people left in this world. Everyone else is either to stupid to be a productive member of society, or just completely of their rocker. Then I remember it’s just the observer’s bias, and that we are just as bad as the rest of them. We just excel at being stupid in slightly different ways than they do.

And yet the world keeps on turning.

]]>
http://www.terminally-incoherent.com/blog/2011/12/21/passwords-are-inherently-insecure/feed/ 25
Anti-progress Attitudes http://www.terminally-incoherent.com/blog/2011/06/27/anti-progress-attitudes/ http://www.terminally-incoherent.com/blog/2011/06/27/anti-progress-attitudes/#comments Mon, 27 Jun 2011 14:02:02 +0000 http://www.terminally-incoherent.com/blog/?p=8481 Continue reading ]]> You have doubtlessly already seen this drawn meme-comic already, but I will repost it for the sake of the argument. While crudely drawn (or rather crudely assembled from copy and pasted bits) it gives us an interesting commentary on the way technology has changed our lives in the last decade or so.

A common sentiment these days

Did you find yourself nodding in agreement to this? Did you find the comic a tad depressing? And if you did, why?

I think we can all agree that the premise here is flawed. Yes, it is kinda funny to juxtapose the joyful faces on the left with the same serious, semi-bored stick figure on the right. But, that look isn’t really boredom, is it? It’s concentration. The fact is that our lives are much, much richer, and more interesting now than they ever were all thanks to technology. And yet, I know a lot of people who would take this comic literally and agree that instead our technology impoverishes our lives, and steals the joy away somehow.

Let’s take music as an example. 15 years ago your main source of music was your local record store. When I was a kid, a lot of my friends were big metal-heads but unfortunately that genre was not very popular. Getting new records was always a quest – you had to take a bus or two to some god forsaken, shady neighborhood, step over several homeless people, shoo away the junkies trying to get some money from you, find the shady underground record store (most of them were literally under ground – located in basements and etc), and then tell the intimidating, tattooed gentleman that you would like him to do a special order. And then you would wait 3-6 weeks and repeat the whole thing again.

Ok, I’m exaggerating it a little bit but let’s face it – the amount of music you have on your phone right now probably dwarfs your cassette tape collection from 15-16 years ago, both in size and quality. And it cost you less money since you were probably able to buy most of these songs for $.99 a piece, or rip them from the CD’s you own, and you did not have to spend a single penny on blank media to create mixes you like.

I won’t even mention the breadth of your collection – you probably have songs in your collection by small, indie bands that you would never even heard about in the 90’s unless they were local. How is listening to music from deteriorating cassette tapes on a big clunky sound system better than carrying a rich, varied and personalized music collection in your pocket? It isn’t.

Movies? 15 years ago, if I wanted to watch a movie, I had to walk to the local video store. In the snow and up the hill both ways. Half the time they didn’t even have the movie I wanted. And of course they would invariably charge me a penalty fee because I did not rewind the tape before returning it. Just for comparison, few days ago my brother told me that I need to check out the Game of Thrones on HBO. Few minutes later I was watching the pilot episode on my phone. Horrible, eh?

Communication? Few weeks ago my mom called me on Skype from Poland and since I wasn’t home I picked it up on my phone. We had an international video-call, while I was in the passenger seat of a car, driving on the highway. And it was absolutely free. 15 years ago something like this was pretty much science fiction.

Making music? 15 years ago, the only way to get your music out there was to secure patronage of some pretentious record industry magnate. These days all you need is internet connection. You don’t actually need to sign away your soul to RIAA in order to produce your one hit wonder. In fact, you don’t even need to be that talented to become internationally famous – just look at the Chocolate Rain guy or Rebecca Black.

Technology has made our lives incomparably better, and claiming that it is somehow the opposite is silly. If you think it is bad that kids “sit around on the computer all day” then it is probably because you are getting old. They are not just staring at a box all this time. They are learning, socializing, creating and in general living richer, and more interesting lives that you did at their age. They are probably better informed, and have more refined tastes when it comes the their entertainment that you ever will.

What this cartoon really depicts is the technological convergence. 15 years ago, we had dozens of tools to help us accomplish our daily tasks and pursue our hobbies. Nowadays we have one – an internet enabled computer, be it a desktop, a laptop, a tablet or a smart phone – it’s all the same really. That tool will become smaller, and more portable as the time goes by. Eventually the boundary where you end and your tool begins will be blurred. Our network enabled processing unit and electronic storage will become a integral part of our anatomy. And then we will finally cease to be merely human, and become something more.

]]>
http://www.terminally-incoherent.com/blog/2011/06/27/anti-progress-attitudes/feed/ 8
Dell Next Business Day Warranty Isn’t: Round Two http://www.terminally-incoherent.com/blog/2010/10/18/dell-next-business-day-warranty-isnt-round-two/ http://www.terminally-incoherent.com/blog/2010/10/18/dell-next-business-day-warranty-isnt-round-two/#comments Mon, 18 Oct 2010 14:48:18 +0000 http://www.terminally-incoherent.com/blog/?p=6680 Continue reading ]]> I’m not sure if you had read my previous rant about the Dell tech support fiasco. If you haven’t, I suggest checking it out first for the much needed context. To make the long story short, Dell took two weeks to perform a minor “Next Business Day” repair, and even then somehow managed to fuck it up. Some part was mismatched and/or missing. I called them several times, but eventually gave up since the machine seemed to work fine.

Until one day the display went dark. I’m suspecting the issue was not related to the botched repair – it looked like a blown inverter, which is not uncommon for dell machines. But then again who knows. The machine was purchased in August of last year with a 3 year next business day warranty service. From my previous experience I already knew that the display was not going to get replaced the next business day but I called them anyway. Jumped went through the usual hoops giving the tech drone the service tag, company name, address, phone number, mothers’ maiden name, name of my first pet, shoe size, collar size, the size of my big toe – you know the usual stuff Dell asks to make sure you are the rightful owner of the machine. I mean, they have to make sure that no one who was given the computer as a gift or purchased it used while it was still on warranty is not going to get any tech support, right?

Finally we got to the point where the Dell support drone looks up my service tag in their system, apologizes that it is taking so long, explains that their system is slow, then tells me when is my warranty going to expire. Only this time he said:

“I’m very sorry, but our records indicate this computer is currently out of warranty. I can connect you to our Out of Warranty Service Department if you want to and they will be able to assist you.”

Just to make sure he is not lying to me, I went to Dell’s website and pulled up my warranty information. It said it is active until 2011. I also pulled up the original purchase confirmation from 2009 which clearly stated the duration of the warranty. I have him all this info but he still insisted the machine was not covered. Apparently all their internal systems had the machine listed as out of warranty, but the public facing systems said it was fine. Thoroughly confused he offered to transfer me to customer service to get it all straightened out.

After 15 minutes on hold, and one very confused conversation I realized that he sent me to Shipping and Handling department instead. They sent me to general customer service line, where I was told they don’t actually handle Warranty stuff, and they transferred me to some top level switchboard operator who “happily directed my call” to the main voice operated menu where I was able to select from exciting sounding options such as “place an order”, “order status” or “technical support”. I opted for that last one, and spent some quality time listening to the on-hold music and working on other stuff at the same time.

Round two of tech support went about as well as round one. The drone on the other line admitted that there was indeed a discrepancy between the systems, then put me on hold to consult his supervisor. Only this time there was no music – just quiet. Seeing how I had other stuff to do, I put my phone on speaker and continued working. After about half an hour (closer to 40 minutes actually) I almost forgot about the phone call, when I heard someone un-mute it on the other end. I said “hello” and the phone went silent again. So I waited another 15 minutes at which point the call got disconnected. My hypothesis: the technician wen on a lunch break hoping I will get pissed off and hang up. He came back, discovered I was still holding so he decided this is a good time to go and take a shit.

I called back, and went through the whole procedure once more. Note that I already wasted several hours on this, and explained my issue to at least 5 different people. After about 20 minutes of confusion my companion finally “cracked” the case:

“Ah! Your computer is no longer on warranty because you were issued a replacement machine because your old one could not be fixed. The only way to send the customer a replacement computer is to terminate his warranty. This is why the machine is not covered.”

Of course this made no sense because:

  1. I never agreed to such an exchange – I was offered this as an option, but declined as it would take weeks to process
  2. I never received a new machine
  3. Terminating customers warranty because you have failed to deliver on your end of the warranty contract and fix the issue makes absolutely no sense.

Of course #2 rendered #1 and #3 moot because I really did not have this new machine. He had me read the service tag, express service code and some assorted numbers of the back of the machine to prove I still had the old one. Of course that only proved I did not send the old machine back – and his record clearly stated a machine was sent out to me. I suggested to call the carrier to see what happened to the package – cause it definitely never arrived at my doorstep. Of course I was starting to get nervous. What if they sent it, and it got lost? What if they sent it to the old company address and someone at the old office jacked it?

Without even bothering to put me on hold he dialed FedEx number and conferenced me in. Smugly he asked the representative to what happened to his package. Turns out it was… Returned back to the server. He had the date, address, and signature on file. Whoops. Luckily for me this was a massive clusterfuck on their end. I asked him what happens now, and he went to talk to his supervisor.

Fast forward 20 minutes of me listening to on-hold music and he comes back with the following:

  1. The machine can’t be serviced at this time because the warranty information in their system is all wrong
  2. Someone has to fix it, but neither him nor his supervisor have access to that system so they will have to escalate it to Tier 2.
  3. No I can’t talk to Tier 2, Tier 2 does not have a phone number. They have an internal form that they thing sends them a message… probably…
  4. Furthermore Tier 2 clocks out around noon so they won’t get the message till the next day.
  5. Once they get the message they will probably call me to ask me stupid questions. That should happen within 2-3 days.

Translation: your case requires too much effort so I will make like I’m escalating it and then conveniently forget to send the message via that buggy ticket submission portal that craps out and loses submitted information 2 out of 3 times.

I called them back the next day, went through the meet and greet session, then spent about 20 minutes explaining my case because:

  1. This technician had very thick accent and major trouble constructing coherent sentences in English
  2. The only thing worse than his spoken English was his comprehension – he could not for the life of him understand what I was getting at
  3. He put me on his speaker phone which meant I had to hear every word I said with a 3 second delay which was infuriating – but he wouldn’t switch it off even when I asked

Eventually I gave up, hung up and called back again. This time I lucked out and got connected to The Only Resolute, Competent and Able Technician in all of India (TORCATI) and he was awesome. I wish I knew his name because he definitely deserves a raise or a promotion. Actually, scratch that – he just did the job he was supposed to. He only looks like a hero in comparison to the 5 or 6 asshats I talked to before I got to him. Anyway, TORCATI fixed everything. He got the warranty thing straitened out by himself. Well, not by himself really – it was a team effort actually. He got his supervisor to call the next person in the chain who found out contact numbers to the people who handle warranty issues, called the right people and they all sat down to try to figure out the extent of this massive fuck-up. Then he was nice enough to explain it to me:

  1. Back in march I made about 20 phone calls during which I was getting progressively disgruntled and angry about my Next Business day warranty
  2. At some point, someone at Dell decided to just cut their losses and send me a new damn machine
  3. The new laptop was boxed, tagged and sent out
  4. Naturally, my 3 year warranty was transferred to the new box (which had a different service tag) which is why the system did not show up in their internal system
  5. The public facing warranty app however pulled the information from a different place, and apparently it was never updated which is why I saw it as covered
  6. When the machine bounced back to the sender, no one bothered to investigate what happened. Chances are there is a mysterious box with a brand spanking new laptop still on some shelf in a Dell warehouse and no one there has any clue what to do with it.

Granted, unraveling this mess was nowhere near easy. TORCATI spent close to 3 hours working it out while I was on the phone with him. He would periodically check back with me and update me on the status of the whole operation. Eventually it got resolved and the display was replaced the next day. And it only took me 3 days and a dozen phone calls which is a bit of an improvement from the last time.

]]>
http://www.terminally-incoherent.com/blog/2010/10/18/dell-next-business-day-warranty-isnt-round-two/feed/ 5
Missing Recycle Bin http://www.terminally-incoherent.com/blog/2010/10/11/missing-recycle-bin/ http://www.terminally-incoherent.com/blog/2010/10/11/missing-recycle-bin/#comments Mon, 11 Oct 2010 14:10:02 +0000 http://www.terminally-incoherent.com/blog/?p=6649 Continue reading ]]> “Hey Luke, you know about this computer stuff, right?”

If there is anything in the world I truly hate, it is this precise sentence. I’m honestly considering inventing some fake profession for myself, so I don’t have to tell people I work in the technology sector. Let’s face it, nothing good can possibly come out from admitting that you are a techie in a crowd composed of technophobes. You would think that it would earn you some respect with them, but it does not. Admitting that you understand how computers work is basically like saying “I give free tech support 24-7, especially on the weekends – call me about anything”. Seriously.

So my plan is this – I will move away somewhere where no one knows me, and tell people I meet that I’m a professional thatcher or something like that. This way I will never again need to do free tech support.

An acquittance cornered me recently and opened up with that very phrase. My immediate instinct was to try to open the nearest window and jump out to escape this assault. Granted, I was pretty high up but I figured that I could probably survive the fall with couple compound fractures and a massive concussion which would probably be preferable to helping this guy. Unfortunately the windows did not open on that floor.

To make a long story short, this guy “lost” his recycle bin icon. This is not unusual – sometimes that particular desktop icon goes away for whatever reason. Vista and Win7 actually have a mechanism that allows you to restore it at any time buried down somewhere in the desktop customization panels. XP however does not have that, and so you usually need to end up using something like the official Tweak UI power toy to get it.

Or you can just send the person to this knowledge base article. This is precisely what I did. I sent him an email with that link, and asked him to try it out. Unfortunately this was slightly beyond his comfort zone, and after about 4 or 5 rounds of emails and a phone call I realized that running a simple MSI file that requires you to click next a few times is beyond his capabilities.

So I manually made a registry file that would be created by this fix, and sent that to him figuring out that double clicking on an attachment and choosing Yes will be somewhat easier than clicking next 3 or 4 times. I mean I figured the less clicks he has to make, the less chances he has to screw it up. But that didn’t work either, because Outlook blocks .reg attachments for security reasons.

Renaming the file did not work either because, after about 6 emails I sort of gave up on the idea of explaining to this guy how to rename a file.

I tried assisting him remotely using both crossloop.com and join.me but his security software promptly blocked these apps from accessing the internet. I tried to get him to unblock them, but the conversation went something like this:

“Do you have McAfee, Norton or something else?”
“Yes”
“Ok, but which one? Do you maybe see an red M icon or a yellow globe next to the clock?”
“The clock?”
“Yes, in the bottom right corner of your screen. There should be bunch of icons next to it”
“Bunch of what now?”
“Little pictures and symbols next to where it shows the time”
“Ok, what about them?”
“Can you describe them?”
“No. How do I describe them? I don’t know this computer stuff, I told you that.”
“Well, does any of them look like an M?”
“What the hell is an Anem? Luke, I’m computer illiterate you can’t just throw these computer terms at me.”
“No, a letter M as in Mary”
“Oh… No. Wait… No, I don’t think so. I’m not sure. Is there another way to check?”
“Alright, let’s try this – go to Start, All Programs…”
Woha, hold on… You are way ahead of me. Where do I click first?”
“The Start menu”
“I don’t have that.”

And so it went for another 5 minutes at which point I gave up. So we established that he will just swing by my place the next day and let me take a look at his computer in person.

He brings it in, I power it up, look at his desktop and see the recycle bin icon in the lower left corner of the screen. I point it out to him and he goes:

“Hey… What do you know. I didn’t even look in that corner.”

In retrospect, I should have just jumped out that window. The sweet and merciful embrace of death would probably be preferable to the intense mental anguish this is causing me. I honestly feel that I lost some brain cells because of this. I think some of my neurons just threw up their hands in the air, and just walked out when this happened. Another bundle probably died when I proceed to bang my head against the table for 5 minutes after the guy left.

The moral of this story is this: don’t tell people you are a software engineer. Tell them you are a professional thatcher and/or muskrat breeder. Trust me on this one. It is better that way.

]]>
http://www.terminally-incoherent.com/blog/2010/10/11/missing-recycle-bin/feed/ 20
Backing up your work: Common Sense 101 http://www.terminally-incoherent.com/blog/2010/09/06/backing-up-your-work-common-sense-101/ http://www.terminally-incoherent.com/blog/2010/09/06/backing-up-your-work-common-sense-101/#comments Mon, 06 Sep 2010 14:07:44 +0000 http://www.terminally-incoherent.com/blog/?p=6499 Continue reading ]]> I keep telling people how important it is to back up their data on regular basis but most don’t listen. Honestly, it is either like preaching to a choir or like talking to a wall. Those folks who could be convinced already back their stuff up regularly. The rest can’t be bothered no matter how long and hard I try to convince them. Until of course they learn this lesson the hard way.

Few days ago I stumbled upon a little human interest news blurb titled: Stolen laptop contains man’s dreams. In a nutshell it is a story about a guy who lost his masters thesis because his laptop got stolen. Which is a monumentally stupid thing to do. I’m suspecting the aim of the story was to evoke pity for the poor guy but I have none. You reap what you sow.

I feel like I’m beating a dead horse, but in this day and age there is just no excuse for backing up important work. I can understand why people often neglect to do full disk backups. It takes a little bit of effort to get it accomplished. If you have many gigabytes of pictures, videos and documents backing up is not trivial. It’s not like you can zip it all up and send it to yourself in an email for example. It usually requires some investment – for example a purchase of an external drive or some online storage/backup plan from a company like Mozy. It is not rocket science, but I get it – people are lazy.

But, if you are working on something important – like a thesis, backing it up is trivial. Send a copy to yourself in an email. Upload it to Google docs. Use Dropbox. Save it to a thumb-drive that you always carry in your pocket. None of the above costs money, and it takes seconds to accomplish. In fact, it is foolish not to do this.

You don’t even have to be a “computer guy” to realize the folly of not backing up your crucial work. It is just common sense based on experience. For example, I have accidentally deleted my work more than once. I had a computer die on me more than once. I have heard the dreaded *CLICK-CLICK* sound of a dead hard drive many times. I have learned this lesson a hard way – always have at least one redundant copy of your important work.

When I was writing my thesis I had multiple copies:

  1. One on my desktop at home
  2. One on an external drive I used to back up my home computer
  3. One on my laptop
  4. One on my work computer
  5. One on a thumb-drive I carried in my pocket
  6. One in a private SVN repository I set up on a remote server

All of these locations were synced via SVN so they usually remained fairly up to date. And I was still slightly paranoid about losing my work even though a simultaneous failure of all the machines that held my copies was very unlikely. Out of the paranoia by the end of my college career I also had a nightly script running on my desktop which would zip up my thesis folder, email it to me, and sftp it to another private remote server.

You can say I overdid it, especially since none of my machines failed while I was working on my thesis. But I always thought that with backups it is always better be safe than sorry. After all, all of this is almost effortless. When our parents (or in some cases grandparents) were writing important papers like that, they used typewriters or long-hand. For them backing up their work was impractical and time consuming. It usually involved meticulously re-typing the entire document, using special carbon-copy paper, or locating a xerox copy machine (after they became popular). We have it easy – we can click a button and have our work backed up to multiple sources within seconds.

I just don’t understand why wouldn’t you back up “the work of your life”. That’s not even being lazy – that’s being downright criminally foolish and reckless.

]]>
http://www.terminally-incoherent.com/blog/2010/09/06/backing-up-your-work-common-sense-101/feed/ 9