Oct
15

iPhone 4s Joy

I got my new iPhone 4s yesterday. No, I didn’t camp out. I ordered online from AT&T and had to wait a whole twelve hours for it to be delivered by FedEx to my front door.

Setup took about five minutes and it came with a full charge so I was up and running right out of the box. The sync to iTunes took about ten minutes.

Last night Siri was having a lot of trouble connecting to the network so I was on the verge of being severely disappointed in that aspect but by this morning Siri was working great.

Everything has been pretty intuitive so far. I’ve only had to look up one feature online, Siri location based reminders. Getting that to work is a two step process.

  1. Tell Siri who you are.
    1. Create a contact for yourself.
    2. In settings, select General >> Siri
    3. Set My Info to your contact.
  2. Add locations to your contact.
    1. Find a location on the map.
    2. Click the blue “>” on the location label
    3. Choose add to contacts.
    4. Add it to your contact.
    5. Set a custom label (Hint: the same label can be applied to multiple locations al la Starbucks or Home Depot).
  3. Tell Siri to: “Remind me to get a Cafe Mocha when I get to Starbucks”.
  4. Viola!

Sep
05

Executing SQL Scripts via MSBuild Extensions Pack

MSBuild is a powerful tool right out of the box.  With the ability to manipulate files and execute external commands there is a lot of mileage a creative Build Team can squeeze from it.  However, this barely scratches the surface of what it can do.  When you add on the MSBuild Extensions Pack you open up a whole new world of tasks that improve the capabilities of the Build Team.

One of the simplest, most useful, tasks available in the Extension Pack is the SqlCmd task.  This simple task does an amazing thing.  It allows you to execute SQL commands either directly or via script files directly in your build execution.  This  opens up several possibilities for complementing the build process.  From actions such as deploying new data structures to support the build to cleaning up data or reshaping it to meet new requirements.

The example that follows is basic in nature but describes the steps necessary to use the SqlCmd task to execute SQL Scripts against your database.

1. Create an empty solution in Visual Studio and add a scripts directory to house your sql scripts.

2. Add a text file to the scripts folder with a .sql extension.

3. Modify the script to perform a basic select operation

USE MSBuildDemo

SELECT *
FROM sysObjects

4. Save the script.
5. Right click on the project in Studio and select “Unload Project”.

6. Right click on the project placeholder and chose “Edit <Project>.csproj” where <Project> is the name of your project.
7. Edit the csproj file to import the Extension Packs tasks file

<PropertyGroup>
<TPath>C:\Program Files\MSBuild\ExtensionPack\4.0\MSBuild.ExtensionPack.tasks</TPath>
</PropertyGroup>
<Import Project="$(TPAth)" />

9. Reference the script files
<ItemGroup>
<InputFile Include="$(SolutionDir)Scripts\**\*.sql" />
</ItemGroup>

10. Add the SqlCmd task to call the script to the BeforeBuild target.
<MSBuild.ExtensionPack.SqlServer.SqlCmd TaskAction="Execute" Server="MySQLServer\SqlExpress" Database="MSBuildDemo" InputFiles="@(InputFile)" LogOn="BuildUser" Password="password" />
11. Save the csproj file.
12. Right click on the project place holder and click the “Reload Project” option.
13. Rebuild the solution.
14. The SQL Commands will execute as part of the build process.

Aug
18

Team Foundation Server Usability Tip – Better Query Views

Work item queries in Team Foundation Server allow simplified management views of those items. However, the default view splits the results from the details of the work item in a horizontal split. This makes it somewhat difficult to view the full detail of the work item.

A better view is to use the vertical split. You can then see the full details of the work item while scrolling through the query results.

Aug
14

Good Learning Resource on MSBuild

This book has been a great source of information about MSBuild and configuring projects for automated deployment. By the end of the book I could read MSBuild files without any trouble and could successfully configure automated deployments utilizing Build Server.

Aug
14

Creating a backup of a Web Site using MSDeploy/Web Deploy

One of the most essential steps in managing web application updates is the ability to recover to a point in time prior to the update should the deployment of updates be unsuccessful.  MSDeploy simplifies this step and can even be incorporated into build definitions to create automated backups when a deployment build is executed.

To create a backup of a site from an existing site simply execute the following command:

msdeploy -verb:sync -source:iisapp=”Default Web Site” -dest:package=c:\defaultsite.zip

This will create a deployment package of the iis application running as “Default Web Site” on the machine where the msdeploy command was executed.  If you want to remotely administer a web server ensure Web Deploy 2.0 is installed on the target machine and modify the command as follows:

msdeploy -verb:sync -source:iisapp=”Default Web Site”,computername=MyServer -dest:package=c:\defaultsite.zip

You must have administrative privileges on the server you are trying to sync from in order for this command to be successful.

Restoring the backup is as simple as running the command below:

msdeploy -verb:sync -source:package=c:\defaultsite.zip -dest:iisapp=”Default Web Site”,computername=MyServer

Again, you will need administrative privileges on the target server for this command to succeed.

Aug
07

Ten Things I Love about the WordPress Graphene Theme

I’ve started using the Graphene theme for WordPress almost exclusively across my blogs.  It has plenty of positives in its favor but I’ll list the top ten here that make it my default choice.

1.  Out of the box Social media buttons.  Right away, by simply filling in a couple of text boxes you can connect to both your twitter and facebook profiles.  Super simple to setup and reliably works.
2.  Easy to add additional Social media buttons.  Adding a new button is as simple as clicking a link and filling in three text boxes.  What could be simpler?
3.  Adding social sharing buttons to posts is simple.  Specify the position you want these buttons to show up in in relation to your posts and paste the HTML.  Beautiful!
4.  Adsense integration out of the box.  Simply snag your ad code from adsense paste it into the adsense text box and Viola!  Instant ads!
5.  Google Analytics integration.  Seriously, have you seen the reporting from Google Analytics?  All of that for no charge?  With Graphene you paste your tracking code in a text box and the magic happens for you.  Sweet!
6.  Twitter posts widget.  This theme has a Twitter widget that you simple drag to your widget area, specify the user name, and start viewing tweets!  No application codes to setup.  Easy!
7.  Gravatar support for post authors.  I like to see the face of the person who has written a post.  Gravatar integration makes that as easy as marking a check box.
8.  Graphic representation of column options.  Instead of just a description of the column options available the theme displays a wire frame picture  of the option you are selecting.  Just an option that makes the theme that much more user friendly.
9.   Customizations that do not require editing code.  All of the options above don’t require you to dig into PHP code or files.  That way, when updates to the theme come out, you don’t loose your configurations.
10. Developer support.  I like it when a WordPress theme or plugin has a very active and responsive developer.  It means I can rely on that dependency without fear that it will stop working and be unsupported as new versions of WordPress are released.  In reviewing Graphene’s developer site I see responsiveness to enhancement requests along with a desire to understand what is being requested.  This goes a long way in moving this theme into my good graces.

There!  The top ten reasons I’ll be using Graphene as my WordPress them for the foreseeable future.

Aug
07

Adventures in WordPress and Web Hosting

So, I’ve had two other WordPress based sites that have been out of commission for several days. Afterburn SF and Tuskaloosan are two blogs that I operate.  Starting mid-week last week they started reporting 500 errors.  This meant there was a problem on my web hosting server.  The odd thing was that this site, NatThompson.com, and others that I operate in the same hosting environment were working with no problem.

I applied all the latest patches from my application administration console to no avail.  Both sites kept returning the same error.  I was scratching my head and beginning to get frustrated.

I decided to start checking the actual files themselves to see if there was some sort of corruption that had occurred.  I fired up my trusty FTP Client, FileZilla, and started browsing through the files.  Right away I noticed a file that looked out of place, web.config.  In my experience this file is geared towards ASP.Net web sites and not PHP sites.

I figured I had done something silly and accidentally uploaded this file to the server.  I deleted it and lo and behold the site started working again.

Thinking I had permanently resolved the issue I went about making some changes to the site.  After a few minutes I decided to check the permalinks settings page.  As soon as I did and tried to navigate away from it the site was back to throwing 500 errors.

I checked the FTP client and web.config was back!

At this point I began to fear a hacking incident.  I deleted the file and waited for it to return.  After a few minutes it had not reappeared and I went back to editing the site.  That’s when I noticed that links to pages and posts were not working either.  Whenever I clicked on one of them I got a 404 error indicating that the resource I was looking for could not be found.

I figured there must be a problem with the URL translation for permalinks so I went to the page to adjust them.  I click the “Save” button and Wham!  500 error.

Checking FileZilla web.config is back.  A brief bit of googling later and I come to several help requests involving word press, GoDaddy (my hosting provider), and “pretty URLs”.  The long and short of it came down to an incompatibility in the level of hosting plan I have and the Rewrite URL module WordPress uses for translating URLs.

Getting the default setting back was a bit of an adventure as well.  As soon as the permalinks page loaded the web.config file was created by WordPress.  I had to load the page, delete the web.config file in FileZilla, set the default and then save the changes.  Then repeat for the second site.

Whew!

Finally all is well.  Hopefully there will be full support of this module from GoDaddy in the future.  For now I’m just happy to have both sites up and running again.

Aug
06

Adding Google+ Profile Button to WordPress

Finding the Google+ profile button generator took far longer than I expected. Apparently my Google Fu was weak this morning. I finally found it though and now my site sports a snazzy new social media badge.

Thanks to Sarah Gooding and her post “How to Display a Link to Your Google+ Profile on Your WordPress Site” for finally making this click for me.

Aug
06

Web Hosting Plan Upgrade in the Works

I use GoDaddy.com for my web hosting. They are affordable and have been a reliable hosting provider. Recently though, I’ve been working with .Net 4 and MVC 3 and until now I could not get support for it on my hosting plan. Tonight that is changing.

I’ve upgraded my hosting plan to the “4GH” plan that includes .Net 4. The upgrade is processing as I type this. Hopefully in a few hours I’ll be publishing web sites with all the goodness that is MVC 3.

*** Please note that I have an affiliate relationship with GoDaddy.com. This means I can receive payment for purchases made with GoDaddy.com that I refer ***

Aug
05

Virgin Mobile Service Update

So…

Apparently I talk WAAAY more on my cell phone than I thought. When I signed up for Virgin Mobile on July 14th I thought 300 minutes would be plenty. Not so.

As of yesterday I had nine minutes left. Nine! With eleven days left on my first month I knew I was in trouble. So I upgraded my plan with Virgin to the $40 per month, 1200 minute, unlimited data, messaging and web plan.

That will give me up to 40 minutes of talk time per day in a 30 day month. That should be plenty, right?

Older posts «