Feed on
Posts
Comments
Googe So, yesterday, Google launched several new languages for their online translator, including the Scandinavian languages (Google Translate Becomes the Best Free Online Translator).

Testing it for the Norwegian language with my own blog was cool and it seems that the translation module is very good. Try out the following (if you understand my natural language) : One of my posts in norwegian

The new languages supported are:

  • Bulgarian, Croatian, Czech, Hindi, Polish
  • Danish, Finnish, Norwegian, Swedish

But, it seems that it is not so easy to see the translation module integrated within the Google search result. If your google search is set up with local language you will get the [translate this] for each result in the search page (if the language is within the translate package). At the Google front page just click on the Preferences link. There it is possible to choose your desired language. Doing so you will have the translating tool integrated smoothly within the search result. By the way; I am not able to get this translation function to work with IE 6.0 (29) !

A couple of weeks ago Google launched their javascript-based API, enabling the translation of block of text within web pages on the fly, making it easy to develop some pretty nice and elegant user-friendly functionality related to text translation.

So, I finally got my hand on a HDTV decoder from my local television provider (Get) today. The box handles digital signals from the cable or television provider and supports HDTV, enabling higher TV quality and services.

The decoder supports the following signals: 576p, 576i , 720p and 1080i

The manual tells me to set the output signals from the decoder to 720p if I have a television that can handle HD-signals, but not able to handle 1080i. If I have a television that is HD-ready and that supports 1080i, I should set it to this format. Is it so simple?..

Let’s first look at some of the basics. HDTV is is the broadcast of television signals with higher resolutions than the traditional television signals that we traditionally have received (HDTV also gives us much better sound). There are three important aspects that defines the format that HDTV is encoded by:

  • Number of lines (720, 1080)
  • Display method (progressive, interlaced)
  • Display rate (60, 50, 30, 24)

Reading about HDTV at Wikipedia above (follow the link), gives me headache. How can a person with regular insight into video format, native resolution, pixels, frame rates, the scanning system (progressive, interlaced) understand anything about this? It is a nightmare.

So the next thing I look into is what technical specification the HD decoder from my television provider has. The box is well tested in several of the leading media related to media and technology in Norway. But no one of them considers the display rate. It is not possible to find anything about the display rate at the web-pages to my provider or within the tests that has been done. It seems that also by people that should know this stuff pretty well, they just focus on the number of lines (720, 1080) and the display method (progressive vs interlaced).

The European Broadcasting Union recommends that its members use 720p50 with the possibility of 1080i50 on a programme-by-programme basis and 1080p50 as a future option. (In the USA, 720p is used by ABC, Fox Broadcasting Company and ESPN because the smoother image is desirable for fast-action sports telecasts, whereas 1080i is used by CBS, NBC, HBO, Showtime and Discovery HD due to the crisper picture particularly in non-moving shots. The BBC is one of the EBU members transmitting in HDTV. It has not yet made a final decision on picture scanning format. Sveriges television in Sweden and Cyfra+ in Poland broadcast in 720p50. All other commercial European HDTV services so far use 1080i50.)

So, the more I digg into this topic the more jungle it gets. I must assume that following the EBU the signals from my decoder is 720p50 and 1080i50. From the EBU statements it is obvious that the signals should be changeable on a programme-by-programme basis based on what format the program was shot in and what kind of program it is (sport, nature and so on). This means that all signals that is not HDTV must be “transformed” or “upscaled” to this format (720p or 1080i).

Assuming the 720p50 and 1080i50 lets look at the picture:

720p50 = 921,600 pixels multiplied by 50 (frames pr seconds) = 46.080.000 pixels pr second

1080i50 = 2,073,600 pixels multiplied by 50 divided by 2 = 51.840.000 pixels pr second

This gives me 12,5% more pixels with the 1080i versus 720p. Not very much, and is this possible to see within my distance to the television? Probably not. The interlaced vs progressive method is well documented and discussed, and the progressive method is better regarding moving pictures.

So far I have got an overview of the different sources of HDTV, what scanning formats exists, the difference between the interlaced and progressive, upscaling basics, native resolution and so on.

Now let me take a closer look at my Plasma television (I have a Panasonic Viera TH-42PV70). With my Plasma and my decoder what signals should I choose? I almost always read the same; Choose 720p not 1080i, and the argument is the progressive vs interlaced element. As I calculated above, I get 12,5% more pixels pr second with 1080i, but with normal distance to the television it’s hard to see the difference, but the artifacts with the interlaced display method I will do (in some occasions). From the Panasonic presentation of my plasma comes: The processor converts signals of present TV broadcasts and DVD software to 1080p high-definition video signals. It up-converts the video signals without causing any loss in the signal or image details. It also applies progressive conversion to upgrade 1080i high-definition video signals to 1080p signals. This allows VIERA to render pictures that are more beautiful than the original.

So it seems that I should use 1080i from my decoder. My plasma will then convert the interlaced signals to progressive. I then looked at the native resolution.. it is 1024 X 768…. that means the television has to scale the 1080i source, that is now converted to 1080p to fit the native resolution. Doing so, the processor has to skip out a lot of information (pixels). The native resolution regarding the display related to HDTV signals is making this topic even more complex.

If this HDTV mess was not complex before taken the native resolution into account, it sure is now

I am happy that I am not a seller of HDTV displays.. this is sure not a simple task!

So, yesterday I installed an upgrade of iTunes and QuickTime (7.6.1.9) for Windows. When I upgrade a software I usually do not read carefully the instructions and often I just click the “install” button without any glimpse. But this time I did stop one moment before I pressed the install button. What is that? Safari?? What has Safari to do with this upgrade. One thing is that Apple have bundled QuickTime and iTunes..thats old stuff and discussed a lot. But now Apple just goes on with this bundle-strategy and use their upgrade mechanism to also install other products. This time it is Safari!

I was actually taken by surprise. Apple has bundled their browser with the iTunes and QuickTime upgrade. Can you believe this? And best of all Safari is prechecked for installation, so if you do not wan’t the Safari browser installed on your computer, you must take action and remove the checked value for Safari to be sure not to install the software.  How many regular users will do that?.. My bet is not many.

My opinion is that Apple has done some major mistakes her. First of all I do not like this bundle, as I do not see what the users that upgrade their iTunes can benefit from the Safari installation. Second, this is an upgrade. So what does Safari do inside the iTunes + QuickTime upgrade? It is not difficult to see why Apple bundles their browser, but is it fair? And do we like it? We have seen this strategy earlier by big players, I am surprised to see Apple do the same.

Well.. the Apple bundling strategy works. I have to install Safari now, just to play with it and test it against my regular browser (read FireFox) ;)

Just got back from London, with an overwelming cinema experience in my bag; The U2 3D Film. The British Film Institute (BFI) IMAX is home to the UK’s biggest cinema screen - more than 20 metres high and 26 metres wide, 12.000 watts of digital surround sound and the most sophisticated motion picture projection system in the world. It gave me the most ultimate experience that I can remember - The first live-action 3D concert movie - featuring u2!

The effect that this technology from 3ality Digital LLC is able to do with a live stadium concert is not possible to describe. Eye position of a stereoscopic camera in real time, high resolution 3D systems with zoom lenses, and integrated digital processing gives us tomorrows film concerts - today!

The film was shot at the Vertigo Tour back in 2005. I had the pleasure of seeing them during this tour in Oslo in the summer of 2005. But seeing the crowed at the huge stadium in Buenos Aires, feeling their heartbeat, smelling their tears and sweat singing to Sunday Bloody Sunday, Pride, With Or Without You and One among all the great songs on this tour was a breathtaking, astonishing and a fantastic experience.

Sitting on top of Larry Mullen Jr. watching him at work, throws me directly to the event, I am not any longer at a cinema in London I am there! When Bono steps towards you it’s like you are able to scratch his nose. When you are in the crowd you are really among them, watching the girl in front of you filming with her cell-phone camera, is so real that all you can do is sit back and laugh.

It is actually a bit scary but this awesome film gives us a glimpse of the future of cinema.

After publishing this post I found a great article/post at Silicon Republic named Even better than the real thing

AirPort Express At the end of 2007 I found my old AirPort Express. Looking down on it I remembered why I put it away; Audio Drop Out. What a big mistake buying that thing. Well, I desided that I had to use some time to solve the problem and start using this fantastic nice gadget.

The first thing I did was to look into the information at Apple’s own site to see if they had written anything about this issue. And yes, they have. a firmware update should solve the issue (firmware update)… BUT it did not.

So I had to search the net to look for help. Whow, it seems that a lot of people is experiencing this problem. There is a lot of fancy and odd solutions and I tried everything I ever came over:

  • Firmware Update
  • Changing wlan channel
  • Using network robustness
  • Moving microwaves and wireless phones around
  • Upgraded the network from 802.11b to 802.11g
  • Using multiple speakers
  • and more…

Here are some links:

Nothing helped. So I then had to figure out what actually happend with my computer during the drop out. I looked at 2 things; Network traffic and CPU usage. What I found out whas that the network traffic was ok, nothing odd with it. But, when I looked at CPU usage, I found one correlation with the drop out. Whenever my computer was working or had a CPU usage that was more than typically a couple of %, I got a drop out.

So, what did I do?

When streaming music to my AirPort Express I shut down all other applications, typically MSN, Firefox, Word etc. This solved the problem. No drop outs.

My conclusion is that there is no problem with the AirPort Express, the problem is related to the client that streams.  AirPort Express drop out is not a problem for me anymore I just have to focus on the music not doing a lot of things at the same time :)

So, after fowa and 90k+ developers in mind, I just had to go ahead and implement a Facebook application. Here is the code and how I implemented it.

First of all my goal was to use an existing web application, write a facebook integration module that communicates with the Facebook APIs, extracting some information/data and presenting them inside the existing web application. The web application I used is based on a j2ee framework (jsp, java). The architecture is much like Struts The first thing to do was to get the Developer Application to my existing Facebook account. Then I had to download the Client Library. I choosed the Java Library since my development environment was Java. When I extracted the Client Library, only the source files where included. So what I had to do first (besides looking into the source code), was to compile the java-files. I actually wrote an ant-task for this purpose, but a more easier way is just to use javac without using ant-framework. The next step was to take the output from the compile process and put it into an archived file (.jar). This is not necessary but I like to do it this way and the facebook.jar file I now had is easily dropped into my existing web application library. In my Facebook profile I had to create (set up) a new application. This is done by clicking the developer application that was installed earlier. Its some steps including getting a key (API key and secret key) that I used in my java-code but this process is straight forward.

Ok, now lets start the coding process. Here is the java code controlling the session and authentication:

String apiKey = “something”;
String secretKey = “something”;

FacebookRestClient frc = null;
HttpSession session = request.getSession();
String sessionKey = (String) session.getAttribute(”facebookSession”);
String token = request.getParameter(”auth_token”);

try {

if (sessionKey != null && sessionKey.length() > 0) {

frc = new FacebookRestClient(apiKey, secretKey, sessionKey);
this.doTheThing(request, response, frc);
} else if (token != null) {
frc = new FacebookRestClient(apiKey, secretKey);
session.setAttribute(”facebookSession”, sessionKey);
sessionKey = frc.auth_getSession(token);
session.setAttribute(”facebookSession”, sessionKey);
this.doTheThing(request, response, frc);

} else {
response.sendRedirect(”http://www.facebook.com/login.php?api_key=” + apiKey + “&v=1.0″);
}
} catch (FacebookException fe) {
} catch (IOException ioe) {

The doTheThing method is extracting the information and looks like this:

int myid = frc.users_getLoggedInUser();
EnumSet<ProfileField> fields = EnumSet.of(com.facebook.api.ProfileField.NAME, com.facebook.api.ProfileField.PIC, com.facebook.api.ProfileField.PIC_BIG, com.facebook.api.ProfileField.PIC_SMALL);
Collection<Integer> users = new ArrayList();
users.add(myid);

// Get my information
Document d = frc.users_getInfo(users, fields);
String myname = d.getElementsByTagName(”name”).item(0).getTextContent();
String mypicture = d.getElementsByTagName(”pic”).item(0).getTextContent();

// Get my friends id
Document d2 = frc.friends_get();
String s = d2.toString();
NodeList userIDNodes = d2.getElementsByTagName(”uid”);
int fcount = userIDNodes.getLength();

Collection<Integer> friends = new ArrayList<Integer>();
for (int i = 0; i < fcount; i++) {
Node node = userIDNodes.item(i);
String idText = node.getTextContent();
Integer id = Integer.valueOf(idText);
friends.add(id);
}

List l = new ArrayList();
Map m = new HashMap();
Document d3 = frc.users_getInfo(friends, fields);

// Get my friends information
for (int j = 0; j < fcount; j++) {
String name2 = d3.getElementsByTagName(”name”).item(j).getTextContent();
String picture2 = d3.getElementsByTagName(”pic”).item(j).getTextContent();
String picture3 = d3.getElementsByTagName(”pic_small”).item(j).getTextContent();
String picture4 = d3.getElementsByTagName(”pic_big”).item(j).getTextContent();

m.put(”name”, name2);
m.put(”picture”, picture2);
m.put(”picture_small”, picture3);
m.put(”picture_big”, picture4);

l .add(m);
m = new HashMap();

}
request.setAttribute(”friends”, l);
request.setAttribute(”myname”, myname);
request.setAttribute(”mypicture”, mypicture);
request.setAttribute(”numFriends”, new Integer(fcount));

So all the information from Facebook is now added to the request and can be displayed in a JSP. The code above is not very elegant and is not optimized(!). Its just a pice of code done after half an hour of work and my goal was to implement an integration module for testing purpose.

Hope this blog post can help others looking for hints when getting started with Facebook application development/integration.

Google buys Jaiku

Google operates orkut a social network service similar to Facebook. Today they bought Jaiku so it seems that Google is really focusing on the competition they get from Facebook and other social networking sites, and I look forward to see what Google will do with orkut and jaiku related to the amazing success that Facebook has achieved. Twitter and other social networking sites should definitively wath out for some hard competition.

 

Future Of Web Apps

Just got back from the Future of Web Apps conference in London. My impressions from this event and also some other events I have attended the last couple of months is that the focus are upon open api’s, open data and open authentication giving a foundation for the internet to become a network of different services loosely joined. Almost all start-ups are built on this foundation and this is not a surprise. More interesting is it to see what strategical positions the already big web companies will take in this landscape.

At the event Dave Morin talked about The Story Behind The Facebook Platform, and the figures he gave was amazing(!). Since the launch of the Facebook Platform on the 24th of may 2007 (kick-off video with Mark Zuckerberg) they have reached:

  • 90.000 + developers
  • 5000 + apps total
  • 100 + new apps a day

Facebook is now the 6th most-trafficked site in the US. They are bigger than eBay, and will (I suppose) soon pass Google(!).

On oct 2, the San Dimas Project launched the public beta of its application and finally renamed it “eBay Desktop”. I’m still trying to figure out how this product will affect the regular users of ebay and why eBay is using this amount of resources in building a desktop application. I do not buy the general arguments for building desktop applications .

MIPTV 2007

MIPTV 2007, has just ended (Cannes, France, 16-19th of april) and the conference focused on the ongoing convergence between TV, Web and Mobile. I’ll give my reflections regarding some of the most interesting topics (for me) from the four-day event.

A new industry is emerging, that will revolutionise the way we see television. Two promizing platforms/actors in building this new industry is Babelgum and Joost . Both Babelgum and Joost are in beta version. The first one not seeing a final first release before the end of this year. Joost’s Henrik Werderlin announced that they definitively would go live with a first release before summer 2007. Joost’s Fredrik de Wahl and Babelgum’s Silvio Scaglia hopes that “peer-to-peer” internet television will turn the business model up side down and we all know what peer-to-peer technology has done in other areas.

Jana Bennet and Ashley Highfield from BBC gave an outstanding co-presentation and could announce that their innovative work within the distribution of their content, would be backed up by doubling the investment in 360-degree content. Ashley Highfield, director of future media & technology gave a presentation of the iPlayer, and told the audience that the trial period (since last august) had been a great success. He was relative sure that the iPlayer would get final approval from the Trust at the beginning of May.

Dr. Hyun-Oh Yoo president and CEO of SK Communications gave a presentation of cyworld and the plans for expanding the highly successful social networking service outside South Korea and fight the competition. One of the new services in Cyworld is the “Cyworld Market”. With the huge success of Cyworld 1; 20 million subscribers, 20 billion monthly pageviews, $300.00 revenues daily, 96% of 19-29 year old has a subscription…the Market service has the potential to put successful players like ebay.com and finn.no out of business?

Older Posts »