New Development Box

I have previously blogged about making a foray into mobile an cross platform development. But when I left  Workspace I had to return my laptop so I have been looking around and researching laptops. I still want to do Lync development along with presenting on various topics at local user groups. So my needs are varied and somewhat complicated.

I need to develop using UCMA 3.0, UCMA 4.0 for my main occupation but I also want to develop cross platform apps using HTML5, JavaScript and CSS3. I’m using Telerik’s AppBuilder for the JavaScript work along with Xamarin to do C# cross platform applications for Android and iPhone. Xamarin requires access to Xcode to do iPhone  app compiles so that means there must be a Mac of some kind on my local network. I also wanted to install Android Studio to do native Android development. So many requirements and there seemed there was no way to avoid getting an Apple.

So with that in mind I read everything that I could find on the web about using Macs for Windows development. What I found is that there are a lot of big name Windows guys using Macbook Pros for development. I read blog posts by Andrew Connell, Sahil Malik and and what seemed like 100 other developers. I read threads on popular developer forums and watched countless Youtube videos on the subject. After all this I decided to jump on the Mac band wagon again. One common thread I found among devleopers that have switched to Macs from Windows is that lots of them made unsuccessful forays into the Mac world and gave up then came back later and succeeded.

So with all that in mind last Monday (05/19) I ordered a fully decked out 15” MAcbook Pro with Retina display. It comes with 16 gigs of memory in the base line unit.  I upgraded to the 2.6GHz Quad-core Intel Core i7, with Turbo Boost up to 3.8GHz. I also upgraded to the 1TB PCIe-based Flash Storage.  This configuration can’t be picked up at an Apple store and it is a special order item that was assembled to my specs in China and then shipped to my door arriving at my front door at 12:24 PM on Friday. 4 days to order, build and  ship via FedEX. Pretty good service in my book.

I’ll blog more about my experience using a Macbook for development at a later day. But for now I’ll just say I chose Parallels as my VM manager and I have installed separate Win7 VMs for all of my Widows development. I am running the Win7 VMs full screen on my existing 27” monitor which I attached to the MacBook Pro via a Thunderbolt to VGA adaptor. The speed of the VMs and Visual Studio compiles have been as fast as anything I have experienced running Windows natively. I need to purchase a Windows 8.1 license and then I create a VM for that but I’ve spent enough money l=on this setup so I am holding off on Winn8 for a while. I also still have to setup my Lync development VMs in the next few days before I begin my next contract.

This is my second attempt and so far (3 days) I have been very happy with the move…

Buy any of #Packt’s 2000 eBooks for only $10!! Offer valid for 24hrs only on May 6th

Yes, that’s right: $10.

In-order to mark the International Day Against DRM, Packt Publishing is offering all its DRM-free content at $10 for 24 hours only on May 6th – that’s all 2000+ eBooks and Videos at www.packtpub.com.

I am a big fan of Packt Publishing and have probably 15 of their books in my library. But that will change tomorrow as I plan to add several new ones that I have been wanting to read.

Enjoy.

IBM Worklight Mobile Application Development Essentials

First let me say that the authors seem to really know their stuff. I enjoyed the book but it didn’t go deep enough for my tasted. As another reviewer pointed out you could get a lot of the info from the documents or manuals. But you would have spent a lot of time digging for it. I for one don’t like most documentation I find on software companies’ websites. I would rather someone else do the digging and just give me in one document the info I need and that is what this book does for me. My main goal in reading the book was to determine how the Worklight interface worked and how the framework is used to develop mobile apps and the book was a good read in that respect. While I wish it went deeper into the code, I wish that of most developer focused books so that is not really a knock on the book. I’ll end up going deeper on my own by writing code and using the debugger to figure out the parts that I need.
There were places where you could tell that English was a second language for these guys but their writing style was still informative and it didn’t detract from the book.

If interested in the book you can get it from Packt Publishing

Mobile Dev Diary: part 1

In the past I have mentioned that I want to do more mobile and cross platform  development. I really believe that cross platform is the wave of the future. We are seeing the PC, tablet and phone markets merge in a big way. Sometimes that merging involves the user interface such as we see with Windows 8.1, the Surface, and Windows phones running a interface that looks and feels similar to the user across all of the devices. We also see corporations and end users that want to run the same software o their mobile devices as they run on the corporate or home desktop. Microsoft announced their universal apps at their Build Developers Conference last week along with a supporting Visual Studio 2013 RC update

As I move deeper into mobile and cross platform development I thought I would keep a diary of my progress and blog about some of the tools I try out. Some I end up discarding for numerous reasons and some become permanent additions to my developer’s toolbox.

The greatest issue facing developers looking to create apps for IOS, Android and Windows platforms is how to avoid multiple code bases (and multiple expensive development platforms etc.) yet still get the performance and access to the hardware such as the GPS or camera etc. There is some code that can be common between the platforms but your UI and your hardware interactions will differ for each platform and require you to maintain separate code for each platform.

But enough of the issues. If you are reading tis then you probably know  hurdles that a cross platform developer must overcome.

I have spent lots of time investigating PhoneGapSencha Touch, and Xamarin but for several reasons I have left those out of my toolbox, though PhoneGap still plays a support role and Xamarin may yet be added.

I hadn’t messed with HTML, JavaScript and CSS for 10 years or so yet I am convinced that it is the best approach for developing apps for multiple platforms. You can architect your website to work well in a mobile browser (think Bootstrap) by using a mobile first design approach. But that approach wont give you’re the hardware access or performance that you may need.

Another approach is to create a hybrid or a native app that runs on the phone or tablet using a framework like the ones I mentioned above. This is the approach I decided to take and downloading lots of 30-day trials, looking at video n Youtube and PluralSight I settled on the Telerk Platform. I’ll go more into which of their products I am using and why in Part 2 of this series. My goal is post an update  about once a week describing my progress as I become proficient with the tools.

Buy One Packt Publishing Book , Get One Free

I received this in an email late Friday:

I just wanted to inform you about an exciting campaign launched by Packt Publishing to coincide with the release of our 2000th title. During this offer Packt is giving its readers a chance to dive into their comprehensive catalog and Buy One, Get One Free across their entire range of eBooks.
The campaign began on 18th-Mar-2014 and will continue up until 26th-Mar-2014.

I have several Packt books in my library and will be adding more. I suggest you take advantage and of this offer bu following this link : "http://bit.ly/1j26nPN"

Enjoy!

Web Essentials “Gotcha”

I recently upgraded to Visual Studio 2013 (Ultimate) for my development needs. After doing so I installed Web Essentials to go along with all the new features and helpers that come with VS 2013.

While working on an MVC app I noticed that my form had a spelling error so I thought – Hmmmm this would be a great time to try out the Web Essentials Design Mode and see how the in-browser editing works. Big mistake!

browserview

In the .cshtml file behind my form I had used the ASP.Net MVC .html helper functions like this:

WE_before

After making the change in the browser Design mode and saving the change I noticed that my .cshtml file now had this in it:

WE_after

I fully understand what happened. The helper functions worked exactly like they were designed to work. They  produced the <SELECT>  html that you see above which is all the browser had and all that Web Essentials had for editing. So that is what was saved back to the underlying .cshtml. Its not really Web Essentials fault but it was not the behavior I had expected and it is not how I want my code to look.

I just wanted to make others aware that they need to be careful when using the Design Mode of Web Essentials – make sure you understand how it works and what the consequences will be.

 

Hire the GotSpeech Guy

My current assignment will end in Mid February and I am looking for another assignment. I prefer employment but contract work is an option.

I’ve worked remotely for 7 years now and it is my preferred method of working. I am primarily looking for Lync development or provisioning assignments but I am open to other options such as PowerShell and mobile development work.

If you are interested my contact information is on my About page.

Weird Lync Presence Behavior

I noticed some weird behavior with my Lync presence status the other day. I understand what happened but I am undecided if it si a good thing or a bad thing. The problem is with multiple Lync endpoints.

First let me describe my development setup. I have two laptops on my desk with a 23” monitor sitting between them and hooked up via a KVM switch to both laptops. Tis allows me to have dual monitor setup with both laptops as during the course of my day I will work of of both laptops.

I keep logged into Lync on both laptops and this normally works fine. But on this occasion I worked most of the day on laptop B and left laptop A set idle, My presence was reflected on both laptop’s Lync Clients as “Available” which was accurate as I was working on several PowerShell scripts all day on Laptop B. At the end of the day I exited Lync on laptop B as I was done and I noticed that the Lync Client on laptop A instantly showed me as “Away for 5 hours”.

I was surprised to see that as I was not really away having just logged out of Lync  on the other laptop. It would have been nice if it had just been able to show me as away for 1 minute or something which would have correctly reflected my presence. Like I said this is not a bug but rather just not the behavior I would have suspected. Once I logged out of Lync on laptop B the only endpoint left was laptop A which had been inactive for 5 hours. Lync had no way of knowing that both endpoints were actually only 2 feet apart and that I was still at my desk and “Available”. Once I switched the KVM switch back to laptop A my presence switched to “Available”. I think the biggest surprise was that it said I was away for 5 hours instead of just setting my status to “Away”.

In the few seconds it took to switch laptops I went from “Available” to “Away for 5 hours”. I just wish there was a better way of handling this.

How Every PowerShell Script Should Start Out

I recently downloaded a rather large PowerShell script from the Internet and  tried to run it. I’m sure the author was quite proud of his script and his programming abilities but the script failed with multiple errors when I tried to run it. The author made a fatal assumption that just because it ran in his environment that it would work for me and everyone else. He probably thought that anyone who tried to run it would first open the Lync Server Management Shell but my preferred environment is the PowerShell ISE and that is what I was using to run the script.

The problem arose when the script tried to use one of the Lync cmdlets but the Lync module was not loaded. A PowerShell Script should always include these lines (and any other needed modules) as the first lines in the script. That way the script won’t be referencing modules that haven’t ben loaded into the environment.

if ((Get-Module ActiveDirectory) -eq $null){Import-Module ActiveDirectory}
if ((Get-Module Lync) -eq $null){Import-Module Lync}

it’s so easy to avoid the execution problems that I had by simply testing to see if  a required modules is loaded and if it isn’t then load it. Its what sets a good developer apart from a mediocre developer.

New Website, Windows 8 and other stuff…

So much has been going on here at GotSpeech Central that I don’t know where to start. I’ve got a new website in development, a Microsoft Office 2013 book that I am reviewing with two other book reviews just ramping up. I also have a Windows 8 development project starting up as well as some Lync stuff going on. So, lets start with the new website.

GotMobileDev

I have stated before my desire to get into mobile development and Windows 8 development. Since getting my Surface RT I have been accelerating my training and development schedule. Now that Microsoft has lowered the Surface price I see a huge potential for developers. I don’t want to do my development under the GotSpeech banner so in keeping with past website themes I have registered GotMobileDev.com and GotMobileDev.net. The sites are still in the design and development stage but any apps I develop will be marketed under that name. The .com address will be the marketing site and the .net domain will be the technical resource site and contain how-to articles, sample code and possible discussions. No real rush to get those up but look for them in the coming weeks.

Windows 8

As a long time Microsoft developer I feel most confortable in a Windows C# environment so that is where I want to concentrate my efforts. But I want to also take my apps to the Windows Phone 8 and possibly cross platform to the IPhone and to Android. I have been doing my homework/research for a few weeks not trying to determine the best approach. I have bounced between C#/XAML and JavaScript/HTML5 and put some test apps together with both platforms I have even looked at using a SPA architecture. I have looked at Xamarin and while that platform allows me to leverage my c# skills I have decided to put it on the back burner for the moment. Xamarin has some very interesting stuff coming in the near future and I will get back to it but at the moment it is lacking in 3rd party components.

I looked at 3rd party components from Telerik (along with their Kendo UI) as well as the components from Syncfusion.   But after seeing my friend Russ Fustino speak and demo at a recent  MDUGJax meeting about ComponentOne I decided to go with the ComponentOne Ultimate for my needs. I like the breadth of their components and tools along with how polished and professional the components look. I won’t go into much detail here as I will be blogging about them every step of the way and will be doing a case study For ComponentOne. Keep following my blog and you will see those posts.

Book Reviews

I have a review copy of Microsoft Office Professional 2013 Step by Step that I received and I have been reading through in preparation for doing a book review on it which I will blog in the near future.

MSOStepbyStep I

I have been offered a copy of Getting Started with Microsoft Lync Server 2013 that I hope to be reading and reviewing in the near future. The offer was for a e-copy but I will try to get my hands on a hard copy as that is what I prefer when I am reading. Either way, that review should be coming along in the near future.

GetttingStart

As I said, there is also more Lync development on the horizon but I can’t blog about that yet. Hint: it ties in with my Windows 8 development efforts.