Tag Archives: Computers

Getting Started With iOS Development

I’ve been playing with development in several of the mobile platforms over the last year, and for iOS in particular. Many developers are intimidated because of the differences between objective-c and other languages and the differences between cocoa touch and other frameworks. How to get started is one of the most common questions around.

First you’ll need an apple computer. There are some ways around this, but they are on the gray-side of the law and certainly outside of the OS X terms of use.

Next, you’ll need Xcode. Download it for free at https://developer.apple.com/xcode/. Xcode is the development environment for both OS X and iOS based applications. You can develop for free, and even test iOS apps in a simulator. If you join the iOS developer program, for $99 / year you can deploy to devices (up to 100) for testing purposes. You can sign up for the program at the iOS portal, which also hosts all kinds of tutorials and guides available to members and non-members.

Apple just recently posted this a getting started guide that will walk you through the basics. They have many other great docs available on the iOS developer site, including this objective-c primer and a longer version here.

I recommend The Big Nerd Ranch Guide for iOS. Among the iOS developers I know, it’s considered the best book to start with.

And for troubleshooting, no post about iOS would be complete without mentioning stackoverflow. It is the best site for any programming question, not just iOS / objective-c questions.

If you take the time to use the resources available, and work with (not against) the platform and supporting guidance, I think you’ll find iOS to be a friendlier platform than it’s reputation would suggest.

Flex is a Relic and Silverlight is a Zombie

…or some other catchy metaphor that will grab your attention. These technologies were hot over the last 5 years. Flex gained a particular amount of popularity in the Java community where UI technologies have a bit of a spotty record (that’s like saying my Bengals have a bit of a spotty record over a lifetime). Silverlight gained a lot of traction among Microsoft developers who actually cared about design and UX. Many alpha-geeks of the Microsoft space were running around giving conference talks about the MVVM pattern, and sharing code on codeplex. So what happened?

Both of these technologies are going to fade on the public web. Tablets and mobile devices are too big a share to ignore. Html5, phones and tablets did them in. The heavy hand of Steve Jobs probably gets credit for the coup de grĂ¢ce. The browser vendors and phone OS creators have really put their weight behind Javascript and Html5. If you have have that skill-set right now you can create:

  • Web Content
  • Mobile Web Content
  • Mobile Apps via Appcelerator
  • Mobile Apps via PhoneGap
  • Windows 8 Metro Apps

That’s a pretty wide reach for a markup / scripting language set.

So what do you do if that’s your trade? You work as an AIR/Flex developer or Silverlight developer, what do you do? There are good options for each camp, and some universal options.

Flex Developers

I think this is the slightly less promising path in the long term (despite it hitting a much higher peak than Silverlight). That said, Flash and Air will live on for a while, and you have some time to make a transition. Additionally, the ability to use the Adobe tools to make mobile applications provides a bridge to the hot mobile market. And you can make long term plans to transition to another cross-platform tool (PhoneGap, Appcelerator, etc), or go native. If you’re in the Adobe camp, new tools like Edge are likely to ease the transition to the standards-based technologies of the web.

Silverlight Developers

Similarly, Silverlight won’t be gone tomorrow. Intranet applications that need rich functionality (and simple deployment) are still a nice fit for Silverlight Desktop applications. And the adjustment to WindowsPhone 7’s flavor of Silverlight is straightforward, though I would be cautious and investigate the financial realities of that market. Finally, while Windows 8 Metro Apps don’t specifically use Silverlight, they can use C# with XAML and a subset of the .Net libraries that emphasize a security sandbox and async data connections. Sound familiar? That’s because they re-animated the corpse of Silverlight and made it an option for writing Metro apps. Long term, you should probably learn to use the Html5 / JavaScript hooks for Metro due to the ubiquitous nature of those skills. But isn’t it nice that you can learn the new API (WinRT) while keeping C# and XAML, and then make the languages switch at your leisure.

For Everyone

Both camps should embrace these newer web technologies and the UI skills they picked up during their time with the respective technologies. Good user experience and design are rare skills in developers, and retraining the languages and tools should be the easy part. Keep your black turtlenecks and invest in the next tools rich applications. You already have a leg up.

Windows Search Service Fix/Hack for Windows 7

I’m not sure why, but Windows Search Service is broken on my installation of Windows. I’ve posted on Microsoft forums, and found other people with the same issue, but no fixes that have worked for me. The service will work, but every time I reboot, the service is disabled and stopped. I have to change it to manual or automatic, and start the service. It’s annoying, and if I forget to do it, I get messages (and slow searches) when using OneNote or Outlook.

Finally, it occurred to me to powershell this. It’s a 2 line script:

Set-Service -Name WSearch -StartupType Automatic
Start-Service -Name WSearch

Then I created a scheduled task that runs the script file on windows startup. The job is something like the following, depending on your path:

powershell.exe -noexit D:\tools\scripts\WSearchFix.ps1

The Scheduled Task

Note a couple of things. First, WSearchFix.ps1 is just what I named the powershell script from above, name it as you please. Second, the -noexit is not necessary, especially once you’ve run the script and verified it works from the task scheduler.

The most common problem is that if you don’t use powershell scripts, they are disabled by default. You can either sign them and use a semi-secure policy, or just open it up with:

Set-ExecutionPolicy Unrestricted

Finally, I went into the advanced options for the schedule tasks trigger and put it on a 2 minute delay. This is just a hunch, but I think something is setting the service to disabled on boot, so I wanted that to be done before the fix ran.

Of course this is a hack, and I would like to just have the service work and stay disabled. But all things considered, this is a band-aid that works.

A 4 Year Old Netbook… The Best Portable Gaming System?

I have an Acer netbook from a couple of years back. I use to get a fair amount of use, for times when I wanted to read pdfs, browse the web, etc. It was great to have at the hospital to upload pictures and post updates to facebook when my daughters were born. All that aside, I don’t use it much these days, given I have an iPhone and regularly borrow my wife’s iPad.

But I’ve found a really good use for it. I’ve loaded up all the PC games I’ve saved over the years, and a few new ones that have low requirements. The netbook serves as a great portable gaming system. Sure, it’s not a pocket system, but many of the newer portable systems aren’t. The iPad and Playstation Vita aren’t pocket systems, and the 3DS and PSP are a bit of a stretch. And you can find large numbers of great games still available new on Amazon, or used on EBay and Amazon.

Netbook and Games

The notebook has:

  • 1.6ghz Intel Atom Processor
  • 1.5GB Ram (Upgraded)
  • 802.11g Wifi
  • 150GB 7200RPM Sata Drive (Upgraded)
  • Third Party Hi Capacity Battery (Upgraded)

The games I have installed:

The system has great battery life, and is very versatile. You can use just the trackpad for more keyboard centric games, or use a usb mouse for games like Diablo or Torchlight. You have support for an external monitor if you want it, but it’s certainly not needed. For extended gaming sessions, the power-brick is very portable.

One limitation was games that required the cd to play (mostly the Blizzard games). This required taking an external dvd drive with me, and cut battery life considerably shorter. I lived with the limitation for a while. I own all of these games (see the photo above), so I wouldn’t feel bad legally about a no-cd hack, but just don’t trust that such programs aren’t viruses or trojans.

Finally, I realized all I needed was a virtual iso mounter. I ripped all the discs I needed and put them on the netbook. With the larger drive installed, there was plenty of space. And I use the free Virtual CloneDrive to mount the iso files as needed. Load times are drastically improved from when the cd drive is used. I may or may not be in a gray area of the EULA for these games, but I sleep at night. I’m certainly not violating the spirit of them, as I own licensed copies of each game. And given these aren’t games that have been patched to deal with modern systems that may not have disc drives (as many games have for distribution on platforms like Steam), I don’t have a problem circumventing the drive requirement.

I’ve been playing a lot of Diablo and Starcraft in particular on the system. It reminds me that gameplay is king. These games have very dated graphics, music, etc. But at the end of the day, they are unforgettable games with addicting campaigns. If you can find a buddy who likes the idea as well, imagine how easy it is to setup a LAN party with these systems. Anyone who enjoyed pc games over the last 15 years or so should consider such a setup. It’s a relatively cheap setup that can provide hundreds of hours of gaming time.

A Comforting Warning About Agile

“Beware of becoming an Agile zealout, because this can backfire and put people off. Don’t treat people who are not applying Agile as fools who just need to see the light! This is disrespectful, and people simply won’t listen to your rants.” -Rachel Davies in Agile Coaching1.

Why is this comforting? Good communities self-monitor. Many of today’s communities with momentum have some ego issues. Communities like Agile, Ruby and Mac folks. All three of those communities are great and everyone should be learning more about them, so this isn’t meant to start a flamewar. But what comes off as passion in an upstart community can be obnoxious in an established community. And it certainly doesn’t fly well with the 2nd and 3rd tier adopters that are often the target of such zealotry.

This isn’t an excuse for half-assed Agile. Go for “full-assed” commitment to whatever system a team uses, and in more cases than not, they should be doing a flavor of Agile (usually lean) throughout the software lifecycle.

But blind assertions and a condescending tone won’t win anyone over. No matter what is being sold. This can be a particularly hard trap to avoid when a person or their business are sold as Agile experts. Or… “I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail.” –Maslow

When leaders and authors in the community stand up for moderation, it is a sign of maturity.

  1. Note that Agile Coaching is written by Rachel Davies and Liz Sedley, but Rachel Davies only is cited above as the quote is in a “Rachel says” section.