The Future of Media
Monday April 13, 2015 16:18:00

“The Simpsons” will no longer be available on DVD or Blu-Ray. Instead, Fox will sell a subscription to “Simpsons World” which allows access to every older episode.

Looks like the end is here.

In the future all babies will be implanted with a special chip that gives them life long access to Disney products (which by then will consist of the majority of humanity's created works); parents will spend lifetimes paying for these chips or the loans that fund them. The lower classes will live in the sewers, their only respite watching 1930's films of monkeys bathing cats.

Drinking Games
Saturday January 10, 2015 18:53:08

Recently I read the following from an otherwise interesting series of articles from GitHub detailing how their process works:

It's a lot safer to hire someone after you've had a few beers with them in a non-threatening environment rather than create a large, stressful interview process… We all work together, but we're not just coworkers; we're friends. We bleed friendship and work together, so it's hard to tell when we're discussing work and when we're chatting over beers. This is not just for a fuzzy feel-good feeling.

I hate it when a dev shop cites going out to drink with the team as one of their most important duties. Evaluating coworkers based on what they do in their personal time intentionally makes a giant leap towards all sorts of other prejudices by starting with one, which is that everyone loves to drink (I would imagine that makes recovering alcoholics uncomfortable). I am absolutely not surprised that there has been controversy surrounding GitHub and alleged sexual harassment.

If a team or a leading personality on that team truly believes the venn diagram of “great developers” and “people who want to be our / my good friends” perfectly overlaps it should be taken as a sign of narcissim or at least hubris.

No one seems to realize how sick and twisted dev culture is right now. The most common thing I hear from developers who are trying to cast their team in friendly, postive or non-threatening light is that they enjoy beer. As if enjoyment of beer matters. It is actually very similar to how in most rural parts of America otherwise nice, friendly people will, in an attempt to be disarming, tell you that they believe in Jesus Christ like all good people. They're just blind to how potentialing alienating the statement is. What if you're Muslim? Or an athesiest? Is the message that you are not like them? Similarly dev teams try to convince potential canidates they're cool with “we drink” and don't realize how much of a filter they're putting on a potential relationship.

I've worked on development teams where I felt everyone was evaluated based less on progress made to the project and more on what happened during happy hour. That was not a fun feeling. Over time, it became difficult to view anyone in a positive light when they made a mistake at work, because it appeared they were putting more effort into the friendship club than their craft and for that got protected from the fallout of their work-related mistakes.

Certain types of knowledge stay with a developer. If you master Git, you'll always have a better understanding of version control and maybe release processes at any future team or job. If you master C++, there is likely never going to be a language you won't be able to pick up. But if you instead focus your energies on being friends with Billy, that won't be very useful if you ever wake up deciding you don't want to work with Billy because after you bonded he let you in that he was secretly super racist. The same outcome can happen if Billy gets fired or ends up not working on your project anymore.

The worst evaluation I ever got in my life came from a new manager. He said he didn't know what I was doing yet but everyone thought I was funny so I just needed to keep it up. That was literally the only feedback I got about my performance. I got a middle of the road (but positive) rating but it didn't matter because since then I always distrusted that manager.

Today there is thankfully a greater focus on getting female developers and righting the wrongs caused by blatant 1980's sexism. But even as so many male devs loudly proclaim they have no prejudices and don't understand why its so hard to hire or find female devs, we live in a time when it still feels too controversial or above par to say developers should be evalutated based on how they develop, and nothing else.

True equality in the work place does not happen by simply “avoiding” sexism, exclusionism, or other clearly bad things. It is accomplished by stringently reviewing your own codes of conduct in how you judge others and actively striving for a high level of professional integrity while being aware of how your own prejudices might be affecting you. Unfortunately growing this skill requires more than just a trip to the bar.

OneDrive review
Saturday August 16, 2014 05:20:08

I got a free two year subscription with about a hundred gigabytes of Microsoft OneDrive with my Surface Pro 2. If you haven't heard of OneDrive, it's Microsofts way of extending your harddrive by allowing you to store data in their Cloud, similar to Drop Box.

A few weeks back I decided to start using it, even though this meant I had to switch to Microsoft accounts on all my computers, which I had previously objected to due to the creepiness factor.

Initially, OneDrive seemed to “just work.” I'd add a picture or some text file to the OneDrive folder on my desktop, then turn on my Surface to find it's OneDrive folder had the same file there, from the moment I booted up. This solved a major peeve of mine, which is that I must sometimes spend hours syncing files between my Surface and Desktop whenever I switch between the two. OneDrive looked posed to deal with all that crap for me so I wouldn't have to muck with rsync, git, or homegrown tools I'd devised over the years.

But like an abusive lover, OneDrive started out nice and later morphed into a frightening, erratic liar.

The big problem is OneDrive can sometimes take *forever* to copy files around. This kind of defeats the whole “seamless” idea because what I end up having to do is leave both computers on for hours while OneDrive sorts stuff out. I'm aware that this may happen due to network latency but the issues appear unrelated to the size or quantity of files being uploaded and downloaded.

That wouldn't be a problem if it weren't for issue number two: OneDrive is a liar. The interface has this uber-opaque, Fischer Price vibe to it. OneDrive appears in Windows explorer where it looks and behaves like a local drive. But the only options you get are “sync” and “pause syncing.” Oddly enough, it's always that either both are available or both are greyed out. To see the status of what it's doing, you have to open the OneDrive tablet style app, which mostly serves as a clumsy Windows 8 style file browser but contains a small status line at the top of the screen with a single phrase like “one operation in progress…”

This information is often total BS. Many times I'll open up say my Surface for the first time in a week and realize it's missing a directory of newer stuff. So I check the OneDrive tablet style app on the Surface, but all it says is “all files are up to date.” At that point I freak out, thinking maybe OneDrive believes the Surface has a newer version of the data so things will get deleted from the OneDrive servers (note: this has never happened, but I still worry about it all the time). I end up going back to my desktop with a USB drive just to backup the files I need. I'll also click sync on both machines, but get only updates such as “”getting file information…“ for a few minutes followed by ”all files are up to date." Hours later though, just as I'm contemplating abandoning OneDrive entirely, I'll check the Surface and see that the files I'd been fretting over all this time have just appeared with no fanfare.

This latency and abject lying might be ok if I left all my machines on all the time so things were also sync'd when I switched, but one point of “The Cloud” is that these big companies leave their computers on so mere mortals like me don't have to. If I have to keep my Surface and Desktop running for an hour just so a single text file will be available when I switch machines then OneDrive has failed a major part of its mission.

Finally, OneDrive has no way of excluding files. Originally I was storing major amounts of code in OneDrive before I realized it was constantly re-syncing 200mb of compiled object files back and forth. This is a huge deal breaker for storing anything other than simple scripts or compiled tools that don't change.

Even with these faults, OneDrive still does better than my old rsync scripts or Git when it comes to storing infrequently changing large media files, such as photos or drawings. For example, I can stick numerous desktop background images in the OneDrive folder and have them appear on all my machines. The best use case is that I can shove my Sublime installation into OneDrive so I always gets all my plugins on any machine, regardless of where I set them up.

However, due to OneDrive's failings I still end up having to make sure all my local git repos have been pushed to GitHub before I switch and that my old rsync scripts have run, which is a real shame.

Chocolatey- the delicious apt-get-alike for Windows
Sunday February 23, 2014 18:00:58

A long time ago, I realized that despite being somewhat crummy in terms of typical shell features, the Windows command prompt could do everything I usually needed a Unix shell to do. The only issue was the lack of programs and dealing with the horrible way most user guides instruct you to deal with setting environment variables. I decided to use a batch file to set all the environment variables I needed and documented how to do this here. It was a huge improvement over how I'd done things until then, where I'd simply hoped the installers had set (or not set) whichever environment variables I needed and kept a collection of lesser batch files to explicitly change variables when appropriate.

But the experience was still not optimal, and I felt this whenver I switched machines. The problem was all of the tools. So, I decided to create a “tools” directory with actual programs, such as Sublime Text, which I'd want to use on any Windows machine I moved to. This turned out to be a disaster; maintaining all those binary files led to wasted space and confusion. Eventually I settled on storing only a few select things in there, such as the all-important batch file I mention above, as well as a few important things such as my Key Pass install. For everything else I used the native installers which ended up being easier but left me with my original problem.

As any Linux user knows, this state of affairs is less than ideal. It's also fairly specific to Windows. In Linux, there are normally these amazing programs called “package managers” which let you download and install things by entering a single line of text at the command line. OSX has two of them as well- Homebrew and Macports. Windows actually has had package managers too, but the problem is there have been about a half dozen of them which I've seen and none of them contain that many packages. The most important part of a package manager is that it needs to be ubiqitious and have access to everything.

Enter Chocolatey

Yesterday I stumbled across “Chocolatey”, yet another package manager for Windows. I'm ready to say that this is the one all Windows people should be using. It is the first package manager that is good enough to make not using it seem like a mistake.

Why, in my opinion, is Chocolatey better than everything else?

First, it piggy backs off of multiple pre-existing technologies, including traditional Windows exe installers and MSIs. This means many Chocolatey packages are just simple bits of code which silently install pre-existing installers. This means if authors don't want to waste time writing Chocolatey packages in addition to their traditional installers, they don't have to- they (or someone else) just writes a tiny Chocolatey package file that defers to the installer. Adding packages like this is so easy to do it took me just a few hours to write my first one last night.

Second, it piggy backs off NuGet. This is a package manager for .NET language development that has become increasingly popular over the years for distributing libraries with or without code. NuGet recently added support for C and C++ code as well and will probably be the defacto code library manager for Windows in the future (baring any stupid ass decisions by Microsoft to fragment their own ecosystem, which they are fond of doing). What's great about backing Chocolatey with a development focused packaging tool is it makes it more approachable for exisitng developers and also allows for user-facing applications to be created from source, typical to how many Linux packages are distributed.

Third, while many Chocolatey packages do seem to put extra crap on the %PATH% environment variable (mostly because they're based off Windows installers which do the same thing), Chocolatey itself adds a single directory to the path which packages are then invited to install additional batch file redirects to. This helps to keep the %PATH% clean while allowing users to run “cinst” (the chocolatey install program) and have new programs available on their path.

Fourth, Chocolatey has great aesthetics. The name “Chocolatey” comes from a silly joke about how “everyone loves Chocolatey NuGet” which I support as a lover of inane project names that will be passive-aggressively disrespected in a “professional” envrionment (this joke is helped tremendously by the fact that the NuGet logo, when colored brown, looks like a delicious confection). I also love how Chocolatey's output looks- it isn't afraid to use colors- and how pretty it's official website is.

Fifth, installing Chocolatey is very simple- just copy and paste a single line into a command prompt! It's only serious dependency is PowerShell which makes it incompatable with Windows XP, but at this point *no one* should be running XP.

Finally, Chocolatey has already bested its competition by having a ton of packages- 1636 at this moment- and the count is continously growing.

Chocolatey is the future of Windows scripting and development. There is literally [no reason you should not visit it's site and begin using it today.

<---2015-04-25 09:32:55 history 2014-01-01 18:50:11--->

-All material © 2007 Tim Simpson unless otherwise noted-