Friday, April 24, 2015

Trying Craft Client or Pro on Mac OS X Before Buying

Craft allows you to try Craft Client and Craft Pro before buying them, by running your site from the host name craft.dev or a subdomain such as site1.craft.dev (link). However, it's not immediately obvious what "running your site from craft.dev" means.

This post explains how to run your site from craft.dev on Mac OS X using MAMP and Sequel Pro.

1 — Install Craft on MAMP

  • The first step is to install Craft Personal. These instructions explain how to do that on Mac OS X using MAMP and Sequel Pro.

2 — Create a directory for the craft.dev site

  • Go to /Applications/MAMP/htdocs
  • Create a new folder trybeforebuy/public/ (or whatever you want to call it)  
  • Copy contents of the htdocs folder there, including the hidden .htaccess file
  • Edit $craftpath in index.php to be '../../../craft'

3 — Setup craft.dev as an Apache virtual host 

  • Follow these video instructions 
  • Use 'craft.dev' (no quotes) as the ServerName
  • Use "/Applications/MAMP/htdocs/trybeforebuy/public/" (with quotes) as the DocumentRoot and Directory 

4 — Change the Web port to 80 from 8888

  • Open MAMP
  • Switch to the Ports tab
  • Click on the “Set the Web & MySQL ports to 80 & 3306” button

5 — Access the new Dashboard 

  • Go to http://craft.dev/admin/login 

6 — Upgrade your Craft installation

  • Click on the "Show me" link in the "Upgrade Craft to take your site to the next level" box at the bottom of your Dashboard
  • Click on the "Test" link by Craft Client or Client Pro, whichever you want to explore
That's it!

This post describes how to switch between the different versions--Craft Personal, Craft Client, and Craft Pro--if you want to do that.

Saturday, April 4, 2015

Installing Craft CMS on Mac OS X Using MAMP & Sequel Pro

I just wanted to set up Craft CMS on my Macbook to experiment with. It took me forever. This explains what worked (and what was missing from other sets of instructions).

Craft's install documentation assumes but doesn't explain several prerequisites (like setting up my MySQL) and The Absolute Beginners Guide to Setting Up Craft on Mac (sounded perfect) was directionally helpful but had some errors and, at the end of the day, simply didn't work for me. For the longest time, I could not get Craft to connect to MySQL, even though it was installed correctly and running.

These are the perquisite steps, assuming you aren't already running Apache and MySQL:
  • Step P1: Download and install MAMP -- This sets up a Macintosh, Apache, MySQL, and PHP solution stack and gives you a simple management interface to start and stop the servers.
  • Step P2: Download and install Sequel Pro -- This gives you a simple tool to manage your MySQL databases.
  • Step P3: Open MAMP (not MAMP Pro), and click "Start Servers" -- This starts the Apache Web server and the MySQL database engine.
  • Step P4: In MAMP, click "Open WebStart page," if MAMP didn't already open one in your browser automatically.
  • Step P5: Open Sequel Pro, and use the parameters on MAMP's WebStart page to create a connection -- I could not create a Standard connection using '127.0.0.1'. I had to create a Socket connection, using 'localhost'. This is the scenario that the Craft installation instructions don't anticipate.
  • Step P6: Click the control in the upper lefthand of Sequel Pro, and choose "Add Database ..." to create a database, e.g.. 'crafted'. Choose UTF-8 for “Database Encoding."
These steps track those in Craft's installation instructions but with some additional explanation. Read them together:
  • Step C1: Upload the files -- You're uploading the files, because you're pushing them to your Apache Web server on your Macbook.
    • Download Craft -- It will end up in your Downloads folder. There are two folders craft/ and public/ in the downloaded 'Craft-2' folder.
    • Copy the craft/ folder to /Applications/MAMP, i.e., above the webfoot (htdocs/). 
    • Copy the files htaccess, index.php, and robots.txt from public/ to the htdocs/ folder.
    • Rename htaccess to .htaccess -- Open Terminal and run the following commands:
      • "cd /Applications/MAMP/htdocs" -- go to where htaccess lives 
      • "defaults write com.apple.finder AppleShowAllFiles -bool true" -- show hidden files
      • [Relaunch the Finder] -- hold down control-Alt while you click on Finder in the dock and then choose Relaunch
      • "mv htaccess .htaccess" -- rename htaccess
      • "defaults write com.apple.finder AppleShowAllFiles -bool false" -- hide hidden files
      • [Relaunch the Finder again]
  • Step C2: Set the permissions
    • Open Terminal and run the following commands:
      • "cd /Applications/MAMP/craft" -- go to the craft/ directory
      • "chmod -R 744 app"
      • "chmod -R 744 config"
      • "chmod -R 744 storage"
  • Step C3: Create your database 
    • Nothing to do here -- You already did this in Step P6 above.
  • Step C4: Tell Craft how to connect to your database
    • Copy the default settings in "craft/app/etc/config/defaults/db.php" into "craft/config/db.php"
    • Update the parameters
    • Set 'unixSocket' to the Socket value on your MAMP WebStart page (e.g., "/Applications/MAMP/tmp/mysql/mysql.sock"). 
  • Step C5: Run the installer! 
    • The URL is "localhost:8888/admin"
    • Follow the installation screens
I'm guessing that if you are setting up Craft in a production environment on a production Mac you might want to do somethings a little different, but this will get you a sandbox to play in. Enjoy!



Monday, November 3, 2014

Seattle Rides


After an almost 20-year hiatus, I've started biking again.  These are the major rides I took this past summer:

  • Seattle Loop (link) — 25.5 miles total from home
  • Gas Works Parks to Seward Park and back (link) — 25.5 miles from Gas Works plus 8 miles roundtrip to/from Gas Works (via Roy, Mercer, and the path along Westlake)
  • Gas Works Park - Mercer Island Loop (link) — 31.5 miles from Gas Works; the Mercer Island loop is really nice, especially on a weekday when few others are riding (very popular on nice weather weekends)
  • West Seattle - Leschi - Gas Works Loop (link) — 37 miles total; you can connect into the loop right at the bottom of 3rd AVE W on the other side of the pedestrian bridge
  • North Lake Loop (link) — 41 miles from Gas Works Park; you ride clockwise around the north half of the lake, coming back over I-90
  • South Lake Loop — 38 miles from Gas Works; I don’t have a map for this and haven’t ridden it recently, but you’d basically ride over to Gas Works Park, start riding counterclockwise around the lake to I-90, and then you’d ride around the southern half of the lake (crossing it over I-90) either clockwise or counterclockwise, and then back to Gas Works
  • On either of the previous two rides, you can add another ~8 miles by looping around Mercer Island when you cross I-90
  • Lake Washington Loop (link) — 53 miles from Gas Works
  • Chilly Hilly (link) — 32.5 miles roundtrip from/to the Bainbridge ferry terminal
I had some fun rides with friends, but the twin highlights of this season were the full Lake Washington Loop and the Chilly Hilly route with my daughter, Sara.

Next year I hope to do some longer rides out through Snohomish, Monroe, Woodinville, Redmond, Issaquah, etc., as well as some hillier rides on Vashon Island.

UPDATE: I posted an annotated map and cue sheet along with a route (.gpx) for some rides around Vashon Island (link).

Friday, September 19, 2014

The nyrb game


I love great books, reading great, physical books.

And I love browsing books in bricks-and-mortar stores. When you know exactly what you want, buying books online can make sense, but nothing beats discovering books and authors by physically browsing racks of books.

But browsing in a decent bookstore can be overwhelming, because there are so many titles and the only way to meaningful filter them is using very broad categories (fiction vs. nonfiction and categories within nonfiction, e.g., health, business, art, music, computers, etc.).

Until recently the vast majority of my reading had been nonfiction, nerd stuff. Earlier this year though a good friend turned me on to the NYRB Classics series. While it includes both fiction and nonfiction, it is heavily weighted to the former (browse titles).

The books in the series are both extremely well written and underappreciated, out of print before becoming part of the series. The NYRB curates the titles and then reprints them. Hence, the NYRB Classics imprimatur is a wonderful way to discover great books and authors--the books are, in a word, superb.

I read 10 while taking this summer off:
  • Kingsley Amis - Lucky Jim
  • Elaine Dundy - The Dud Avocado
  • J.G. Farrell - The Siege of Krishnapur
  • J.G. Farrell - The Singapore Grip
  • J.G. Farrell - Troubles
  • Gabriel García Márquez - Clandestine in Chile
  • Ernst Jünger - The Glass Bees
  • Raymond Kennedy - Ride a Cock Horse
  • Elizabeth Taylor - Angel
  • Christina Stead - Letty Fox: Her Luck
They're some of the best books I've ever read, and I'd never even heard of most of the authors.

The game is finding the NYRB Classics titles in physical bookstores. Each title has this distinctive logo on its spine:
This makes scanning bookshelves to find these diamonds in the rough both easy and fun.

My favorite variation of this game is at used bookstores where you can frequently find used-but-new (remaindered) NYRB Classics titles very inexpensively (~$7). I scan the entire fiction section and buy all the NYRB Classics titles that I don't already have. I've done this a few times, and walked out with 8, 9, 10 books and spent well under $100!

I find it sad that such wonderful books are remaindered in the first place--not more in demand--but finding these used-but-new titles makes for a very enjoyable game nonetheless. 

And, who knows? Maybe if lots of people start playing the used bookstore NYRB game and get hooked on the series, they'll start looking for and buying new NYRB Classic titles and fewer will get remaindered. 




Friday, August 22, 2014

City Bike

I'm just getting around to posting this now, but this is the final incarnation of my city bike:


No wires, no grommets, nothing quick-release.





We couldn't adjust the Sturmey Archer S2C 2-speed kickback hub to work reliably—manufacturing has been outsourced to Asia, and the tolerances probably aren't tight enough.

Monday, July 28, 2014

Some Desolation Peak Logistics


A friend and I just hiked Desolation Peak in the North Cascades.

A lot has been written about the summer Jack Kerouac spent there in 1956 and the book Desolation Angels that he subsequently wrote about that time. While there's also a fair amount of information about the hike and different ways to that you can get to the hike (example), there's little that's consolidated into an end-to-end plan or that takes a stand on which approach to take.

Here's what we did, why we did it, and why we liked this approach.

The Plan

This three-day plan worked really well for us:
  • Day 1 -- Thursday (July 24, 2014)
    • Drive to the Marblemount Ranger Station (at or sometimes also called the Wilderness Information Center) -- Get a free backcountry camping permit for Thursday and Friday nights at Lightning Creek Campground. You can only get them at this ranger station, only in person, and only the day of the first night of a stay, and they're given out first come, first served. There's a bathroom here.
    • Drive to the Ross Lake Dam Trailhead, further east on WA-20 at milepost 134 -- Park your car here. You don't need a pass.
    • Hike the mile and a half down to the Ross Lake Resort pick up -- Detailed directions are described in Option 2 here (Note: The phone is down near the water, not right on the road, and the short path to it cuts hard back to the left).
    • Take the water taxi to Lightning Creek -- You need reservations, and we made them for 5PM, as late as they would make them that'd still give us time to set up camp comfortably in daylight. The water taxi is $210 per boat roundtrip.
    • Setup camp, and camp for the night
  • Day 2 -- Friday
    • Pack a light day pack, and leave everything else in camp
    • Hike to Desolation Peak and back
    • Camp again at Lightning Creek
  • Day 3 -- Saturday
    • Take the water taxi back to the Ross Lake Resort pickup -- We made 9AM reservations.
    • Hike the mile and a half back up to the Ross Lake Dam Trailhead
    • Drive home -- It's about three and a half hours to Seattle, including a stop for lunch somewhere.
Options and Why We Liked This Plan

To get to the Desolation Peak hike, we had two main choices:
  • Hike 15.8 miles from the large trailhead parking lot WA-20 near the Panther Creek Bridge; or
  • Take a boat from Ross Lake Resort
We didn't want to take the extra two or three days to hike in and out, and we didn't want to schlep a lot of gear all the way to Lightning Creek and then all the way back to the car. We also could have rented a small motorboat or a kayak at Ross Lake Resort, but we didn't we didn't want to take the extra time or effort. We took the fastest and simplest route: the Ross Lake Resort water taxi.

Even with the water taxi, we still had two options:
  • Get dropped at Desolation Landing; or
  • Get dropped at Lightning Creek Campground
The first cuts 4.2 miles off the roundtrip hike, but means you have to hike the same day you take the water taxi and probably get picked up the same day to come back out. In other words, you probably have to take the water taxi, hike to and from Desolation Peak, and then take the water taxi again, all in one day.

The hike is relatively strenuous--13.6 miles roundtrip; 4 miles of it relatively flat, but 9.6 miles of it fairly steep; nearly 4500' elevation gain--and takes roughly 9 hours, if you leave an hour to rest, eat, and explore on top. So, we decided not to try to take a water taxi in either direction on the day of the hike--we'd just do it as a day hike and leave everything but light packs at camp. This is also why we discarded Colonial Creek Campground as an option for the camp before and/or after the hike: we would have had to take the water taxi the same day as the hike.

Because we wanted to make sure we got a first-come, first-served backcountry permit and because we wanted to avoid some of the crowds, we also opted to get to Lightning Creek Campground on a Thursday night so we could hike Desolation Peak on a Friday instead of on the weekend.

There's no camping on Desolation Peak itself, but another option that we quickly discarded was camping at Desolation Camp which is just a mile down the trail. There were two reasons. First, you have to hump all your gear and all your water up the 3.8 miles and ~3600' of elevation gain to the camp and then later back down. There's no water at Desolation Camp. Second, it's a much smaller camp than Lightning Creek, so it can be harder to get a permit. We didn't want to get all the way to the ranger station and not be able to make the trip. 

Lightning Creek boat campground is right on Ross Lake and has half a dozen or so 1- or 2-person sites and one group site (8 people?). For every two camp sites there's a doublewide bear box, a picnic table, and a fire pit. There's water from the lake (which you need to boil or purify). There are two vault toilets, one men’s and a women’s. There's a boat dock, for the water taxi or if you rent a motorboat at Ross Lake Resort. And there's kayak access on a beach. It makes a great base camp.

There are actually two camps at Lightning Creek: the boat camp where the water taxi drops you and a stock camp on the other side of the bridge and creek.

The Hike

Since there's no water on the hike, we drank a lot of water the night before and morning of the hike to hydrate.

To catch the trail to Desolation Peak, you actually start to hike south out of Lightning Creek Campground. After a 100 yards or so, the trail north to Desolation cuts 135 degrees back and up to the left heading north as you'd expect. If you get to the bridge over Lightning Creek before this turn off, you’ve gone too far.

You hike two miles on a relatively flat trail to the turn off for Desolation Peak, about 45 minutes from camp. Most coarse-grained topo maps make it look like you then turn right and head straight up the mountain. However, the trail has lots of switch backs and is similar to Mt. Si (though longer and with greater elevation gain).

Desolation Camp is 3.8 miles up the trail, a mile from the top. There is a pit toilet there but no water.

We left camp at 7:45AM and made it to Desolation Peak at noon. On purpose we didn't try to set any speed records, as we wanted to conserve water and not sweat too much. A lot of the hike is relatively covered by shade which is nice when you're working hard humping up in the morning and nice if the sun is out in the afternoon when you're coming down. The day we went up, it was also mostly overcast in the morning which made it extra cool--perfect hiking up weather.

By the time we reached the top, the skies had mostly cleared, and we had glorious views of most of the surroundings except for Hozomeen Mountain.

We stayed on top until 1:30 and got back to Lightning Creek at 5:00.

There’s a stream on the trail a half an hour from camp which is a good place to fill up with really clear running water. You still need to boil or purify it, of course.

We were whipped when we got back to Lightning Creek. I couldn't imagine having to break camp and take a water taxi that same day and was very happy we'd decided to camp a second night at Lightning Creek.

We dove in Ross Lake for a refreshing shower au naturel.

Heading Home

The BBQ joint in the old railroad caboose in Marblemount (Que Car BBQ) is supposed to be really good, but it doesn't open until 11:30, and we were there by 11:00. After our 9AM water taxi, we made it to the trailhead and car by 10:30. So we stopped at Cascade Burgers in Concrete for a burger, fries, and a shake farther along the way home.

Extensions

One fun extension (before or after) would be to stay in one of the cabins (literally) on the lake at Ross Lake Resort. I stayed in the cabins with my family years ago on a separate vacation, and we enjoyed it a lot.

Another fun extension would be to park further west on WA-20 at Diablo Lake instead of the Ross Lake Dam Trailhead and take the Diablo Lake Ferry.



Monday, June 16, 2014

Vegan in Seattle

I started eating vegan in January, to get my cholesterol under control through diet instead of the statin (Crestor) I'd been taking for many years.

Because I live in Seattle, I thought it'd be easy to find vegan or vegan-friendly restaurants. Much to my surprise--I mean, this is Seattle after all!--it's been harder than I thought. But, by asking vegan friends and doing some research and some serendipity, I've compiled a decent list. There are actually a fair number of places, most of which I haven't gotten to try yet.

Vegan restaurants:
  • Araya's Vegetarian Place (U District and Madison Valley) -- Thai vegan.
  • Brown Sugar Baking Company & The Urban Buggy (Judkins Park)  
  • Bamboo Garden (Lower Queen Anne) -- Traditional Chinese vegetarian cuisine, with all "meat", "poultry", and "seafood" items are made from vegetable protein products and 100% vegetable oil. I loved it. UPDATE: A report of not being fully vegan.
  • Chaco Canyon Organic Café (U District) -- I loved the lentil burger. I also liked their chili recipe with beans & spices in a Mason jar product that you make at home. 
  • Flying Apron Bakery (Fremont) -- Does vegan, gluten free baked goods. I've had some cookies, and they were good.
  • Highline (Capitol Hill) -- I haven't tried this yet.
  • Jodee's Desserts (Green Lake) -- Raw vegan desserts.
  • Loving Hut (Downtown) -- Locations worldwide. I haven't tried this yet but might in Prague this summer.
  • Mighty-o donuts (Wallingford) -- Vegan donuts & coffee.
  • No Bones Beach Club (Ballard) -- "Lively space doling out ambitious vegan fare & tiki cocktails amidst tropical décor."
  • Pizza Pi (U District) -- A vegan pizzeria in the vegan neighborhood of the U District.
  • Plum Bistro (Capitol Hill) -- Everything has been delicious for me so far.
  • Plum Cafe (Capitol Hill) -- A little hole-in-the-wall lunch place. Four 2-person bar height tables inside and two 2-person tables outside. I tried the Venice Beach burger and loved it.
  • Plum Pantry (Seattle Center) -- I took several one-pound meals home for dinners to reheat later, all of which I liked.
  • Thrive (Roosevelt District) -- I haven't tried it yet.
  • The Veggie Grill (U Village, South Lake Union, and Downtown) -- I had a Bombay Bowl which I liked a lot. Love their vision: To change the way the world eats, thinks and talks about vegetarian food.
  • Violet Sweet Shoppe (Laurelhurst) -- Delicious vegan desserts!
  • Wayward Vegan Cafe (U District) -- Large menu. Focused on faux meats, as opposed to just starches, vegetables, and fruits.
Vegetarian restaurants that also have good vegan:
  • Cafe Flora (Madison Valley) -- All vegetarian and vegan--really good! 
  • Chuminh Tofu and Vegan Deli (International District) -- I haven't tried this. Read reviews before you do.
  • Cyber-Dogs (Denny Triangle @ the Convention Center -- A fun, quirky, throwback of a place that does vegetarian and vegan hotdogs ... and Internet terminals. The owner is a Russian native from St. Petersburg, Tatiana, who is quite fun to talk to. I tried the Bayou dog which was spicy hot, as advertised. UPDATE: This is now closed.
  • Georgetown Liquor Company (Georgetown) -- Many items are or can be served vegan. I'd agree with my friend's assessment: "quite funky, fun, and good." I had the Picard--yum!
  • In the Bowl Bistro (Capitol Hill) -- A great hole-in-the-wall vegetarian noodle bistro.
  • Jhanjay (Wallingford and Ballard) -- Vegetarian Thai. I haven't tried it yet.
  • My Sweet Lord (U District) -- Indian. Hare Krishna. I haven't tried it yet.
  • Samuri Noodle (Capitol Hill, U District, and International District) -- Great noodles, lots of vegan options.
  • Silence-Heart-Nest (Fremont) -- Breakfast, lunch, and brunch. Closed Tuesdays.
  • St. Dames (Columbia City) -- Don't be fooled by the strip mall location--it's very well regarded. I loved hushpuppy appetizers, the garbanzo burger, and vegan chocolate cheesecake for dessert.
  • Sunlight Café (Roosevelt District) -- The tempeh burger with caramelized onions is outstanding.
  • Sutra (Wallingford) -- I haven't tried this yet.
  • Travelers Thali House (North Beacon Hill) -- I haven't tried this yet.
  • Turmeric 'n More (online) -- Vegan, vegetarian, and non-vegetarian meals delivered. I haven't tried this yet.
  • Wedgewood II (Capitol Hill) -- Vegetarian Thai. I had pot stickers (vegetarian), yellow curry, and brown rice for $20, but I took half of everything home so I got two full meals out of it.
Other vegan-friendly restaurants:
  • Healeo (Capitol Hill) -- Vegan soft serve and supplements. I haven't tried this yet.
  • Moonlight Cafe (Minor) -- Vietnamese. Ask for the vegetarian menu. I haven't tried this yet.
  • Razzi's Pizzeria (Greenwood) -- Ask for the vegan menu. I had the BBQ chicken pizza loved it. Fun place.
  • Sizzle Pie (Capitol Hill) -- A broad selection of vegan pizzas. Here's a short review in The Stranger (link).
Vegan ice-cream:
  • Molly Moon's (several locations) -- They always have one rotating vegan flavor.
  • Frankie & Jo's (Capitol Hill) -- All flavors are vegan.
  • Full Tilt Ice Cream (several locations) -- I haven't tried this yet, but I understand that they have several vegan flavors.
What vegan or vegan-friendly establishments in Seattle have I missed? Please let me know.

UPDATE: I was handed a "Vegan Restaurant Guide" at the Fremont Fair. You'll find more complete listings at VegSeattle.com. For your convenience so you don't have to fill out a search query, I updated the lists above for Seattle proper, borrowing liberally from the paper guide I was handed.