Over the past month or so I’ve been diving deeper into the core of WordPress than I ever have before. Why on earth would I be doing this? I’m working on a new website and my aim is to customize the hell out of it and get it as integrated with a Google Apps setup as I possibly can.
This is proving to be quite the challenge because of the lack of API access I have with only a Standard Google Apps account, and so it’s mostly a bunch of embedding content that I’ve managed to wrangle free of the complex permissions system that Google Apps employs. Don’t get me wrong, I’m glad that I have to jump through so many hoops to get to that content, it means that the data is pretty secure from someone that has no right to view it.
But one thing I have learned repeatedly from my explorations is that WordPress is built from the ground up to allow you to more or less rewrite the entire thing without touching the core code. This also makes it so much easier to make upgrades to the system as a whole without erasing your modifications.
I started off in early January by just modifying the core code, and I had to rewrite a large amount of code (I think that before I started extracting many of these modifications from the core, I had touched 2/3 of all the files in the distribution). Then mid-way through February, I ran into a bit of a snag, WordPress was updated. I couldn’t just upgrade the system because it would erase a month’s worth of work and I would be back to square one. I also didn’t really want to download the code and re-do the modifications, then upgrade from that code set, because I would have to do that every single time a release was made.
So I began the long process of extracting my modifications from the core into plugins, or more precisely, one mammoth plugin that had it all. This was the real journey because I had to learn how to port the same modifications from static code to the plugin architecture that WordPress utilizes. As of now, three weeks later, I have roughly 85% of the job done. And I know how to do most of that last 15%, except for a few special things.
The first is how to force the dashboard to become one-column, and then how to lock it from being changed by the users. With this I also need to be able to remove the dashboard-specific text from the help drop down.
The second is that I need to remove the quick access menu in the header bar, at least conditionally (because the posts functionality is not being used at all and so I don’t need that there).
From what I can find, the first thing isn’t possible without making modifications to the core, and I haven’t researched the second enough to know for sure either way. If, by chance, any of you know how to solve either problem, please let me know either in the comments below or by contacting me.
EDIT: And of course, just hours after posting about this and asking for help, I’ve figured out how to do both things.
The first is a combination of using the ‘user_register’ and ‘profile_update’ hooks to run a function to set the usermeta field for the dashboard layout to be one column and then overriding the admin section styles with the ‘admin_head’ hook to hide the screen options tab.
The second is using the same ‘admin_head’ hook and inserting styles that just remove the help tab all-together (since there’s nothing relevant being shown on any pages).
Today I just stumbled across Google’s Social Search feature, and I have to say that I love it.
This may be one of the few things that Google sorta does right with my ’social circle’ as they call it. So far it’s only limited to my Twitter followers as far as content from friends is, but it also included content from my Reader subscriptions.
I’d like to see Facebook integration in there because the information from my friends there is far more content and context-rich than Twitter. I also think that it’s a little strange that no YouTube content made it’s way into the results, I have several friends on my YouTube account and even more subscriptions, and I know there were YouTube videos from those sources that would have fit. Google should also include content from my own websites (it lists them all from my Google profile as my ’social content’).
Of course I believe they will get to all of this (at least I sure hope they do), since I’m sure that this is a relatively new product, as I’ve only just now noticed it and I do at least 6-7 Google searches a day. I don’t much care what privacy advocates say, I want Google to use all the information it can gather about me to provide me with better content and service, and this is definitely a step in the right direction.
As we get under the 12-hour mark for Apple’s press event tomorrow morning, I figured I’d write up my predictions for the fabled Apple Tablet. I’m still not entirely convinced a tablet is what Apple is announcing tomorrow, because there’s been too many leaks around it and it makes me suspicious. But enough of me wants it to be announced and there is enough evidence to where I’m leaning towards a yes. Regardless of what is announced tomorrow, this is what I’d expect to see on the device.
One other thing that has been flying around in conjunction with the Tablet rumors is iTunes in the Cloud. Many are saying this is key to the Tablet idea, something more portable than existing devices (but more functional than an iPhone) and constantly connected (Wi-Fi and 3G/4G) so you’ll have access to stream your music library and have purchased/rented content available to you on-demand from your Tablet (and presumably every other Apple device you own). I personally would love this and I’ve been trying to figure out how to get it done using 3rd party services for months (I haven’t gotten it yet, so far my massive media (music, video, and photo) collection is still bound to one computer and what little I can fit on my iPhone to take with me). But I’m hesitant to say it’ll be announced tomorrow. I think a lot of signs are pointing in this direction, but that’ll be further down the road at WWDC with the next version iPhone, which would be a far better device to market this service with.
AT&T seems to really be making an effort to improve customer relations, at least if you complain in the right places. Maybe this is nothing new and I’m only just now seeing it, but I want to write about it anyway.
In the past, service in San Luis Obispo, CA has been spotty at best, with the only local tower on the highway that goes through town. There is also a very large population of iPhone users on campus here at Cal Poly. In every single class I’ve had this year, I’ve seen at minimum 6 iPhones, not to mention how many I see walking around campus. I’d probably guess theres a good 2,000 or more iPhone on campus at any one time. Of course, that didn’t help the network load on the cell tower.
One of my friends posted a complaint on AT&T’s Facebook Fan Page yesterday afternoon, and an hour later an AT&T rep responded and said that they were working on coverage in SLO, and a new tower was added to cover the core of the campus. What I was most surprised about was that it wasn’t a generalized statement of “yeah, we added a new cell site that covers campus”, it was very specific and named streets and buildings on campus that were the focus of the new cell site.
I then looked around a little more on the page, and it seemed like this was a completely regular phenomenon, I’ve counted at least 5 different AT&T staff responding to complaints and questions in just the past 20 hours or so, I imagine that there are probably at least another 5-10 monitoring the Facebook Fan Page. And these were not all “we’ll look into the problem”, many of them requested that the customer email them so they can get it resolved quicker and more efficiently, and in at least one instance, the representative called the customer.
I didn’t have as much time to peruse AT&T’s Customer Care Twitter account, but it looks more or less the same, although a little more of delegating the issues to other staff via escalation rather than personally handling it. Then again, it also seems as if it’s one person handling Twitter themselves, so I can completely understand the reasoning.
Let’s just hope that this is a sign that AT&T is getting more serious about their service and customer relations. Here’s to at least one more cell tower going up in SLO!
One of my favorite web-comics is Freelance Freedom, and today’s post is definitely reflective of how I’ve been working lately.
Last week a few friends and I went on a hike up Cerro San Luis Obispo (aka Madonna Mountain) in San Luis Obispo, CA. About 2/3 of the way up, we had an amazing view and I decided to take a panorama using Pano on my iPhone. I was extremely doubtful it would turn out well because the sun was almost directly in the shot on one side. So when I finally downloaded the photos from my iPhone this afternoon, I was pleasantly surprised that it turned out as well as it did. Unfortunately, that one side is still fairly dark because of the white-washing the sun’s light did, but I tried to touch it up a little bit without altering too much. Below I’ve got both versions, so you can see the original and the touched up version.
Very recently, MovableType 5 was released to the public, and it was a huge update in terms of the backend. Mainly, it was no longer solely a blog-engine like WordPress, but also included the ability to create a static website. Before you would need to tweak the templates and fields to create one of these, but there would always be mentions of blog-related tools and sections in the interface that you would need to ignore or re-purpose. Now, you can just create a website, with ‘blogs’ as sub-websites.
In my business, I run a single MT installation for several websites to ease maintenance (one of the few things I prefer about MT over WordPress, the ability to manage several websites or blogs in one installation), and I had tweaked the templates and what not to turn the ‘blogs’ into static websites. The other day I decided to upgrade this installation to MT 5 and then migrate the ‘blogs’ to ‘websites’. This proved to be quite a laborious process and I decided to give up after only the first one. I spent two hours copying and pasting pages and templates across the two, making sure everything was duplicated properly. I was resolved to try and find an easier way of completing the task for the remaining 4 websites, since I was not looking forward to spending another 8-10 hours of copy and paste. When I re-approached the problem earlier today, I finally figured out a few tricks that I thought I’d share with anyone that might want to migrate a large website or multiple websites.
For the templates, I thought I would be able to easily solve my problem by just exporting them into a theme and applying it to the new website, except every time I tried to export them from one of the blogs, it would give me an error. Just to check, I tried exporting the theme for the blog I had already migrated to a website; it worked wonderfully. So I had to give up there, and I resolved myself to copy and paste for the templates.
The pages and assets were a bit easier, I spent a few minutes in phpMyAdmin and changed all of the blog_id fields from the old ‘blog’ to the new ‘website’, this worked pretty well, except for the pages that I accidentally put into the wrong website. For those, I simply copied and pasted into new pages rather than trying to figure out which ones they were in the MySQL database (which probably wouldn’t have been too difficult in hindsight).
All in all, I spent about 4 hours today migrating, publishing, and checking to make sure everything worked right (and aside from a few hiccups, it did). So those are my notes on migrating from MT 4 to MT 5, hopefully I can help someone else avoid hours of pointless copy and paste in lieu of some database trickery, with a little copy and paste on the side.
Ask and ye shall receive. Just under two months ago I wrote a post about the huge potential that Google Voice has if bundled with their Apps platform. Today, TechCrunch has one that says this may be coming true next year. First consumers will be given the service early next year (which means I get it with all of my accounts), and then Enterprise customers will have it a few months later. That is, of course, if it happens at all. At this point, it’s speculation and rumors, but as I said before, I really hope this is coming.
It took long enough, but this past week, Google finally released Chrome for Mac OS X, ok sure it’s a beta, but it’s something, it’s official, and it (almost) rocks.
I’ve been using it as my default browser since it was released and I am loving it. I’ve used Chrome on Windows several times before, and I always liked the way the tabs are positioned at the top, and I especially like the idea of each tab being an independent process. That has not changed with this beta.
For being a beta I have few complaints about performance and stability. I’ve seen no crashes with hours of constant usage on two separate machines. My only complaint is speed. Loading a new window still feels a little sluggish, as does loading new pages, so I’m still using Safari when I need speed.
One last hinderance to my complete adoption of Chrome is that 1Password doesn’t work with it yet. That’s understandable since it’s only a beta and it’s relatively new at that. Hopefully they start working on a Chrome plugin soon and will have it available shortly after the new year.
The other day I was thinking about Google Voice. In and of itself it has enormous potential to completely shake up the phone industry, which I’m sure is why AT&T has such a problem with it. But then I started thinking about another of Google’s great products, Google Apps. They have a fairly strong offering already, covering some basic communication and collaboration tools such as email, calendar, contacts (in beta), chat, and documents, as well as more public facing tools like web pages and sites and app engine.
But what if they started to bundle Voice into Apps? That is one huge section of running a business that Google could easily take over and simplify just as they have done with everything else in Google Apps. It seems that it would be almost trivial to setup one master phone number for a business and provide an extension for each employee or department, which in turn would forward to whatever number was set, just as Google Voice already does with regular phone numbers. Setting up and managing a large switchboard of sorts would be easy for business to do, and be a huge bonus to switching to Google Apps. Plus with the upcoming number portability, existing business could switch over to Google Apps.
And this could apply not only to businesses, but also to educational institutions and even families or other groups with Google Apps accounts, making it easier to communicate with people in any situation.
There is such huge potential in bundling Google Voice into Apps, I’m almost surprised that it hasn’t been done yet and that it hasn’t been talked about much (if at all). So here’s to hoping that it happens eventually.
© 2009 Ryan Boswell | Feed Me | HTML | CSS