Linux Desktop Rebuild Checklist 2 – Web Dev Tools

(This is pretty old now…)

Following Linux Desktop Rebuild Checklist 1

Sublime Text

I’m a Sublime Text convert. Official docs are sparse, but there are great unofficial (community) docs for Sublime Text.

It’s quite easy to install on Ubuntu/Kubuntu via webupd8.

# now for Sublime Text 3
sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

# old 2 stuff...
sudo add-apt-repository ppa:webupd8team/sublime-text-2
sudo apt-get install sublime-text

LiveReload

Change a file in your project and LiveReload automatically refreshes the browser via an extension (Chrome, Firefox, Safari, Mobile Safari, and Opera with a config change).  Check out “LiveReload” in the Chrome Web Store.  Best out-of-the-box support for the filesystem piece is on Mac (and $$), but the Ruby project Guard and its various plugins allow for even more functionality for no charge (except the effort to figure it out).

On Linux, it’s quite simple, even for someone (like me) who knows very little about Ruby.

Install RVM and Ruby.

$ curl -L https://get.rvm.io | bash -s stable --ruby
$ source ~/.rvm/scripts/rvm
$ rvm use

Install Guard and Guard-livereload

$ gem install guard
$ gem install guard-livereload

Create a sample Guardfile (do this in your project dir).

$ guard init livereload

Then, edit the file for the filenames/patterns to watch. Here’s my simplest Guardfile.

guard 'livereload' do
  watch(%r{.+\.(css|js|html)$})
end

Finally, run guard from your project dir.

$ guard
19:16:14 - INFO - Guard uses NotifySend to send notifications.
19:16:14 - INFO - Guard uses TerminalTitle to send notifications.
19:16:14 - INFO - LiveReload 1.6 is waiting for a browser to connect.
19:16:14 - INFO - Guard is now watching at '/home/mghicks/...'

I haven’t tried Ruby on Windows, but there is a tutorial for using RVM with Cygwin. Git for Windows also has the option to work with Cygwin (selected during installation). I’ve tried Git on Windows with the Git shell, but not with the Cygwin option.

JSHint and JSONLint via NodeJS

Never sweat a missing comma or semi-colon again!  JSHint and JSONLint are the two biggest time-savers I’ve added to my toolset.  Thanks to the NodeJS community, NPM, and NVM, it’s trivial to install and use them.

Install NVM and the latest Node.

curl https://raw.github.com/creationix/nvm/master/install.sh | sh
echo "\n. ~/.nvm/nvm.sh" >> ~/.bashrc
source ~/.bashrc
nvm ls-remote
nvm install 0.x.x (use version from ls-remote)

Install JSHint and JSONLint.

npm install -g jshint jsonlint

Configuring Sublime Text next…

Linux Desktop Rebuild Checklist 1 – Base System

  1. Install via Unetbootin (I’m using Kubuntu these days)
  2. Fix monitors (important to do before next step)
  3. Install synergy
    sudo apt-get install synergy
  4. Add synergy to startup (see http://askubuntu.com/questions/15212/start-synergy-on-boot)
  5. Connect to NAS
    sudo apt-get install nfs-common
    sudo vi /etc/fstab
    
    10.1.1.3:/volume2/data	/home/mghicks/Data  nfs rsize=8192,wsize=8192,timeo=14,intr
    10.1.1.3:/volume2/media /home/mghicks/Media nfs rsize=8192,wsize=8192,timeo=14,intr
    
    mkdir /home/mghicks/Data /home/mghicks/Media
    sudo mount -a
  6. Additional repositories
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
    sudo wget http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list --output-document=/etc/apt/sources.list.d/medibuntu.list
    sudo apt-get update
    sudo apt-get install medibuntu-keyring
    sudo apt-get install linuxmint-keyring
    sudo apt-get update</span>
    
  7. Additional codecs, fonts, tools, etc.
    sudo apt-get install ttf-mscorefonts-installer non-free-codecs flac libdvdcss2 vlc* mplayer dvdrip
    sudo apt-get install build-essential curl git-core
    
  8. Install Chromium
    sudo apt-get install chromium-browser

    and extensions: Adblock Plus, Reddit Enhancement Suite, LiveReload, Personal Blocklist

  9. Install Banshee (not the best, but the only one I’ve found that *easily* syncs my ratings between players–suggestions welcome)
    sudo apt-get install banshee
  10. Install Shotwell
    sudo apt-get install shotwell

ShopBot CNC at the TechShop

I took the ShopBot CAD/CAM and SBU at the TechShop on Sunday. Here are too few pictures of the fun.

I really wanted to build a box with tabs and slots, but was rightly convinced to scale back my expectations by the instructor, Matt Santelli, president of Exhibiments. (Incidentally, his company makes the tap handles for Fullsteam. He was great!) So, I just cut out some names.

Obviously, it’s incredibly cool to cut through stuff using computers and servos to move a 1/4″ piece of sharpened metal spinning at 12000 RPM. If this is not cool to you, please step away from the blog.

But for me, beyond the obvious coolness of CNC tools and equipment, the really interesting thing is called the toolchain, or “how do I get from concept to automating stuff?” At one end of the chain is you/your idea and at the other is the CNC mill/router.

Many CNC tools use a programming language called G-code for automation. The TechShop’s ShopBot PRS Alpha 96 does, too. But raw G-code reads like assembly.

G21 G00 Z1
M03
G04 P2500
N50 G00 G90 G53 X14.326 Y22.226
N60 G43
N70 G01 Z.1 F.3
N80 X14.67 Z.082
N90 X13.083 Z-.001
N100 X14.67 Z-.084

So, we use some other tool(s) to create the G-code that runs the machines. This is the toolchain. There are a bunch of options, and almost none of them are free.

We used ShopBot’s PartWorks ($795 bundled with others) for class, which is a rebranded version of Vectric’s VCarve ($599).

Either program will import a variety of vector graphics formats. So, without any additional research, money, or effort, I can create ShopBot/G-code designs by using something like Inkscape to create drawings at home (though it lacks many CAD features). Then, import those drawings to PartWorks and generate toolpaths at the TechShop. And finally, cut on the ShopBot.

Need I say that I want to find alternatives for generating G-code?

Monitors won’t sleep (power management) if synergy is running

Similar question to Monitor won’t enter power save mode, however I only experience the problem under synergy. Screensaver settings work, but the monitors never go to sleep. When synergy is not running, monitors go to sleep at the interval set in Power Mgmt Preferences. I’m running synergy under my user account. Dell Desktop, Ubuntu 11.04, standard install video drivers (installing the proprietary drivers causes many errors.)


Turns out, this behavior is caused by screenSaverSync=true and the fix is screenSaverSync=false. Pic shows the windows GUI placement.

See also,

I love the classic dodge in the bug report:

Closing this bug report since it is more than 2 years old. If this is still a valid bug, please request that it be reopened on the mailing list.

Modeling Theater Sets with POV-Ray (Part 2)

In part one we saw how to setup a basic scene with POV-Ray and render it to an image. We also declared a bunch of standard size scenery flats for use in modeling our set. Oh, and I warned there would be math.

To model our set in POV-Ray, we’ll do basically the same thing we do when building the set on-stage… we’ll take our standard flats, move and spin them around, then fix them in place. Continue reading “Modeling Theater Sets with POV-Ray (Part 2)”

Modeling Theater Sets with POV-Ray

I got a lot of compliments about the computer model I built for Harvey’s set and a few people asked me how I did it. My way is a bit computer geek intense, so I don’t recommend you do it my way unless you’re a math graphing geek like me. If you’re used to creating maps for games like Unreal, you should check out other CAD and 3d modeling tools, like Blender… But anyway, here’s how I did it.
Continue reading “Modeling Theater Sets with POV-Ray”

Free Music Archive

Free Music Archive LogoIn case you’ve ignored all my delicious.com link updates below, let me tell you how unbelievably awesome the Free Music Archive is. It’s really, really awesome! So awesome, I head to my favorites list on FMA every time I hear an ad on Pandora for endless, ad-less entertainment. And all of the music has some variety of permissive-licensing, from public domain to the more restrictive FMA-limited license, including the CC licenses.

And now, I just saw there’s an FMA API for access to their data. I want to complain about the lack of gratuitous RSS feeds, but with an API, I should first see if it’s not already in there somewhere. NerdLoveSpasm!