Archive

Author Archive

Seth Godin talks about tech and marketing

August 22nd, 2009 No comments

This is a great talk…. go check it out…

Vid is here

Categories: Code Tags: ,

Zune HD poised for great things?

August 12th, 2009 No comments

Anyone out there heard about the new Zune HD? You might hear about it a lot more soon. I wrote about this a while back when there was less info, just an announcement really. But now we have videos and reviews. I have to say it looks impressive so far. And finally something that LOOKS just as good as an Apple product too.

The screen looks great, and this has the new nvidia tegra chipset, so the graphics should be excellent.

Sure it plays music, has an HD radio tuner, video, and all that… but I secretly hope this is just the beginning of the Zune take over of the world. I’m serious. What if they added a UMTS modem? Instant cell phone…. And the Zune OS looks a whole heck of a lot better than the upcoming release of WinMobile…

Ok, and here is the other killer things for Zune (phone or otherwise). Apps. Lets look at programming on Apple vs Microsoft platforms. (For the sake of this exercise, I’m ignoring shell scripts or C++ command line app, etc). For GUI programming and GUI apps you have XCode vs .NET.. and then you have Java on both sides. But Java GUIs are worse than other of the other options, so we can ignore that too. I’ve coded on both sides and I have to say .NET is the easiest development system I’ve ever used, by far. VisualStudio is epic for debugging and development.

So.. Zune goes all app store on us… and you get to use .NET mobile to develop the apps. This would explode overnight. EVERYONE knows C# or VB… but to break into the Apple app store you have to figure out XCode’s development methodology and Obj-C. That sucks. No one uses Obj-C except Apple and I really just don’t like it.

This would be better than Android as well. I’m a big fan of Google and what they are doing with Android, but the SDK is still a bit rough, and the GUI design is no were near as good as what a Microsoft tool would bring.

And the HD has an nvidia chip set. What if we got some mobile version of DirectX? Think about the gaming potential of that too?

So that is my wild dream.. a Zune Phone with a .NET dev tool and an app store… Do it MS… DO IT.

All not well in iPhone land

August 2nd, 2009 No comments

It seems like there is starting to me an uprising in Steve Jobs land. Specifically against the ATT/Apple iPhone situation. More specifically the crazy, illogical way apps can be accepted or rejected, and the sort of closed mindedness that seems to be affecting developers and users. Here are a couple of interesting articles:

Techcrunch

Steve Frank

And now the FCC is asking questions about the Apple rejection of all Google Voice related app. Interesting.

All I know is I’m happy enough with my Android phone and the ability to have a pretty open platform. And I always have my iPod Touch if I really want to try out some of the cooler apps…

Google Voice first take

July 27th, 2009 No comments

I got a Google Voice invite a few weeks ago, and since I’m also sporting an Android phone I thought this might be interesting.

In a nutshell, you get a Google phone number (I even got a local number) and you can configure the service to interact with all your other numbers – cell, home, work, etc. You can set which phone(s) ring in what order, and on Android installing Voice gives you to option to make a call from the handset from either your carrier’s number or your Google number. But here’s the issue, if you can’t port your main number, you have to go through the pain of changing your number, which is no fun at all. Google says you may be able to port over a number later on. For now, I’m not going to give out my Google number.

But here is the awesome part of Voice even if you don’t use it as a primary number – the voicemail is outstanding. I am now using it for my primary VM instead of T-Mobile. Here is how I set it up, and why its great:

1) I change my Android options to point my phone at my Google Voice number as my “voicemail” number instead of the T-Mobile default. This means that if I dont pick up my cell phone the call is sent to my GV number.

2). Set Google Voice to not forward to any numbers, and set it to go directly to voicemail when the Google number rings.

At this point if I don’t answer my cell, it forwards to google and straight to voicemail. So the caller can’t tell the different.

Now, GV has some great options to set for voice mail. It will transcribe your messages and txt or email them to you! Its not perfect, but over the few dozen messages I’d gotten so far, its close enough to know what the caller really said.

I setup GV to txt my cell when I get a VM. This is KILLER if you are in a meeting or a movie or a loud location. I can read my VM on my phone.

Second, the GV Android app will download the VM to my phone along with the transcript in the GV “inbox”. So later on I can go listen and/or read the message again.

Also, I can log into GV from any computer and get all my messages, send txts, even make calls, directly from the web interface.

Its not perfect yet, but so far its pretty amazing.

qrcode

Microsoft copies Apple Stores

July 25th, 2009 No comments

This is cool/funny/interesting.. Microsoft is coming out with retail stores apparently. This makes sense ont he level of Xbox and whatnot.. but there are no Microsoft branded laptops or desktops, and there are no Microsoft cell phones… in short MS doens’t do a lot of the HW like Apple does. So I’m curious to see how this will actually work out.

Plus, they have the Guru Bar (shameless knockoff of Apple’s Genius Bar). But what will happen here? If you have a Dell laptop with Windows Vista will they help you? That would be something pretty cool..

Oh and lets not forget the Zune HD.. I suppose those will be out in force. Maybe it is a precursor to a Zune Phone…. hmm.

qrcode

Categories: Apple, Microsoft Tags: ,

Apple Fails on Latitude

July 25th, 2009 No comments

Good read here.

Apple has made some really odd choices with regard to apps and such. I don’t get it.

Latitude is kind of a cool option for maps. It’s most useful if you are out on the town and you can see where are your “peeps” are at. Well provided they are all on an Android device. The reason why Latitude is pointless on iPhone is that it can’t run in the background, so unless all your friends are walking around with their iPhones locked in map mode, you wont get any updates.

At least with Android I can run it in the background if I want/need to.

Categories: Android, Apple, iPhone, Mobile Tags: , , ,

Open Source Mobile OS's

July 21st, 2009 No comments

This is a very interesting article: here

The bottom line is that the author things open source (or at least totally open app development) will overtake the iPhone in the end. Android is totally open source and there are little restrictions on the app store… and you can load apps without using the app store. The Pre has little restrictions on its app store as well. Nothing like what Apple does.

Plus, like I have said before, the fact that Android lets you do almost anything and access any part of the OS or hook any sort of even are huge. You want a new dialer app? Do it. Want to hook all your incoming SMS and do soemthing funky with them? Sure why not. The iPhone restricts all of this.

And of course multitasking is huge. And with better technology with batteries or display technology (shameless corporate plug: Qualcomm’s mirasol) there are so many possibilities for a true computing phone.

C# and Serializing Structs to byte arrays

July 2nd, 2009 10 comments

So I have a application in C# that is communicating to something else via UDP messages. The messages are byte packed arrays of data. There are several bytes of header and then N bytes of data whos format is described in the header. I might send several Ints, or a string, or whatever.

This is pretty easy to handle in C/C++ as you can get raw pointers to everything. So if each message type is a struct, I can get a char* to the address of the struct and just read N bytes and send that out.

The problem on the C# end is this isnt so easy. If I want to pull messages apart and put them back into structs I have to do this manually each multi byte field at a time. So I was left with a function call for each message type to serialize it, and then another to deserialize it, each one having to know exactly what was in each message, so if I changed a message I’d have to edit all the handling functions. What I needed was a way to jsut get the raw bytes the in the received array into a struct of the right type, and vice versa. Fortunately there are some tricky ways to make this super easy.

First, we have to make sure the structs we declare in C# and packed. Here is an example:

using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, Pack=1)]
struct msg1{
     int a;
     int b
     short c;
}

This will ensure there are no gaps between elements in the struct.

Next, we need a way to take an array of Bytes and copy it directly into the struct:

public static T DeserializeMsg< T >(Byte[] data) where T : struct
        {
            int objsize = Marshal.SizeOf(typeof(T));
            IntPtr buff = Marshal.AllocHGlobal(objsize);

            Marshal.Copy(data, 0, buff, objsize);

            T retStruct = (T)Marshal.PtrToStructure(buff, typeof(T));

            Marshal.FreeHGlobal(buff);

            return retStruct;
        }

Lets say we have a msg1 struct populated and we want to send that out over UDP. We need to serialize it back to raw bytes. This function will do just that:

public static Byte[] SerializeMessage< T >(T msg) where T : struct
        {
            int objsize = Marshal.SizeOf(typeof(T));
            Byte[] ret = new Byte[objsize];

            IntPtr buff = Marshal.AllocHGlobal(objsize);

            Marshal.StructureToPtr(msg, buff, true);

            Marshal.Copy(buff, ret, 0, objsize);

            Marshal.FreeHGlobal(buff);

            return ret;
        }

Thats it!

qrcode

Android + Firefox = awesome

June 29th, 2009 No comments

Right now Android apps are written in Java and run on the Android virtual machine.. but now Google has released another SDK (called the NDK) that lets developers write “native” apps in C or C++! This has advantages as the code could be significantly faster, etc.

So this could mean Firefox on Android sometime soon… see here.

Categories: Android, Mobile Tags:

More Android!

June 24th, 2009 No comments

*** UPDATE ***

Hands on with this phone plus some great pictures here.

This thing looks great, and notice at the end of the article… flash player comes standard!

*** ***

HTC announced another Android handset today – the “Hero”

See specs here

A couple of big things jump out at me:

1) Flash support in the web browser
2) 5mp camera with auto focus and video capture
3) The “Hero” OS overlay from HTC.
4) Finally HTC puts in a headphone jack that doesn’t need a dongle

There are plenty of videos on youtube, etc, that show the Hero UI update for Android. This looks pretty slick, nice widgets like real time streaming stock quotes. Plus the look and feel are a bit more polished than the standard Android.

The other standard Android specs are here – Qualcomm 528Mhz proc, HSDPA, wifi, but then they also say “multitouch” screen. That is interesting. There is a custom Cupcake build out there that supposedly enables multitouch, but I haven’t tried it. That would be a nice addition.

I didn’t see price info and there is no official announcement from T-Mo, but the pics on engadget show “T-Mobile” on the screen, so I assume it will be coming. Good news for Android fans, more choices!