The internet changed my name

November 7, 2007

Recently a guy we were interviewing here at Krugle pointed out that there were 176 hits (now 355) if you searched for “Ken Krugle” on Yahoo.

I can see why people might get it wrong, or maybe it’s just a typo – but even if I could change my surname to KrugleĀ® (hmm, wonder what the valid charset is for US names?), I think I’ll stick with “Krugler”.

But speaking of surnames, if anybody can point me to the definitive reference for valid characters, I’d like to add that to my list of obscure technical factoids.

Advertisements

What’s a techno tidbit?

November 6, 2007

A long time ago, I worked at the Apple Japan office while a small team of us where trying to kick KanjiTalk (Japanese OS for the Mac) out the door. There was a significant gap between most of the office, being focused on sales/marketing, and the development team. So I did a few talks on the technology behind KanjiTalk – Japanese text processing, input methods, fonts, etc.

I’m not sure how successful they were, but at least I can now recycle the name as the title for my blog.


A clearer error message?

November 6, 2007

We use Jive for the Krugle support bulletin board, and in general it works well. But recently we started getting errors while following links to posts, and contacted Jive support about the issue.

They responded with:

While I think that our system should fail more gracefully, and present you with a clearer error message, it appears that our software is operating normally.

I hope our support tries a bit harder than theirs, as the error message that could be a bit clearer is:

500 Servlet Exception

com.jivesoftware.forum.ForumThreadNotFoundException: Thread 378 could not
be loaded from the database.
at com.jivesoftware.forum.database.DbForumThread.loadFromDb(DbForumThread.java:1340)
at com.jivesoftware.forum.database.DbForumThread.<init>(DbForumThread.java:181)
at com.jivesoftware.forum.database.DatabaseCacheManager.getForumThread(DatabaseCacheManager.java:415)
at com.jivesoftware.forum.database.DbForumFactory.getForumThread(DbForumFactory.java:617)
at com.jivesoftware.forum.proxy.ForumFactoryProxy.getForumThread(ForumFactoryProxy.java:161)
at com.jivesoftware.forum.action.ForumThreadAction.loadObjects(ForumThreadAction.java:446)
at com.jivesoftware.base.action.interceptor.JiveObjectLoaderInterceptor.intercept(JiveObjectLoaderInterceptor.java:50)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.jivesoftware.forum.action.ForumsInterceptor.intercept(ForumsInterceptor.java:84)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.jivesoftware.base.action.interceptor.AuthInterceptor.intercept(AuthInterceptor.java:44)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.jivesoftware.forum.action.LocaleInterceptor.intercept(LocaleInterceptor.java:96)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.jivesoftware.base.action.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:41)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.jivesoftware.base.action.interceptor.JiveLoginInterceptor.intercept(JiveLoginInterceptor.java:41)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:189)
at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:233)
at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:198)
at com.jivesoftware.base.action.util.JiveFilterDispatcher.doFilter(JiveFilterDispatcher.java:49)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.jivesoftware.util.SetResponseCharacterEncodingFilter.doFilter(SetResponseCharacterEncodingFilter.java:56)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:78)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.jivesoftware.base.stats.ReadStatsFilter.doFilter(ReadStatsFilter.java:80)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.jivesoftware.base.PresenceFilter.doFilter(PresenceFilter.java:105)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.jivesoftware.util.SetRequestCharacterEncodingFilter.doFilter(SetRequestCharacterEncodingFilter.java:72)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.jivesoftware.base.util.ApplicationInitializedFilter.doFilter(ApplicationInitializedFilter.java:59)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:163)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:208)
at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:396)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:363)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:490)
at com.caucho.util.ThreadPool.run(ThreadPool.java:423)
at java.lang.Thread.run(Thread.java:595)


If you can read this, your nose is hitting the display

November 6, 2007

I recently tried to participate in a Webex online demo. As I was in the process of logging in, I got a page that let me know I was officially out of luck, being one of those renegade Mac users.

I clicked the Continue button on this page, and wound up looking at this screen:

Bad Webex UI

Check out the creative use of black-on-dark-blue, and the broken images. I guess this is additional punishment for trying to use a Mac – you don’t get to participate in the conference, and you get eye strain as a bonus.