Posts

Moving my blog...

I decided to move my blog over from here to Wordpress at codingafterschool.wordpress.com , because WordPress offers more functions, especially the built in syntax highlighting functionality, so I can show you guys code and things much easier.

Logitech Revue and Google TV

Image
Today is a lucky day for me, I got a free Google TV from Google for developing web applications for it. This is the first time I’ve played with the Google TV. The set up process of the Google TV takes about 15 mins, including set up the wireless network, a TV source and set up the Logitech Revue controller to be a TV remote. The process takes longer than setting up the Apple TV because as you might already know, the Google TV connects to your TV source also. However, I’m not gonna talk about that feature, but I’ll talk about the internet and app capabilities in Google TV. But before everything, I should tell you that I’m writing this blog on the Logitech Revue controller (which is essentially a keyboard with a trackpad plus some special Android-specific buttons). The Chrome web browser on the Google TV works pretty well, however, even though Google always promote Flash (Adobe Flash) on their mobile platform, I found that it performs very slowly. I found that navigating around the bro

So hard to make a good Android app

I'm just so sick of writing programs on Android nowadays. I do Android development for a living, but I can say wholeheartedly that it is very very hard to make a good application for Android. Don't get me wrong, it's not like Android is not a good platform, it is a good free and open platform, but it's half-baked. If any of you have been programming Android, you will usually find that some of the Android's APIs are broken, some of them work differently in different versions, and some of them just don't work at all. Normally, programming on Android is fine when you don't have to touch a lot of lower level stuff, especially the Android Media Player. It is broken beyond repair. How can it not support streaming from an HTTPS URL? How can it deadlock itself when there're two instances of it running at the same time? And remember that this comes from Google!! not from some b.s. company that we don't know. Also if you look at Google's Android platform v

Visibility in Objective-C

For people whose computer background are from Java or C++, you would be amused by how Objective-C syntax doesn't seem to allow you to set the visibility of anything in your code. However, we have to look at this in a completely different view. Because Objective-C is a dynamic language by nature, some philosophies that do apply in Java and C++ do not apply to Objective-C. For instance, in Objective-C, there is no real protected/private methods. All methods are public. But don't panic yet, we have a workaround that will make an Objective-C methods looks like it's private. Now let's look at Objective-C variables. Objective-C allows the same Java-like visibility modifier to instance variables. @private , for private variables (can be accessed only within the class). @protected for protected variables (can be accessed within the class and its subclasses), and @public , for public variables (can be accessed from any classes). Objective-C instance variables are protected by d

Team work and Inner classes

It's like almost 3 months that I haven't posted anything new here, but my life still goes on. There was nothing really excited for the past months, except that I got an approval from my manager to go back to Thailand at around Christmas time. Our project at work still goes pretty well, but I learn how painful that is to work in a big project that cannot be done by one team but has to wait for "business people" to make a decision. I guess this is the problem facing everywhere there is a big software project, but to see it myself makes it even clearer that we need a faster software development process. I spent most of my time not coding, but wandering around asking people if the components they were working on are done. Debugging is also very painful, especially on the Android platform. Fortunately, I switched the IDE that I use from Eclipse to IntelliJ IDEA, and it makes my life a lot easier when I try to refactor my code. I don't know if other people have had this

The Interviews

Time has passed by very very quickly. This is my fourth week at Amazon. I felt like I didn't do much, but really, I've done so much, even more than what I've done in my last semester at school when I did the research with Prof. Sami Rollins on Android platform at USF . Even though I'm the first level Software Development Engineer at A2Z, they don't make me feel inferior. Every time they need opinions, mine is always as important as other's. One of the best thing that happens to me at A2Z is that I got to interview candidates that we might hire. Since we're trying to double the size of the company, we're hiring like crazy. Last week, I got to interview a handful of candidates applying for mobile development job. The experience was indescribable. I can't tell you who are the candidates, or what I ask during the interview, but I think I can give you some tips and tricks that might help you get through the technical interviews a little bit easier. One t

Real Flashlight App for iPhone 4

Image
I saw real flashlight app for iPhone in the App Store sold for like $0.99 or more and I thought that it couldn't be too hard to write. So here's what it takes to write a real flashlight app for iPhone 4. Btw, I'm not gonna tell you every step since I assume that you have at least a little bit of knowledge of how to write an iPhone application. First, you just have to start an iPhone project with a "View-based Application" template. This project requires you to add an AVFoundation framework into the project. You can do that by right click the Frameworks folder and add the AVFoundation.framework. Now you need to have a ViewController that you want to work with and follow these steps. Import <avfoundation/avfoundation.h> Create an AVCaptureSession instance variable that we'll use Create two methods that will control the flash Your code should look like this. However, I also connects my methods to the interface file using Interface Builder. Your code might l