Categories: Apple Posted by Admin on 3/26/2012 7:46 PM | Comments (0)

Now that Steve is gone, and Apple kept going, the answer about the new products from Apple has been answered. If you kept close attention on the iPhone 4S and the iPad 3 or New iPad, whatever you want to call it, you’ll find something missing. Nobody was behind the curtain telling the engineers at Apple they needed a new and better design.

The iPhone 4S and the iPad got a little obvious upgrade, yet feels like if Steve was still be alive will demand a new re-design of the hardware to make it look better and force the engineers to work in more than 100 designs before he could select one.

No having Siri in all devices won’t be something that Steve will tolerate, he will demand to push iOS 5.1 with Siri for all devices the same way he push to create a computer without a fan.

The New iPad is just the same device with a better upgrades, there is no “one last thing”, there is no magic behind it or a new awesome magnet cover that an engineer created to show Steve.

I miss Steve Jobs, I can see now Apple relaxing and riding the wave their leader created.  



Download the new Running Analyzer for the iPhone.


The most advanced Run application that analyzes your progress. 
- Creates a graph as you run of your progress. 
- Shows you the gain in altitude as you run and to analyze it later. 
- Shows the movement of the device as you run. 

Compatible with any iOS based device: iPhone, iPod Touch 

Plays your music selecting the playlist, you can use the iPod app without stopping the app. 

Complete graph of your progress with movement included. 

Continued use of GPS running in the background can dramatically decrease battery life.

Tags: , , | Categories: Blog Posted by Admin on 12/11/2011 8:28 PM | Comments (0)

So, it's the end of the year.And what have I  done?  My pet projects for 2011 was to learn Objective-C and the iOS SDK. I plan a few apps that will use different parts of the SDK and I stated creating those and submitting them to the app store. 

In the process, I have learned more than expected about the Apple App Store process, I was lucky to be contacted by Apple a few times to discuss my submissions, after the first time, I shamelessly targeted some apps to the issues that trigger the phone call from Apple. 

I have learned that I’m not good designing user interfaces for the mobile platform, even when Apple makes it simple with limited controls. Bad news for me is that biggest percentage of people look at the screen shots instead of reading the descriptions.   

4 apps were completely rejected from Apple, of course I use 1 of them to target different reactions from Apple. They didn’t disappoint as much as TSA when trying to smuggle a huge toothpaste at the airport. 

For the record, I was a little late submitting the flash light app to Apple after iOS came out. 

For all the applications I wrote, I created a website to keep track of them, some of them are in the 3rd version, others need a face lift still. 

You’ll find the complete list at 



Categories: Blog Posted by Admin on 12/8/2011 7:07 PM | Comments (0)

This is my first try of a iPhone game. Using some animation this game is a puzzle of 4 letters words. I need as many ideas as possible to improve this game.

You can download it here:


Other apps you may want to consider:

For Learning to read there are 2 apps. Learn2Read 1

and then Learn2Read 2 for more advance readers

Have fun.



Categories: Blog Posted by Admin on 10/27/2011 9:01 PM | Comments (0)

Found a fantastic documentation for the Google Voice API to send SMS messages, Google does not have a documentation of how to use Google Voice, in fact is always hard to find any good documentation to any of their products besides Google Wave, any we all know where that project went.


This will give you the rest api to place a call as well as send an SMS, there is possible as well to read your SMS messages. We should all thank Chad Smith.



POST /accounts/ClientLogin accountType=GOOGLE&Email=[google account]&Passwd=[google password]&service=grandcentral&source=[your app name]


Sending an SMS:

POST /voice/sms/send/ id=&phoneNumber=[number to text]&text=[URL Encoded message]&_rnr_se=[pull from page]



Categories: Blog Posted by Admin on 10/22/2011 11:12 AM | Comments (0)

I attended and participated at the Water Hackathon in Washington DC connected via uStream to other places in the world, I personally love the stream from Lima. Many problems were presented and people responded quickly to find solutions to those problems. We helped each other with technology and writing code. I mainly wrote code to solve a water access map to centralized all that data into a common editable dataset. 

The problem: 

Water Access Map of the World - Accessible Water Sources and their Attributes

For the solution, we went to centralize all data and create an iPhone application as well as a JS Viewer using


Water Access Map View Larger Map




The Climate Change Picture Game also needed a map service from to geo tag pictures to show the difference from year to year in different parts of the world.

View Larger Map

Categories: Blog Posted by Admin on 10/9/2011 7:00 PM | Comments (0)
New changes on iOS 5 has cause application using the default MainWindow.xib will break on the new SDK. 
Make sure you add the RootViewController
RootViewController *rootViewCont = navigationController.visibleViewController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { }
All iOS 5 applications should have a root view controller
Found a great sample of how make modifications to your existing application or to start a new app here:
#import <UIKit/UIKit.h>
@class RootViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (nonatomic, retain) UIWindow *window;
@property (nonatomic, retain) RootViewController *rootViewController;


#import "AppDelegate.h"
#import "RootViewController.h"

@implementation AppDelegate

@synthesize window = _window;
@synthesize rootViewController = _rootViewController;

- (void)dealloc {
	[_window release];
	[_rootViewController release];
    [super dealloc];

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
	_rootViewController = [[RootViewController alloc] init];
	self.window.rootViewController = self.rootViewController;
    [self.window makeKeyAndVisible];
    return YES;

Categories: Blog Posted by Admin on 10/7/2011 3:06 PM | Comments (0)

Thanks for everything Steve Jobs.

Picture from Apple posted in their website 10/6/2011

Tags: , , | Categories: Blog Posted by Admin on 7/22/2010 8:38 PM | Comments (0)

I was playing with the Telerik Map control that out of the box provides you Bing Maps and Open Street Maps OSM maps. I found myself wondering how long would take to implement a provider for ArcGIS Online, so I gave myself a few minutes while the kids were watching TV and I created this provider that will attached to the Silverlight Telerik Map Control to consume Tiled map services.

The XAML for the Telerik Silverlight 4 Map Control:

<UserControl x:Class="TestMap.MainPage"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White">
        <telerik:RadMap x:Name="RadMap1" ZoomLevel="7" />


The Code Behind

 public partial class MainPage : UserControl
        public MainPage()

            //this.RadMap1.Provider = new OpenStreetMapProvider();
            this.RadMap1.Provider = new ArcGISServerMapProvider(Telerik.Windows.Controls.Map.MapMode.Aerial, true);
            RadMap1.Center = new Location(34, -117);
            RadMap1.ZoomLevel = 7;



The provider:

public class ArcGISServerMapProvider : MapProviderBase
        public string mapServiceUrl { get; set; }
        public string Token { get; set; }

        public ArcGISServerMapProvider(MapMode mode, bool labelVisible) :
            base(mode, labelVisible)
            // You can always change this property to another map service.
            mapServiceUrl = "";

        public override MapProviderBase GetSource(MapMode mode, bool isLabelVisible)
            return this;

        /// <summary>
        /// Only supports Web Mercator for now
        /// </summary>
        public override ISpatialReference SpatialReference
                return new MercatorProjection();

        public override Uri GetTile(int tileLevel, int tilePositionX, int tilePositionY)
            StringBuilder builder = new StringBuilder();
            builder.AppendFormat("{0}/tile/{1}/{2}/{3}", new object[] { this.mapServiceUrl, tileLevel/2, tilePositionY, tilePositionX });
            if (!string.IsNullOrEmpty(this.Token))
                builder.AppendFormat("?token={0}", new object[] { this.Token });

            Uri uri = new Uri(builder.ToString());            

            return uri;

        public override void Initialize()
        public override bool IsLabelSupported
            get { return false; }

        public override bool IsModeSupported(MapMode mode)
            return false;

        public override System.Collections.Generic.IEnumerable<MapMode> SupportedModes
            get { return null; }

        protected override void OnMapModeChanged(MapMode oldMode, MapMode newMode)


The results is a nice looking map that you can zoom in and out and pan around.


Download the Source Code with the project file to play around or to fix my bugs.

I already found out that when zooming in very close, the viewer is requesting tiles from a level that does not exist, when I get sometime or the kids decide to go to sleep earlier, I’ll debug with the help of Fiddler to see what is the tiles requesting schema.

Disclaimer:  The map consume is from ArcGIS Online, so please make sure you read this below to use it in a commercial  application:

To use this map in a commercial (revenue-generating) application, you must purchase an annual subscription for the World Street Map Bundle or the USA/World Bundle. Please call 1-800-447-9778 or contact your local ESRI office to purchase a subscription.
Tags: , | Categories: Blog Posted by Admin on 7/7/2010 10:40 AM | Comments (0)

UPDATE: Marten Hogeweg's overview blog post about the Open Street Map Editor for ArcMap 10, download the source code here and send us feedback

I’ll be attending to the State of the Map Conference in my home country of Spain this July, I’ll be bringing a great demo ArcGIS Editor for OpenStreetMap coming out of the Prototype Labs created by Thomas Emge as a proof of concept.

I’ll be showing around the Open Street Map implementation to consume and edit free geographic data such as street maps to anyone who wants to see it. The tools for ArcMap 10 will be available from ESRI as an Open Source project. Now you’ll be able to consume Open Street Maps and use the tools in ArcMap 10 for your editing and analyzing geographic information. I don’t have the timeline or the details, a little too early for those details just yet. Keep an eye to this blog or more important the ESRI Prototype Lab blog where innovations are being created right now.

Anybody can edit and consume OSM, for this reason, this approached is great and very welcome in an event of emergency. Volunteer found Open Street Maps extremely useful in Haiti.

I’m personally looking forward the presentation from Charles Kennelly (ESRI UK) on problems with metadata on Saturday 10th at 4:30 PM UTC+1

If you want to contact me around the conference or you would like me to demo the ArcMap 10 Extension of the Open Street Map, the best way is sending me and email or I’ll be watching my twitter account and I’ll be available at the conference, just look for me.

The Conference HashTag is: @sotm10

If you new at the conference, some information about State Of The Map 2010

The 4th Annual International OpenStreetMap Conference Girona, Spain, July 9th – 11th, 2010

What’s State of the Map?

The State of the Map is the world’s leading OpenStreetMap community event. Join participants from all around the world in Girona from July 9th – 11th to hear talks, participate in workshops and hang out with OpenStreetMappers from around the world. If you are involved with any aspect of OpenStreetMap from mapping to coding to campaigning, or if you want to hear more from the global mapping movement that is changing the way maps are made and used, the State of the Map is for you.

Hope I’ll see you there



UPDATE: Marten Hogeweg's overview blog post about the Open Street Map Editor for ArcMap 10, download the source code here and send us feedback

Tags: , | Categories: Blog Posted by Admin on 7/1/2010 8:48 PM | Comments (0)

With the new .NET 4 framework, comes some problems if you are still running still IIS 6 on Windows Server. IIS 6 does not let you have more than one framework at the time running in the same instance or website like IIS7 that can create a Application Pool targeting a different framework.

When IIS 6 runs under ASP.NET 2.0 (3.0 and 3.5 are superset, not frameworks) you are going to hit this error if the application is 4.0

Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: Unrecognized attribute 'targetFramework'. Note that attribute names are case-sensitive.

Source Error:

Line 11:     </configSections>
Line 12:     <system.web>
Line 13:         <compilation debug="true" targetFramework="4.0">
Line 14:         </compilation>
Line 15:         <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/></system.web>

You have a few options, downgrade the .NET application to 3.5 that Visual Studio 2010 makes it really easy. Just go to the WebSite properties -> Application tab and there is a drop down with all the framework releases, select 3.5, you VS2010 will reload the project and modify the web.config, if you added web service reference, that you may have to delete them and re-add them under 3.5


Now, you’ll have to unregister the ASP.NET 4.0 under IIS6, to do so, go to your console windows and go to the directory Windows/Microsoft.NET/Framework/v4.xxxx and type->aspnet_regiis /u


Then register ASP.NET 2.0 by going to Windows/> type aspnet_regiis /i

Hope that work for you.