Right now my Apple devices make my life so much easier. In ways that I often take for granted and forget. It sort of smacked me in the face this afternoon I was sitting in my breakfast nook working.
The day started with me working on my iMac with dual external (not Mac) monitor. My spouse was still sleeping so rather than reset the audio on iMac to use my headphone not nice speakers, I kicked off some music on my iPod Touch.
Later around 2pm when the upstairs of my house became unbearably hot upstairs, I grabbed the Mac Air and iPod Touch and moved to the kitchen nook. (I refuse to use AC in April, not when I can move downstairs open up the house and save on the electric bill) Using sharing over my Airport Extreme powered network, I grabbed what needed from the iMac and/or my shared work drive. I logged into Skype on my iPod and had my weekly “phone” meeting with my boss.
Right now I’m sitting curled up writing this on the Air, listening to music on the iPod. Earlier I grabbed a backup for my husband from my 1/2 terabyte drive which is shared via the Airport Extreme and printed a recipe to a printer that I have networked using an Airport Express. Add to that the fact that VMWare gets me Windows whenever I want it. I’m pretty satisfied.
Soon we’ll have an iPad at my house and I’m curious to see how my husband (who ordered it) likes it. I’m tempted, really, but I want to know all its little warts before I shell out.
I suppose I sound like an Apple evangelist. But I have two PCs in my house too and using Bonjour they can print and share with the Macs easily. Really what people choose to buy and use is there personal choice. For me Apple products have worked really well. Stuff just works and I like that.
Every evening my husband and I curl up to work/play on out respective laptops. Me on my Mac Air, him on this HP 311 netbook. My Air cost about 125% more than his netbook but each evening, I am reminded of how worthwhile that choice was.
After about an hour of computing nearly every night, my husband starts complaining that his computer is too hot. Considering that he bought the netbook to replace an older laptop that also inflicted leg scorching, it is an unfortunate situation. The HP 311 has great screen clarity, awesome video card, and even with Window 7, its lightning fast. But it gets very warm, particularly if one watches videos or plays video games, which is a frequent evening pastime.
The entire situation is typified by his comment that he is “very pissed off about this computer”. So I’m considering staging an intervention, selling the stupid thing on eBay on something, giving him my Mac Air and purchasing a new Mac Air or iPad. Honestly I don’t know what else to do. Suggestions appreciated or offers to buy if you’re willing to take the heat ;)
One of the things I’ve discovered with the new job is that I have to be religious about my GTD routine to not get buried. Part of this is working remotely, which means take the normal amount of email one gets and double it. Another part of it is the fact that I’m in a new position which everyone wants a piece of. A third component is, if one isn’t careful, its easy to get distracted at home and forget where you were and what you were doing.
I’ve got several tools and techniques for managing this. My best friend is a program called Toodledoo. Its a web-based task management tool, similar to Remember the Milk. My problem with RTM was it didn’t have enough complexity for my tasks. I like to keep all my to dos in one spot and I like to break them into components. Subtasks are really helpful for me when I’m working on a complex tech project with a multi-step setup. That way I can cross of the pieces I’ve completed and keep notes about the things which are unfinished and outstanding. Particularly helpful if you have lots of interruptions to be able to know where you left off.
Another technique I’m trying to do is to add any requests that requires more than a quick action to my Toodledoo. So first thing in the morning I deal with email, at least emails that require more than a quick answer. It put them in Toodledoo, that way I don’t get distracted by the constant stream and pogo stick from one thing to another.
Toodledoo has a status setting that I can use to designate when something is waiting on someone else. Which means I can send follow-up emails at the end of the day. You can also set how long you think a task will take. The program uses this information to make to do suggestions. I like this when I have an hour free before a meeting because it finds me a reasonable task that I can work on during that time.
Another plus is the collaboration bits of the site which allows you to share your tasks with others or with the entire world. You can choose to only show certain folders of tasks as part of this.
I also sync my Toodledoo to my iCal which means that my tasks end up on my iPod so I can see what’s due. Supposedly Toodledoo also syncs to iPhone and Android something on which I can’t comment – yet.
Toodledoo has become an important part of my work toolbox. Oh and of course I use it for my domestic stuff too. If you’re looking for something more advanced than Remember the Milk its worth checking out.
So I’ve been trying to setup a test server on my machine using XAMPP in order to do some testing with Drupal and a couple other content management systems including Joomla. The latest version of XAMPP includes PHP 5.3 and Drupal 6 and PHP 5.3 don’t play nice. Searching for a solution I discovered that PHP 5.3 breaks several other PHP-based applications. Two examples I read about are Joomla and bbPress. The result is that I can’t use XAMPP for testing Drupal. Worse though is that supposedly PHP 5.3 is standard in the latest release of Ubuntu. This is bad for two reason. First, my web host runs Ubuntu and needs to be warned not to upgrade. Second I’ll need to use an old Ubuntu image in Amazon EC2 to do testing if I intend to test Drupal.
While there is a supposed patch to make thing work, the whole situation is distressing and worrisome. Seeing as Drupal 7 is supposed to be coming out soon. I hope that the Drupal community has fixed the problem for that version. In the meantime, I’ll be doing my Drupal testing with Bitnami which is using an older version of PHP that works with Drupal.
2/15/2010 4:30pm
So after creating bunch of scripts for demos for OCLC and teaching workshops, I discovered that several of them don’t work in Internet Explorer 8. Its a little difficult for me to test IE8 because I’m a Mac user that doesn’t have a copy of Windows easily at her disposal. That plus the fact that JQuery is suppose to be “cross-browser compatible” makes me a not always test IE when I’m in a hurry.
Unfortunately, Jquery isn’t as cross browser compatible as I’d like. So I’m going back to revisit some Javascript code. Most of the problems I’ve been able by upgrading to the latest version of JQuery and debugging in my code in IE8′s developer tool. Which is pretty darn helpful. My only compliant is that it doesn’t have a Show Generated Source button, or at least not one I can find.
So I’m left with two errors where IE8 just refuses to run my JQuery functions. No error message, nothing. It has left me feeling like I’m walking through brambles in the Maine woods. Sigh.
2/15/2010 8:03pm
The saga continues. It turns out that one of my issues is that IE8 won’t let you append invalid HTML. So in my case I had to build the whole unordered list before I could append it. Makes sense and also doing it this way improved my Javascripts performance significantly. Just have one set of IE8 bugs left to fix. More on those later.
2/18/2010 10:47am
JQuery issues in IE solved. Posted updated instructions on peer reviewed script. Some of my problems revolved around incorrect script tags. The others were with the script I wrote to create JSON, creating invalid JSON.
A colleague reported that the Peer Reviewed Script that I’ve posted about here before wasn’t working in IE8. So I’ve debugged it and here is what it takes to fix it.
- Update JQuery to the latest version
- Change the line which adds the script from
<script src=â€PATH/TO/peer_issn.js†type=â€application/javascriptâ€></script>
to
<script src=â€PATH/TO/peer_issn.js†type=â€text/javascriptâ€></script>
This will fix the problems for Internet Explorer 8.
One of the things I’m learning about for the new job is version control systems. This was something that was on my list of stuff to learn about learn about long before I started at OCLC. Way too many times I’ve overwritten working code and not been able to go back. Also as the development shop grew at UH so did the likelihood that those of us coding would step on each other toes. So I started looking at version control systems CVS, Subversion, Git, etc. Understanding how these systems work on a 10,000 foot level isn’t that difficult, but understand the principles of how one might interact with one of these systems to build open source software are more elusive to me. I’m starting to get my head wrapped around it bit by bit. But I need more information.
So I thought I’d look for a book that would be helpful. The problem is that physical books take time to acquire and ebooks well I’ve complained about my unwillingness to purchase DRM’d device specific ebooks before. What I was hoping for was that Packt Publishing whom I’ve purchased DRM-free ebooks before would have a book that met my needs. Unfortunately the book that looked the most promising was one from O’Reilly and not available at a library nearby. However, in trying to determined if it REALLY had the information I wanted I discovered that a PDF version was freely available. So I was able to get it quickly, consume it in digestible chunks, and not have to purchase the whole thing if I don’t need it. Major thumbs up. Also discovered that I can buy ebooks directly from O’Reilly in a variety of formats that seem to be device independant. Increasingly tempted by thought of an ereader. But also tempted by Safari Tech Books online in order to get access to a variety of tech ebooks. Choices, choices…
So a while back I posted code which added peer reviewed indicators to a Serial Solutions E-Journal list. Never being quite satisfied with how stuff works and wanting to make things better I’d rewritten and expanded the script. Now it adds Peer Reviewed indicators to Serial Solutions and an Innovative catalog full record display screen. It also adds links to display the most current table of contents for a given journal if it exists (in both the Serial Solutions and Innovative UI).
Adding Peer Review indicators
- Grab the ISSN from the page (Innovative, Serial Solutions)
- Send ISSN to xISSN service and retrieve whether or not the journal is peer reviewed
- Add Peer Reviewed indicator to the page
The hardest part of this script involve obtaining the ISSN. Serial Solutions luckily tags this in a span. Innovative puts it in a table structure so using JQuery I can use the following
$(“#fullSection td.bibInfoLabel:contains(‘ISSN’)”).next().text()
what this does is find the td with the text ISSN in it and then gets the text in the next tag.
Adding the Peer Reviewed indicator is a matter of finding the place in the HTML structure you want to add the new code and appending it. For simplicity sake in Innovative I’m just adding a new row to the table which contains the bibliographic data.
Adding a link to the table of contents
- Grab the ISSN from the page (Innovative, Serial Solutions)
- Send ISSN to xISSN service and retrieve whether or not the journal is has a table of contents RSS feed available
- If ISSN has an RSS feed available, add a link which say See Latest Table of Contents and executes the TOC script
This script build on what the Peer Review section of the script does and in addition to requesting the peer review field also gets the rssurl field from xISSN. If there is an rssurl field then a link is created and added to the page.
The tricky part of this script is the portion which brings up the Table of Contents in a popup window. What is tricky about this is the fact that the RSS feed exists on a different server and that its XML that needs to be manipulated. It isn’t the fact that data is XML part that creates the difficulty, JQuery is capable handling XML. However, we don’t really know the form (RSS 1.0, RSS 2.0 or Atom) that the feed is which makes it much more difficult. Additionally, because the data being retrieved isn’t JSON we can’t get it without creating a cross-site scripting issue. Two resolve both these issues, I’ve created a PHP script which retrieves the feed and parses it into JSON which I can access. I’m using the SimplePie library to parse the feed which saves me lots of time because it takes care of the multiple types of feeds issue.
This is my 2.0 solution to the problem. My initial solution used a PHP script that just built the popup HTML content and then configured Apache to proxy the PHP script to avoid the cross site scripting issue. I gave up on this solution because it is predicated on the person installing the Javascript being able to configure Apache on the server with the Javascript to act as a proxy. This makes the solution more complicated to configure which was unacceptable. If you want to explore the code in more depth feel free to view the full javascript and the PHP code.
This post is a hold over from before I started working for OCLC which I didn’t get published until now. I’m posting it here so that folks who saw the original content can follow-up. Future posts on OCLC Web Services will be at the OCLC DevNet Blog.
So as I previously mentioned I created a script that crosslists print books and ebooks in Serial Solutions and our library catalog. The mechanics behind this script are pretty simple.
- Screenscrape the ISBN from the web page using JQuery
- Send the ISBN to a PHP page which queries the WorldCat Search API for that ISBN and holdings at the UH Library or Send ISBN to PHP page which queries Serial Solutions to see if UH has electronic holdings for that item
- PHP script returns a JSON object with the OCLC Number
- Use JQuery to Parse the JSON retrieve the OCLC Number and build a link to be inserted into the desired spot on the web page.
The steps are the same for both Serial Solutions and the catalog. The big differences in the code? The code which grabs the ISBN and the code which inserts the link in the right place. This is because the UIs are different so it take different JQuery code to get the ISBN and then insert the link.
Here is the Javascript which works to insert crosslinking into an Innovative catalog and Serial Solutions. I’ve commented it so you can see which part corresponds to each.
In addition, to make this work you have to have the PHP scripts on your server. There is one for WorldCat and one for Serial Solutions. I created these to solve the cross server scripting problem and get the data into JSON format which is easier to manipulate as well. I’ve made these available for download as well as examples (Serial Solutions / WorldCat). It isn’t as abstracted as much as I like. For example, if I had the time I would have coded it so that the PHP builds the link back to the catalog based on the OCLC Symbol submitted. I can do this if I tap the OCLC Registry but I was in a rush and didn’t take the time to code it this way on the first round.
This post is a hold over from before I started working for OCLC which I didn’t get published until now. I’m posting it here so that folks who saw the original content can follow-up. Future posts on OCLC Web Services will be at the OCLC DevNet Blog.
My first purchase I hadn’t intended on making. I wasn’t until I worked for week at home that I realized how wonderful it was to have dual monitors at work. Over the last 4+ years I’ve become accustom to using dual monitors when I work. It is particularly helpful when working on code. But honestly its just as important when you are working virtually and want to have your communication tools and what you are working on visible simultaneous. After a week without them I was at my wits end. So I went looking for another monitor. In the end, I sort of splurged with the monitor because I watch a lot of Hulu and have a limited amount of desk space. As a result, my main screen is now a new Samsung 23″ wide screen LED monitor.
My second purchase revolved around the fact that I have to be able to scan and fax stuff easily for the new job. So I’ve acquired a HP Office Jet Pro 8500 to scan/fax/print/copy. I was skeptical about the HP but was convinced by the ease of with which folks were able to setup the printer’s wireless capabilities (at least according to reviews/comments). Getting the basic setup done was pretty easy. The only road bump I hit involved the scan to email functionality which refused to connect to my Gmail account to send the info. A quick search of the HP user forums located the answer though. One thing I like about the HP is the built in web-based configuration tool. I found this WAY easier to use than the HP Setup Wizard software which seemed lame and crippled by comparison.Hey I’m a geek I want to tweak network masks, etc.
The third addition wasn’t really a necessity but rather my birthday gift. My husband knows me all too well. Realizing that I was going to be working from home, that an important part of that is being able to focus and that I use music to focus, he purchased me Bose speakers for my computer system. The new speakers make for a much improved listening experience when I work, write, code. Much easier to tune out the NASA T-1 trainers as they zoom overhead.
All and all I’m pretty happy which the additions and should have everything for my home office now. The only other thing I’m getting is an iPhone earphone/mic. One of my colleagues says that they work fine with a Mac Air. So I’ll be getting those to use when I’m on the road. Still have to deal with cell phone upgrades, but I’m waiting on those for a variety of reasons.