Off the Top: Programming Entries
Showing posts: 1-13 of 13 total posts
2025 Vanderwal.net Backend Modernization is Done
A couple years ago I thought I would update the backend code from PHP 5.6 to PHP 7 and initial progress on it was hindered by time available.
Planning the Modernization Work
A few weeks back I started looking at it again and mapped it out properly like a project. I realized PHP 7 was deprecated and I should really head to PHP 8, so that target was set. I was planning on keeping things relatively simple using a database connection quite similar to what I had used, but digging through PHP 8 books and resources on O’Reilly Learning Platform everything was using a newer more flexible method. After digging further I took the route that would take a bit more work modifying existing code (some going back to 2000 and 2001). But, as I dug into the work I realized I was only needing to modify and modernize about 20% to 30% of code on the pages and templates.
In doing this I also realized my old method of security around the system management backend was no longer working, so it had to be rewritten as well. That meant rebuilding the backend screens. Those updates went live two days ago on the 19th.
With that done it was back to the last third or so of the pages and templates that are public facing. I had already reworked the category output pages and adding pagination to them. No longer will all 121 Folksonomy categorized posts show up on one screen, only 15 at a time will. The “Personal” category has 369 posts (it is a blog so it is about me, you see, but just not all of it).
The RSS feed received a very minor update to RSS 0.92 to keep in line with many of the OG methods that remain.
The Actual Homepage has been Restructured
The homepage for vanderwal.net has been restructured to make it easier to find information that isn’t directly in the blog and I get emails and DMs about somewhat regularly. Moving it to two columns helped this. I do need to modify this to flex or grid CSS model as tweaking the layout was rather tedious.
This Modernization was like Changing the Plumbing and Wiring in a Building
This modernization was like bringing the plumbing and wiring of a building up to new building code. The walls and structure are all pretty much the same. The top layer stays the same for now.
This modernization does allow me to hopefully finish setting up webmentions, which I’ve had partly wired since around 2021 or so. I just need the last piece to that to work. There are also other IndieWeb related updates I’m planning on making and have been waiting to get this code updated before modifying and adding them into place. By the way, if you are running your own site and/or blog, the IndieWeb community has a gem. There are a lot of resources in their wiki and pages helping anybody with their own site.
The pagination for the blog is likely going to change from a date with month focussed pagination to a page model with the oldest selection being page 1. The archive page will get a long over due update so it doesn’t stop at 2003 (looks at calendar, yep it is out of date). I’m hoping to have an archive page that shows activity, but also addresses the different post types (essay, journal, and weblog) that only lasted the first few years, but also around the 2014 code update and site move the entry type template went missing.
The category listings pages will also likely get an update and the category page may likely get some ease of moving through the posts over time, beyond general pagination.
Assistance with the Update
This being 2025 the question pops up if and how I was using generative AI as part of this. I was using Claude.ai from Anthropic with some initial questions, then I’d head to O’Reilly’s resources to validate them and learn what I needed to know (it had been about 10 years since I was knee deep into PHP). When coding and modernizing the pages and templates I’d and hit defects I’d run those past Claude to sort out what the issue may be (sometimes missing “;”, others the new query wrapper and parsing method caused me to miss something, or I had deprecated code I hadn’t converted). Claude would point out my errors and instruct me how to correct it. Sometimes it would offer a few options for approaches (some were not quite right and others were good and I needed to select a path - after verifying and learning about them further). It also would crank out code. I gave Claude instructions not to bother with large chunks of my pages and code, which it left alone.
I use Claude stand alone and used is Project function to keep things focussed. I fed it the outlines and high level task areas I have in GitHub and Obsidian and it was keeping track of what was accomplished and how the work met the goals. The most impressive thing, compared to other generative AI options is it was very strict with identifying things not viable in PHP 8 (and its iterative versions) as nothing else did this well. Claude also had the code of pages and templates I had worked on and would point out I was using a structure and method in other page and ask if I shouldn’t use that practice on the page I just fed it to sort out some defect I was working through. My code has had four or more iterations over the 25 years and my early coding wasn’t so hot and still remained. Claude helped my code get more consistent, not by it fixing it, but pointing out I had something good and modern and I should keep consistent with that. By the last couple of templates I didn’t need to have Claude check them as they worked with my own editing, but I still fed them in as it seems to help improve suggestions and catching lack of consistency of my own doing.
A year ago I tried this with OpenAI and its ChatGPT and it was a hot mess. It couldn’t keep PHP versions correct. I try it with every update and I find it really problematic and what it outputs (code and other attempts) as nothing better than mediocre and often not correct.
IDE Use
In the last 10 to 15 years the IDE I’ve used to code and work on vanderwal.net has been from Panic and either Coda or now Nova, which have worked well. I have kept a good firewall between AI assistance and the IDE. I don’t mind type ahead suggestions. But, finding deprecated code to address was something I was going to need. Some friends suggested I try PhpStorm by JetBrains, which seemed good as I’ve used PyCharm a few times in the past and really enjoyed it. I knew I didn’t want VS Code near this, as I’ve pretty much had it with VS Code (I mostly use it with Python for data analytics) due to plug-in issues and lack of ease keeping projects separated.
I picked-up a trial of PHPStorm and after a day or so I had the hang of a good portion of what I needed to do. My favorite part is the setting the exact version of PHP you are working with. It highlights where there are errors and problems. In the last couple of days as I finally was getting the hang of PHP 8 and the methods I was regularly using PHPStorm was helping with type ahead suggestions (there were a few times where I accidentally triggered them when I didn’t want them and nearly turned of that functionality - control Z is your friend). PHPStorm also can make use of GitHub CoPilot, which I don’t find helpful with OpenAI connected to it, but is better with Claude Sonnet. The downside with CoPilot is it doesn’t have access to the Project space in Claude I’ve been working with and therefore its suggestions are less on target - CoPilot with Claude is light years better for PHP than OpenAI offerings). Essentially I didn’t use the incorporated genAI functionality and I was very happy with that setup.
Posting Ease
One of the things I’m looking forward to are slightly better methods for posting to this site and managing posts. Many of the steps beyond creating and posting are manual steps, like kicking off creation of the RSS feed (I do that after a quick review of the created post as it is live, I kick the RSS feed after that review). The alerting the media, or the alerts beyond basic RSS, is also a manual step done after that review. I may automate the combination of those two kicks after a review.
Being Makers
Oh, there is so much great fodder in Dan Hon’s most recent Tiny Letter, but today’s dosage meted out Episode One Hundred and Eighty One: It’s Too Hot; Monitor This is a gem. The piece that really got me going is midway through section “2.0 Monitor This”, as follows:
I’ve been in meetings like this.
I don’t know what the brief would've been. But given that it went to Jam in the first place, I’m sure it was something to do with “let’s do something on social or mobile”. And it's exciting to think, as a creative team, that you've come up with an “app” that can “solve a problem”.
Well, part of the f*cking problem is this: those creative teams have most commonly *never shipped* an “app” or a “service” before. And the skills required in actually making a good application or service are vastly different from those involved in creating compelling creative communications. Because, you know, one of these things is used and the other one isn’t. That’s not to say that good apps and services *can’t* be informed by the kind of taste and direction that informs well-performing advertising creative communications work. But the two things are different!
This is why, for example, good producers try to find people who’ve actually done something in the relevant area before, so you’re not playing a f*cking crap shoot.
Pants on Fire
This scenario is not only creative agencies, but most any non-serious product organization. I see this a ton where people are just guessing the way forward. It doesn’t matter if they are in UX and don’t understand the medium they are working in with any depth (they don’t prototype and can’t build), they are analysts who have never built nor managed a scaled environment and been responsible for it, or are a consultant that never stuck around to be responsible for what they delivered so never learn how to do anything close to properly.
Largely it comes down to depth and experience dealing with things for a long haul. The best experience is not only doing, but being with it long term and responsible for things after they are delivered. The best experience in this set is being the person, or one of the people, whose pants catch on fire when things don’t go well.
These “pants catch on fire” folks are most often gems, particularly if they are keep building and working to innovate and iterate (with all the research and digging for more depth) so to understand it better and get it right. These people are also the ones who can break things down to the “it depends” elements and walk through the questions needed and know what to do with the answers. Far too many want the answers without knowing how to think it through or go through the questions but not understand what the answers mean.
SXSW Started with Makers
A lot of this reminds me of the progressions of South by Southwest (SXSW) Interactive. I first went in 2001 to not only listen and learn, but to meet and thank some of the people who helped me deeply by the lessons they learned and shared themselves and by others on shared in the service they offered. I learned much of what I knew in the early web years (1994 to 2001) from people sharing what worked, but also what didnt work (and what they did that didn≱t work in a situation) [I also had relied heavily on my formal learning as a communication major undergrad and public policy (econ and social quant) from grad school]. I wanted to say hello to Jeffrey Zeldman for A List Apart, Jeffrey Veen for Webmonkey and HotWire, and Nathan Shedroff for sharing all they did at Vivid Studio (one of the first web design shops that predated UX, but took all the methods I learned in designing communications and applied it to the web and digital matter and connected the long used methods to new terms for the same things).
That 2001 SXSW was a lot of people who were building, making, and working deeply to understand what worked, what didn≱t work, to improve what they were making so it could be used by others who needed it to work. It was a sea of design and developer hybrid explorers.
By 2005 SXSW had shifted from purely makers to include those talking about things made and how to use what has been made, while not really understanding what goes into making it. These were the “Clickers”.
In 2006 and 2007, we had shifted from the Makers, to the Clickers, to many talking about the Clickers, but not really understanding the Clickers as they weren’t really using things, but talking at an abstraction layer about what the Clickers said. There was some nascent value in these “Talking about Clickers” folks, but a lot of it was off target as they didn’t understand the underlying elements that were being used, not the mindset and the needs of the Clickers all that deeply - the exceptions to these are deep researchers who actually could and did make and spent time in with the Makers and Clickers.
By 2008 the abstraction at SXSW got really crazy. It had a huge number of talks by people “Talking about those Talking about Clickers” otherwise known as social media gurus. It was an utter mess. There was a severe lack of depth and nobody had a clue about much of what they were talking about. Their understandings were based on mis-understandings. There was a small contingent of Makers still speaking and some Clickers who had good depth of understanding by this point, but most of what was on the program was horrid blather. Much of the draw that had makers drop into Austin to see friends and colleagues and share and work through understandings to hone the way forward stopped going. At 2008 I had enough of it and stopped going as the value derived is next to nothing.
SXSW in about eight years went from being Makers, to Clickers, to Talking about Clickers, and to Talking about those Talking about Clickers. It became a gathering of nothingness. It became a conference of what Dan is talking about, people trying to do something without having any interest in understanding what they are doing. They want answers without understanding the question.
For the Love of Makers
I love the Makers and making. The mindset and drive to understand how to build things better for the Clickers and to make things more usable and needed. Working with other Makers and people with Makers’ mindset in the development, design, and product side is fantastic. There is a whole lot of “we don’t understand this well enough” mindset. As nothing is perfect and everything has gaps (products and humans) we need Makers to understand and build a way forward.
Social Design for the Enterprise Workshop in Washington, DC Area
I am finally bringing workshop to my home base, the Washington, DC area. I am putting on a my “Social Design for the Enterprise” half-day workshop on the afternoon of July 17th at Viget Labs (register from this prior link).
Yes, it is a Friday in the Summer in Washington, DC area. This is the filter to sort out who really wants to improve what they offer and how successful they want their products and solutions to be.
Past Attendees have Said...
“A few hours and a few hundred dollar saved us tens of thousands, if not well into six figures dollars of value through improving our understanding” (Global insurance company intranet director)
From an in-house workshop…
“We are only an hour in, can we stop? We need to get many more people here to hear this as we have been on the wrong path as an organization” (National consumer service provider)
“Can you let us know when you give this again as we need our [big consulting firm] here, they need to hear that this is the path and focus we need” (Fortune 100 company senior manager for collaboration platforms)
“In the last 15 minutes what you walked us through helped us understand a problem we have had for 2 years and a provided manner to think about it in a way we can finally move forward and solve it” (CEO social tool product company)
Is the Workshop Only for Designers?
No, the workshop is aimed at a broad audience. The focus of the workshop gets beyond the tools’ features and functionality to provide understanding of the other elements that make a giant difference in adoption, use, and value derived by people using and the system owners.
The workshop is for user experience designers (information architects, interaction designers, social interaction designers, etc.), developers, product managers, buyers, implementers, and those with social tools running already running.
Not Only for Enterprise
This workshop with address problems for designing social tools for much better adoption in the enterprise (in-house use in business, government, & non-profit), but web facing social tools.
The Workshop will Address…
Designing for social comfort requires understanding how people interact in a non-mediated environment and what realities that we know from that understanding must we include in our design and development for use and adoption of our digital social tools if we want optimal adoption and use.
- Tools do not need to be constrained by accepting the 1-9-90 myth.
- Understanding the social build order and how to use that to identify gaps that need design solutions
- Social comfort as a key component
- Matrix of Perception to better understanding who the use types are and how deeply the use the tool so to build to their needs and delivering much greater value for them, which leads to improved use and adoption
- Using the for elements for enterprise social tool success (as well as web facing) to better understand where and how to focus understanding gaps and needs for improvement.
- Ways user experience design can be implemented to increase adoption, use, and value
- How social design needs are different from Web 2.0 and what Web 2.0 could improve with this understanding
More info...
For more information and registration to to Viget Lab's Social Design for the Enterprise page.
I look forward to seeing you there.
Can Facebook Change Its DNA
I wrote and posted Can Facebook Change Its DNA as a follow-up to for Business or LinkedIn Gets More Valuable regarding the changes needed in Facebook if it wants to be valuable (or have optimal value) for the business world.
Post SXSW Reality Change
Getting back from SXSW Interactive is normally a filled with feeling empowered and excited after hanging out with many like minds. This is normally followed by severe reality slap between my mind/soul and my pocketbook. I want to dive in and build and iterate projects, but where I was was not there in that same space I was there bringing them up to where things were in years past and older (sometimes expired) best practices.
I had thought this year I was going to have a similar experience to that of Ethan of feeling a let down not having people to talk to about the experience. Somehow I have kept the high from SXSW, in-fact I have been filling in the gaps on panels I did not make it to and deeply wished I had made it to by reading other's reviews and presenter's slides.
I think my changed experience is largely due to changing my surroundings this past year to focus on clients that really want to build services and a web that goes beyond the page and resonates in people's lives so that what they offer can be used and reused as people actually want and need to do in their life. As well I have been doing the same around tagging and folksonomy, which blends into social networking and refindability. Lastly I dove back into a project that I have been working on since November of last year, thanks to my trip to London, which is where the light went on and the project started getting framed and built in spare time (with the help of another with a tiny slice of time).
I have been increasingly putting my developer hat back on and scratching my own itch, while pulling in resources to make all of this come to life. SXSW helped put this into perspective. Now I just need to get my taxes and other corporate administrative stuff out of the way to build and finish preparing for the IA Summit in Vancouver, BC
43folders for Refining Your Personal InfoCloud
I have been completely enjoying Merlin Mann's 43folders the past couple weeks. It has been one of my guilty pleasures and great finds. Merlin provides insights to geeks (some bits are Mac oriented) on how to better organize the digital information around them (or you - if the shoe fits). This is a great tutorial on refining your Personal InfoCloud, if I ever saw one.
Everytime I read this I do keep thinking about how Ben Hammersley has hit it on the head with the Two Emerging Classes. The volume of information available, along with the junk, and the skills needed to best find and manage the information are not for the technically meek.
Make My Link the P-link
Simon hit on plinks as an echo to Tim Bray's comments and variation on Purple Numbers (Purple Numbers as a reference). As I have mentioned before, page numbers fail us and these steps are a good means to move forward.
Simom has also posted in more plinks and in there points to Chris Dent's Big Day for Purple Numbers.
I have been thinking for quite some time about using an id attribute in each paragraph tag that includes the site permalink as well as the paragraph with in that entry. This would look like: <p id="1224p7">. This signifies permanent entry 1224 and paragraph 7 with in that entry. What I had not sorted out was an unobtrusive means of displaying this. I am now thinking about Simon's javascript as a means of doing this. The identifier and plink would be generated by PHP for the paragraph tag, which would be scraped by the javascript to generate the plink.
The downside I see is only making edits at the end of the entry using the "Update" method of providing edits and editorial comments. The other downside is the JavaScript is not usable on all mobile devices, nor was the speed of scrolling down Simon's page that fluid in Safari on my TiBook with 16MB of video RAM.
SixApart's TypeKey Coming Soon
SixApart's TypeKey looks to be a good resource to help authenticate those making comments on Web sites. I have been very happy with SixApart's TypePad, not that I am ready to move off my own system. Actually it sounds like TypeKey will have an open
Rael on Tech
Tech Review interviews Rael about rising tech trends and discusses alpha geeks. This interview touches on RSS, mobile devices, social networks, and much more.
Lake Effect Snow in Washington DC
Lake effect snow warning or not, for Washington, DC. Yesterday, I had a handful of severe weather warnings popping into my mobile devices and my desktop. I read the alerts, which were for "lake effect snow" and blizzards in the next four to 12 hours. The area impacted were the counties around Washington, DC, including Washington. From there I checked a couple weather forecasts and live weather stats, 39 percent humidity and no clouds on the eastern seaboard.
A couple hours later a retraction was made by NOAA and the National Weather Service. It seems they were testing software alert messages and the tests were dumped in the live system database. Oops. Somebody got the lesson of a lifetime and a lesson on how to verify what system is being tested.
Apple Mac OS X as a great application development platform
Steve Neiderhauser has written an overview of what makes Apple a great application development platform. I cringe each time I hear somebody that has never understood application development or design state that Apple is a only a designer's platform. I bought an Apple laptop because of OS X, so that I could have a mobile UNIX platform for developing Web Applications and continuing my UNIX and OpenSource application development skills. I quickly found that the OS X platform was great for anytime of development, but I have not had the time to stay on top of my own development projects, as much I would like. I also found out that much of the Palm OS was built and maintained on Macs and UUNet has been largely a Mac-based company for its business practices.
Mac OS X Hacks proves to be very good
This weekend I picked up Mac OS X Hacks by Rael Dornfest and Kevin Hemenway for O'Reilly Books. I have picked up a few new tricks and have some new shareware to look into. The price is very reasonable, which made it an easy decision to purchase. The book is well written and has been bed time reading and couch reading, which has not worked well for getting too many of the good ideas implemented, but that will come.
One interesting section (there are 100 sections) is a speach recognition section that incorporates Perl, AppleScripting, SOAP, speach recognition, and voice output. This contribution by John Udell was a very juicy tidbit that had me thinking of all the wonderful uses.
Programming for Information Architects
Andrew Otwell provides a fantastic article at Boxes and Arrows Programming for Information Architects. This is a great overview for those IAs that are not familiar with programming. Heck it is a good resource for anybody not familiar with programming.