Wez Furlong I am Wez Furlong, Chief Software Architect at Message Systems. We're responsible for building an awesome Messaging Platform.

I'm also a PHP Core developer and OpenSource contributor, residing in Maryland, USA with Juliette, Xander and Lily. (read more)

Subscribe. (circulation 969)
Comments. (circulation 24)

Search powered by Google

Soliciting questions for PHP and ASP.net panel at MIX

13th April 2007 @ 02:01 EDT

As I mentioned previously, I'll be at MIX this year on a panel discussing ASP and PHP interoperability, along with Jesse Liberty, Bill Staples, Joe Stagner and Brian Goldfarb.

I've been told that MIX has sold out and that there is a lot of interest in our slot, so I'm sure we'll have plenty to talk about, but I'm looking for questions to break the ice and get things rolling.

If you have any questions, comments or other insights on PHP running on Windows, or on getting PHP apps working together with ASP.net apps, please comment on this blog post, and I'll try to work them into the panel, and to feed back the results of the discussion here on my blog.

If for some reason your comment doesn't go through, or if you prefer email, you can also mail them to me at wez@php.net.

continue reading …

I'll be at MIX'07

29th March 2007 @ 01:30 EDT

I've been invited to participate in a panel at Microsoft's MIX conference this year. The panel is entitled "Can't ASP.NET and PHP just get along?" and is to be a "spirited but friendly" discussion on PHP and ASP.net interop.

For those folks clicking through from the MIX site, you might be wondering who I am and why I'm on the panel... I've been partly responsible for development of the PHP core and primarily responsible for a lot of the Windows specific portions of PHP. I work for OmniTI, a world respected internet technologies consultancy.

I'm looking forward to MIX, partly because I've heard that it's a lot of fun, and partly because it will a great opportunity to meet with a different crowd--the conferences that I usually attend have attendees that are largely LAMP focused, so the Windows platform focus will be an interesting change. I'm hoping to gain some insight into what people perceive as short-comings in PHP on Windows, and feeding those back into PHP.

If you see me there, stop me and say hi!

Evildesk 0.9.0 released

26th January 2007 @ 06:46 EDT

I uploaded release 0.9.0 of EvilDesk tonight. I realized that I hadn't made a release in over a year, so I tidied up a few bits and pieces and uploaded it. Feel free to review the changelog if you're curious.

Highlights include an improved dock style toolbar, a launcher plugin (type the name of a program or document to find it and run it, instead of poking around the start menu), simpler configuration of the toolbar positioning, translations for German and French, less bugs and support for 64-bit Windows.

Enjoy!

Mounting ISO files and disk images on Windows

1st July 2006 @ 01:14 EDT

The folks over at OSR Online have a handy, no-nonsense and free (as in beer) driver and configuration utility that allows you to mount disk, floppy and ISO images under Windows.

You have to register to get at their downloads, and in return you get a very occasional email as well as a periodic printed "magazine" containing low level windows kernel coding information.

You can find the download at OsrVirtualCdAndDisk; it works like a charm for me.

YME: mandatory upgrade!?

16th June 2006 @ 20:48 EDT

I was treated to this, ridiculously wide, "dialog" just now:

mandatoryupgrade.png

again, no option to cancel, and no brains to realize that I don't have the required privileges, and no option to avoid the 8MB download that won't buy me anything.

I'm just glad that I don't have to quit everything just because some app decides that I have to. On the flip side, it interrupted my listening pleasure, so I'm tetchy.

continue reading …

YME: still in the dark ages

10th May 2006 @ 18:40 EDT

I'm getting more and more irritated with windows apps that assume that they can do stuff that requires administrative privileges, like automatically install updates.

I don't run as an administrator because I don't want internet facing apps to mangle my system if/when they get hacked. For the past week I've been telling yahoo music engine that I don't want to upgrade now. It should be smart enough to realize that I don't have administrative rights and not prompt me.

Just now, I started to play a track and it gave me no option: it started to download the 8MB update with no way to cancel the operation, then attempted to install it, which failed.

While I'm not especially irritated by "do you want to upgrade now?" dialogs, I am very irritated by something that forces me to waste bandwidth on a download that I can't run. I don't even know where it downloaded the update to, so I might even have to download it again as the administrator. Ah, there it is: it was downloaded to %TEMP% with a temporary filename and a .tmp file extension.

continue reading …

Just the facts, ma'am

3rd May 2006 @ 03:32 EDT

It looks like this PHP vs ASP.NET article really struck a nerve with Joe Stagner.

Joe's response is perhaps a little pro-Microsoft (you can't really blame him for that--he does work there :-) but the essence of his response rings true; there's nowhere near enough factual data in the OTN article to make a balanced decision one way or the other.

To be fair to Sean (the author of the OTN article), it does say "Opinion" across the top of the page and the byline is "One developer's view of the pros and cons of the two most popular means of building web applications", but it's easy to forget those once you're into the article.

I don't want to get caught up in a comparison myself so I will say that a good systems architect will take into account a wide range of factors before arriving at a decision about what is the right combination of tools for the job, and that Joe's response reminds us that projects for really big customers tend to have different non-technical criteria to what I'm going to call the "typical" PHP customer. By non-technical criteria I mean things like business or political concerns--things like corporate mandates for technology choice, considerations based on the skill-set of a possibly very large existing IT staff and so on.

continue reading …

Solaris libumem port on SourceForge

10th March 2006 @ 03:48 EDT

I've had an incredibly busy year so far, having spent the better part of half of it on-site with a customer/partner across the atlantic, and it's only March. In addition to working with them on a large scale deployment proof-of-concept project (I'll blog more about that when I'm sure it's ok to blog about it), we've been hard at work on our Ecelerity 2.1 release, which is just about out-the-door (just some final QA to go).

One of the internals features in our new release is the adoption of the Solaris slab memory allocator, libumem. We already had our own slab allocator, but there are some interesting innovations in libumem that reduce lock contention and cache invalidations that make it attractive for a very high performance multi-threaded application like Ecelerity.

Since Solaris is OpenSourced under the CDDL, we were able to incorporate the allocator into Ecelerity and port it to Linux and Windows and not be forced to open-up our entire source-code. The CDDL requires that we publish the code that we modified, so we set up a project on SourceForge. The code isn't out-of-the-box usable just yet, as it lacks its own configure script and makefile, but it won't take much effort to create those.

Thanks Sun for opening up such good quality code under a commercial software friendly license!

continue reading …

EvilDesk 0.8 Released

1st January 2006 @ 16:07 EDT

I've been enjoying my vacation time, spending a good bit of it hacking on EvilDesk. This is something of an eyecandy release, with some visually appealing refinements. I'm always wary of eyecandy for eyecandy's sake, so I've tried really hard to balance resource consumption with visual goodness. To that end, the eyecandy features can all be turned off, and can also be tuned to reduce (or increase, if you like) their memory consumption. So, what features are new?

  • Added the ability to customize the appearance of slits and the task switcher. Each slit can have a custom background tile, as can the task switcher. You can also change the font, style and colour.

continue reading …

WinXP Desktop Shell Replacement, 2nd Release

27th December 2005 @ 18:08 EDT

[Update: Newer releases are available]

As a follow-on from the last release, I've uploaded the latest iteration of my EvilDesk shell replacement for Windows XP.

The changelog goes something like this:

continue reading …

EvilDesk 0.7 Released

27th December 2005 @ 18:03 EDT

Well, the bug fixes I made in the last release left me feeling empowered again, so I've followed up with a couple more features and some more bug fixes:

  • Added new MATCH CREATE window matching configuration option, which allows actions to be taken when windows are created. For example, you can cause all VMWare windows to start on a given workspace, or have your mp3 player automatically stick to all workspaces when it starts up.
  • Fixed a slit layout calculation bug.
  • Avoid blocking the flasher when the flashing app (eg: gaim 2.0 beta) hangs itself
  • Balloon tips now display the body of the balloon text, instead of the tooltip from the tray area, and will rise all the way to the top of the z-order.
  • Improved detection of deleted tray tooltips, so that balloon tips are not wiped out at the wrong time.
  • When a window was made sticky, it would remain in the minimized state on the inactive workspaces. This has now been corrected.
  • Fixed a string termination bug in the PuTTY plugin for sessions that have spaces in their names.
  • Environmental variables are now expanded when processing the MergeDirs directive in the .evdm file

EvilDesk 0.6 Released

26th December 2005 @ 04:21 EDT

Having finally found some time to myself, I thought it was about time that I push out a release with the changes that I've been using for the last few months. Some of these changes are based on feedback from users; keep it coming folks! :)

Feature changes in the new release include:

  • Revised plugin loading system. Slits are defined via the new SLIT directive and plugins are loaded via the new LOAD directive in the .evdm file.
  • Slit windows will hide themselves when an application goes fullscreen (and come back when it leaves fullscreen mode). I've tested this with PowerPoint (when viewing the slideshow) and PuTTY (alt-enter) and it seems to work ok.
  • Altered the gravity of the tray plugin so that it sinks below the flasher. Why? When double-clicking on the gaim tray icon, the first click would open the buddy list, causing it to flash. The flasher would bump the tray up, causing the second click to land on a different tray icon--usually the wifi icon, popping up the wireless network selector.
  • Added more internet-facing apps to the SaferExec line in the default configuration. No idea what that means? Read more on "Browsing the Web and Reading E-mail Safely as an Administrator".

continue reading …

MinimizeToTray + thunderbird == lower memory usage

18th December 2005 @ 19:04 EDT

Having just set up the mozilla calendar plugin to launch when I open thunderbird, I was wondering how much memory I was going to be sacrificing to the GUI god. I was very pleasantly surprised to see that thunderbird.exe was consuming less than 2MB when minimized.

I put this down to MinimizeToTray. My guess is that it's calling SetProcessWorkingSetSize(GetCurrentProcess(), 0xffffffff, 0xffffffff) to swap the process out of memory when minimized.

Yep, after a while, the memory usage creeps back up again, as thunderbird does its background bits and pieces, like checking mail.

pecl4win

2nd November 2005 @ 06:09 EDT

I don't know if you're all aware of pecl4win.php.net. This new service, graciously provided by Emini A/S, continually builds PECL extensions against the various different branches of PHP so that you can very easily find the latest version of a given PECL extension to match the version of PHP that you're running.

Edin Kadribasic from Emini has been looking after the official Windows build of PHP (he builds our Windows distribution) for some time, and this service is his latest innovation; thanks Edin!

Upcoming PHP-on-Windows webcasts next week

22nd October 2005 @ 16:46 EDT

One of the people that I met at ZendCon was Joe Stagner, who's been using PHP since before he started work at Microsoft. Joe gave a talk entitled "PHP Rocking in the Windows World" which went down quite well. I'm sad to say that I missed it--I got caught up talking to a bunch of people and lost track of time.

Joe is running a series of PHP-on-Windows webcasts next week on MSDN:

MSDN Webcast: Comparing PHP with ASP.NET

MSDN Webcast: Building and Running PHP Applications on Windows

continue reading …

Running PHP as a Service on Win32

18th September 2005 @ 02:28 EDT

[Update: I wrote some docs for the php manual]

So, you've written some kind of super-duper daemon process in PHP, perhaps using the event extension and stream_socket_server(). On Unix, it's quite a simple matter to have it run from init (or maybe inetd) when your machine starts... but doing the same on windows isn't possible without some hacks. Until now.

Last night I put together 2 new extensions for windows; the first of these is called win32service and it allows you run your PHP scripts from the "Service Control Manager" (SCM). The SCM is roughly analagous to the init process on unix, in that it runs tasks on startup and monitors their status, optionally restarting them if something goes awry.

I've included a sample service script that demonstrates minimal usage. Before you can run a script as a service, you need to register it with the SCM; in the sample, you do this by running it with the "install" argument on the command line. Once installed, you can use either the services MMC snap-in (run services.msc, or look for it under "Administrative Tools") or the good old fashined "net" command to launch or stop the service. I prefer the latter:

continue reading …

EvilDesk, mini release

19th July 2005 @ 03:10 EDT

I've pushed 0.5.1 tonight; if fixes an uninstallation buglet that could leave you without a taskbar after uninstalling EvilDesk.

The only new feature is being able to select how many workspaces the alt-tab task switcher will cycle through; you can use up to 32, with the default being 4.

Visit the ChangeLog

EvilDesk, Release 5

18th July 2005 @ 00:58 EDT

I've updated EvilDesk yet again this weekend. The biggest new thing is making all the hotkeys (aside from alt-tab) user configurable.

Find out more on the EvilDesk Home Page (I've added a ChangeLog section for your tracking pleasure).

EvilDesk, Release 3

16th July 2005 @ 22:07 EDT

[Update: Release 4 is out]

I've updated my EvilDesk and included the user-definable context menu code I mentioned in the comments of my last post.

I've also created a new home for the project, so that I can group the docs together more easily.

I will continue to publish news about updates here on my blog, so if you're already subscribed here, you needn't do anything more to keep up to date on this project.

EvilDesk, Release 4

16th July 2005 @ 22:06 EDT

I've updated EvilDesk again. Aside from fixing a couple of bugs here and there, it now features built-in support for "Safer" execution of internet facing applications.

Find out more on the EvilDesk Home Page (I've added a ChangeLog section for your tracking pleasure).

Would you like to work with me?
I have positions open for server/infrastructure software development (C) and QA.

Ohloh profile for wez