Welcome to my blog! I hope you find content that is interesting and/or helpful to you.
Welcome to my blog! I hope you find content that is interesting and/or helpful to you.
This week I encountered an issue that I hadn’t seen in a while. The ORM in a CMS project that I work on automatically joins to many subclass tables, causing normal queries to load an object to be joined to a dozen tables or so. Then when you combine that to join to another of the same type of object, you can easily be joining to twenty or more tables.
I’m a big fan of O’Reilly tech books, which is partly why I was just perusing the site for Fluent Conf, which ended a little over a week ago (even while the rest of the nerdom is enthralled with WWDC). I came across this great eight minute video of a presentation by Nicholas Zakas. It’s worth your time to watch. [http://fluentconf.com/fluent2013/public/schedule/detail/27738](A ‘Thank You’ Can Change Your Life) (click to watch video after going to the overview page)
Today I needed to convert some URL segments that are stored in a MySQL database from raw UTF-8 strings (many of which contain multi-byte characters in several hundred languages) into URL-encoded strings. This is for some work I’m doing using the latest version of SilverStripe (see Making SiteTree Fields Longer in SilverStripe 3.X for more info). Since I could not find any good examples of MySQL functions already built to do this, I ended up writing my own. Code and explanations posted below the fold…
Aside: In my ongoing internal battle to try to write regularly on my blog, I have decided to try blogging about little things that I do in my day-to-day programming (and other tech endeavors) that may be helpful to others - especially things that seem like they are searched for a lot, but lack adequate answers. Here’s my first attempt at this new style of blogging:
I have been using SilverStripe 2.4.x for about eighteen months now on a couple of
projects. As part of what the client wanted, I needed to make the SiteTree MenuTitle field
longer. If I remember correctly I first tried just redefining this field in the $db array
of my Page class since that extends SiteTree, and that didn’t work. So, I resorted to a
bit of a hack in the _config.php
file to override the static variable value:
I finally moved my blog off of my old server to my new one. Most users should not see any change (unless you notice I chopped www and /blog/ off the URL). Hopefully now I’ll start writing some more posts!
There are many times in writing our Wicket applications that we want to render feedback messages close to the component that registered the message - especially in forms. But, we also typically want to display all the other messages in one “catch-all” feedback panel near the top of the page. Sometimes this can be difficult to do, especially if your form component feedback panels are added by borders, etc. Here is one implementation that will allow you to have a single “catch-all” feedback panel on any page.
ApacheCon US 2009 is fast approaching. And for all you Wicket lovers out there, or anybody interested in getting started with Wicket, you know that I will be presenting a one day training as well as an Introduction to Wicket session. So if you haven’t done so already, go sign up!
More info on the Wicket training: http://www.jeremythomerson.com/blog/2009/07/wicket-training-at-apachecon-us-2009/
But what about more great reasons to register? I’ve put together a list of the sessions that you might want to attend if you are interested in Wicket. Of course, there are many great sessions, and you may (like me) have a hard time choosing. You may be interested in the entire track on Lucene / Hadoop and the family. Or in the business track. But here are some that you may particularly like:
I am very happy to announce that there will be a one day training course at the 2009 ApacheCon conference in Oakland, CA (USA). Before I tell you more about it, consider the following “top ten” list: Top Ten Reasons You Should Attend ApacheCon US 2009: 10: Hacking is encouraged at the Apache Hackathon two day event. 9: Free beer! http://wiki.apache.org/apachecon/ApacheConUs2009Program 8: Meet members of your favorite projects (i.e. me last year getting Martijn to sign my copy of Wicket in Action: see Martijn signing my book) 7: Free two day BarCamp 6: Free meetups three nights of the week 5: It’s always a good time to visit California: http://oaklandcvb.
My intention is not to blow my own horn, but I was so excited to have been asked to join the Wicket development team (link) that I knew it was time to dust off the old blog and start trying to write some articles again. And no more than an hour after it was announced, I was asked about when 1.5 would be released! (a well-meaning joke). I have a lot of respect for all of the Wicket developers who have brought the great framework this far, and I hope that I will do well in assisting to carry the torch further.
So last week and this weekend I was swamped spending pretty much every night trying to get the Wicket Stuff project organized. When I started, the trunk of Wicket Stuff had over 85 folders (subprojects) in it. It was a mess. Tons of these have been abandoned over time, with no work done since the 1.3 release of Wicket was cut and trunk changed to 1.4 development. The biggest problem I wanted to address (and the community overwhelmingly agreed) was that there was no standard release pattern for nearly any WicketStuff project.