Hello World: Windows Mobile vs Symbian vs Android vs Iphone vs J2ME

Filed Under (General) by PoliMalo on 25-09-2008

Tagged Under : , , , , ,

Hoy he recibido un mail muy interesante con cinco ejemplo distintos para cinco plataformas distintas, de como hacer el típico “Hello World” u “Hola Mundo“. Para el que no sepa de que va esto, un programa “Hola Mundo” es el primer programa que suele hacerse en un lenguaje cualquiera como primer y más sencillo ejemplo.

Lo que tienen en común estos ejemplo es que los cinco hacen lo mismo y los cinco son para dispositivos móviles: Symbian, Android, Iphone, J2ME y Windows Mobile. Este punto es el más interesante ya que nos puede dar una idea de lo compleja que puede ser cada una de las distintas plataformas. Ahora entremos en detalles.

Ejemplo “Hello World” para Symbian:

// HelloWorld.cpp
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
#include "CommonFramework.h"
// do the example
LOCAL_C void doExampleL()
{
_LIT(KHelloWorldText,"Hello world!\n");
console->Printf(KHelloWorldText);
}

Tambien necesitaremos el archivo HelloWorld.mmp con lo siguiente:

// HelloWorld.mmp
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
//
// using relative paths for sourcepath and user includes
//
TARGET HelloWorld.exe
TARGETTYPE exe
UID 0
//
SOURCEPATH .
SOURCE HelloWorld.cpp
//
USERINCLUDE .
USERINCLUDE ..\CommonFramework
SYSTEMINCLUDE Epoc32include
//
LIBRARY euser.lib

Y finalmente el archivo bld.inf:

// BLD.INF
// Component description file
//
// Copyright (c) 2000 Symbian Ltd. All rights reserved.
PRJ_MMPFILES
//only one project
HelloWorld.mmp

 
Ejemplo “Hello World” para Iphone SDK:
Lo primero que necesitaremos es crear un proyecto XCode llamada “HelloWorld”. No necesitaremos modificar los archivos main.m y main.h. Pero sí los archivos helloworldAppDelegate.m y helloworld.AppDeleage.h.

El archivo header.

    1 //
    2 //  helloworldAppDelegate.h
    3 //  helloworld
    4 //
    5 //
    6 //
    7
    8 #import <UIKit/UIKit.h>
    9
   10 @class MyView;
   11
   12 @interface helloworldAppDelegate : NSObject {
   13     UIWindow *window;
   14     MyView *contentView;
   15     // Levi: Define textView object
   16     UITextView  *textView;
   17 }
   18
   19 @property (nonatomic, retain) UIWindow *window;
   20 @property (nonatomic, retain) MyView *contentView;
   21 // Levi: Declare textView as a property
   22 @property (nonatomic, retain) UITextView *textView;
   23
   24 @end
   25

Y el archivo helloworldAppDelegate.m:

    1 //
    2 //  helloworldAppDelegate.m
    3 //  helloworld
    4 //
    5 // 
    6 //
    7
    8 #import "helloworldAppDelegate.h"
    9 #import "MyView.h"
   10
   11 @implementation helloworldAppDelegate
   12
   13 @synthesize window;
   14 @synthesize contentView;
   15 // Levi: Tell the compiler to synthesize relevant accessors
   16 @synthesize textView;
   17
   18 - (void)applicationDidFinishLaunching:(UIApplication *)application {
   19     // Create window
   20     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
   21
   22     // Set up content view
   23     self.contentView = [[[MyView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
   24     [window addSubview:contentView];
   25
   26     // Levi: Create the text view.
   27     self.textView = [[[UITextView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 320.0f, 480.0f)] autorelease];
   28     [textView setEditable:YES];
   29     [textView setText:@"Hello World"];
   30
   31     // Levi: Add a text view to the content view.
   32     [contentView addSubview:textView];
   33
   34     // Show window
   35     [window makeKeyAndVisible];
   36 }
   37
   38 - (void)dealloc {
   39     // Levi: Release the textView
   40     [textView release];
   41     [contentView release];
   42     [window release];
   43     [super dealloc];
   44 }
   45
   46 @end
   47

Ejemplo “Hello World” para J2ME:

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet implements CommandListener {
    private Command exitCommand;
    private TextBox tbox;

    public HelloWorld() {
        exitCommand = new Command(”Exit”, Command.EXIT, 1);
        tbox = new TextBox(”Hello world MIDlet”, “Hello World!”, 25, 0);
        tbox.addCommand(exitCommand);
        tbox.setCommandListener(this);
    }

    protected void startApp() {
        Display.getDisplay(this).setCurrent(tbox);
    }

    protected void pauseApp() {}
    protected void destroyApp(boolean bool) {}

    public void commandAction(Command cmd, Displayable disp) {
        if (cmd == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
}

Ejemplo “Hello World” para Google Android:

package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText(”Hello World”);
setContentView(tv);
}
}

Ejemplo “Hello World” para Windows Mobile:

using System;
using System.Windows.Forms;
public class HelloWorld {

    public static void Main() {

        MessageBox.Show( “Hello World!” );
    }
}

No es por nada, pero me parece que en cuanto a sencillez y elegancia, Windows Mobile y la maravillosa plataforma .NET gana a los demás de calle. ¡¡¡Microsoft Rulez!!!



Comparte este artículo:
  • Meneame
  • BarraPunto
  • Google
  • del.icio.us
  • Bumpzee
  • Facebook
  • Digg
  • StumbleUpon
  • Wikio

Desinstalar el Messenger

Filed Under (General) by PoliMalo on 22-09-2008

Tagged Under : ,

La semana pasada, Microsoft liberó una nueva beta del archiconocido Messenger, la beta 2 de la próxima versión 9. Después de dudar un poco en instalarla, me puse a ello en mi Windows Vista. Todo fue como una seda.

Después de esto me decidí instalarlo en un Windows XP. Volví a buscar el instalador y me fijé que ya había sido liberada la beta 3. Así que ni corto ni perezoso y con toda la confianza me la bajé y me puse a instalarla…. y aquí es cuando empezaron los problemas.

Esta beta 3, al menos a mí, en Windows XP, no tira ni pa tras. Ni si quiera hace el intento de conectar y te lo comunica con un descriptivo error 0×8000ffff, del que hay vaga o nula información.

En estos casos, como concienzudo usuario, miro la ayuda. Lo que te dice Microsoft es que es una versión beta y, como beta que es, puede dar problemas. Continua diciendo que para evitar males mayores, desinstales la beta e instales la versión oficial.

Pues OK, decido desinstalarlo. Voy a programas de windows del panel de control y le pongo desinstalar…. ni caso. La beta 3 del messenger sigue anclada a mi windows xp. Y esto es un problema, ya que el instalador de la beta 2 no se instala ya que detecta la beta 3, y el instalador oficial tampoco ya que detecta que ya está instalado el messenger…. pa cagarse.

Empezamos a buscar por internet y encontramos diversos métodos:

1. Conseguir hacer visible la opción de desinstalación del Messenger Beta.
Este método consiste en ir la la carpeta de Windows/Inf y buscar un archivo llamado sysoc.inf. Lo abrimos con el bloc de notas y buscamos la siguiente entrada:

msmsgs=msgrocm.dll,0cEntry,msmsgs.inf,hide,7

Borramos la palabra ‘hide’ y guardamos de nuevo el archivo.
Si ahora volvemos a la opción de programas de windows del panel de control, veremos que nos aparece otro Windows Messenger. Así que probamos de desinstalarlo….. Y mi no me funcionó.

2. Linea de comandos.
Abrimos una consola de linea de comandos y ejecutamos la siguiente linea:

RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove

Supuestamente, esto desinstala el messenger. A mi tampoco me funcionó.

3. La maravillosa utilidad de “Windows Installer Cleanup”.
Para casos de instalaciones defectuosas o instalaciones que queramos eliminar y nos den problemas, Microsoft dispone de esta magnífica herramienta que podemos descargarnos de forma gratuita de su web en: http://support.microsoft.com/kb/290301

Una vez instalada, la ejecutamos y nos aparecerá una lista de todos los programas instalados en nuestro windows, incluido el dicho messenger 9 beta 3. Lo seleccionamos de la lista y le damos a la opción de desinstalar. ¡¡Fantástico, Funciona!!

Después de esto volví a instalar la beta 2 y todo va como una seda. Eso sí, después de una desesperante hora perdida.



Comparte este artículo:
  • Meneame
  • BarraPunto
  • Google
  • del.icio.us
  • Bumpzee
  • Facebook
  • Digg
  • StumbleUpon
  • Wikio

Amor Vader

Filed Under (General) by PoliMalo on 18-09-2008

Tagged Under : , , ,

¿qué puede haber más bonito que una pareja vestida de Darth Vader? Pues dos parejas vestidas de Darth Vader, evidentemente.

Sin duda alguna, la imágen más friki de la semana.

Comparte este artículo:
  • Meneame
  • BarraPunto
  • Google
  • del.icio.us
  • Bumpzee
  • Facebook
  • Digg
  • StumbleUpon
  • Wikio

Kraken Girl

Filed Under (General) by PoliMalo on 15-09-2008

Tagged Under : , , ,

Todos los que hayan visto alguna de las pelis de Piratas del Caribe saben que el kraken es un bicho realmente feo y jodido de matar. Y no solo es una invención del cine, el kraken es una criatura mitológica escandinava y finlandesa. Si a la pasión por los bichos averrantes le unimos la afición por el photoshop y las chatis de buen ver, pueden quedar engendros como este:

Esta y otras muchas criaturas metamorfoseantes en esta galería de flickr: Creatures Human Set.
Imaginación y tiempo libre al poder…

Comparte este artículo:
  • Meneame
  • BarraPunto
  • Google
  • del.icio.us
  • Bumpzee
  • Facebook
  • Digg
  • StumbleUpon
  • Wikio

La rampa del coche fantástico

Filed Under (General) by PoliMalo on 10-09-2008

Tagged Under : , ,

Todos los que hemos crecido viendo la rizada y grasienta cabellera del David Hasselhoff haciendo de Maikel Nait en el Coche Fantástico, siempre hemos soñado en algún momento con Kitt. Y años después, cuando ya la mayoría tenemos carnet de conducir y coche (o algo semejante), en algún momento, se nos ha pasado por la mente la comparación.
A mi personalmente, lo de subir y bajar de un camión en marcha, como decirlo….. me flipaba un cojón.

Pues en este aspecto se ve que no soy el único. Los geniales Mythbusters lo probaron hace algún tiempo. Cogieron un camión, le pusieron una rampa, pillaron un Pontiac y a probar se ha dicho. Lo más sorprendente de todo es que se ve que es increíblemente fácil subir y bajar con un coche de un camión en marcha, incluso a la elevada velocidad de 65 Millas por hora, más de 100 Km/h.

Comparte este artículo:
  • Meneame
  • BarraPunto
  • Google
  • del.icio.us
  • Bumpzee
  • Facebook
  • Digg
  • StumbleUpon
  • Wikio
Páginas: Anterior 1 2 3 4 5 6 7 8 ...140 141 142 Siguiente

Rss & Stats


Suscríbete al Poli-RSS
My Micro Stats