Web Application - iPad development resources

by marc walgren23. April 2013 05:16

We recently developed  a couple of warehouse support applications for a client. Not only was the application used in a regular desktop browser, but the warehouse personnel also accessed the application on an iPad out in the warehouse. The iPads were mounted on forklifts and connect to the internal network.

Several key resources we used include this article from the Safari Developers library:


We also tried these iPad simulators:



We successfully overcame the challenge to balance the size of the controls and positioning on both browsing platforms.


.NET | Development | General

Save Hundreds of Dollars Each Year On Phone Costs

by jim morgan26. March 2013 09:52

BTW. I have no financial interest in this advise....Smile

Get rid of your expensive land line and long distance charges. If you spend $30 on a phone line, $10 on taxes and $20 on long distance each month, you can save $720 a year by adding one $50 box to your Internet connection with no monthly charges.  Here's how...

  • Buy an OBi110 Voice Service Bridge and VoIP Telephone Adapter for a single line ($50), or OBI 220 for a doule line or advanced fax support ($72).  Readily available on Amazon. This converts the IP phone traffic to a conventional analog phone system. Hook it up to a power source, your Internet and your phone line.
  • Setup a Google Voice Account. Google voice is free and has many nice features:
    • It calls your OBI (it looks like a chat account from the Web Browser).
    • It will forward to multiple phones.
    • It has voice mail.
    • It will text you when you have a new message.
    • It has free unlimited calling in the U.S. and Canada. International rates are cheap.
    • And much more like call screening, do not disturb.
  • Optional, port your old land line number to Google Voice. Note: you can port cellular number to Google Voice, not Land Lines. You must first port your land line to a cellular line. You can do this with a $0.99 prepaid celluar Simm card and an old TMobile or AT&T phone. As soon as the number as ported to the cell phone, you flip it to Google Voice. Google Voice charges $20 to port.

For more information see http://www.obihai.com/porttutorial.html

  • Link your OBI with your Google Voice Account. This takes 10-15 minutes the first time to get it right. A pro can do it in under five minutes. It involves calling out on a special number with your phone and to getyour OBI Box ID, registering on the OBI network and associating it with your Google Voice Account.


  • Enjoy free inbound and outbound calling over your Internet connection.

Sept 26, 2014 Update...Google has changed their earlier position on Google Voice. Google Voice is now Officially Supported on OBi VoIP devices.
I've used it for two years and had almost no problem. I keep my OBI and Internet modem on a UPS so the phone works if the power goes out. The call quality is almost always as good as a land line and better than almost any cellular call. I've had occasional busy signals or poor quality, but it's rare and a redial almost always fixes the problem. The biggest negative is that you lose your Caller ID Name, only the Caller ID Phone number on outgoing calls. This can be fixed if you sign up with one on the low-cost providers like Anveo that also provide 911 calling. You get Caller ID Name on incoming calls regardless. I've  connected a security system and fax and they always take or make the call.

Here's some useful links.

Note that you will not be able to 911 emergency calling without a service. Here's an inexpensive 911 service - about $10 per year. http://www.bulk911.com/

OBI tutorials. http://blog.obihai.com/2011/11/calling-911-with-obi-devices.html     http://www.obihai.com/tutorial1.html

Google Voice is now Officially Supported on OBi VoIP devices.

Obihai is excited to announce official support for Google Voice. With a Google Voice account and a companion OBi device you can make and receive VoIP calls on a regular telephone. To get started, just login to the OBiTALK website, add your OBi device and select Google Voice as your service. You’ll then confirm your account with Google, and within minutes, you will be making and receiving calls from the comfort and convenience of your home phone. “With a Google Voice account configured on an OBi device, users will not only get all the great collaboration tools and app integration with Google Voice, they will also be able to enjoy many premium calling features, free calling within the U.S. and Canada and super-low cost international calling – all from the comfort of their home phone," said Jan Fandrianto, President and CEO of Obihai.

Ring Multiple OBi Devices Configured with a Single Google Voice Account




Paging through a SQL result set

by jim morgan26. January 2013 14:38

For an application to browse a large dataset, you need to set a limit to the number of rows returned. As users page up and down through the results, the application needs to return the next block of results. This can be done with a Select with a Subquery. The Subquery have virtually no performance penalties over a straight query. The advantage is that you can use the TOP function to get the next block in the subquery, but return the results in a different order.

The key concepts here are:

1. Save the identifiers to the first and last row of the block for pagination.

2. To get the last or previous block, toggle the ASC/DESC on each element of the original order by.

3. To get the previous block, toggle the booleans <> in the Where Clause.

Examples of 30 row page blocks sorted by LastName, FirstName and SysID (to force uniqueness)

Last Page

    SELECT TOP (30) LastName, FirstName, SysID
    FROM YourTable
    ORDER BY LastName DESC, FirstName Desc, SysID Desc) A
ORDER BY LastName ASC, FirstName ASC, SysID ASC

First Page

    SELECT TOP (30) LastName, FirstName, SysID
    FROM YourTable
    ORDER BY LastName ASC, FirstName ASC, SysID ASC) A
ORDER BY LastName ASC, FirstName ASC, SysID ASC

Next Page

DECLARE 	@HighLastName varchar(30) = 'MidLN',
    @HighFirstName varchar(30) = 'MidFN',
    @HighSysID int = 1000;
    SELECT TOP (30) LastName, FirstName, SysID
    FROM YourTable
    WHERE LastName > @HighLastName
        OR (LastName = @HighLastName AND FirstName > @HighFirstName)
        OR (LastName = @HighLastName AND FirstName = @HighFirstName AND SysID > @HighSysID)
    ORDER BY LastName ASC, FirstName ASC, SysID ASC) A
ORDER BY LastName ASC, FirstName ASC, SysID ASC

Previous Page

DECLARE 	@LowLastName varchar(30) = 'MidLN',
    @LowFirstName varchar(30) = 'MidFN',
    @LowSysID int = 1000;
    SELECT TOP (30) LastName, FirstName, SysID
    FROM YourTable
    WHERE LastName < @LowLastName
        OR (LastName = @LowLastName AND FirstName < @LowFirstName)
        OR (LastName = @LowLastName AND FirstName = @LowFirstName AND SysID < @LowSysID)
    ORDER BY LastName DESC, FirstName DESC, SysID DESC) A
ORDER BY LastName ASC, FirstName ASC, SysID ASC

While you could certainly reduce these statements in verboseness, the optimization on the backend is negligible.
This patterns allows for a generic pagination function to be developed with nirtualy no added overhead.


.NET | Development | General | SQL

Time Management and Interruptions

by jim morgan23. January 2013 06:45

I think Chris Parnin did a good job describing the issues in programmer productivity in his blog, "Programmer Interrupted". Interruptions kill concentration.

Pomodoro is interesting way to manage your time. Personally, I don't set a timer. However, the notion of focused activity for about 25 minutes rewarded with a brief break makes sense.

He discusses headphones which I use in noisy environments when I need focused attention. However, normally I have music in the background playing over basic speakers. The music is there as white noise so unusual noises don't distract me. I've always thought the type of music is not important as long as it doesn't generate added interruptions.



Development | General

Marc Walgren Biography

by marc walgren11. January 2013 11:30

Marc Walgren - Project Manager and Developer joined Mitten Software in 2003. Mitten Software provides custom software solutions to clients around the globe. We focus on .Net, Sql Server and Clarion technologies.

Past applications include:

  • Resource management and Scheduling
  • Inventory Management
  • Point of Sales
  • Order Processing
  • Financial applications

Before joining Mitten Software, Marc was Data Processing manager for Pheoll Fastening Systems and a Programmer/Analyst for Q.E.D. Inc.



Blog | General | Biography

Contact Us  Consulting  Web Development  Data Collection  Flexible Web Lists  Clarion Products  Downloads  How To Order  Site Map  Store  Home
Copyright (c) 1989-2013 Mitten Software Inc., All rights reserved.

Month List