04.11.10
Apple has just release the Gold Master version of 4.2 which
brings multitasking and a ton of other features to the iPad. I am
going to just look at Safari as I am sure this is the app the
majority of people are using.
First off the performance of Mobile Safari has been enhanced so it
runs a bit faster than the previous versions. Sunspider JS tests
are completed around 8300ms compared to around
10300ms on 3.1.3 which translates to around a
20% improvement.
There are a number of UI improvements to the app as well. The
window/tab button now lets you know how many open tabs/windows you
have. The address bar is now able to pick up titles as well as
actual addresses. And best of all searches can now be used to
search for a word on the current page instead of searching the
web.
Best of all is multitasking so you can quickly switch from IM or
Twitter to Safari without getting kicked out of the previous
app.
Overall it makes every day web browsing a better experience.
Update: iOS 4.2 on 3GS gets 12500ms compared to about 13500ms on
OS 4.0.1
21.08.10
2 years ago Sean Christmann wrote a benchmark that runs in
both Silverlight and Flash and the results were simply abysmal for
Silverlight 2 beta. It ran at the time around 9 frames a second
compare to Flash's 46 frames. [Note: There is a 60frame
cap] But lets fast forward to today and lots look at what
the performance is like on Silverlight 4.
I have recompiled his code exactly with Silverlight 4 and the
results are simply amazing. Sliverlight 4 now performs at around 52
frames/sec and Flash 10.1 runs at about 52 frames/sec. So basically
what we see now is that Silverlight in this benchmark is now on par
with the latest version of Flash.
Recompiled Code Link[opens in new window]
Benchmark performed on a Core 2 Duo Q6600
Update: Did a test on my MacBook Air 2.13Ghz running 10.6.4.
Flash 16.65 Silverlight 21.7.
18.08.10
Silverlight long considered Microsoft's answer to Adobe's Flash
hasn't quite enjoyed the widespread usage of the the later but that
is probably just due to the inertia behind Flash. Personally as a
.NET developer it has always intrigued me where Microsoft will
eventually take this technology. Obviously now with the imminent
release of Windows Phone 7 it has shown exactly where it intends to
take it.
First let me explain what my understanding of Silverlight is. It
to me is the next big step in designing UI based applications
within Microsoft's operating systems both mobile and desktop (and
kinda the web too since you can use a plugin). It really moves MS
into the 21st century and on par with Apple in terms of OS
(framework) provided UI animations. For those that don't know,
Apple has something called CoreAnimation which makes it very easy
to do complex UI animations that was pretty much impossible for
most developers on the Windows side. And impossible is pretty much
how I would describe trying to "animate" any WinForm based
applications.
Even simple things like having 2 sliding info boxes would
require you to actually write a bunch of code to a) repaint the box
as you moved it b) actually code where it will go. In Silverlight
this has completely changed. I can now have two states (or frames)
like Flash and have the system automatically animate from one state
to the other with easing (which btw is damn awesome) without
writing a single line of code. This now makes building rich
interactive app so much easier and hopefully this will mean better
looking Windows apps.
Now learning Silverlight has been made super easy by Microsoft.
They are providing about a dozen tutorials online that take you
from using Silverlight to do prototyping (this is also awesome) to
building actual apps. Did I mention that you can "install"
Silverlight apps directly from a website by right clicking and
hitting install.
Check out the below links for videos and demos of Silverlight
using Expressions 3 (4 has support for Windows Phone)
Microsoft
Design School
Silverlight on
Channel9
01.08.10
After hearing about all the iPhone 3G slow downs on OS 4 I
decided to do some tests to see exactly how slow it is compared to
OS 3.0 (considered one of the faster OS versions. Going to 3.0 to
4.0.1 I did a full DFU restore and not an upgrade as some people
have contended that running an upgrade is the cause of the
slowness.
Boot times
First of will be the boot up tests. Time it took from pushing
the power button until the phone was at lock screen. All tests were
run 3 times to ensure consistency. I have thrown the iPhone 3GS in
as well for comparison sake.
iPhone 3G on 3.0
- 45sec
- 46sec
- 46sec
iPhone 3G on 4.0.1
- 55sec
- 55sec
- 55sec
iPhone 3GS on 4.0.1
- 46sec
- 47sec
- 47sec
Sunspider JS Test
Next up we run the SunSpider JS test which test the performance
of the webkit browser and its JavaScript engine.
iPhone 3G on 3.0
- 39592ms
- 41094ms
- 42824ms
iPhone 3G on 4.0.1
- 38765ms
- 38976ms
- 39239ms
iPhone 3GS on 4.0.1
- 13892ms
- 13763ms
- 13672ms
And just for fun iPad clocks in at 10159ms and the MacBook Air @
2.16GHz at 406ms
Lastly we test some app launch times.
Launch Camera.app
iPhone 3G on 3.0
Cold Launch from boot: 3.3sec, 3.5sec, 3.3sec
Warm Launch after closing the app: 2.5, 2.8, 2.6
iPhone 3G on 4.0.1
Cold Launch from boot: 5.0sec, 4.5sec, 4.5sec
Warm Launch after closing the app: 3.4sec, 3.4sec, 3.4sec
Launch Phone.app
iPhone 3G on 3.0
Cold Launch from boot: 1.9sec, 1.7sec, 1.8sec
Warm Launch after closing the app: 1.1sec, 1.0sec, 1.1sec
iPhone 3G on 4.0.1
Cold Launch from boot: 2.0sec, 1.9sec, 2.0sec
Warm Launch after closing the app: Pretty much instant due to
animation
Launch Settings.app
iPhone 3G on 3.0
Cold Launch from boot: 2.2sec, 2.3sec, 2.2sec
Warm Launch after closing the app: 1.8sec, 1.9sec, 1.8sec
iPhone 3G on 4.0.1
Cold Launch from boot: 3.2sec, 3.5sec, 3.5sec
Warm Launch after closing the app: 2.6sec, 2.6sec, 2.7sec
Launch Safari.app
iPhone 3G on 3.0
Cold Launch from boot: 2.7sec, 2.8sec, 2.8sec
Warm Launch after closing the app: 2.4, 2.4, 2.2
iPhone 3G on 4.0.1
Cold Launch from boot: 4.0sec, 4.3sec, 4.3sec
Warm Launch after closing the app: 3.0sec, 2.3sec, 3.0sec
Overall iOS 4 is running slower on the iPhone 3G when compared
to its predecessor without bringing a lot to the table. Here is
hoping that Apple will spend a small portion of their efforts to
speed up the upcoming 4.1 update for older hardware.
27.07.10
After purchasing a VPS from ThrustVPS (this is not an ad just a
geninely cheap and good service) I decided I want to setup a VPN to
allow me to browse the web uninterupted by US only content (hulu
etc) or blocked content (thanks to GF China).
This guide is for Windows Server 2008 but the same should apply
to 2003 also.
Step 1
First thing to make sure before you setup RRAS is that you have
installed all the latest security patches release by Microsoft.
Next thing we need to do is add the role "Network Policy and
Access Services"

Once installed restart you server.
Step 2
Next we will need to create a new account for use with the
VPN

Once the user has been created you will need to grant this use
Remote Access Privileges.
From
TechNet
If the remote access server is part
of a Windows Server 2008 or Windows Server 2003
domain:
- Click Start, click Administrative
Tools, and then double-click Active Directory
Users and Computers.
- In the console tree, click Users (console tree
location: Active Directory Users and Computers/domain
name/Users).
- In the details pane, right-click a user name, and then click
Properties.
- On the Dial-in tab, under Remote
Access Permission (Dial-in or VPN),
click Allow access, Deny
access, or Control access through NPS Network
Policy, and then click OK.
- Configure other settings, as appropriate.
If the remote access server is a
standalone server (not part of a domain):
- Click Start, click Administrative
Tools, and then double-click Computer
Management.
- In the console tree, click Users (console tree
location: Computer Management/System Tools/Local Users and
Groups/Users).
- In the details pane, right-click a user name, and then click
Properties.
- On the Dial-in tab, under Remote
Access Permission (Dial-in or VPN),
click Allow access, Deny
access, or Control access through NPS Network
Policy, and then click OK.
- Configure other settings, as appropriate.
Step 3
Now that the user is setup to access the system we can now
configure RRAS.
- Open RRAS under Administrative Tools
- Right click your local server and select "Configure and Enable
Routing and Remote Access"
- Select "Custom configuration" and click next
- Check VPN access and NAT and click next then finish

- Your system will now create the bits and pieces required for
VPN and NAT
Next we need to configure the IP addresses (skip if you are
already running DHCP on the server)
- Right click you local server in RRAS and select properties
- Go to the IPv4 tab and select static address pool
- Click add and specify an IP address range (minimum is 2 IPs one
for the server and one for the client)

Lastly we will need to setup NAT which is very simple
- Right click NAT under the IPv4 node
- Select New Interface
- Select your public connection
- Restart the server
- Done
I hope you have enjoyed the article. If there are any errors
please let me know at joelypolly [at] gmail.