Agile Developer, Berlin, Germany

03.11.2008

Quick iPhone Dev Tip: Creating an UIColor with just one RGB value

Filed under: iphone, programming — pegolon @ 11:39

Are you also tired of splitting that long RGB value into red, green and blue and converting them to a format that UIColor understands? I was, so I wrote a macro that converts the value on compile time and returns an UIColor autorelease object with the correct values:

#define UIColorFromRGB(rgbValue) [UIColor \
 colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

In your code you can use it like this:

UIColor myGreen = UIColorFromRGB(0x00FF00);

Put this in your global header referenced from <project_name>_Prefix.pch and you can use it everywhere in your project without importing it excplicitly.

09.10.2008

My first iPhone App has been released!

Filed under: iphone, programming — pegolon @ 9:48

Yesterday evening I got a mail from Apple that they released my iPhone App WeFind. It took them 8 days (submitted on 30th September) to test it.

It’s a news aggregator which collects its data from our newssite Newsexpress. In the next version there will be other search engines included and many more features are already in the pipeline.

The direct AppStore link is here. Its only available in Germany, Switzerland and Austria since its based on German newspapers.

I am very excited.

News Aggregator

News Aggregator

30.09.2008

Founded a new chapter of CocoaHeads in Berlin

Filed under: iphone, programming — pegolon @ 0:24

After listening to this nice podcast I decided to start a new chapter of CocoaHeads in Berlin.

The google group for discussion is here.

Now I have to find a nice and decent place for the meetings…

20.07.2008

A much better language speed comparison

Filed under: programming — pegolon @ 9:08

Dhananjay Nene made a very good comparsion of all major languages (C++ / Java / Python / Ruby/ Jython / JRuby / Groovy) including source code. This is a much better and more detailed view on a specific computing problem. My quick performance comparison was discussed very heavily since it doesn’t count the language specific criteria very well.

iPhone 3G – Will it bounce?

Filed under: iphone — pegolon @ 8:58
Tags:

I was one of the last lucky people in Rostock in northern Germany to get an iPhone 3G 16 GB black. I also was one of the first iPhone 2G phones in Berlin. But my luck was used up this Friday after only 8 days with my new gadget. While leaning forward to help my 5 year old out of his pants in a public toilet it slipped out of my jacket and crashed onto the tiled floor. The screen cracked:

My, oh my.

My, oh my.

Although the glass is broken the device works perfectly. Even the touch works with the cracks. Yesterday I went to a T-Mobile shop and the iPhone is now on its long way to the T-Mobile central repair station. I guess that will be very expensive. Apple states 299,- € for a 16 GB iPhone 3G. :-(

Fortunately my wife was so kind to lend me old iPhone while I am waiting for the return of my latest toy.

Already ordered a leather case at Amazon and T-Mobile also offers a insurance for broken devices. I will definitely need one.

18.03.2008

Using (Native)Windows with AIR

Filed under: air, flex, programming — pegolon @ 11:16

If you want to use windows in AIR with custom chrome (especially transparent) you have to consider some drawbacks. First you cannot use NativeWindow if you want to use Flex components from the mx.* namespace. There is a separate Window class in the AIR package which encapsulates a NativeWindow. To get your own content inside this window you can create a separate MXML file like this:

<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Window xmlns:mx=”http://www.adobe.com/2006/mxml”
width=”200″ height=”100″
transparent=”true” systemChrome=”none” type=”normal”
showStatusBar=”false” showTitleBar=”false” showFlexChrome=”false”>
<PlaceYourContentHere/>
</mx:Window>

This will display a transparent window without any controls and header on the screen.

Whenever you want to create and display the window use:

var myWindow:MyWindow = new MyWindow
myWindow.open()

If you want to change the position of the window you have to use its nativeWindow property:

// Center window

myWindow.nativeWindow.x = (Capabilities.screenResolutionX – myWindow.width) / 2
myWindow.nativeWindow.y = (Capabilities.screenResolutionY – myWindow.height) / 2

I used to use the NativeWindow class for transparent windows since AIR beta 1. To get Flex-Containers in it I initialized them in the main application window, removed them there and added them to stage of the NativeWindow. This worked fine until I used controls like ComboBox or ColorPicker which relied on the PopupManager. The popup window didn’t occur until I found that it was opened in the main application window at the position of the initial component.

19.02.2008

My new tlog (tumblelog)

Filed under: rails — pegolon @ 12:04

In the excellent (German language) podcast Chaos Radio Express episode CRE072 they featured a tumblelog application named soup. I couldn’t resist, jumped on the train and this kind of (b)logging fits much better to my needs. The application is lean and (of course) written in Ruby on Rails.

I try to use it instead of Google bookmarks to remind myself (and others) of remindable things I discover during my surf sessions.

My new tlog address is: http://pegolon.soup.io

18.02.2008

My favorite monospaced font for coding of the month

Filed under: flex, programming — pegolon @ 15:29

I am constantly overthinking my editor font for coding. Using Java and Eclipse I was able to use a anti-proportional font because of the automatic code formatting. Unfortunately in Flexbuilder there is no such thing as automatic code formatting. Much worse the editor ignores sometimes, that I don’t want to use tabs at all and mixes tabs and spaces. So I had to switch back to a monospaced font and found this one in the web: http://www.ghostscript.com/~raph/type/myfonts/inconsolata.html Its under the Open Font License which feels rather unrestricted. 

24.01.2008

Quick Ruby vs. Groovy performance comparison

Filed under: programming — pegolon @ 12:24
Tags: ,

I was just wondering how Ruby and Groovy are comparing in performance with each other so I wrote a quick line in both languages and ran it in irb / GroovyConsole.

Ruby:

start=Time.new;y=0;(1..2000000).each { |x| y=x };Time.new - start

Groovy:

def test=System.currentTimeMillis();(1..2000000).each { x -> y=x };System.currentTimeMillis() - test

The Ruby code is being interpreted, the Groovy one is being compiled into Java Bytecode and then executed.

Ruby: 456 – 529 ms
Groovy: 1812 – 1885 ms

If you change the line inside the closure to “y+=1″ you get these results:

Ruby: 674 – 785 ms
Groovy: 4210 – 4465 ms

In Ruby there is no “++” operator, but in Groovy it seems to be faster than “+=1″:

Groovy: 3298 – 3338 ms

Conclusion: it is not very surprising, that a language which is being developed over almost 15 years (Ruby) is better optimised than one which is just 5 years old. I guess if we wait a couple of years Groovy will become a serious competitor to Ruby, but note however that Ruby gets a JIT in version 1.9 so the advance will become much greater.

23.01.2008

Strange Flex/AIR error

Filed under: air, flex, programming — pegolon @ 14:14

If you get this error:

Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found. 

There is likely a Loader.load() call which cannot find the file. You should add an event listener like this

loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError)  

« Previous PageNext Page »

Blog at WordPress.com.