Sometimes you may need to implement controlled downloads when all downloads requests being sent to your script and then this script decides what to do: to send some file to the user or to show some access denied page or, maybe, do something else. In lighttpd server it can be done by returning X-Sendfile header from script. Nginx have its own implementation of such idea using X-Accel-Redirect header. In this short post I will try to describe how to use this feature from PHP and Rails applications.
Zend kicked off their PHP conference today with updates to their product roadmaps, a glimpse at some future developments and also strategic partnerships with MySQL and Microsoft focused on accelerating the adoption of the PHP. Zend did a good job demonstrating the power of PHP with some cool Web 2.0 applications that use both PHP and MySQL including Flickr, Joomla!, SugarCRM, ZenCart, MediaWiki etc. Then they surprised the audience by showing that these were all running on an IBM iSeries i5 server --what used to be known as the old IBM AS400 "green screen" systems. Given Oracle's recent moves to try to co-opt Red Hat Linux, it's good to see that IBM is serious about not just Linux but the whole LAMP stack.
Zend also shared stats from …
[Read more]Microsoft and Zend Technologies Announce Technical Collaboration to Improve Interoperability of PHP on the Windows Server Platform, Zend Technologies (Press Release)
OpenClovis Launches New Application Open Source Projects, OpenClovis (Press Release)
Red Hat Moving Forward, eWeek, Peter Galli (Podcast)
OpenMFG Introduces Upgraded Version of Namesake Suite, eWeek, Renee Boucher Ferguson (Article)
…
[Read more]For the past few weeks off and on, as part of Proven Scaling’s project to improve the MySQL server, I’ve been helping Joel Seligstein to really dig into the MySQL source code and add some features, in preparation for a much bigger feature coming up (more on that at a future date). He has now finished three smaller projects that have been on Proven Scaling’s and my own to-do list for quite some time: SET CONNECTION STATUS status, KILL connection_id WITH QUERY query_id, and SHOW … FOR CONNECTION connection_id.1
This patch adds a new SET CONNECTION STATUS status command, which allows each session to set a status which will be shown in a new …
[Read more]
Observation on web page design during the Hacker Holiday:
It crossed my mind the other day that the web has moved to a
design where you have a "so-so" intro page to the site, and a
very customized personal page. This is not a new thought, I
recognized this trend years ago, but thinking about it again this
week got me to thinking more about cache design.
Slashdot uses a customizable front page, but most objects and
design elements are reused. A few recent sites like Digg emulate
this site design, but its just not as common any more for large
sites. More often now sites use the homepage as a jumping off
point and expect the user to spend more time in a "personalized
page" where components will be less reusable (from a site wide
viewpoint). Sites like Livejournal, FaceBook, MySpace, Tribe,
represent the "personalized page" design.
This means? Sites like Slashdot optimize for a handful of pages,
while the …
If you've followed this blog, you know that I feel Microsoft's Sharepoint is the future of Microsoft's enterprise lock-in. Intriguingly, an open source company, SocialText, has joined forces with Microsoft to help them achieve that goal even faster. Ross and company are even providing an easy migration from JotSpot (acquired by Google), just in case you wanted to expedite the lock-in. :-)
Ross is a smart guy and understands that open source is still too young to be linking up solely with open source companies. Microsoft, for its part, recognizes the future, and so has partnered with …
[Read more](note: see below for updates)
This is an idea I've been kicking around for a while and wanted some feedback. Memcached does an amazing job as it is but there's always room for improvement.
Two areas that memcached could be improved are local acceleration and large capacity support (terabyte range)
I believe this could be done through a "hierarchy of caches" with a local in-process cache used to buffer the normal memcached and a disk-based memcached backed by berkeley DB providing large capacity.
The infrastructure would look like this:
in-process memcached -> normal memcached -> disk
memcached
The in-process memcached would not be configured to access a larger memcached cluster. Clients would not use the network to get() objects and it would only take up a small amount of memory on the local machine. Objects would not serialize themselves before …
[Read more]After being "on hold" briefly for a variety of reasons, the Community Doxygen Project, which aims to "doxify" the MySQL server source code comments into standardized Javadoc commenting, is coming together.
David Shrewsbury will be leading the Doxygen Project for the community, with help from myself, Nicklas Westerlund, Frank Mash, Baron Schwartz, and Ronald Bradford. David has been working …
[Read more]I am happy to announce the latest creation from foundeo: fusionKit.
fusionKit is a CD full of some handy ColdFusion components and UDF's. It is a similar concept to the DRK's that Macromedia used to sell, but is it's 100% ColdFusion.
My favorite component in the kit is the Bayesian CFC. You may recall that spam filters tend to use bayesian analysis to determine if a message is spam or ham. This CFC allows you to perform the same kind of analysis on any block of text. I am using this CFC in one of my client's blogs, and it has blocked over 4,000 spam comments in one week!
There is also the tagging CFC, which makes it easy to work with tags or …
[Read more]I will be attending CodeMash in January (perhaps even as a speaker, as I put in a proposal for a session. It is a semi-local event for me, as it is in Sandusky, Ohio, which is about an hour and a half away from Columbus. Should be a great event for coders, and represents all platforms, not just Linux, so is bound to be a good event for networking with a variety of enthusiasts of all development platforms. Check it out!