Like last week, these are some interesting posts I found around the web, along with some commentary from me.
things I don’t have that many do — Lists like these always make me reconsider whether I really need certain things in my life. Of course, I have most of the items listed, but I had this in mind when I got my hair cut shorter recently, and when considering other purchases. I worry a little about Leo not having health insurance, though.
Should I Upgrade to Ubuntu 13.04? — Yes, they could have added more features, but I’m happy they focused on fit and finish. It’s noticeably faster, even running on a USB stick, so I’m considering upgrading from 12.04 LTS.
How an Energy Audit Saved My Family $2,400 a Year — A coworker had a similar experience once. Heating oil is something to watch out for. Stories like this make me nervous when considering housing options.
KISSDB: Tiny database — Very short code, seems like it could be useful. I’d love to see example uses.
Can I Get DRM-Free Movies and TV Shows Without Pirating? — Pretty much sums up the state of things. I’m still unhappy about a TV season I bought in iTunes; I’m avoiding purchase of digital video unless they’re free from DRM, and you should consider doing the same. Rental is an okay option (e.g. Netflix, etc), but doesn’t seem like the end of the conversation.
Chicken meets egg with Facebook, Chrome WebP support — I’m really hoping WebP and WebM can catch on. It seems very reliant on finding a good scheme of browsers declaring what formats they understand, and a good option for users.
These are some interesting posts I found around the web this week, along with some commentary from me. You can check out last week’s roundup too. :)
Four-part series shares story of Guitar Hero's Iowa roots — I had always been curious about Budcat, especially as an Iowa City company that made something so recognizable. Sad that it ended without warning, but I’m hopeful for what the former team members have made since then, especially the Ouya game.
It just works: Dell XPS 13 Developer Edition Linux Ultrabook review — I’m happy to hear Dell is being a good member of the open source community; I had chosen System 76 instead because of what I had heard aobut Dell in the past. I’d really like to see Ubuntu catch on as a desktop for developers, and it’s great to see this as a realistic, well supported option. If only the hardware could be configured (maybe 4GB RAM instead of 8?).
Lilbits (4-17-2013): Old computers never go out of style — Too many people throw out old computers, rather than repurposing them. Although many of these are ancient by many people’s standards, I think it’s worth remembering that you don’t need the fastest machine on the block to do useful work.
blog.izs.me: Unix Philosophy and Node.js — I’ve never felt that Node.js has ever embraced Unix as much as Ruby has, but this article made me rethink what the Unix philosophy means in practice.
I thought I’d try something new and share some links I collected while reading this week, along with some commentary on why they were interesting to me. I hope you find some of them worth a read!
How Your Commute Affects Your Bottom Line – Many people seem to drive to work just out of habit, forgetting about walking, biking, or taking the bus. A daily walk to work is a great thing!
the future of advertising – One of Leo’s first posts in a while. I can certainly agree with his perspective, but so many people have become so used to pervasive advertising in return for free goods or services that going the opposite direction is an uphill battle…
Alienware Joins the Ubuntu OEM Family – Clearly, it’s a good thing that Steam for Linux was released. It’s exciting to see major vendors picking up Ubuntu, although it has quite a ways to go before becoming mainstream.
Your Degree Isn’t a Ticket to a Career – I know this is especially true for software engineering. You always need to be constantly improving and pushing yourself to become better at your craft (including networking with others in your field).
Buy Your Groceries Sensibly – A reminder that Trent (the author) lives in Iowa too. Fareway and Aldi are always great baselines (I tend to prefer Fareway, as they’re based in Iowa)… however when you need more than staples, you sometimes need to shop elsewhere (your local food co-op isn’t a bad place to start, if you know their sales).
The preferences look nice but are hard to use. I wouldn’t have found out that I had to click the “check” next to my newly-added city to get it to stick if I hadn’t read it on a blog post. That needs a fix ASAP, as I’m not the only one running into it!
Some people have recently asked me about switching from an iPad to a Nexus 7. Did I have to give anything up? Am I still happy with the choice?
My conclusion: Nexus 7 is the better choice for geeks over an iPad. Of course, I think it’s a good choice for non-geeks too. :)
I like my Nexus 7 a lot. In most ways, it seems comparable to an iPad Mini (I had an iPad 2). There are some gotchas, especially if you’ve already invested in the iOS ecosystem. In my case, I felt the difference in price ($429 for a 32GB iPad Mini vs $249 for a 32GB Nexus 7) and features I wanted made up for that. Having used both, I would definitely still choose the Nexus 7 over an iPad. Whether it makes sense for you will depend on your use case. I’ve also read that Android devices are quickly becoming the better choice for anyone under 35 or so. I don’t know if that’s true, but my argument fits in with that pattern.
The Nexus 7 isn’t perfect. Most of the reviews (e.g., CNET’s) are pretty spot on, but these are some observations I’ve had that you might not hear elsewhere. They’re coming from a geek’s perspective with about 2 months worth of Android usage. I’ve been using iOS since 2008.
Pros
You can run software you’ll never see on the iPad (e.g. AdBlock for Android, an SSH/SFTP server so you can transfer any files you want over WiFi, etc.) Rooting isn’t required for these.
Real Chrome and Firefox browsers, as opposed to skins over Safari like you’ll find on iOS. This is important to me as a web developer, since Android browsers are supporting more and more advanced HTML5 features because of the competition that this opens up. No OS updates are necessary to get the new web browser features, either.
You can download any files to the device, which is really nice. I’ve lost track of how many times I wanted to add an MP3 from a website to my iOS music library, which is trivial in Android.
Related to that, I already have several Micro USB cables (as you might), so I’m happy that I don’t have to buy new, expensive cables just to use future devices. (That’s a part of why I’m considering switching completely to Android.)
It’s clearer to me that I can do something useful with this device when it’s 5 years old. The bootloader is completely open, so I could even run Ubuntu in the future if I wanted.
Installing and updating applications is nicer. Applications can be remotely installed with the click of an “install” button in your laptop’s browser, and they can be set to automatically update in the background if you want. On iOS, I go a long time between app updates, mostly because it’s a manual process.
Humble Bundle for Android meant that I had already purchased Android games when I purchased their Windows/OS X/Linux counterparts.
I still have “smart cover”-like functionality (closing the cover makes the device sleep) with the Poetic Slimline case. Note: not all cases support this.
I can play Vorbis audio, along with MP3s and AAC I purchased from the iTunes Store. That opens up music in my library that I could never play on iOS.
Given the choice between the mostly-closed iOS ecosystem and the Linux-based Android OS, using a Nexus 7 potentially helps the overall open source ecosystem.
It easily fits in my front jacket pocket which makes it really nice to use on a bus. (Even the iPad Mini would be too big.)
Gesture typing and widgets are much more useful than I thought they would be.
Cons
Fewer apps are specifically made for tablets right now. This isn’t often a problem, but you can tell some 3rd party apps were built with a smartphone screen in mind. More developers start by developing for the iPad first and then Android tablets. However, the marketplace may be starting to shift, due to popular Android tablets.
Sometimes, I’m surprised that things are slow. On occasion, I see the launcher slow down and restart. It might be a misbehaving widget; I’m not sure. But it has been noticeable, and I don’t remember it happening as often on the iPad.
If you already have an iOS device (like I do), you might have to find equivalents or repurchase some software. This hasn’t been a big issue, as most apps that I actually use are available on Android.
The Nexus 7 doesn’t have USB Mass Storage (UMS) like older Android devices, which means file transfer over USB is more difficult. It can use the MTP and PTP protocols, which aren’t as widely supported. This wasn’t something I knew going in, which makes a difference on Ubuntu (although Ubuntu 13.04 is supposed fix MTP support). Transferring music after mounting the Nexus with SFTP works fine, though it doesn’t integrate well with Rhythmbox.
If you download more than a handful of files, you’ll have to get a third party file browser or use SFTP to manage them easily. Also, files transferred with SFTP aren’t always picked up in media apps, so you may need to rescan on occasion.
There doesn’t seem to be hardware decoding of WebM video, which basically means that MPEG4 (.mp4, .m4v, etc.) is the only realistic choice for HD video. I would have expected this situation to be better in the Google-produced Nexus 7.
The Google Play Music app is generally pretty good, but it’s not as nice as the Music app in iOS. However, since there’s an open ecosystem, there are great third party apps like doubleTwist (my current preference) or Winamp (nice, but not a good option for tablets yet).
I hope this list helps out another geek who’s considering making the switch, especially if you’re the kind of person who cares about the types of things I noted. Like I said, I’ve been happy with my choice so far.
I recently wrote a comment for “GitHub for Mac: Easier Updates”. Since it sums up my feelings on several subjects (including my feelings about the future of OS X), I thought I should repost it here.
Maybe more people use this than I realize, but I have to say I still don’t get this.
As a web developer myself, I tend to support web-based apps; perhaps the Mac app is popular with Mac/iOS developers? More can be done from the web interface, which works on Windows, Mac, and Linux. (Plus, the web UI always stays up to date.) The only additional feature this really seems to add is a “sync” button locally. Perhaps I’m missing something, but this is all that I take away from the feature list and what I’ve used of it.
To be honest, the direction in which OS X Mountain Lion is headed doesn’t thrill me. Since I’m contemplating a move from OS X back to Linux, it’s disappointing to see an interface for this closed system even being worked on. Such a huge amount of open-source projets are hosted on GitHub (including the Linux kernel itself). If I were to expect Linux support from anyone, it would be you guys. I can understand that OS X is likely a large market for GitHub users, but I would wonder about the portability of this app…
This would be much more compelling if it were an open-source interface for git repos, but I could understand how that might not be in GitHub’s best interest. (But imagine a GitHub tool built by the users, for the users…) Maybe I’m more of a git power user than I realize, but without at least support for a remote other than origin, multiple operating systems, etc., I can’t say this is something I’ll ever use. Making it open-source would be a bonus, although it seems unlikely at this point.
Maybe I’m just missing something, but other commenters here would seem to agree.
Update: By the end of the day, they deleted not only this comment, but many others that cast an unfavorable light on GitHub for Mac. (There was at least one other that had a function named shallWeUseThisSoft.)
In the interest of preservation, here are some other recently added comments that seem likely to be deleted:
Please do not distribute through the mac app store and if possible do not use an apple developer id to authenticate your apps so that we don’t end up with an ecosystem fully controlled by apple (see the gatekeeper non sense they are going to introduce in mountain lion).
We have a simple application that doesn’t have an ActiveRecord dependency. It’s deployed to Heroku, and it’s been working fine on Rails 3.0.x since April 2011. We knew we weren’t using ActiveRecord for database connectivity, but we let it be, since it wasn’t causing any issues.
When upgrading to Rails 3.1, we found that every single page would give ActiveRecord::ConnectionNotEstablished on our staging environment on Heroku. The same error didn’t happen in development. Although we might have been able to get gem 'pg' set up and working, we really didn’t need an ActiveRecord dependency at all.
That’s what Rails 3.1.0 generates when running rails new myproject --skip-active-record. (Note that require "active_record/railtie" is commented out.) This solved our ActiveRecord::ConnectionNotEstablished problem, but gave us a few others, namely:
Fixtures
ActiveRecord::RecordNotFound (used for 404s)
Fixtures
There’s some normal stuff to get rid of in terms of spec_helper.rb and/or test_helper.rb. Here’s an example:
# File spec/spec_helper.rb
# # If you're not using ActiveRecord, or you'd prefer not to run each of your
# # examples within a transaction, remove the following line or assign false
# # instead of true.
# config.use_transactional_fixtures = true
You may have others. Tarantula had to be adjusted for us, for example.
ActiveRecord::RecordNotFound
ActiveRecord::RecordNotFound, however, was an interesting problem. Everything worked fine without ActiveRecord except the places where we were using ActiveRecord::RecordNotFound to give a HTTP 404 to the user agent. That seems strange in a lot of ways, because a 404 shouldn’t have anything to do with your chosen ORM. My first intuition was to do require 'active_record/errors' (see also the Rails docs), but that caused problems with assumptions in 'rspec/rails'.
Right now, the below is what we ended up with:
# File: config/application.rb
# Pick the frameworks you want:
# require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"
# For errors like ActiveRecord::RecordNotFound
require "active_record"
Our automated tests (Rspec, integration tests, Tarantula, Selenium, etc) all pass with it and we no longer get ActiveRecord::ConnectionNotEstablished, but we still have an ActiveRecord dependency I don’t like. (There must be another error we can raise — I don’t entirely like the render '/404.html', status: 404 solution for several reasons.)
I’ve been hard at work taking some code I had originally written for myself and packaging it up as two open source projects. I’ve been very happy about the amount of interest I’ve received in both. I encourage you to take a look and see if what I’ve released would be useful to you. Feedback (and contributions) are welcome!
Be lazy! Let Maid clean up after you, based on rules you define.
Maid keeps files from sitting around too long, untouched. Many of the downloads and other files you collect can easily be categorized and handled appropriately by rules you define. Let the maid in your computer take care of the easy stuff, so you can spend more of your time on what matters.
Think of it like the email filters you might already have, but for files. Worried about things happening that you don’t expect? Maid doesn’t overwrite files and actions are logged so you can tell what happened.
Maid is inspired by the Mac OS X shareware program Hazel. This tool was created on Mac OS X 10.6, but should be generally portable to other systems. (Some of the more advanced features such as downloaded_from require OS X, however.)
Your rules are defined in Ruby, so easy rules are easy and difficult rules are possible.
A Chrome extension to help you keep tabs on info you want to monitor. It’s great for cycling through tabs on an external display, like a TV.
TabCarousel is simple: open tabs you want to monitor throughout the day, then click the toolbar icon. To stop, click the icon again.
By default, TabCarousel will flip through your tabs every 15 s, reloading them every 5 min. It’s great on a unused display or TV. Put Chrome in full-screen mode (F11, or cmd-shift-f on the Mac) and let it go.
If you want to change how often TabCarousel flips through your tabs, right click on the toolbar icon and choose “Options”.
Example Uses
On a HDTV that has a computer attached, open the NewRelic overview (and Background Tasks, etc.) for each app you’d like to monitor. Set NewRelic to kiosk mode for each page, then hit the “Tab Carousel” toolbar button.