App Hacker

Tech reporters are still stupid.

Posted in tech by apphackers on December 14, 2009

Tiny URL services are not “Tech news.” Nobody cares about tiny urls. Nobody cares about a google phone. None of this shit is remotely tech oriented and or interesting. It’s pathetic is what it is. That is all.

Tech Reporters are stupid.

Posted in apps by apphackers on December 8, 2009

I don’t know why I read Techmeme anymore. The technology focused blogs don’t really cover technology, they cover websites and gadgets. If they really covered technology they’d probably talk about things that were actually interesting. To call the niche an echo chamber is an understatement. They all cover the same topics, the same events, linking to each other and providing their own flavor or perspective on the same thing. Those perspectives are not very interesting or insightful and given that the topic isn’t very interesting to begin with who cares.

Tech blogs don’t care about technology, and they care about pageviews. Which is fine, they’re a business. Fox news caters to idiots because there are a lot of idiots, there’s a market for it.
lolcats funny cat pictures
Take for example today’s news that Google is going to push real time tweets on its search engine result pages. This horrible idea involves an animation that actually pushes down the real search results you wanted to find. That vertical space is replaced by a never ending stream of people you don’t care about saying things you don’t care about. I switched to Bing a few weeks ago (better search results for things I care about with none of the bullshit Google has been adding). What Google has done here is bad. But for about a year now tech blogs have gone ape shit anything involving real time, because it’s the new meaningless fucking fad to invade their sorry lives. Of course the same tech blogs also go ape shit whenever Google has an update. When ever have any of these techblogs cared about new programming languages? Never, of course the exception is when Google released Go, suddenly a new programming language is big news. Mix Google and Real Time in the same story and you get tech bloggers in a frenzy.

Good ideas don’t need an echo chamber, people will find them without blogs. It’s just so depressing. I want real news, interesting news.

Dear tech bloggers. From me to you, I’d like to pass this message: you suck.

Objective-J seems cool

Posted in programming by apphackers on October 2, 2009

I was pretty disturbed by Objective-J when I first heard of it and read about it. But I’m actually getting a little bit interested in it lately, especially since it abstracts the heavy HTML & CSS lifting from websites. I may give it a gander. Seems like one can make pretty cool apps quickly with it.

New updates for Diomedes IRC

Posted in apps, programming by apphackers on October 2, 2009

Added some cool new stuff today:

* added logging
* added server ping mechanism to improve client awareness of connection state
* added number of people count in a channel to title bar
* bug fixes

As always, available for free from http://www.apphackers.com

Coming soon:

* Better UI
* Better Netsplit handling
* Better preference UI
* Per channel logging option

HackBitly is now on the iphone app store

Posted in apps by apphackers on September 18, 2009

You can download it here: HackBitly ( iTunes Link ). It’s basically bit.ly on your iphone.

Tagged with: , ,

Achaean: Starting work on a JavaScript Unit Test Framework

Posted in apps, programming by apphackers on September 10, 2009

So I’m pretty unhappy with the existing unit test frameworks out there for JavaScript. There’s Dojo’s D.O.H., YUI Test ( written by @slicknet ), JSTest, JSUnit, Jquery’s QUnit.

And now there’s Achaean.

Summary of the project:

No assumptions. One file. Easy to use.

There are many JavaScript? unit test frameworks out there. More notably Dojo’s D.O.H., JSUnit, JSTest, YUI Test. If you search Google Code’s project hosting, you’ll find even more. They all assume a lot. They may assume you’re testing in a browser or Rhino. They may assume you’re using a given framework. They may require several files, a custom build, or something else.

This framework will require nothing other than one file. You can test in a browser or on the command line using Rhino, this framework is agnostic on the issue.

How does it work? The result is a native JavaScript? object that is returned to the script running the test. You can do whatever you want with it. It will have a list of errors, test results, in plain text, or html. You can display it in the browser console, on a Rhino Shell, in an HTML document, an XUL Panel , or even an alert window and format it as you want.

Achaean’s flexibility will let you use it as part of a build script to ensure required tests pass before building or packaging for production or staging.

Ease of use.

Simple methods, simple set up. Just download the file, look at the few simple steps involved and start writing your tests within minutes.

Here’s the code. Feedback welcomed.

stringByAddingPercentEscapesUsingEncoding sucks balls

Posted in programming by apphackers on August 31, 2009

Don’t use NSString’s stringByAddingPercentEscapesUsingEncoding, it doesn’t actually work. Instead use this guy’s work around.

Using the PasteBoard in your Iphone App

Posted in apps, programming by apphackers on August 25, 2009

I had this problem where if you copied the API key from Bit.ly via an iPhone’s webview it would end up with too much text in the pasteboard. It was unavoidable, something about how Bit.ly created their website. Instead of just getting:

R_12347608e0f55asfdasdfD1

The pasteboard would end up with:

R_12347608e0f55asfdasdfD1 Reset

as its contents. If a user tried to use this api key for any calls to Bit.ly an error would occur. I put some text in place to instruct the user to becareful about the Reset button text when pasting the API key into the text field, but when someone tried the app they didn’t notice and it broke the app for them. So I decided to remove the “Reset” text and trim the apikey for the user so they wouldn’t have to worry about it. I subclassed UITextField and added this method to the subclass:

- ( void ) paste: ( id ) sender {
  UIPasteboard *genPb = [ UIPasteboard generalPasteboard ];
  if ( [ genPb containsPasteboardTypes: [ NSArray arrayWithObject: ( NSString * ) kUTTypeUTF8PlainText ] ] ) {
    NSString *contents = [ [ NSString alloc ] initWithData:
      [ genPb dataForPasteboardType: ( NSString * ) kUTTypeUTF8PlainText ] encoding: NSUTF8StringEncoding ];
    NSScanner *scanner = [ NSScanner scannerWithString: contents ];
    NSString *newContents;
    if ( [ scanner scanUpToString: @"Reset" intoString: &newContents ] ) {
      [ genPb setData:
        [  [ newContents stringByTrimmingCharactersInSet: [ NSCharacterSet whitespaceAndNewlineCharacterSet ] ]
        dataUsingEncoding: NSUTF8StringEncoding ] forPasteboardType: ( NSString * ) kUTTypeUTF8PlainText ];
    }
    [ contents release ];
  }
  [ super paste: sender ];
}

It works like a charm! The contents of the pasteboard are replaced *before* the contents are pasted to the textfield’s text property.

Edit: I should mention this requires adding the MobileCoreServices framework from the iPhone 3.0 SDK and including an #import at the top of the header file.

Tagged with: , ,

New WordPress

Posted in apps by apphackers on August 20, 2009

The new wordpress looks sweet. I should blog more.

Made Diomedes IRC Link Log Awesome

Posted in apps by apphackers on July 15, 2009

The link log for Diomedes IRC resolves URL shortners, fetches page titles and header information. Now you’ll never have to worry about clicking a scary link again! Rick rolls are a thing of the past. :)

Can your IRC client do this?