TechJive

June 24, 2009

Excel: After pressing Enter, move selection …

Filed under: Excel,Tips 'n Tricks — Tags: , — jason @ 8:51 am

Some people may be aware of this, but in Excel you can change the default behavior of the Enter key. By default, when you hit Enter it will move one cell down. In Excel 2007 this setting is found in Office button > Excel Options > Advanced, and it allows you to select from Up, Down, Right, and Left.

Changing this setting is not necessary, however, as you can achieve all four directions with the default setting.

  • Down, this is the default behavior
  • Up, Shift-Enter
  • Right, Tab
  • Left, Shift-Tab

There are two more Enter-based keystrokes that come in handy from time to time.

  • Ctrl-Enter saves the cell data, and keeps that as the currently selected cell (read: does not move in any direction)
  • Alt-Enter will give you a new line (LFCR) within the same cell

March 31, 2009

The Google Apps Value Prop, Part II

Filed under: Collaboration,Google,Web — Tags: , , — jason @ 9:41 pm

@hientran hit me up following my original post on The Google Apps Value Proposition. He considered my omission of Google Video and video chat in Google Talk big oversights. So I’m back today to bring you those two pieces to the Google Apps puzzle.

Video
I wasn’t totally surprised by the announcement that Google was made that they have discontinued the ability for the general public to upload video to Google Video, what with YouTube and all. I was also not surprised to see that Google is re-focusing Google Video into an Apps application. It’s really quite brilliant. You can share videos with specific people, or with the public. I could go on and tell you how you can use it, or I can just let you watch how Google uses it.

Video Chat
I can totally see why why @hientran says this is a “cherry on top” feature. I’ll just quote him:

Videochat inside gmail has been great for our org, I can see / talk to my team from without needing to fire up skype or ichat

T

However, there are three things that keep this from being a killer feature for me.

  • Not everyone in my org, or who I chat with, has a video camera on their computer
  • I already have iChat and Skype running
  • It’s web only, so even if you run the official Google Talk app on Windows, it still doesn’t work

That said, if you have a video camera, and don’t already use other chat protocols, then this can be an excellent tool for your organization. And because it is Google, you’ll be able to video chat with anybody who also uses a Google-based web chat — Gmail or another Google Apps account.

March 25, 2009

The Google Apps Value Prop

Filed under: Collaboration,Google,Web — Tags: , , , , — jason @ 8:26 pm

If you follow me on Twitter, you know that I’ve been doing quite a bit with Google Apps recently. One of them is a non-profit that I’m associated with. The friend I’m working with on that (who works at the NPO) asked me today for some “talking points for selling all these services.”

I shot him a quick reply, closing it with a statement about needing to write a blog post about the value proposition of using Google Apps. That question has been rolling through my brain all day long, and it’s time to put thought to keyboard.

Context warning: this is related to this specific org, where they may/will migrate email from a hosted Exchange solution. They are also using Basecamp for project management and collaboration tasks. I will try to make it as generic as possible so as to make it more widely relevant to the broader public.

Email
When looking at replacing Exchange with Gmail, I always come back to one argument … lock-in. With Exchange you are locked into Outlook for a desktop client, and IE for the web version. Any other desktop client — including Entourage — is a second class citizen, IMHO. Same goes for your growing market share of non-IE browsers. Outlook Web Access on anything but IE is pure trash. And if you want good mobile access to your email you are limited to Active Sync devices, or paying for a Blackberry solution.

With Gmail you get an excellent webmail client, whatever your browser of choice. If you want to stay on a desktop client, take your pick, because Google supports them all. Google has also developed an array of mobile access methods, ranging from applications you install on your Java-enabled phone, to push messaging to iPhones.

Calendar
Comparing Exchange’s calendar to Google’s calendar is pretty even. They both allow you to request appointments with other people. They both allow you to check other people’s availability so you can know when to schedule that appointment. They both allow you to share your calendar with other people in your organization, with view or editing rights. Google separates itself from Exchange on two fronts.

First, back on the mobile train. Again, Exchange limits you to Active Sync or BES. Google allows you to wirelessly sync your phone’s calendar for most types of phone. The list includes Android, Blackberry, iPhone, Nokia, Sony Ericsson, and Windows Mobile.

Second, with Exchange you are limited to sharing your calendar within your organization. With Google you can share your calendar with anyone who has a Google Account. For example, I have a work GCal, my wife has a personal GCal, and we have a shared family GCal. I can go to one place and see all of my calendar stuff. To achieve that with Exchange involves a whole lot of synchronizing stuff using various web services — free and pay-for.

Chat
Some people will like this, some won’t. Some people will use it, some won’t. I instant message with my colleagues all day long. My wife is always a short message away from me, and me from her. This one has been in the personal user space for a long time, but is just now being used as a corporate communication tool. I think if more organizations endorsed IM as a valid tool for their employees to use, it would grow in use rapidly. Microsoft doesn’t have a chat client for Exchange, so there is no real comparison here.

Docs
Comparing Google to Basecamp, Docs goes squarely up against Writeboards. They both provide similar functionality, in shared editing of documents. Docs moves ahead because it allows for real-time shared editing, where Writeboards do not allow this.

Beyond word processing, Docs brings you online collaboration on spreadsheets and presentations. It gets my geekiness all excited when I’m sharing a spreadsheet with a handful of other people, watching real-time as the edits are happening. For me, the shared spreadsheets makes Google Apps 110% worth it. With Basecamp, you are relegated to uploading new versions of files, for people to then download locally.

I will say this, if you are a Microsoft Office “power user” — deep into macros, and obscure Excel functions — then you will not view Docs as your total solution, which it isn’t. Don’t discount Docs though, because Google continues to add functionality, and spreadsheet functions, to Docs. It will only get more powerful over time.

Sites
To be perfectly fair, this comparison is a stretch, since Sites is a wiki solution that can be shaped in a project management fashion, and Basecamp is a true project management solution. On with the comparisons, though. Beyond Writeboards, Basecamp gives you messages, to-dos, milestones, chat, time, and files. Their format. Their logic. Their rules. Basecamp just works, and it works very well.

Sites, because it is a wiki, is not limited to project management like Basecamp. Sites can be molded to what you need it to be. Sites can be public, with public edit rights, and they can be private — locked down to a handful of collaborators. You can create lists, where you determine the data fields to track. You can create message logs. You can link in external web pages. You can link in other Google Apps items, such as docs, spreadsheets, calendars, and more.

Closing
I know there is more that I can say about this. I’ll try to sum it up in a nice package for you all. Google Apps gives you all of the same functionality as you get in Microsoft Exchange, and more. Google Apps gives you all of the same functionality as you get in Basecamp, and more. Google will do this for you for free, with the Standard Edition of Google Apps. If the standard edition just isn’t enough for your company, for $50 a year per user you can get the Premier Edition, which gives you more functionality. And if you work for a school or non-profit, you can sign-up for the Education Edition for free, which is comparable to the Premier Edition.

One last thing. While all of these Google services are 100% web-based, many of these services (not all), have the ability to go offline with Google Gears. If you’re about to get on a plane, you can sync your email, calendar, or documents locally, and sync back up when you have connectivity again. I’m a non-traveling desk jockey, so that rates lower on my useful-to-me scale.

Update 3/26/2009 8:00 PDT@hientran points out that I have omitted Google Video and Video Chat in Google Talk. I will do a follow-up on those two services specifically, hopefully tonight.

March 1, 2009

Personal Computers

Filed under: Internet Has Changed ... — Tags: , — jason @ 9:57 pm

Since it was this article that prompted me to post this, I figured I would take up the topic of personal computers for the first post in my series on how “The Internet Has Changed Everything.”

For a long time industry was based around mainframes and dumb terminals. Then when the PC hit, the market shifted towards distributed computing. For a while some people were talking about a return to centralized computing based on thin clients. That one hasn’t come to pass, and I think it’s window of opportunity is closing rapidly, if not already closed.

At the heart of having/needing/using a computer is the necessity to run applications. Word processing, spreadsheet wrangling, presentation making, photo editing, code programming; for all of these you have needed a computer to do, but not so much anymore. Centralized computing is back, and I think the “cloud” is where we are going to see a lot of technological growth in the coming months/years.

Don’d miss cheap dedicated hosting?

Google Docs, Zoho Office, and others allow you to store and edit your documents, spreadsheets, presentations (read: MS Office stuff) online. FotoFlexer and Picnik allow you to edit your photos. With Bespin you can edit HTML in the cloud. Moving beyond your PC, Google Docs now supports editing from your iPhone. Heck, you can even do your taxes completely online.

When you have the City of San Jose talking about taking their $3 Million annual licensing away from Microsoft, and paying a very small fraction of that for Google’s enterprise edition of Google Apps, this isn’t just a fun little play thing anymore. And because it’s web based, maybe they don’t need to upgrade their computer systems as rapidly, further saving them some desperately needed cash.

And maybe the next time they do upgrade their desktops, they purchase some resource light computers, running Ubuntu Linux, because the only application their staff needs is a web browser.

For all of the promise that centralized, cloud-based computing has, however, there are still some major applications that aren’t cloud-ready. Things like multimedia (music and video) library storage, editing said multimedia files, and gaming.

With energy costs rising, the GHz wars between Intel and AMD are turning into GHz + wattage wars. As more applications, and users, move into the cloud, the higher the value is placed on the wattage component.

Of course, I’m probably talking to a bunch of geeks like me, so this isn’t really going to be news to any of you.

February 21, 2009

The Internet Has Changed Everything

Filed under: Web — Tags: — jason @ 10:59 am

I’m out at the Oregon coast with my wife’s family this weekend, and my wife brought along the Wired that came in the mail on our departure day (not up on their website yet). One article in this issue is about netbooks, and that one article has been a center piece of quite a few of our conversations.

Then late into last night my brother-in-law and I were talking about how we see technology changing, and changing “stuff” over the next 10 years. Questions like “what will buying music look like in 10 years?” and “what will TV look like in 10 years?” It was a rather fun conversation, which now has my brain thinking pondering those questions further.

So, I’m going to have some ir-regularly scheduled writings on the topic of how the internet has change everything. I’ve already got some ideas on topics, but I’d love to take some ideas from you. Please feel free to hit me up at internetchanges (at) jschwanz (dot) otherinbox (dot) com.

February 20, 2009

jQuery Form Validation

Filed under: Development,Web — Tags: , , — jason @ 7:39 am

We do very little true data entry into our systems database. Most of what we do is updating the information already in, or adding an entry to the activity log for a server. I hadn’t really given much thought to form validation, until a coworker asked for it. Once again, there is already a jQuery plugin that does a fantastic job of this.

The jQuery Validation plugin works on many different levels. First, and most commonly, it will validate that you have entered values into required fields.

Beyond that, you can validate the data entered into the field is in the format you desire. Types include email, url, date (mm/dd/yyyy), ISO date (yyyy-mm-dd), number (float), digits (integer), credit card, US phone numbers, and equal to (retyping email address as an example).

You can also do min and max lengths, min and max values, as well as ranges. The best part is that you can force any of the format validation without making the field required entry.

For me, what makes this plugin hot with a capital HAW, is that you can do remote validation before the form is submitted. One of their demo pages is a mock signup form for Remember The Milk (type “Peter” in the username field). With this demo, the username field is set to remotely verify with an external source — in this mock-up it is just a static array in a PHP file — that the value you have entered doesn’t already exist. They are even nice enough to give you both the jQuery script and PHP code from the example.

I’m still in the process of adding the format validation to non-required fields in our system, but I’m already rawking the required validation, as well as the remote validation for unique values like host name and server name.

February 17, 2009

jQuery Table Sorting and Paging

Filed under: Development,Web — Tags: , , — jason @ 7:39 am

As I set out on re-writing the interface for my systems database, on thing I knew I wanted to implement was better sorting, and pagination. In v1 I implemented sorting through GET statements, and requerying the database according to the choice of column and direction.

I used this tutorial as the basis for my own “plugin” to jQuery. The authors do a good job of explaining all that they are doing with their Javascript code. They, very helpfully, present the full 100+ lines of code at the bottom of the tutorial. After my copy/paste of it, I set out to make it work for me.

First of all, your table needs to be setup in the following standard structure:

<table class='sortable paginated'>
<thead>
<tr>
<th class='sort-alpha'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span>Column 1</th>
...
</tr>
</thead>
<tbody>
<tr>
<td>Field 1</td>
...
</tr>
...
</tbody>
</table>

Three quick things you’ll notice, 1) the two classes on the table (sortable and paginated), 2) the class on the TH (sort-alpha), and 3) the SPAN is for a jQuery UI icon feature. I’m going to state the obvious here, if you include the class “sortable” on the table, then it will be made sortable, and if you include the class “paginated”, the table will be paginated.

The class on the TH tells it how to process the sorting: sort-alpha, sort-numeric, and sort-date are all available. The first click on the header sorts ascending, the second sets it to descending, the third back to ascending, and so on.

A nice side benefit of using sortable or paginated on the table is that it also dynamically adds an “odd” or “even” class to each row for styling purposes. And this odd/even is refactored with every sort.

I did have to make a few modifications to the jQuery code I found.

First, they use the Javascript function of lt() and gt() in the pagination, to hide the rows below and above that page. In my testing, using FF3 primarily, the DOM doesn’t support lt() and gt() anymore, so I modified the code to use the slice() function.

Next, the sorting, on the first click, would add the sorted-asc class, and the second would add the sorted-desc class, but the second would not remove the sorted-asc class. This kept it from sorting it decendingly. Because jQuery is chainable, I just added a .removeClass(‘sorted-asc’) for the even numbered clicks, and a .removeClass(‘sorted-desc’) for the odd-numbered clicks. I also threw in some similar code that acts the same way to stylize the TH in line with the jQuery UI plugin, changing the SPAN arrow class, and on all of the TH blocks adding/removing a “ui-state-active” class where appropriate.

The last change I made was adding a “View All” option. A coworker asked if I could do that, since it is nice to see the full table in non-paged sometimes. To achieve this I added a View All link to the end of the paging links, and when this link is clicked it re-paginates the table setting the “current page” back to zero (the first page), with the number per page equal to the number of rows. Then when one of the paged numbers is clicked it changes back into the normal mode where number per page is equal to your defined number.

Here is my code. As I said, mostly taken from this tutorial, with my modifications described in this post.

jQuery Sortable Pagination Plugin

February 15, 2009

Database of Systems

Filed under: Development,Web — Tags: — jason @ 2:24 pm

When I started in my current job about 18 months ago, I was taking over some responsibilities from a guy who had been gone for six months already. Very quickly I learned that what was documented was done pretty well, but there was quite a bit of stuff that wasn’t documented.

Beyond the lack of documentation about how some things had been setup and configured, there wasn’t any real good record keeping on all of the systems we had. We had a wiki page listing most of the servers, and a few columns of data, but it was a wiki page; designed more for documentation and note taking, not so much for entering and tracking the minute details about servers.

So I set about to create a database and web front to track this minute detail. Version 1 wasn’t perfect, but it got the job done. We could track the specifications of the hardware (RAM, CPU, disks, power supplies, etc), what OS was installed, physical location, backup information, reboot instructions, etc. We started to dig in to bringing our network equipment into the mix. The one part that was the most challenging, but most rewarding, was taking the physical location information, and producing a dynamic rack map for our various server rooms. At the time I built v1 out we were really just beginning conversations about virtualization.

A simple payoff came not too long after releasing v1 to the office. In a meeting something was mentioned about how we had roughly 40-50 servers, but I was able to say with certainty that we had nearly 90. It’s almost like one of those guess-how-many-marbles-are-in-the-jar games, except with hundreds of thousands of dollars of server equipment, and they had obviously guessed low.

Jump forward to 2009, and we are now implementing virtual hosts, and migrating some of our services to said hosts. Over the last month I’ve been working on v2 of the systems database, breaking my tables up into clear separations of the physical and software portions of the server. I had originally built it where the “guest install” and the “physical host” were one in the same. I’ve also been able to make further additions for the networking equipment, so hopefully we’ll be able to log that stuff in as well.

I’m still in the development phase of v2, but I’ve made some big strides with it already. With v1 I rolled almost everything by hand. In v2 I decided to take advantage of the magic of jQuery. The results so far have been very nice, but I still have more to go. Over the next while I’ll highlight some of the jQuery stuff that I’m using.

February 1, 2009

Open From S/FTP Server

Filed under: Tips 'n Tricks,Tools — Tags: , , , , — jason @ 9:23 pm

If you do any kind of work that requires S/FTP, you know the hassle of marking up your local copy, saving, uploading, and checking the result. I know it drives me batty to have to do all of that up-and-down crap. And sure, I can use vi in the command shell, and I do regularly, but I find I’m much slower in vi than I am in a regular text editor. So I struggled with vi or the FTP up-and-down, until I found a great bit of functionality within my already chosen text editor on Mac.

I had been using TextWrangler for a while — mostly because it is a powerful text editor, with the added benefit of being free — before someone tipped me off to the ability to open and save files from within TextWrangler over S/FTP connections. I hadn’t ever considered that could be placed into software, but I found it to be a brilliant feature to a product I already considered to be of high quality. With TextWrangler, you open a FTP browser window, enter your S/FTP information (or pick from a saved bookmark), and connect. It’s a pretty basic FTP browser, but it doesn’t need to be super fancy.

Sure, it has its limitations. You need to have permissions to the file, and cannot use a SUDO command to gain super user access to edit it. Also, if you have to CHMOD or CHOWN you need to do that elsewhere. In full honesty, these are the only limitations I’ve come up against at this point, and maybe I’m not looking hard enough to find the way to do it. I’ve been using this functionality from TextWrangler for about a year now, and this is one of those simple, yet killer features that I will expect out of any future text editor I use.

Does anyone know of a text editor on the Windows or Linux platforms that provide similar functionality, because I’d sure like to give it a go on my other workstations.

January 13, 2009

Quick(silver) Search Box

Filed under: Apple,Google — Tags: , — jason @ 9:11 pm

I saw the announcement come through yesterday for the “developer preview” of the new Google Quick Search Box for the Mac. I immediately downloaded it and started working with it, not fully knowing what to expect.

My initial response: wow, this could replace Quicksilver. For being a dev preview it seems quite impressive already. I did hear from a friend that it kept crashing on his computer, but it seems to be working just fine on mine.

A lot of the actions seem very similar to what you get with Quicksilver. At this point you don’t have any triggering or plugin capabilities, but from an application launcher standpoint, it is very nice. And it has the benefit of being a Google tool, where you can enter your Google account information, from multiple Google accounts, and it will index your Gmail, Docs, etc.

Then I saw this post about QSB today from Macworld, and it all made sense as I was reading the comments. Stated in comment number 2, referring to Nicholas Jitkoff, one of the devs working on QSB:

Nicholas is the guy that did Quicksilver, so this is the future if you are a Quicksilver fan.

Yep, I’m on board.

Older Posts »

Powered by WordPress

SEO Powered by Platinum SEO from Techblissonline