Email Me
my first name at my last name dot com

Archives
Past Blog Entries

Links
Andy Wrenbeck
ApplePhoneShow
Ben Abler
Ben Poole
Bob Lutz
Bob Obringer
Bruce Elgort
Carpeaqua
Codestore
Cult of Mac
Daring Fireball
Detroit News
Domino Unplugged
Ed Brill
Guidebook
I, Cringely
Joe Litton
Jonvon
NSFTools
NSLog
Ned Batchelder
Old Blog
Raymond Chen
Scobleizer Weblog
Techdirt
Unsanity
Weblogs Apple Log
bonj

3/1/09 3:11 PMCrash reports from the iphone and dwarfdump

My very first iPhone development related blog posting. I've been under so many NDAs that your head would spin.

The problem to be solved is:
How do you get crash reports from users without them sending you a crash report?

I'm using the idea from Christopher Atlan for capturing crash reports on the phone. This is handy, in that it captures the data. (How I do all that is another story) The question is, how do you turn the dump of addresses into something useful? You may have heard of the sybolication utility, which requires the crash in a specific format. And you may have heard of atos which translates an address into a symbol. However,neither one really works that well with the type of crash data we have and the .dSYM file we need to map it to.

What I haven't really seen documented on the web is the use of dwarfdump to achieve that for you. Here is a sample command:

dwarfdump --lookup 0x00007855 --arch armv6 MyApp.app.dSYM/


3/1/09 3:07 PMTime for my annual blog entry

This blog is suffering from a serious lack of attention. I do have something interesting I want to share, but I'll do that in another post. This is the post where I whine about not having enough time.

I can't remember how all the code to the blog works, and I just don't want to maintain this custom rolled format anymore. I just need to switch to one of the common platforms. The problem is the legacy data that I want to keep. I still receive emails from people who find my previous posting worthwhile, so I don't want to loose that information.

Anyway, same story for the last couple (few?) years. Up next, something that might actually be useful

Ed Wrenbeck // Add a comment // Permanent Link

3/27/08 12:09 PMORDB spam filter shut down

Didn't receive much email yesterday or today. I discovered that the ORDB blacklist is returning false positives for everything now to encourage users to stop using it.

If you don't seem to be getting much mail the last couple of days, you might want to check your blacklist filters. Personally, I'm now just using zen.spamhaus.org and bl.spamcop.net.

Ed Wrenbeck // Add a comment // Permanent Link

11/14/07 5:35 PMDSAPI Filter code for Notes Domino

Here's another nugget of Notes API code that I am slowly releasing into the wild. I'm not sure that it even has meaning in today's Domino world, but what the hey.

In this case its a DSAPI filter I wrote which basically instructs the browser to not cache anything that might come from the mail directory. The problem with this type of instruction is that the browser and any proxy server between the server and the browser can just ignore the "Suggestion" and cache whatever it wants anyway.

In the code, I thank Chris Stead. Unfortunately, I can't remember who this person is specifically, and what parts of the code I borrowed from Chris. I think I borrowed the overall structure of the DSAPI code from Chris and then built in the specific functionality I was looking for.

Click here to download the code --> dsapi3.pdf

Ed Wrenbeck // Add a comment // Permanent Link

11/13/07 6:18 PMMy Thoughts on Android

I still am interested in the iPhone more than I am in Android based phones, but I was curious so I downloaded the SDK to play around with.

Before I downloaded the SDK I didn't even know that it was Java based. That's good news for old hat Java programmers like myself. Java as a language was in need of a little positive momentum.

Here is the interesting part that I haven't seen covered anywhere else yet. If you watch the YouTube videos, you can't help but notice that the phone looks a little pokey. A little to much wait to go with your click if you ask me. Then I remembered hearing about the concept of a JVM on a chip. I was thinking that it makes perfect sense. The handsets they have been demoing with are not ready with the hardware JVM so things are a little pokey. By the time it is released into the wild, the performance issues would be mitigated.

Today I read that Android is actually compiled into Java bytecode, which is then transformed into Dalvik bytecode. In other words, although you develop applications using the Java language, there isn't a JVM on the device. I'm wondering if google plans on getting some hard love next year, or if they are simply hoping that a year from now the phones will have enough horsepower to deliver a decent experience.

Personally, I think Android will probably seal the fate of second tier mobile operating systems such as Palm OS and Windows mobile, but OS X will continue to lead the phone market.

So, do I putz around with the Android application I have in mind, even though I don't really plan on owning an Android device, or do I just hang on and wait until Moses delivers the JesusPhone SDK?

Ed Wrenbeck // Add a comment // Permanent Link

11/7/07 9:40 AMEnforce Consistent ACL - Code released into the wild

Somebody asked me for this today, since my old domino based blog entries are no longer available online.

Here is the C++ Lotus API code I wrote to toggle the SetUniformAccess flag on a database, also known as the Enforce Consistent ACL flag. This does require the C++ dll on your path, such as lcppn23.dll or later.

#include <lncppapi.h>
#include <iostream.h>

int main(int argc, char *argv[])
{
	char errorBuf[LNERROR_MESSAGE_LENGTH];
	LNNotesSession session;
	LNSetThrowAllErrors(TRUE);

	if ( argc < 2 )
	{
		cout << "This application sets the SetUniformAccess flag" << endl;
		cout << "Also known as the EnforceConsistentACL flag" << endl;
		cout << "Usage: " << endl;
		cout << "     DbSetUniformAccess.exe database flag" << endl;
		cout << "          -database = path to database to change" << endl;
		cout << "          -flag = T to set to true, anything else to set to false" << endl;
		return(0);
	}

	

	try {
		session.Init();
		LNDatabase db;
		LNACL acl;
		char * testchar = "T";

		cout << "Opening database: " << argv[1] << endl;
		session.GetDatabase(argv[1], &db);
		db.Open(LNDBOPENFLAGS_NO_USER_INFO);
		db.GetACL(&acl);

		if (strcmp(argv[2], "T") == 0)
		{
			acl.SetUniformAccess(TRUE);
			cout << "changed SetUniformAccess to TRUE" << endl;
		}
		else
		{
			acl.SetUniformAccess(FALSE);
			cout << "changed SetUniformAccess to FALSE" << endl;
		}

		acl.Save();
	}
	catch (LNSTATUS error) {
		LNGetErrorMessage(error, errorBuf);
		cout << "Error:   " << errorBuf << endl;
	}

	cout << "Finished running" << endl;
	session.Term();
	return(0);
}
      

Ed Wrenbeck // Add a comment // Permanent Link

8/29/07 9:29 AMApplePhoneShow.com

Interested in the iPhone? Check out ApplePhoneShow.com.

Even though I don't own an iPhone yet, I usually listen to this podcast because I enjoy listening to the hosts of this show. Of course, I'm still anticipating the day when I will be able to have an iPhone of my own.

Ed Wrenbeck // 3 comments // Permanent Link

8/6/07 2:22 PMConvert a String to a number in Javascript

Here's one for the memory banks. I wanted a simple way to convert a string into a number. The built in parsing functions in Javascript don't deal with negatives at all. My String could look like "200px" or "-200px". calling parseInt on 200px would work fine and return 200, but -200px would return NaN. So with a little hackery I came up with this:

newNumber = someString.split(/[^0-9\-]/).join('');

Regex sure provides some crazy fun eh?

Anyway, you might have noticed that it doesn't deal with decimals. Something like /[^0-9\-\.]/ might do it, give it a whirl.

Ed Wrenbeck // Add a comment // Permanent Link

8/3/07 1:40 PMThought of the Day

I was following a POS Ford Escort not to long ago, I would say early nineties vintage. Now I can't blame the fellow for maximizing his dollar and the car looked to be in relatively good shape. Here's what killed me:

He had a bumper sticker that said "I work for Ford, I drive a Ford". I can appreciate the sentiment itself, but he's driving a 15 year old Ford. In addition, Ford was basically selling the car at a loss to maintain volume and to keep a presence in the entry level car buyer market. So, does this guy really think that he is somehow supporting the company by driving the same car for 15 years, a car which Ford certainly lost money on by selling it to him?

Ed Wrenbeck // Add a comment // Permanent Link

7/3/07 1:26 PMJSF is Half Baked

Someone, please put it back in the oven.

Here is my thought for today: The person that dreamed up the whole representation of a select tag should be shot.

They have made it impossibly hard to implement a stupid frickin HTML Select tag. So I decided to look at the Tomahawk option. The sample on the apache website for the t:selectItems shows it being used with a standard h:selectOneMenu. However, my Facelets taglib for Tomahawk does not include a selectItems and does include its own selectOneMenu.

This crap is so not ready for primetime. We are using 3 layers of code (Facelets, Tomahawk, and JSF) and none of them are anywhere near ready to be used.

Don't even get me started on the stupid dataTable.

Arrrrrgggghhh!

Ed Wrenbeck // 2 comments // Permanent Link

Current Articles
Fluorescent Application Download
Implementing a factory pattern in LotusScript
Using AWStats and Tomcat
Using LotusScript to add subforms to a form
Installing FlowBuilder 3.0 on Linux (SuSE 9.1)
NSOutlineView and Tooltips and Java
The technology behind the site
How do I get Pi Messenger?

login