Oct 6th

Where were you when Steve Jobs died?

  • Posted in mac
  • Comments 0
Steve Jobs at the WWDC 07

Image via Wikipedia

I wouldn’t find out until later, but at the moment Steve Jobs was leaving this world I was in the Apple Store in Westfarms Mall, Farmington, CT helping a colleague buy a MacBook Air. I had just purchased a new MacBook Pro two days earlier (Oct. 3, 2011) and spent far too much time during my work day on Oct. 4, 2011 watching the iPhone 4s announcement.

Thanks Steve Jobs for inspiring me to be a better innovator, better presenter, and better human being.

Enhanced by Zemanta
Jul 19th

iPhone’s Two Restore Modes

"Leopard" Icons in Black

Image via Wikipedia

If you have had your iPhone long enough to have to update it, you know that occasionally, you have to restore it (aka. restore to factory settings and then restore the backup from your hard drive). While trying to upgrade my iPhone 3GS from iOS 4.3.2 to 4.3.3 I ran into an error message that went something like “This device isn’t eligible for the requested build.”

A quick visit to my local Genius Bar made me feel like an idiot, but resolved my issue. Now here I am again trying to upgrade from iOS 4.3.3 to 4.3.4 and I’m running into the same error. A few Google’s later and I had problems finding the resolution so I thought I would document it here.

What isn’t commonly known, or documented, is that the iPhone has a couple restore modes. I’ll cover the typical restore mode and something called the “deep restore mode”.

To put the iPhone into the normal restore mode simply:

  1. Switch off the phone.
  2. Plug in or dock the phone with your computer while you hold the home button. The phone will restart (Apple logo) and the iTunes + cable (Restore Mode) will appear.
  3. Then release the home button
  4. In iTunes, a dialog box will appear asking if you wish to restore the iPhone.
  5. That’s it! (Detailed instructions can be found here.)

The only problem is, that this didn’t resolve my problem. Enter “Deep Restore” mode.

To put the iPhone into Deep Restore mode simply:

  1. With the phone powered on, connect the phone to your computer
  2. Press the home + sleep/wake button (on/off) until the phone reboots (black screen).
  3. When you see the black screen … count to 3 sec and release the sleep/wake button while keeping the home button pressed until your computer sees the phone in restore mode. NOTE:  Nothing will show on your iPhone screen. This is what we call DFU mode. Its a more deep state of restore.
  4. This should allow you to really restore your phone.
Enhanced by Zemanta
Jul 4th

Getting started with Applescript

  • Posted in OSX, mac
  • Comments 0
AppleScript

Image via Wikipedia

I’ve started writing quite a bit more lately. My tools of choice are OmmWriter for short pieces or parts of larger projects, a specific playlist in iTunes, Apimac Timer (to timebox myself), and Scrivener for larger projects. Me being lazy in a productive way, I was looking for a way to just lauch and setup all of the above for writing with a short couple QuickSilver keystrokes. Enter Applescript. In order to make it all work, I had to first LEARN enough Applescript to pull it all together. That is where this site came in handy for learning the basics of Applescript. I’ll grab a quick video later that shows how it all works, but for now, enjoy learning how to automate a lot of the repetitive things you do everyday.

Enhanced by Zemanta
Jun 27th

Two Mail.app plug-ins all Exchange users need

  • Posted in OSX, mac
  • Comments 0
Fuzzy Mail App

Image by Digitalnative via Flickr

If you are using Mail.app with with MS Exchange, you know the frustration of sending attachments and opening those dreaded winmail.dat files (the sender sent a MS Exchange email file as an attachment). Grr.

To get around dealing with Microsoft’s refusal to comply with email standards, I recommend two mail.app plug-ins:
Lokiware’s Attachment Tamer and Christopher Atlan’s Letter Opener Pro. Both programs will end the your MS Exchange email attachment problems. Here’s what they do:

Attachment Tamer (from the Lokiware product description):

  • Display (and print) images, PDFs, audio and video as icons with an optional file size limit and exceptions;
  • Send messages compatible with Microsoft Outlook, Exchange and other software, preventing the superfluous “ATT0001” attachments;
  • Send images as regular attachments, making it easier for the recipient to manipulate the image files;
  • Send images embedded in HTML layout and safely mix embedded images with other attachments;
  • Display full attachment names regardless of length instead of truncated names;
  • Automatically display attachments at the top of messages;
  • Prevent unwanted image resizing or set a default size for automatic image resizing.

Letter Opener Pro:

  • Allows Browser addachment of a winmail.dat file
  • Adds the capability to add appointments contained in winmail.dat files directly to iCal
  • Adds the capability to create contacts contained in winmail.dat files directly in Address Book
  • Adds the capability to display those dreaded nested messages
  • Allows you to convert attached winmail.dat Outlook Notes to plain text
  • And reads and delivers MS Exchange receipts (for those nutbags that subscribe to Level 3 Leadership)

Powered by ScribeFire.

Enhanced by Zemanta
Apr 22nd

IRC Client for OS X

I’m looking for an IRC client for OS X. I’ve run acros several but I’m not sure which will fit my needs.

Here are the current candidates:

I’m leaning toward X-Chat Aqua, but would like to hear other suggestions.

Thoughts?

Apr 19th

Disable infrared receiver on Apple computers

I’ve had this annoyance for a while now and was too lazy to Google it. I have an iPhone docking station, an iPod docking station and my Apple MacBook. All three devices accept signals from the Apple Remote.The only device I wanted to accept signals from the remote control is my iPod since it is powering my speakers.

The solution was easier to fix than I wanted to admit. First, I switched out my iPhone dock for a Griffin Simplifi Dock for iPod and iPhone, Media Card Reader, and USB Hub in One Device (Aluminum).

Griffin Simplifi Dock for iPod and iPhone, Media Card Reader, and USB Hub in One Device

Next I used this article on TUAW to disable my IR receiver on my MacBook.

Easy as Pie.

Apr 11th

Why I don’t typically use any browser other than Firefox

I’ve talked about Internet Browser security briefly before, but I thought it might be best to follow up with a commonsense commentary on why I favor Firefox over other browsers.
On March 18, 2009, TippingPoint‘s Charlie Miller, for the second year in a row, hacked an Apple OS-X based laptop in mere seconds. The source was an unpatched vulnerability in Apple’s browser, Safari. Safari ships pre-installed on every Apple computer just like Microsoft’s Internet Explorer is pre-installed on every Windows based computer.
Since then, Apple has released exactly ZERO patches to their browser to address the vulnerability. A similar vulnerability in the Firefox browser was exploited at the same time at the Pwn2Own competition and, in contrast to Safari, Firefox was patched nine days later. Firefox has subsequently had a second security patch release less than a month later for other discovered vulnerabilities.

So why hasn’t Apple responded as quickly? It boils down to numbers: development resources and probably that the attack vector of the exploit can actually be used.
For the Safari exploit two things had to happen: the exploit had to be embedded on a Website that people would go to, and then the hackers had to actually get you to go to the site. The later is pretty easy to do because of all the Pavlovian-like responses hackers get through specially crafted emails. Actually installing the crack on a website without being caught is pretty hard to do. Servers have logs. Logs create a fingerprint of who did what to a server. Even if the hacker attempts to erase the logs, there are other ways to "sniff" who came from where to attack the server in the first place. In most cases, in order to get to a server the hacker has to jump through more hoops to remain masked than it is worth it: the risk isn’t worth attacking the server.

So back to Apple’s "arrogance" (as it has been called by others). Apple doesn’t see the risk as being high and they have limited resources. Patches generally take a while to fix when using limited corporate resources. If you dedicate resources to defects and vulnerabilities, then you taking them away from new innovations and making new products.

This is always a problem in closed-source software. In one past project I took over, the software had so many bugs in it, that we had problems turning out a new release with the much-needed critical mission-oriented functionality. All of my resources were too busy addressing software defects. The source of the software defects was poor configuration management and software quality testing practices by the incumbent development firm coupled with a corporate culture by the client that refused to allow the incumbent to swap-out resources that knew how to use automated testing tools… even though the tools were free.

Contrast the limited resources problem with Open Source Software (OSS) with thousands of developers/testers coupled with well managed testing and configuration management practices. The simple statistics are that OSS is only limited by the number of people contributing and the maturity of software development management practices being used.

Number of Apple OSX developers vs. number of Firefox developers. Firefox wins.
What Firefox can’t prevent is the risky end-user behavior… but that is another conversation for another time.

Apr 8th

Building Scalable Web-Based Applications

Scalable web-based applications has been getting a lot of air-play on social networks like Twitter lately, mostly because Twitter has been overcome by scability issues and the service unreliable. Having an unreliable internet service is embarassing and unacceptable. There is no better way to kill your brand image than to have your viral social media strategy fall flat on its face in front of the whole "instant on" world.

Twitter is over capacity: Importance of Capacity PlanningTwitter is over capacity: Importance of Capacity Planning

Having said that, I’ve had a lot of requests for guidance on how to build scalable web-based applications that can withstand getting Slashdotted. Building a scable web-based application can happen incrementally so you don’t have too apply all of the principles below all at once. There is an appropriate implementation roadmap that is appropriate for different types of web-based applications. For example, if your site is proving an web-service API (SOAP service) for other web-services or client applications, you should spend time looking at capacity planning for those services with less emphasis on your own public facing web-site. Anyway… here is my brain dump. There is more where this came from.

Application architecture

  • Judicious use of the singleton pattern
  • Judicious Use of the Concurrency pattern
  • Client side form validation
  • Use of AJAX for web-services requests
  • Caching of semi-dynamic data (pre-rendering semi-static pages)
  • Use of MVC pattern
  • Object persistance is separated from the object
  • Use of XML and meta-data instead of traditional row/column SQL commands for each data element
  • Place SOAP interfaces on a separate cluster of servers (aka application servers)

System architecture

  • Use a load-balancer and multiple Web servers
  • Separate your web-application into a minimum of four tiers: UI, Application Services, Object Persistance Layer, Database Services
  • Use a separate NIC on each server and switch for each tier of the application (e.g. web-page server to application server, application server to object persistence server, and object persistence server to database server)
  • Use a load balancer between each tier of of the application (e.g. between web-page servers and application servers, between application servers and object persistence servers, etc.)
  • Use an enterprise service bus object persistance service to ensure object concurrency issues are handled across multiple databases
  • Use clusters of virtualized servers running across multiple physical servers
  • Add performance monitoring services on each virtualized server to monitor memory, network, harddrive and application utilization
  • Conduct performance tests to determine if any one object needs more server resources, and move those objects onto thier own virtualized and physical servers

Network architecture

  • Use lots of partitioning of data across NICS and Physical Switches (aka switch processors)
  • Use firewalls in front of each switch in the top three tiers (UI, Application, and Object Persistence Layers)
  • Place network probes between each firewall and load-balancer to monitor utilization and intrusion detection
  • Place each application stack, a complete web application, application server and database server, in at least two data centers in two different geographic locations using two different internet data service providers
  • Create a private point-to-point network between data centers for transaction load balancing using two different internet date service providers

I know was a lot of technical mumbo-jumbo. Frankly, I haven’t met that many web designers, web-developers, or even a lot of software developers that understand everything I’ve listed. In order to implement the list, it will take more than one skillset from several technology professionals. (Business owners can contact me privately about assessing the maturity of your development staff. You might be surprised.)

If you don’t understand it, I am happy to elaborate privately. Understand that this is what I do when I’m not playing drums in a Jazz combo.

Mar 26th

Apple clearly has Nintendo in its sights

As if it wasn’t obvious each of the last Apple developer’s conferences, Apple has gaming on it’s mind and Nintendo and Sony firmly clearly on it’s radar. Each of the last keynote addresses about the iPhone have featured EA or some game developer. The latest salvo seems like it will go off more like an atom bomb. EA announced Tuesday during a keynote address at the Game Developers Conference that they would release Madden NFL, Wolfenstein, Command and Conquer, and NBA Live for the iPhone. Holy Fragging Railguns, Batman! That’s pretty much the equivalent of releasing the most significant property for use by every major market segment of the gaming industry. That’s huge!