Wednesday, 3 December 2008

Google Calendar now supports Apple iCal

Breaking news from Google: Google Calendar now supports Apple iCal.

It is not really a solution for synchronising with Exchange, though a very useful extension to Google calendar. With a couple of tweaks it will be possible to synch Google calendar to Exchange too. The only feature missing that prevents Google calendar to be a proxy between Exchange and iCal is free/busy service. I am afraid that the only solution for fellow Mac users is to wait until Snow Leopard is released, and hope that the new incarnation of iCal would support Exchange natively.

Follow the link to the official Google blog above to find the instructions on how to use Google calendar with iCal.

Tuesday, 17 June 2008

Exchange support coming to iCal next year

Finally some good news. It is official now, iCal will support Microsoft Exchange calendars in the next version of Mac OS X which is expected to be released in 2009.
The official Apple press release can be found at http://www.apple.com/pr/library/2008/06/09snowleopard.html and it states:
For the first time, OS X includes native support for Microsoft Exchange 2007 in OS X applications Mail, iCal® and Address Book, making it even easier to integrate Macs into organizations of any size.


The only problem is that we have to wait for at least another year.

Monday, 9 June 2008

Will Mobile Me solve the synchronization problem?

Apple have announced an extension to their .Mac service, and they have rebranded it as "Mobile Me". The initial information available at their web pages at http://www.apple.com/uk/mobileme promises seamless integration with Mac and PC. They particularly claim that Mobile Me calendar will synchronize with Outlook and iCal and will provide push updates across all the computers connected to the account.

Imagine the following scenario: you run Microsoft Outlook on Parallels or on a dedicated computer at work. Outlook synchronizes your Exchange calendar to Mobile Me, and your iCal also works through that service.
Given that Mobile Me is developed by Apple, I'd imagine that it would actually work and be more secure than using some third party synchronization proxies from companies I have never heard about.

Unfortunately, they are not rolling Mobile Me just yet, but please come back after they have, and I'll tell you if it worked for me.

Any speculations on whether it is going to work or not?

Thursday, 6 March 2008

Any hopes for Exchange support now?

I am currently watching the iPhone SDK press conference. They have announced that the iPhone will soon support proper communication with the Exchange. This includes complete Calendar support. What I wish they have done is to license the same technology for the iCal. That would have been an ideal solution for all of us who suffers being a Mac user within a corporate environment.

I do understand that it may be possible to sync the appointments between iCal and Exchange either by using current solutions or through syncing with an iPhone, but what I am looking for is free/busy integration as well.

So, we all have two hopes now, the first one is that the Groupcal will be updated, and the second one (Oh, that would be fantastic) that Apple will begin to support enterprise standards for calendars.

Stay tuned for more updates.

Wednesday, 28 November 2007

Sample from Gamma distribution in Java

Back to the Java struggles.
Today I am giving away a piece of Java code which allows one to sample a random variable from Gamma distribution.
import java.util.Random;

public class Samplers {
private static Random rng = new Random(
Calendar.getInstance().getTimeInMillis() +
Thread.currentThread().getId());

public static double sampleGamma(double k, double theta) {
boolean accept = false;
if (k < 1) {
// Weibull algorithm
double c = (1 / k);
double d = ((1 - k) * Math.pow(k, (k / (1 - k))));
double u, v, z, e, x;
do {
u = rng.nextDouble();
v = rng.nextDouble();
z = -Math.log(u);
e = -Math.log(v);
x = Math.pow(z, c);
if ((z + e) >= (d + x)) {
accept = true;
}
} while (!accept);
return (x * theta);
} else {
// Cheng's algorithm
double b = (k - Math.log(4));
double c = (k + Math.sqrt(2 * k - 1));
double lam = Math.sqrt(2 * k - 1);
double cheng = (1 + Math.log(4.5));
double u, v, x, y, z, r;
do {
u = rng.nextDouble();
v = rng.nextDouble();
y = ((1 / lam) * Math.log(v / (1 - v)));
x = (k * Math.exp(y));
z = (u * v * v);
r = (b + (c * y) - x);
if ((r >= ((4.5 * z) - cheng)) ||
(r >= Math.log(z))) {
accept = true;
}
} while (!accept);
return (x * theta);
}
}
}

Wednesday, 21 November 2007

The last hope for working with Exchange

Following on the topics of using iCal with the Exchange server. AppleInsider published a very interesting comparison of iCal and Mail.app to the coming Entourage 2008.

The AppleInsider Article left me very upset, as it is evident that there will be no improvement to synchronisation with iCal. Hopefully Office will become much faster, as it will be compiled as a universal binary...

The only remaining hope is for Snerdware's GroupCal. Guys from AppleInsider got it wrong, as GroupCal is not yet working with Leopard. We have to wait a little, and hope that the developers from Snerdware solve their problems and release a new version soon.

Forget my complaints about the price. I will buy the new GroupCal on the first day it is released.

Thursday, 8 November 2007

Boeing CalDAV proxy for Microsoft Exchange

I concluded the previous post with a rumor that Boeing have developed a CalDAV proxy for Microsoft Exchange. This was my last hope for using iCal with my work Exchange account.

Unfortunately, this is the dead end. I have found what this software is and why it will never give me the functionality I want.

First of all, Boeing have developed a Free-Busy connector for Exchange, not a complete CalDAV proxy. This is a web application (an ASP by the way) which takes someones e-mail as an input and returns their Free-Busy information in a format compatible with some CalDAV servers. I have tried using it with Bedework CalDAV server and I found it absolutely useless. This is a very good first attempt, but there are the following shortfalls:
  1. You need to run this special connector service, and you need to run it on a Windows machine.
  2. This initial implementation does not have any built-in security. It just accesses the Exchange server through one preconfigured account. You canot use different users for different requests
  3. This will only allow you to see whether john@example.com is free or busy from 9am to 10am, but would not let John know if you are busy.
  4. This example service in not available in the wild.


On the other hand, this is a good first step towards integration with Exchange. If the community demonstrates any interest, there will be someone to make further road.