This is just too good a cartoon not to share:

I needed a way to email a Google spreadsheet to my boss once a month, for some reporting purposes. I could have put an entry in my calendar reminding me to do it, but I thought it would be a great time to try out the Google Docs scripting that I had read about for a year or two, and seen an AppSumo video about. (I got the AppSumo video for free, from an ad on HARO.)
It was laughably easy to get write the actual script (here’s a great set of tutorials). The only rub was Google doesn’t allow you to run scripts in month intervals, only hourly, daily or weekly. A small bit of scripting got around that.
Here’s the final script (edited to remove sensitive data):
function myFunction() {
var dayOfMonth = Utilities.formatDate(new Date(), "GMT", "dd");
if (dayOfMonth == 05){
MailApp.sendEmail("email@example.com", "Spreadsheet Report Subject",
'https://spreadsheets.google.com/a/mydomain.com/ccc?key='+SpreadsheetApp.getActiveSpreadsheet().getId());
}
}
I set up a daily trigger for this script and installed it within the spreadsheet I needed to send.
I really really like Google Apps Script. I think it has the power to be the VB of the web, in the way that VB made it easy to automate MS Office, reduce drudgery, and allow non developers to build business solutions. It also ties together some really powerful tools–check out all the APIs you can access.
Once you let non developers develop, which is what Google Apps Script does, you do run into some maintenance issues (versioning, sharing the code, testing), but the same is true with Excel Macros, and solving those issues is for greater minds than mine.
I have worked on two small projects with Pentaho Data Integration. If you’re looking for a business intelligence tool that lets you manipulate large amounts of data in a performant way, you definitely want to take a look at this. The version I’m working with is a couple of revisions back, but the online support is pretty good. It’s way more developer-efficient than writing java, though debugging is more difficult.
Why is it so cool? It lets you focus on your problem–validating and transforming your data–rather than the mechanics of it (where do the CSV files live? what fields did I just add? how do I parse this fixed width file?). You can also call out to Java if you need to.
There is a bit of a learning curve, especially around the difference between transformations and jobs. I bought my first tech book of 2011, Pentaho Kettle Solutions. These projects weren’t even using Pentaho for its sweet spot, ETLing to a data warehouse, but I have found this to be an invaluable tool for moving data from text files to databases while cleaning up and processing it.
Have you ever considered asking a software vendor to put their source code in escrow? I recently broached the topic with a vendor I was evaluating. They didn’t seem too happy about the topic (at first, they were a bit sarcastic [“does Oracle do software escrow?”] and then they deleted tech support forum post). I did a bit of research, and there doesn’t seem to be a clear consensus on software escrow. Here are two interesting articles: Are you just following the herd? and Source Code Escrow.
Just having started thinking about the topic, my thoughts are still up in the air, but here’s my first reaction. Source code escrow makes sense when the following conditions are met:
I think of source code escrow like a warrenty on a car, or a professional license of open source software (like RedHat or Alfresco). It’s not for everyone (a car mechanic isn’t going to buy the warrenty) but it’s a nice option to have. And, to stretch a metaphor, if you’re going to soup up your car and build a livelihood on it, it’s nice to have a warrenty.
Just thought I’d put this out there, since it caused me much gnashing of teeth. If you have google maps on your site, you want to make sure that the max-width is set to none: div.google-maps img{ max-width: none; } or you’ll have a nice gray screen where your maps are supposed to be, but no error messages at all. See below:
A few months ago, I reviewed a skype phone that we purchased from Amazon, the DualPhone 3088. I wanted to follow up after actually using it for a few months. As a refresher, we bought this phone to reduce the number of minutes we spent on our cell phones. It has both landline and skype phone capabilities, but we are not using it as a landline.
The pluses:
The mehs:
The minuses:
In conclusion, I would not recommend this phone to anyone except an early adopter or someone trying to cut costs radically.
I am new to maven, but recently used it on a project that needed to deploy to two tomcat containers. Cargo seems to be the plugin of choice, but I had a devil of a time trying to get it to deploy to two existing containers with one command.
I ended up using the ant-run plugin to just manually copy the war files where they needed to be. This plugin usage also archives old war files and expands the new one, as well as deploying to the failover container.
Attached, you can see the relevant section of the pom.xml: cargo-deploy-two-containers
Hope this helps.
I was thinking about adding a rating system (1-5 stars) to a cakephp site I run, and was looking forward to it. But then I remembered the cardinal rule of software development, especially in the internet age: check and see if someone has done it first.
And someone had. Updated 6/2/2105: The previous link no longer works. If I had to, I’d try this plugin instead (but I haven’t).
The biggest issue I ran into is making sure that I added the javascript helper to every controller that uses the default layout. If I didn’t do that, I got a blank white screen. Other than that, smooth sailing.
I’m using Google Ad Manager because OpenX didn’t get back to me quickly enough when I requested a free hosted account. Sorry, it’s not Google Ad Manager, it’s Double Click for Publishers. Whoops.
It’s relatively complicated software, probably because serving ads is relatively complicated business. I have hacked my way through it, but the single most helpful tip I found was to append <code>?google_debug</code> to the page you’re trying to get the ad displaying on. This pops up a window with what is basically a stack trace of the javascript execution on your page. You might not understand all of it, but you can definitely cut and paste the message you find into the Google Ad Manager help search, and find more useful answers.
This is based off a question I got from a friend–how can non techies easily set up a website to take donations and publicize a cause?
It’s not hard.
Of course, Google Sites isn’t the most flexible publishing platform (see, for instance, this discussion on how to link to an uploaded PDF), but it will get the job done for most simple sites.
Long live the non expert publisher!
