If you've ever worked with open-source software such as Linux, Wordpress, Drupal, phpBB, etc., you may have run across the title of this article. Never hack core! But what does that mean? Doesn't the whole premise of open-source involve people tweaking and (hopefully) improving the core code? Yes -- but in a very controlled way that usually involves many eyes on the code verifying that the change is a good one which will benefit the program as a whole.
The Ten Ten Studios Blog
Admittedly this article is a bit of a divergence from the usual round of website related content that we post here; however, we recently completed an overhaul of our backup solution and felt that it would be a worthwhile discussion topic. These days, everyone has digital data that they value and need to preserve, but given the plethora of backup options out there the choices can get a bit overwhelming, particularly to those who are not information technology professionals.
In part one of this series I discussed the basics of getting a Sphinx search up and running in a custom PHP application. However, Sphinx has so many features and options that the previous article really only scratched the surface of what can be done, so in this post we'll get into some of the more advanced tricks and techniques that can be employed to customize your search results. Specifically, we'll cover how to handle pagination and custom weighting.
We recently re-developed an application that was originally built using ASP Classic and MS SQL Server and converted it into PHP/MySQL and along the way, one of our goals was to simplify the search system. The original application had individual searches for specific content types -- for example, if you wanted to search for documents you would have to browse to that area and click the search drop-down. The fields listed there would be things like document title, date posted, document type, etc.
It's pretty common to use Google Adsense to serve ads on your site to generate supplemental income. But if you run a membership driven or e-commerce website, you may decide that you want to hide ads from those valuable users/customers and only show them to anonymous users. Doing so in Drupal is very easy, particularly if you have placed your ads in blocks.
We have been tasked with the development of a large facilities management application -- one which has gone through several revisions over the years. In moving the project forward we wanted to add in features that provide more information quickly, and at-a-glance. In order to make things more real-time we investigated several options for replicating Facebook-style "badges" that would let users know when they had new tasks assigned to them or other content alerts that needed their attention.
For the recent redesign of our own website we wanted to add in a jQuery rotator, as we had done for other sites in the past. We wanted to overlay a title, descriptive text, and a "more info" link on top of the main images and there are a few ways to accomplish that.
When we start a new custom programming project we typically begin by copying and pasting a handful of useful functions that we have developed for previous projects. Most developers will put together a toolbox like this -- if you haven't, you can save yourself a lot of hassle by doing so. The first step is to make sure that you're wrapping any potentially reusable code in a function. For example:
There are many trends and fads that come and go in the web development market just as there are elsewhere in business. At Ten Ten Studios we field all sorts of questions from clients that are often times driven by fads.
From time to time we have been tasked with creating a site that is easy for site administrators to manage but which uses data from an existing source -- either from an older site or from another offline data source. While Drupal is always our first choice for the easy-to-manage part, data importing can be tricky because there are always a great many variables to be considered -- field type (text, numeric, date), field size (character limits), and relational linking are some good examples. Fortunately there are a few Drupal modules that can help.