GEORGE TRIFONOV Home Developer Corner Contact Resume 
Theme
Login
 
 
IPhone development for beginners: Buying hardware
If you don't have Mac in your home computer inventory prepare to spent some $ for buying new or used one. There are two options you can consider: - buying used Mac - buying new Mac Personally I was trying to get low budget solution with configuration good enough to run main development tools such as Xcode and Interface Builder. I didn't consider to use Mac as my main home base computer. Since I was planning to dedicate mainly my evenings and nights at home for my new hobby, mobility was not my main criteria as well.

Buying used Mac for IPhone development

You can buy Power PC or Intel based Mac, but according to different post and reviews the best option will be to used Intel based Mac. As I understand Apple started ship Intel based Mac in 2006. Dual Core is preferred option to get most out of you Mac. I started browsing EBAY in order to get deal and prices for Mac Minis ranges where from 400$ to 600$ based on configuration and Mac hardware upgrades. Also you can consider to search Apple refurbished deals. Because it was my first experience with Apple and price difference was not so huge compare to new models, I was not comfortable to buy used one and decided to buy brand new basic version of Mac Mini.

Buying new Mac for IPhone development

I started by going to apple.com to see what kind of low budget options I have. If you looked into my requirements listed at the beginning of this post, probably you already understand that my choice was Mac Mini. If you already has keyboard,mouse and display you only need to buy this little box called Mac Mini. I really liked it design and size and found that having such dimensions and internals it can be easily used as a media player when I am not playing with code.
Size and Weight
Height:
    2 inches (5.08 cm)
Width:
    6.5 inches (16.51 cm)
Depth:
    6.5 inches (16.51 cm)
Weight:
    2.9 pounds (1.31 kg)4 
Currently there are two configurations available -
599$
799$

So what's the difference?
When I was buying it (FEB 2009), the main difference were in

  • CPU Speed 1.8 vs 2.0
  • Max available Memory. 1GB(Max 2GB) vs 2GB(4GB)
  • HDD 80 GB vs 120GB
  • CDRW/DVD vs SuperDrive(DVDRW)
  • Graphic card
Looked today and found that now both Model have become almost identical in terms of upgrades. The only difference now in HDD 120GB vs 320GB, and memory. My advice Go with 599$ version since you can external drive later if you decided to use you mac mini for media library storage and upgrading memory is much cheaper compare to buying it from Apple. In terms of performance 1GB is enough for Running XCODE, Interface Builder having few other application running in background. So far I don't have any need for more memory.

May be if you will wait a little more apple will give you more for 599$ :). For me it took 4 days to get my Mac Mini.
Very easy to install and require no previous experience with Mac to start using it. It just take a little bit time to used to keyboard hot keys, menu and window system. I am completely satisfied with speed and was impressed with wake up time from sleep mode. Awesome job.

Do you need to buy IPhone?

To debug and run you first program you don't actually need IPhone. You can use simulator which is part of IPHONE SDK. You can also consider to buy IPod Touch, if you want to save on AT&T monthly bills later and not planning to utilize camera, GPS functionality.

You done with Programming time to Relax

Before buying Mac Mini I was thinking about how else I can utilize this device, as I mention before I never had experience with Mac and didn't know what to expect. Because of Mac Mini dimension and energy efficiency I found it ideally for using as media center in my living room. I hooked it up to my LCD 42 inch tv and able to watch NetFlix instant watch movies and browse my photo and video library. Small remote control which included into package is not ideal remote but good enough for basic usage. The only missing part in software called Front Row(analog of Windows Media Center) is ability to browse ITunes store to rent movies and ability to listen internet radio stations. You can do this through ITunes, but having it integrated with Front Row will make this app one stop solution for all your media needs.
Share this post: email it! | bookmark it! | digg it! | kick it! | live it!
Posted: Wed, 18 Mar 2009 23:31:42 GMT By: Gtrifonov
Office Communicator headset problem with Windows Server 2008

I had a weird problem with Office communicator trying to call regular phone numbers. I was not able to hear  to whom I am calling and all set up sounds were working (indicating that hardware is working) when I was trying to configure headset.

The problem has been fixed by installing Desktop experience feature which enables Vista features such as Media Player on Windows Server 2008 machine.

Hope it will help you

Share this post: email it! | bookmark it! | digg it! | kick it! | live it!
Posted: Thu, 12 Mar 2009 18:04:26 GMT By: gtrifonov
ASP.NET Routing performance compare to HttpHandler

Hi few days ago I was experimenting with some new ASP.NET features and want to share some small perf measures to understand how ASP.NET routing affect throughput compare to simple  ASP.NET handler.

If you curious about what it is ASP.NET routing ,here a list of couple of articles:

http://msdn.microsoft.com/en-us/library/cc668201.aspx

http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx

 

Test environment and scenarios:

1. Request to simple JS

2. Request to handler which doing Response.Write

3. Request to URL which trigger Route Mapping and execution of Routing handler

1 Test Agent

 

Code:

Scenario 2  - Simple ASP.NET handler:

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Linq;
   4:  using System.Web;
   5:   
   6:  namespace TestRouting
   7:  {
   8:      /// <summary>
   9:      /// Summary description for SimpleHandler
  10:      /// </summary>
  11:      public class SimpleHandler : IHttpHandler
  12:      {
  13:          public SimpleHandler()
  14:          {
  15:              //
  16:              // TODO: Add constructor logic here
  17:              //
  18:          }
  19:   
  20:          #region IHttpHandler Members
  21:   
  22:          public bool IsReusable
  23:          {
  24:              get { throw new NotImplementedException(); }
  25:          }
  26:   
  27:          public void ProcessRequest(HttpContext context)
  28:          {
  29:              context.Response.Write("var i = 'Simple Handler Response.Write';");
  30:              context.Response.End();
  31:          }
  32:   
  33:          #endregion
  34:      }
  35:  }

Scenario 3   - ASP.NET Routing:

Routing initialization in global.asax:

   1:  <%@ Application Language="C#" %> 
   2:  <%@ Import Namespace="System.Web.Routing" %> 
   3:  <%@ Import Namespace="TestRouting" %> 
   4:   
   5:  <script runat="server"> 
   6:   
   7:      void Application_Start(object sender, EventArgs e) 
   8:      { 
   9:          RegisterRoutes(RouteTable.Routes); 
  10:      } 
  11:   
  12:      public static void RegisterRoutes(RouteCollection routes) 
  13:      { 
  14:          RouteTable.Routes.Add( 
  15:                   new Route("test/{name}/view.aspx", new CustomRouteHandler())); 
  16:      }

Route implementation

   1:  using System;
   2:  using System.Web;
   3:  using System.Web.Routing;
   4:  using System.Web.UI;
   5:  using System.Web.UI.WebControls;
   6:  using System.Web.Compilation;
   7:   
   8:   
   9:  namespace TestRouting
  10:  {
  11:      /// <summary>
  12:      /// Summary description for CustomRouteHandler
  13:      /// </summary>
  14:      public class CustomRouteHandler : IRouteHandler
  15:      {
  16:          public CustomRouteHandler()
  17:          {
  18:              //this.VirtualPath = virtualPath;
  19:          }
  20:   
  21:          //public string VirtualPath { get; private set; }
  22:   
  23:          public IHttpHandler GetHttpHandler(RequestContext
  24:                requestContext)
  25:          {
  26:              var page = new Page();
  27:              requestContext.HttpContext.Response.Write("var i = 'Response.Write';");
  28:              requestContext.HttpContext.Response.End();
  29:              return page;
  30:          }
  31:      }
  32:  }

Some takeaways:

I expected that throughput for asp.net routing will have less throughput, because call execution time is longer due to extra module, but was disappointed that it x/3 number compare to simple handler.

I found strange that simple handler test showed better results compare to static JS file, but numbers are very close to each other so I am not considering them as reason to disregard other results.

If you thinking about  url rewriting and don’t need dynamic configuration probably you will archive better results using built in support of url rewriting in IIS 7.0

http://learn.iis.net/page.aspx/496/iis-url-rewriting-and-aspnet-routing/

Scenario results:

Scenario 1:

image

Scenario 2:

image

Scenario 3:

image

Share this post: email it! | bookmark it! | digg it! | kick it! | live it!
Posted: Wed, 04 Mar 2009 15:33:11 GMT By: gtrifonov