Wallace McClure 

Wallace B. McClure graduated from the Georgia Institute of Technology in 1990 with a Bachelor of Science in Electrical Engineering. He continued his education there, receiving a Master's degree in the same field in late 1991. Since that time, McClure has done consulting and development for such companies as Coca-Cola, Bechtel National, Magnatron, and Lucent Technologies, among others. He is the founder and president of McClure Development. [Read More...]

More Wally - Wallace B. McClure

Author Review and Production Editing are complete

What book editing isn't better the second time around?  Like a dog returns to his vomit and the fool to his folly, the author must return to his writing.  And with the past week, my author team and I have finished our AR and Production Editing for Wrox's "Professional Android with Mono for Android and .NET/C#." We are literally 8 months from being AR and PE complete the first time around (I really hope that there isn't a third).

Mono for Android bookAnd with the upload to my editor at Wiley/Wrox, the book known as "Professional Android Programming with Mono for Android and .NET/C#" is now Author Review Complete, barring any slip ups on my part.  Its always a great feeling to get these things done.  A real load off of my shoulders. 

The genesis of this book has been really interesting.  It started while we were still writing our "Professional iPhone Programming with MonoTouch" book.  We started talking about this due to the Apple self FUD starting last April, 2010.  Watching the number of Android devices sold go up each quarter also helped me make the decision to go forward.  Martin Bowling started as the lead author.  Unfortunately, he had family issues and had to drop off during the planning stages. The other authors that joined me on this were Nathan Blevins, Jon ***, Chris Hardy, and John Croft.

Here is some info from the Amazon web site about our book:

The wait is over! For the millions of .NET/C# developers who have been eagerly awaiting the book that will guide them through the white-hot field of Android application programming, this is the book. As the first guide to focus on Mono for Android, this must-have resource dives into writing applications against Mono with C# and compiling executables that run on the Android family of devices.

Putting the proven Wrox Professional format into practice, the authors provide you with the knowledge you need to become a successful Android application developer without having to learn another programming language. You'll explore screen controls, UI development, tables and layouts, and MonoDevelop as you become adept at developing Android applications with Mono for Android.

  • Answers the demand for a detailed book on the extraordinarily popular field of Android application development
  • Strengthens your existing skills of writing applications and shows you how to transfer your talents to building Android apps with Mono for Android and .NET/C#
  • Dives into working with data, REST, SOAP, XML, and JSON
  • Location, mapping, and the question of "where am I?" with regards to mobile.
  • Discusses how to communicate with other applications, deploy apps, and even make money in the process

Professional Android Programming with Mono for Android and .NET/C# gets you up and running with Android app development today.

Please remember to buy 8 to 10 copies for the ones you love.  They will make great presents all year round. If you would like to start by pre-ordering 5, that would be great to.

HTML5 for Mobile Article on DevProConnections

My article on HTML5 for Mobile Devices at Dev Pro Connections Magazine has now been published.

HTML5 is the umbrella term for the next major evolution of markup, JavaScript, and Cascading Style Sheets (CSS) for web applications. HTML5 is becoming an ever-more important mobile development technology -- especially in light of Adobe's recent announcement that it's ceasing development on Flash Player for mobile browsers and increasing its investments in HTML5. To bring you up to speed on this crucial aspect of development, DevProConnections has covered HTML5 extensively in recent months, including my article "HTML5 for the ASP.NET Developer." In this article, I intend to provide a similarly comprehensive overview of HTML5 with an emphasis on features oriented toward mobile development. We'll dive into some specific examples of HTML5 features and focus specifically on what is available with mobile devices. I will focus on what developers can do today as opposed to what is part of the specific set of standards. I'll also mention where a product may have a slightly different outcome than expected. 

I would also like to thank the people that helped me with the article.  There were many people that read through the article and provided suggestions.  Some of them were Dave Ward and Spike Xavier.  I'm sure that there are other folks that helped that I forgot to mention, hopefully, they are not too upset over that.  Thanks to Dev Pro Connections for the opportunity to write the article.  I hope that you find the article helpful as you get into mobile development.

Mapping and Location with Monotouch on DevProConnections web site

My article on Mapping and Location with MonoTouch is now out and available on the DevProConnections web site.  Here's the intro to the article:

Mobile phones are by definition, mobile. A couple of interesting questions that come up when users are mobile are, "What's around me for dinner?" and "Where can I get gasoline?" If you are a retailer or a company, you want to tell potential customers that there is a retail location near them. If you are a user, you might also be interested in learning about how to go from where you are to a specific address. In this article we'll look at these and associated features, so that we can provide them to users via mapping and location services to users in iOS apps. 

I hope the article is valuable to you as you learn about the iPhone, iPad, and MonoTouch.

Contact Columns and other pieces of help info in Mono for Android

I was trying to pull some column content from the Contacts in my Mono for Android example.  I was digging through and found the GetColumnName and the ColumnCount members, which were problematic to find.  Anyway, I went through and created the following code:

var contacts = ManagedQuery(ContactsContract.Contacts.ContentUri, nullnullnullnull);
var ContactColumnLength = contacts.ColumnCount;
for (int i = 0; i < ContactColumnLength; i++)
{
    var col = contacts.GetColumnName(i);
    Console.WriteLine("Column:{0} ColumnName: {1}", i, col);
} 

I got the following output:

Column:0 ColumnName: times_contacted
Column:1 ColumnName: contact_status
Column:2 ColumnName: custom_ringtone
Column:3 ColumnName: has_phone_number
Column:4 ColumnName: phonetic_name
Column:5 ColumnName: phonetic_name_style
Column:6 ColumnName: contact_status_label
Column:7 ColumnName: lookup
Column:8 ColumnName: contact_status_icon
Column:9 ColumnName: last_time_contacted
Column:10 ColumnName: display_name
Column:11 ColumnName: sort_key_alt
Column:12 ColumnName: in_visible_group
Column:13 ColumnName: _id
Column:14 ColumnName: starred
Column:15 ColumnName: sort_key
Column:16 ColumnName: display_name_alt
Column:17 ColumnName: contact_presence
Column:18 ColumnName: display_name_source
Column:19 ColumnName: contact_status_res_package
Column:20 ColumnName: contact_chat_capability
Column:21 ColumnName: contact_status_ts
Column:22 ColumnName: photo_id
Column:23 ColumnName: send_to_voicemail

Hopefully, some of this is helpful.

My Artilcle on the UITableView with MonoTouch and the iPhone/iOS is now online

My article on the UITableView in the iPhone/iOS with MonoTouch is now available online. Hopefully it is of value to you.

Article overview:

Data is what makes applications go. It could be a Twitter search, a running game score where you are playing against your friends, sales data, or any other type of data that users want to base decisions on. In this article, we're going to look at presenting tabular data to users in a UITableView. The UITableView has a number of visually attractive default styles that you can use. After we're done looking at these, we'll look at creating a custom UITableView layout. Along the journey, we'll look at some optimizations we can do that will give the user an improved experience. After we're done with this, we'll look at some strategies to get at various data sources, such as Representational State Transfer (REST), Windows Communication Foundation (WCF), SQL Server, and the on-board SQLite database.

If you are wondering what MonoTouch is, check out http://xamarin.com/monotouch. It’s a great tool for .NET developers looking to get into iPhone development.

Tired

I got a call last August/September from a local friend of mine out of the blue.  He's a good guy, trying to make something happen.  Anyway, we sat down for lunch and he was trying to sell me on doing something that would benefit him.  I kept coming back to "What does this do for me?  What is the advantage that this gives me?  How does this further my career?  This sounds like an awful lot of work and I don't see the payback.  What am I missing?"  As you can well imagine, this didn't happen.  It really doesn't matter what it is.

Anyway, this singular event caused me to re-examine a lot of things in my life.  One of them is my involvement in a lot of events.  See, I love to go to events.  I love to meet people.  Unfortunately, I have learned that I don't travel well, especially as I have gotten older.  8-10 hours in something makes Wally upset and an unhappy boy.  The result of this is that I am looking at everything I do: community events, travel for pay gigs, writing, whatever I am doing, I am now looking at the time required, what it means I have to do, and am going to reevaluate if I can do it. 

 Here's what I have learned and decided on for the next 12 months or so:

  • I'm just flat out tired.  I'm not tired of you, mad at you, or anything, but danged, I just can't keep saying yes to everyone.  I find that I say yes too much, and I'm just going to start to say no much more.  Unfortunately, this means I have to back track on some previous commitments, but I have to for my own sanity and health.  I'm lucky to get a few hours of sleep per night right now.  Interestingly, one of the parents on the basketball team said that I am no where near as animated as I have been, including last year.
  • I haven't had a non-working vacay in forever, probably 16+ years.  Well, guess what we're doing this summer?  We're going to southern Europe for 9 days.
  • If you have an event outside of about 250 miles and you want me to speak, I'm probably not available.  It's not that I don't like you, but I just can't drive it and get back all in one night.
  • I just can't fly out of Knoxville.  Sorry, but getting anywhere out of TYS means a connection somewhere and it's just too painful.  Give me a direct flight and its maybe, but I'm just flat out tired.
  • I can't have too much back to back.  I had something recently that came up and it would have been back to back.  Add in other commitments and it just scared me to death once I realized the enormity of the situation.  Of course, I communicated this horribly.  Bottom line was that I had to end up picking one.  I hate it, hate it, hate it because now there are some people that just HATE me.  Please also refer back to the first bullet here.
  • If you are inside of 250 miles, its a maybe at best right now.  Refer back to bullet point one.
  • I'm going to concentrate on things around my geographical area.  I have just spread myself too thin.  Having said that, I'm going to stay away from conferences in my general area.  Refer to bullet point #1.
  • I'm going to concentrate more on my business.  All this community stuff is great, but we need more business.  And honestly, I just haven't seen an increase in business from community events beyond a body shop/staffing guy wanting me to work for less through them, like that is going to make sense.  Of course, maybe I suck bad and no one wants me, that's always a thought.
  • I'm going to keep writing.  I have found that I like magazine articles.  Hopefully, I'm not too bad at it.  However, I'm not going to be prolific with the number of articles.  I've got a number of them queued up.  Hopefully, you'll see some more.

There, I think I said it.  I'm going underground for a while.  I think we'll see Less Wally for a while.

PS. I'm not mental, just tired. Please don't call the police because you are worried about me.

Enabling IIS 7.5 for Anonymous Access with ASP.NET

I write and test lots of simple applications on my system.  To be honest, while security is good, it is a hassle, and honestly, for my needs it's more hassle than its worth.

The question becomes how to I enable anonymous access for my web application and samples.  I found that there were two things I had to do:

  • In the ASP.NET section -> .NET authorization.  Make sure that Anonymous users are allowed.  I thought that "All Users"meant anonymous, but it doesn't.  You have to specifically add Anonoymous.
  • In the IIS section -> Authentication.  Make sure that Anonymous Authentication is enabled.

Admittedly, you may/not need both of these.  This is what I did to get my sample code working.  Many thanks to Scott Forsyth for his help over IM on this.

 

Mono for Android 1.x to 2.0 changes in the Menus

In case you missed it, the Android.Views.MenuConsts enum has changed to Android.Views.Menu.  The Android.Views.MenuConsts enum is listed as obsolete.

How do you get the Virtual Keyboard (aka Soft Keyboard) in the Android 4.0 Emulator?
Ok, getting the Android 4.0 emulator is not obvious.  In previous versions, I had set the "Keyboard Support" to yes.  I did that this time, and nothing.  I played with touch support, and no luck as well.  I finally had to beg to my Android contact for some help.  After much discussion, he pointed me towards Android Virtual Keyboard 4.0 Ice Cream Sandwichturning off the "Keyboard Support" (aka setting the value to no).  Really?  Really?  Ok seriously, I'm glad that this is now working as I thought it should, and that the virtual keyboard support actually looks right in the Ice Cream Sandwich emulator.  But, this is also stupid.  This value is the exact opposite of previous settings.  While I am glad that this now works, the fact that the value is the exact opposite of previous settings is a hassle.

Mono for Android Debugging Android.OS.Debug.StartMethodTracing();
I was just digging into the Mono for Android debugging/profiling.  I called the Android.OS.Debug.StartMethodTracing() method and boom, got an error.  I dug into the error and found that I need the write to external storage permission in Android.  Once I added that, it all worked!

My article on Creating a User Interface with Mono for Android #Monodroid

There's no doubt about it: Smartphones based on the Android OS are hot. Currently, they're generating 550,000 activations per day. Their market share is at approximately 40 percent, and continuing to rise.

That success wouldn't be happening without a friendly, clean UI. Many times, a user will base their feelings about an application on the UI. In this article, I'll look at the XML layout language for Android, some controls that can be used in Android and the tools that can be used to create a UI -- namely, Mono for Android, which enables you to create native apps in C# and Visual Studio using an open source implementation of the Microsoft .NET Framework. Then I'll talk about how choices can factor in with some of the constraints, such as the battery.

The little usability bugs in Mac OSX Lion amaze me......and they never get called out for it

I'm the first to admit that usability and user interface is a hard thing to get right.  However, the more I have used Mac OSX Lion, the more that see lots of little issues.  My assumption is that there are valid issues for these choices, but, I haven't seen them.  Here are some of the more annoying and basic usability bugs that I have seen that shock me.

  • The first issue that comes up is the shutdown menu.  Go up to the apple icon and select shutdown.  You will notice the "Reopen windows when logging back in" is checked by default.  That's fine.  Unfortunately, the checkbox is ALWAYS selected.  The value should be saved when the shutdown occurs and the previous version should be set for the checkbox.Mac OSX Image Shutdown
  • I pulled out my macbook pro on my trip to Nashville today.  The screen brightness started to fluctuate.  I knew I had to go into my settings to fix this.  I went in and updated the settings.  As I ride in the passenger seat, I am finding that the "auto adjust brightness" is not fully honored by the system.
  • When I go into the Finder and attempt to order the files based on data, file name, whatever, it has an annoying habit of redrawing all the folder files and subdirectories, not just the ones in my current folder. 

screen brightness 

Ok, admittedly, none of these are a big deal.  I'm sure that there are valid reasons for all of this, but thanks to the lack of documentation for Apple products, there's not much that we can find out from the sources about the products.  And have I mentioned the problems my wife is having regarding syncing to outlook with her iPhone and iOS5?

PS. I do development on Windows, iPhone/iOS, and Android.  All have their usability issues.  My surprise is that Apple seems to get a free pass on these, which is a surprise to me.

Training on MonoTouch for the iPhone and Mono for Android

I'll be in Sandusky, OH on January 9th and 10th to provide two full days on MonoTouch for the iPhone and Mono for Android.  This training is open to the public.  Signups can be done through SharpeAxe Training.  The pricing is $999 for signups before December 1st and $1,199 December 1 and later.

Info about the training:

Abstract

This session will introduce writing native applications geared for the iOS(iPhone, iPad, and iPod touch) and Android Platforms based on .NET/C#/Mono.  We’ll examine the overall architecture of MonoTouch and Mono for Android, discuss how they integrate with their respective platforms, build some applications, debug, and look at example apps. Who this session is for:  This session is for the .NET developer who wants to write applications for the iOS and Android Mobile Platforms while still using the C# language and the .NET Framework.  While the session will be introductory for the iOS Platform, it will be intermediate/expert for those on the .NET Platform. What will attendees take away:  Attendees will be able to immediately begin development on iOS and Android using their existing skills. The benefit of attending this session:  Attendees will be able to begin development on the iPhone, iPad, and Android without the learning curve of a new platform and a new development environment.  The benefit is that .NET developers will be effective using MonoTouch at a lower time investment than switching development platforms.

Syllabus

Outline for Day 1 – iPhone:
  • Introduction to iPhone.   This will provide an overview of the iOS Platform, acceptance in the marketplace, and basic capabilities.
  • Introduction to Mono, MonoTouch, MonoDevelop, and the iOS Provisioning Portal.
  • Basics of UI design.  This will provide information on how to create a user interface with iOS and integration between MonoDevelop and the SDK Interface Builder tool.
  • Screen Controls. This section will provide the basics of user interface controls, screen issues, menus, various                 keyboards, and widgets.
  • Data Controls.  This section will discuss how to successfully display data to the user.
  • Working with local data. This will be an overview of how to work with data locally on a device.
  • Working with remote data Strategies for working with remote data will be discussed.
  • Multimedia.  This section will discuss how to work with multimedia and graphics.
  • How to perform background processing with threads and services.
  • Mapping and Location.
  • Location.
  • Application Settings.
  • Integrating with Other Applications.
  • iPad.
Outline for Day 2:
  • Introduction to Android.  This will provide an overview of the Android platform, acceptance in the marketplace, and basic capabilities.
  • Introduction to Mono and the Mono for Android plugin for Visual Studio, Mono for Android for the Mac, and support for MonoDevelop for Windows.
  • Android Applications.
  • Basics of UI Design.  This will provide information on how to create a user interface with Android and how the user interface is compiled into a Mono for Android application.  We’ll see the same application running on a phone as well as tablet.  We’ll look into some ways to take advantage of tablets from a UI perspective.
  • Data Controls.  This section will discuss how to successfully display data to the user.
  • Working with local data.  This will be an overview of how to work with data locally on a device using SQLite.
  • Working with remote data.  We will discuss strategies for working with remote data
  • Location.
  • Sensors.
  • Multimedia.  This section will discuss how to work with multimedia and graphics.
  • How to perform background processing with threads and services.

Requirements

  • Day 1/iPhone will require an Intel based Mac running OSX. The most recent Apple iOS SDK will need to be downloaded and installed before attending.
  • Day 2 can be done with either a Mac running OSX or Windows.  The most recent Android SDK will need to be downloaded and installed before attending.

 

Security Exception using Windows 7, Visual Studio 2008, and InstallUtil.exe....and how to solve it.

I was trying to setup a Windows Service under Windows 7 manually using the InstallUtil.exe utility.  I ran into a security exception about not being able install due to checking the event logs and this being a Security Exception.  The error looked something like this:

System.Security.SecurityException: The source was not found, but some or all event logs could not be searched. Inaccessible logs: Security.

Thankfully, other people have run into similar issues.  A quick google revealed that the solution was to run the command prompt that is used for running InstallUtil as administrator / elevated permissions.

 

Thanks on my HTML5 articles

I've been checking the DevProConnections.com site a lot over the last 48 hours checking to see if my MonoTouch articles will make it out online.  Imagine a child with his nose pressed against the window or screaming from the back seat "Are we there yet?!?"  While looking, I noticed that my HTML5 for ASP.NET article is still listed as one of their more viewed articles.  Upon seeing this, it made me remember how I wasn't the only one involved with that article.  I'd like to thank them again for all their help.  Some of the folks I remember helping me are:

  • Dave Ward and Spike Xavier read through the article.  Thanks guys, really appreciate your help.
  • Tobin Titus for helping promote it. 
  • Erik Porter for his ideas and pointing me at some things in the plugins for ASP.NET and Visual Studio 2010 that make HTML5 more better and easier.
Many thanks to you and MANY others.  I really feel like I stood on the shoulders of giants.