Project Sputnik: Manual Installs
Dell promises that eventually Project Sputnik laptops will ship with:
Profile tool: a software management tool to go out to a github repository to pull down various developer profiles such as javascript, ruby, android.
The beta version of the laptop doesn't include this tool. I expect I'll end up wiping and reinstalling more than once, so I'm going to keep track here of what I end up installing by hand. When we get to the Big Rock Candy Mountain, I expect the profile tool to take care of all this for me.
Project Sputnik image
Firefox Nightly
sudo add-apt-repository ppa:ubuntu-mozilla-daily/ppa
sudo apt-get update
sudo apt-get install firefox-trunk
Firebug
Installed within Firefox from the 1.11 alpha build share.
Sublime Text 2
sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get update
sudo apt-get install sublime-text
Dropbox
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5044912E
sudo add-apt-repository "deb http://linux.dropbox.com/ubuntu $(lsb_release -sc) main"
sudo apt-get update
sudo apt-get install nautilus-dropbox
The box does ship with git installed (good) but the ruby is fairly ancient (bad): 1.8.7p352.
libxml2
My main project needs nokogiri, which depends on libxml2 to build. So…
sudo apt-get install libxslt-dev libxml2-dev
libcurl
Required for the curb gem.
sudo apt-get install libcurl3 libcurl3-gnutls libcurl4-openssl-dev
libsqlite
Dependencies, dependencies everywhere.
sudo apt-get install libsqlite3-dev
rvm
Change the default gnome terminal options
Pay attention to the rvm requirements output, and install them all before continuing. If you skip this, things will appear to work until you try to run irb and get readline errors.
curl -L https://get.rvm.io | bash -s stable --ruby
rvm pkg install zlib
rvm pkg install openssl
NOTE: Do not pkg install readline. This will bring pain.
NOTE: Install 1.8.7 under rvm before 1.9.3 to get readline support in irb.
This also brings in ruby 1.9.3-p194, which is what I'm using for most things these days. The ruby compilation was the first thing that kicked the fan on the XPS 13 into high gear.
MySQL
I prefer PostgreSQL, but my main project these days is on MySQL, so that's what I set up as client and server. Need to install the development libraries so I can compile the mysql2 gem later, too.
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install mysql-workbench
sudo apt-get install libmysql-ruby
sudo apt-get install libmysqlclient-dev
Wuala
Where I store a lot of passwords and whatnot.
PhantomJS
For integration testing.
wget http://phantomjs.googlecode.com/files/phantomjs-1.6.1-linux-x86_64-dynamic.tar.bz2
sudo tar xvjf phantomjs-1.6.1-linux-x86_64-dynamic.tar.bz2 -C /usr/local
sudo ln -s /usr/local/phantomjs-1.6.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
Double Shot #951
The struggle this week is going to be getting work hours in between Scouting and new laptop.
- Bourbon Neat - Fluid grid framework built on top of Sass and Bourbon using em units and golden ratios. Comes with a gem for use in Rails.
- The Starter League - Rails/Ruby/Web training from some of the best, as supported by 37signals.
- Don't Use MongoDB - Another set of bad experiences makes its way around the internet.
- HTML Editing and other improvements in Firefox 17 Developer Tools - Things are going nicely for developers in FF.
- ActiveRecord and Azure - A combination I hope that I never need to manage.
- sugarcube - Syntactic sugar for RubyMotion.
Project Sputnik Report #1
Fedex dropped off my new Dell XPS 13 laptop today, courtesy of the Project Sputnik beta program. (Full disclosure: Dell gave me a 20% off coupon for the hardware when I was accepted to the beta program). Yes, dropped off: the driver left it on our doorstep and rang the bell. Amusingly, I got an automated call from Fedex an hour later telling me a signature would be required for the nine buck video dongle that was shipped separately.
I've got two primary reasons that I'm interested in this program. First, I'm tired of paying the Apple tax. Macs have been good machines, but they're high-priced (even higher when you add the mandatory Apple Care, because the hardware quality isn't really all that good) and increasingly locked down. Second, I'd love to have a laptop that knew how to install stuff for me, rather than wasting two days every time I need to rebuild.
The XPS 13 is a sexy little beast. Feels very solid, to the point where the iPad feels flimsy by comparison. As with just about any hardware today, there's next to no paperwork in the box, but there is fancy packaging that makes it clear the Dell guys opened a Mac or two on the way to designing the experience. The packaging weighs about three times what the computer does.
I opened it up, plugged it in, and peeled off and tossed the Dell and Windows 7 stickers. There's a permanent Windows 7 logo on the bottom, but I can live with that. Then I prepared to boot from the Project Sputnik USB key that I made on the Mac desktop box yesterday.
First hurdle: actually getting a bootable USB key with the Project Sputnik install image. Just about every computer I have running these days is a Mac, and Ubuntu says "Reversely, you can't create bootable USB flash drives for other platforms than Macs from withing Mac OS X" (the meaning is clear even if their proofreading is bad). Having discovered this, I cranked up my one old Windows test box with the slow network card, and a couple of hours later had a USB key that works. There was swearing involved, and apparently one of the USB keys I had will not be bootable no matter what. Anotehr appears to have random bad sectors. (Fortunately, none of this will be necessary with production systems, which will have the right disk image pre-installed.)
The "hard drive" is a SSD, so cold boot to login is fast - under ten seconds. That's nice. Next step was to start exploring. As far as I can see, it's a stock Ubuntu desktop. First thing I did was switch the trackpad over to two-finger scrolling so switching back and forth from Macs wouldn't drive me nuts. Even with that though the touchpad is clearly going to drive me nuts until I find some documentation; even selecting text is tough. Next was to update Firefox to Nightly and install Firebug, since that's where I spend much of my time. That was easy, as was the Sublime Text 2 install.
Somewhere in there the Update Manager popped up and wanted to update 148 packages, so I let it.
Of course, all of this involved grubbing around in Terminal and running sudo apt-get whatever commands for ages, which is decidedly not what Project Sputnik promises. But the tools for maintaining developer profiles and easily updating the box don't exist yet. So it looks to me like my testing will divide into two chunks. First, does the box have enough horsepower to handle my everyday development tasks, and hardware that won't drive me up the wall with poor ergonomics? Second, will the developer profile tools make Linux easy enough to use that I won't want to tear my hair out? Stay tuned. For the moment, I'm synching a bunch of stuff from my dropbox so I'll have things to work on.
Double Shot #950
Another one of those Tuesday-is-Monday sorts of weeks.
- Heck Yes Markdown - Convert web pages to Markdown. It more or less works.
- Fallen - Simple library for daemonizing ruby processes.
What's New in Edge Rails #36
Week of August 27 - September 2, 2012
- A bunch of tinkering with ActionView internals is summarized with a doc commit at daa0ed3a. THis includes the deprecation of
ActionView::RecordIdentifierand the deprecation ofTemplate#mime_type, the latter in favor oftype. The overall goal is to make it easier to extract ActionView from ActionPack in the future. - 810a50da splits up the CHANGELOG so that it's separate files on separate branches.
- Rails bumps its bundler dependency to 1.2 in 5f99bdbe. Time to upgrade.
Double Shot #949
"Meetings" looms as the theme for this week.
- Meny - Kinda spiffy 3D CSS menu concept.
- pry-rescue: How to use pry for just-in-time debugging.
- Knockback.js - A combination of Knockdown and Backbone that claims to be more RESTfully pure than either one used alone.
- S3 for Poets - Reasonably simple introduction to getting files up and serving from Amazon S3.
- Github Resumes - Cute. GitHub will automatically build a brag page from your repos.
- App.js generator - Build together various bits of JavaScript that you might need in an Express.js application.
Double Shot #948
iOS Developer? Want to work with me? Check out the Labrador Omnimedia Careers page.
- Bundler 1.2 - Now including the ability to specify a Ruby version check.
- PonyDebugger: Remote Debugging Tools for Native iOS Apps - a proxy for using the Chrome developer tools with your iOS applications.
- Authority - ORM-neutral authorization for Rails apps.
Double Shot #947
Guiding is harder work than doing.
- Kyuri - Cucumber implementation for node.js.
- TextMate 2 now 64-bit - Seems like that open source thing is working out.
- MongoDB 2.2 Released - With concurrency and other improvements.
- Deploying Resque with Capistrano, Bundler and God - Some notes from Flowdock.
- Advice On & Instruction in the Use of Ember.js - "Part tutorial, part marketing pitch."
Double Shot #946
One thing's for sure, I'll never run out of work in this job.
- HTML5 Boilerplate - Version 4.0 release of this basic scaffolding for modern web sites.
- Eager Loading for Greater Good - When and how to eager load modules in a Rails application.
- Ember Script - "A coffee-derived inspired language which takes advantage of the Ember.js runtime".
- MongoDB Manipulation, Mastery and Monkey Business - How to upgrade a running Mongo cluster with zero downtime.
- PostgreSQL 9.2 RC1 Available for Testing - Good news for me, I've got an application that I hope to move over shortly.
Double Shot #945
Forget fandom, not sleeping is a way of life.
- Modular front-end code in Rails - Structuring a Rails project to play well with Modular CSS ideas.
What's New in Edge Rails #35
Week of August 20 - August 26, 2012
- e6747d8 decouples eager loading from class caching.
- 2801786e moves from config.preload_frameworks to config.eager_load_namespaces, allowing you to register any Ruby namespace from your application for the eager loading process.
- As of 73c02220,
ActiveRecord::SessionStorehas been extracted from Rails into a separate gem. - The
update_attributesaga continues. 50bdb924 reverts the commit that removed it, so as of right now it's back in Rails 4.0.
Double Shot #944
Poison ivy status: slowly healing.
- The New Evernote Smart Notebook by Moleskine - Interesting crossover between the virtual and real worlds.
- Customize Twitter Bootstrap To Not Look Bootstrap-y - Some ideas on standing out from the pack.
- domain-profiler - Tool to investigate what's behind a web site.
- http_spec - RSpec DSL for interacting with HTTP APIs.
- jQuery UI 1.9 RC - The first release candidate is out.
- FoldingText - "Plain text productivity for geeks", Markdown formatting with text folding in a client-side OS X editor.
- The Sidekiq Experiment, Part I - So far, technical success, financial failure.
- Simple Amazon Glacier Uploader - People have wasted no time putting a UI on Amazon's latest service.
- Firepath - Firebug extension for working with XPath expressions and CSS3 selectors. I'm finding it helpful when writing Capybara tests.
- Neutron Drive - Web based code editor that auto saves to Google Drive.
Double Shot #943
And another week staggers into the weekend.
- colResize - Easy jQuery table column-resizing plugin.
- DJ Mon - Rails engine front end for Delayed Job with an iPhone client.
- pow-debug - Hook pry, debugger, or ruby-debug into projects served by Pow.
- Capture the Flag 2.0 - Learn about web security by breaking into deliberately-insecure sites.
Double Shot #942
Here's to another productive day.
- Deface - Rails 3 plugin that allows you to customize views by supplying chunks of HTML that are applied by using Nokogiri-style CSS selectors.
- Telehash - Protocol for any sort of distributed peer-to-peer network that wants to pass JSON around.
- Airbrake - The art of fingerpointing - Announcing integration between Pivotal Tracker and Airbrake.
- Polish Your Gems - Some code patterns that have proven to be useful in ruby gems.
- Capybara 2.0 Upgrade Guide - It's in beta now, so time to start looking at it.
- Immigrant - Generate missing foreign keys in your Rails application for use with foreigner.
- Kibana - Spiffy-looking browser front end for logstash.
Double Shot #941
Insomnia, thy name is poison ivy.
- Rails, callbacks, workers, and the race you never expected to lose - Fun, after_save callbacks can execute before the record is actually saved.
- cdnjs - CDN maintained by Cloudflare with a bunch of the less popular JavaScript libraries.
- DumbDelegator - Alternative to the standard Ruby delegate library that does a more thorough job of proxying things.
- Even More Syntactically Awesome Stylesheets - The changes in Sass 3.2.
- Doc Template - Tool and guidelines for creating documentation.
- CSS Font Stack - Quick setup for a bunch of popular fonts with fallback.
Double Shot #940
Ordinarily I try to love all of God's creatures, but I'm not feeling it for deer ticks about now.
- Bootstrap 2.1.0 released - With lots of tidying and minor changes.
- rspec-nc - RSpec formatter that works with the Notification Center in Mountain Lion.
- A big merge is the only press release your open source project needs - As GitHub continues to dominate the developer world.
- Iridium - a Toolchain for Javascript Development - Organized and testable client-side projects.
- openHAB 1.0 - Home Automation for Geeks - Another take on the "smart home" via hardware controllers, with tie-ins to XMPP, Google Calendar, Dropbox, and more.
- MotionModel - Simple models for RubyMotion.
What's New in Edge Rails #34
Week of August 13 - August 19, 2012
Looks like there's some focus on ActiveRecord optimizations currently. That's work that many people will welcome.
- DHH's routing concerns plugin gets merged to the main line at 0dd24728b - documentation is at 0bd7b07d. This lets you tidy up your routes.rb file by declaring common reusable resources.
-
0d0d4622 adds
Request#formats=(extensions)to let you set a prioritized list of multiple formats to use in response.
Double Shot #939
Achy but reasonably satisfied with the weekend.
- The Rails flash isn't just for messages - You can use it to pass any state you don't want showing in the URL.
- Config Descriptions - Firefox add-on to make about:config less mysterious.
Double Shot #938
Unplugging for a few days.
- Changes coming in Version 1.1 of the Twitter API - Remember when Twitter was developer-friendly? Yeah, me neither. The thought of being limited to official Twitter clients is depressing though.
- Big Spoon - Add before and after callbacks around any ruby method.
- Useful SASS Mixins - Some more ideas for your SASS toolbox.
- Rails Hosting Survey 2012 Results Are In! - Planet Argon reports on the state of the platform.
Double Shot #937
Today: Girl Scouts. Tomorrow: 12-mile hike. Somewhere in there: code.
- Zapier - Integrations for various online services with a drag-and-drop trigger/action builder.
- Cachex: tag based fragment caching on steroids - Another cache invalidation strategy for Rails apps with nested partials.
- rack-attack - Middleware to handle whitelisting, blacklisting, and throttling.
- Git Landscaping - How to clean up old remote feature branches.
subscribe via RSS