• Four days with the Mophie Juice Pack Air

    Posted on May 8th, 2009 jmstovall 3 comments
    Mophie Juicepak Air

    Mophie Juice Pack Air

    Something of an impulse buy, I’d been considering the Mophie for a week or two, but decided to make the leap after a rather tumultuous morning which involved last-minute packing, an unplugged iPhone and a narrowly-made flight. I hobbled through the next twelve or fourteen hours on 20-30% battery power and even less sleep. At that point, the thought of spending $80 for a device that would double my battery life and protect my phone was much more palatable.

    For those who do not know what the Mophie Juice Pack Air is all about, it’s a pretty slick piece of plastic that sheaths your iPhone in hard-case protection and has a built-in battery, so it doubles as a battery extender. For anyone who’s been without a charged iPhone for any length of time, the advantages are obvious. And thus, with my phone reduced to emergency use only, I hobbled into an Apple store approximately 3,000 miles from my home to grab one. Here’s the highlights, after four days of use…

    Good Things

    • Performance: Awesome. This case effectively doubles your battery life and if you do it right, you can get a little more than that. There’s no disappointment here.
    • Shape/Bulk: Not as bad as I feared. It does add thickness, which makes it a little heavier in the pocket, but it doesn’t ruin the lines of the phone…again, as badly as I feared. The worst part is the extra couple centimeters at the bottom–that affects usage the most when in landscape mode, and is pretty aggravating. (Dear Mophie: Find a way to reduce that so I can almost forget the case is even on there.) Don’t get me wrong–you will notice the change–but it has not changed my usage of the phone. You have to decide if you love the phone for the design or the functionality. I’m in the second category (not that it’s bad to be in the first, you just wouldn’t put this under “Good Things”).
    • Design/Accessibility: No problems here. The case is made to fit the phone tightly and it does the job well. Getting the phone in and out is a simple matter. Access to the important bits (volume control, lock switch, etc) is only minimally impacted. Gets a little tricky to turn the ringer back on when the switch in pointed to vibrate, but it’s a small issue.
    • Ease of use: Impressive. There’s clearly extensive thought that has gone into figuring out how this thing works…and it bears some explanation. Turns out, you are actually carrying around a portable charging station, as it is not automatic and the charge is controlled by a switch on the bottom. Flip it on, and the iPhone shows as charging. Flip it off, and the iPhone acts as normal. You have full use of the phone while it is charging, as though it were plugged in. Plugging the phone/case into the wall produces the expected result…both the phone and case charge unless, it seems, the case is completely dead. Then, the case itself takes precedence until reaching some predetermined charge level and the phone starts to charge. When untethered, turning the phone off and the case on will net you a little more charge, as it uses more juice when on and being charged at the same time. Really, you don’t have to think about it but to turn the case on when the iPhone’s battery starts getting low.
    • Other Good Stuff: This is a well-manufactured piece–it doesn’t feel cheap. The charging port has no give and the two pieces of the case fit tightly together. The charge lights on the back are a nice touch, providing valuable feedback with a solid button-click.

    Not-so-good Things

    • Heat: I guess this is to be expected, but the case does produce a decent bit of heat when charging the phone, and this of course doubles when plugged in. If you’re holding the phone and charging from the case, you’ll have a bad case of sweaty palms, but nothing like if you fell asleep with a MacBook Pro on your lap.
    • Reception: Minor changes to signal reception. I have also spent the last couple days in a signal-challenged area, which has not helped. That said, both wi-fi and cell reception are impacted, if minimally so. (But you’re on AT&T’s network, so you probably won’t even notice.)
    • Speaker: Well, the case completely covers the speaker. This is not a problem for regular notifications (you won’t miss a call or text message), but attempting to blast music through the phone’s rear will be an even less satisfying experience than it already is.

    Bad Things

    • Charger: This is the one place where I feel like I got stiffed–the charger is a mini-USB 2.0 cable of some variation, instead of the standard iPhone/iPod cable, which necessitates a cable changeover. This may be some sort of engineering requirement, but it is still incredibly aggravating. The one good thing is that the cable Mophie provides plugs directly into the iPhone’s wall charger. Yes, you can still sync through it.
    • Design: Ok, I’m going to come back to it: that bottom piece could use some improvement. It is not a deal-breaker, but it is is pretty close and really annoying.

    Any questions about the case/charger? Feel free to leave a comment!

  • Thoughts on Portland, Day 3

    Posted on May 5th, 2009 jmstovall 1 comment
    • Portland certainly deserves its reputation as one of the most walkable cities in the world. From getting off the Max train after the airport to when we were ready to leave, we only walked places.
    • This is also a testament to Portland’s diversity. We never felt the need to leave the downtown (and its immediate) area, as there was plenty to do. Unfortunately, that means we didn’t make it back to the neighborhood we visited before. Should I return anytime soon, the goal will be to make a couple short trips to these areas.
    • The Saturday Market is an impressive array of food, crafts and art that’s worth a walk-through. (And we got interviewed by Marketplace while we there.) Turns out the market is where everyone brings their dogs.
    • A walking tour is great way to see a city. Portland Walking Tours and our enthusiastic guide, Amanda, made for an excellent two-hour tour.
    • The history of the city is pretty exciting. From many cultures that have passed through to the possibility of being “shanghaied,” there’s some fascinating stuff here.
    • Should you ever find yourself in the are for more than a couple days, spending some time at the McMenanmin’s Kennedy School is an absolute must. This 1914(?) schoolhouse has been reclaimed and features a hotel, three or four bars, a full-service restaurant, a movie theater featuring table service and lounge seating, and many other random amenities worth exploring. This is one of the most unique experiences I’ve had, and I hope to visit some of their other properties at some point.
  • Greetings from Portland, Day 1

    Posted on May 2nd, 2009 jmstovall No comments
    • My one experience on the transit system so far has been as expected: clean, quick and safe. Odd that there was no one/no machine checking to make sure I had bought a ticket (I had), but I suspect we’ll find out how that works at some point.
    • People here are…wait for it…friendly! Someone chatted us up on the light rail today, at lunch and at the wine bar we went to at night.
    • Turns out, things are different here than in DC. While the guy at the wine bar was friendly and somewhat chatty, the place itself was dead. Where do twenty-somethings hang out in Portland? Much like the transit fare question, we’re not yet sure.
    • Hipsters–wow. Seriously? I know, I know, it’s Portland and I shouldn’t be surprised by the throngs of hipsters, vagrants and others of questionable character that populate street corners around here. But, last time we were here, we spent most of that one day in Pioneer Square and that evening in the neighborhood called (I think) the “Upper 23rd.” That area is somewhat affluent (again, I think), and doesn’t lend itself well to the hipster community. Apparently downtown does.
    • It’s also worth noting here that the homeless and vagrant here are way younger than I expected. This is a stark contrast to DC, and I’m curious as to why there’s so clearly a demographic difference between the homeless in Portland and DC.
    • Traveling across country is hard. This is doubly true when you nearly miss your 6:30 a.m. flight and rush through your morning. It’s nearing lunch here now, which boggles my mind, since I could swear it’s no later than 8 a.m.
    • In DC, everyone has a dog…of reasonable size. I’ve noticed very few here, and the ones that are around all seem to be miniature breeds.
    • Map’s not updated yet. Running into an issue where I can’t get it to find the blue markers, so I’m going to look at that later.
  • Portland Mashup

    Posted on April 27th, 2009 jmstovall No comments
    map

    Portland mashup

    The Portland mashup I’ve been working on is now ready. Check it out. Spent some time researching how to do this and getting my hands a little dirty with Javascript (follow my progress, as I have time to write about it). Watch this page during the upcoming vacation for updates on travels and such.

  • Wow Group Form

    Posted on April 26th, 2009 jmstovall No comments

    At TIG, I’m part of group looking at a wide number of sites and technologies to learn about the “latest and greatest” that people are creating out there. The idea is that our group collects sites as we come across them, submits them to a central place, and we discuss the “latest and greatest” that we’ve found at our next meeting. One of my roles in this group is to collect the information and put it in one place, a surprisingly complicated task.

    Getting The Data

    • The collection mechanism needed to be simple, fast and easily accessible. To me, that ruled out a spreadsheet on a shared drive, as both the spreadsheet’s performance and a shared drive’s performance can sometimes be spotty.
    • The time investment to input a new site could literally only be seconds, else people would be much less likely to even contribute.
    • The data, upon its arrival to me, should be easily manipulated and stored for later retrieval.

    Some of my options included:

    • A Rails application. This could be built in fifteen minutes and would be the perfect solution. Sadly, not only does our server setup (that I have access to) support Rails, I don’t actually yet know how to deploy a Rails app.
    • Any kind of form backed by a database. I did a lot of research on this one, looking for any online service that I thought would fit our accessibility and security standards. Unfortunately, I quickly found that a DB-backed system was not available to our group because of our server setup (even though, DBs are, obviously, available to our web sites).
    • On-line Services. As mentioned, I explored a number of online list managers, survey forms and data collection tools, but found that we would fall just outside the scope of their “free” offerings in terms of usage.

    None of these option seemed like viable possibilities, and I started looking into the capabilities of ColdFusion, as that seemed the most advanced option available (the server I have access to runs on CF). I found that CF allows for an “email submit” function, which skips the DB and drops an email to the specified address. I also found there were a few CF forms that were being used internally, so I would have some examples to work from. Although I was disappointed that the DB-backed option did not seem possible, if CF would allow the data to be formatted in a certain way, I could compromise and use an Excel form to store and retrieve the data.

    Despite having never touched CF before, building the form, based on some other examples I had found, was not as difficult as I had anticipated.

    awesome-sites-form-20090426

    Storing the Data

    With the form built and working, the next challenge was formatting the data in a way to help Excel to help me. While not difficult, because even minor changes require the form to be filled out and then retested, this part took some time. Essentially, I wanted to cut and paste the data into Excel and have Excel’s functionality do the rest of the manipulation. Upon arrival to my inbox, the text-only email would look similar to this:
    Jeff Stovall}UXMag}http://www.uxmag.com}CSS}Excellent example of fluid design.
    Jeff Stovall}Couture Book}http://www.couturebook.com}Flash}Not only a good lifestyle site, also a great example of the right way to use Flash.

    This data is pasted into Excel, where I used the text-to-columns function, with } as my delimiter, to quickly break out the data.

    Retrieving the Data

    This part’s pretty simple–I just saved the spreadsheet on our shared drive. While it’s not ideal, the tools at my disposal were limited for this project, and the solution I found saved myself and other group members significant amounts of time.

  • Google Mashups, pt. 3

    Posted on April 24th, 2009 jmstovall No comments

    This time around, I want to figure out to load data from an XML file and how that XML file should be structured. Having never worked with XML files from scratch before, I’m a little apprehensive, but, hey, there’s not much that can actually break…

    First, I set up my map controls:

    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());

    Problem is, I don’t dig the tiny controls (hello, 2001 called…), so I updated to the latest version I can find in the API docs:

    map.addControl(new GLargeMapControl3D());
    map.addControl(new GMapTypeControl());

    This version of the map is here.

    Ok, so here’s an interesting thing. The new control I’m using still doens’t match the current control on maps.google.com. I’m not sure why, but I’m sure it has something to do with StreetView, and I probably need to learn how to use the specialized StreetView tools…but I digress.

    Oh, bonus! Looks like the tutorial I’m using has _blank">section on working with an XML file…tells me to use the GDownloadURL method:

    GDownloadUrl("data.xml", function(data, responseCode) {
    var xml = GXml.parse(data);
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) {
    var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
    parseFloat(markers[i].getAttribute("lng")));
    map.addOverlay(new GMarker(point));

    Problem is, it doesn’t work, and although I spend some time peering at it, I’m just not quite yet comfortable enough to spot whatever’s broken. The tutorial is from 2006…I guess the API could have changed. More googling is in order.

  • Google Mashups, pt. 2

    Posted on April 22nd, 2009 jmstovall No comments

    The goal of this effort is only to get a map on a page and get a marker on a page…seems pretty easy. As promised, there’s some serious googling to be done, and I came up with this page: InformIT article.

    So this seems to work pretty well, although the first few steps I’ve already figured out from Google’s API documentation (seems it taught me more than I realized). What I really need is some very basic code to get started so I can pull my coordinates out and start playing:

    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=APIKEY" type="text/javascript"></script>
    <script type="text/javascript"><!--

    function load() {
    if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map"));
    map.setCenter(new GLatLng(LATITUDE, LONGITUDE), ZOOM);
    }
    }
    // --></script>

    and…

    var point = new GLatLng(LATITUDE,LONGITUDE)
    map.addOverlay(new GMarker(point));

    So that gets me started, and after adding minimal styling information, I come up with this: first version of map.

    Mission accomplished, it seems, so I decide to try for one more step: adding an info window. Incredibly easy: second version of map.

    Well, the tutorial is pretty step-by-step, but I’m finding that because of the Rails work, I can follow the what the code is doing much more easily. That still doesn’t mean I’m able to extrapolate and figure too much new stuff on my own, but it makes following the API docs easier.

  • Google Mashups, pt. 1

    Posted on April 19th, 2009 jmstovall No comments

    My girlfriend and I are taking a vacation to Portland, OR during the first few days of May 2009. Having passed through the city about a year ago to see a friend, we were both surprised by how much we enjoyed our one day there. So, we’re very excited to take some time to concentrate on exploring the city.

    I wanted a neat way to display what we find and where, so I wrote out what I wanted to do:

    • Display the location of the attraction
    • Display a short blurb about the attraction
    • Display some sort of imagery related to the attraction
    • Differentiate places we planned to visit and places we visited
    • Easily add the unplanned attractions we find

    Not surprisingly, it seemed the best way to do would be through building a Google Maps mashup. Since I don’t know Javascript, I looked for a good “mashup builder” out there, but was surprised to find most of them are either way complicated or don’t give me the level of control I was needed to make all the above things happen.

    Guess it’s time to learn some JS.

    The first thing one stumbles across when researching phrases like “google mashups for beginners” is the Google API information. It’s good stuff, and I learned what I needed to ask the API to do:

    • Display a map of Portland, centered over the hotel
    • Create tabbed info windows (to accommodate the infomation and media I want to display)
    • Display differently-colored markers (one color will be “visited” and one will be “planned”)
    • Pull marker data from an XML file, instead of writing the data directly into the map page (it’s a best practice for many reasons and will allow me to easily add/edit marker points)

    Some serious googling will be the next step…

  • Soft Launch!

    Posted on April 12th, 2009 jmstovall No comments

    Right, so there’s still so much to do on the site, but it’s finally at a point where it’s at least presentable and the basics are there. Some notes:

    • I struggled with the Interact page for awhile, only to realize Friendfeed is the perfect solution for what I need. You need a Friendfeed account to comment, but it’s well worth it.
    • Resume page is done.
    • Projects are there, but need more content. My main focus the last few days has been this site, so most everything else has been at a standstill.
    • Before too long, I’ll be adding some samples of work and such, but the best place to look for major milestones in both professional and personal arenas is on the side bar under “recently launched.” Any other deliverable I develop that is appropriate for this site will appear in a new category called Case Studies and Samples.
    • I need to really learn more about CSS.
    • I may need to learn more about PHP…but maybe can get by on what I know now.
    • Check out the site on your mobile device.

    That’s it folks. Enjoy.

  • Rails Update

    Posted on April 6th, 2009 jmstovall No comments

    Some thoughts on AWDWR…

    This is a great book, well-written and with interesting examples. While I enjoy working with it, as a first-time programmer, some of the assumptions and the structure is challenging. Two examples:

    • By page 105, as work on the shopping cart begins, the authors have stopped the hand-holding and you’re expected to know what they mean by terms you may not be totally comfortable with yet. This is something of a challenge to someone who has no background in object-oriented programming, and a few of these instances sent me running to Google to get some clarifications on the terms.
    • I’m not sure why we go from building a template, view, etc and then suddenly jump right into sessions and shopping carts. There are few things that are possibly more mind-numbingly boring than the security behind this stuff, and though I need to know it, it’s 1) a little complicated for this early in the book and 2) not necessary for actually learning Rails itself. I’d be much happier if this piece was left until closer to the end.

    Those things said, I still give the book my full endorsement. Fortunately, Rails makes it super-easy to start over, which I’ve done once, because I just found myself going too quickly through the information. But by taking it slow and steady, these things are beginning to sink in.