CMS Applications
Dmitri Gaskin: Angela Byron named core maintainer for Drupal 7
I had four reactions to this, that went in this order:
- CONGRATS
- Does she have time for this with the book and everything?
- Oh wait. She said the book would be DONE by Drupalcon.
- CONGRATULATIONS!!!!!
I expect to see patches flying in (almost literally, except for the fact that it would take a while to fly from Montreal, her home base, to OSUOSL in Oregon, where the Drupal repositories are), especially testing patches.
I'm surprised there hasn't been more noise about this on the planet, but CONGRATS!
.NET Framework 3.5 SP1 issue on Windows SharePoint Services v2.0
In case you have installed .Net Framework 3.5 SP1 on a machine which hosts Windows SharePoint Services v2.0 website running on .Net Framework 2.0, you will notice the following problems. Windows SharePoint Services v3 is not affected by the update.
Symptoms
If .NET Framework 3.5 SP 1 is installed on Windows SharePoint Services v2.0 the symptoms are:
Each web part will display the following error:
Web Part Error: A Web Part or Web Form Control on this Web Part Page cannot be displayed or imported because it is not registered on this site as safe.
Also, the following NT Events are reported:
NT Event Viewer Application Log displays multiple error warnings:
Event ID: 1000
Error initializing Safe control - Assembly: Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c TypeName: * Namespace: Microsoft.SharePoint.SoapServer Error: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Workaround:
Workaround: Uninstall In Add/Remove Programs remove Microsoft .NET Framework 3.5 SP 1 and Microsoft .NET Framework 3.0 and uninstall Microsoft .NET Framework 2.0. Then reinstall .NET Framework 2.0 Service Pack 1 http://www.microsoft.com/downloads/details.aspx?FamilyID=79bc3b77-e02c-4ad3-aacf-a7633f706ba5&DisplayLang=en.
At the time of writing Microsoft is investigating this issue but there is no timeframe for a resolution. If you need further assistance with this please contact Microsoft support. http://support.microsoft.com
Wolfgang Ziegler: Drupalcon and the Rules BETA1!
I'm happy to announce the rules 6.x 1.0 BETA 1 release. Check out the rules project page and try it. Now the API is frozen and modules developers are encouraged to write module integration and to port their workflow-ng integration to rules. You can find the documentation here.
To get token support everywhere in your actions you just have to install the latest development snapshot of it.
Now basically everything is there, including support for
- firing core actions
- grouping rules in rule sets
- scheduling arbitrary rule sets
- a module input evaluation system
- and much more!
If you want to know more details about the improvements done for rules 6.x check out the development status page or the slides from the drupalcon session.
Weblog Tools Collection: Tackle Plugin Compatibility Issues While Using Popular Libraries
I recently got a email from a plugin developer, with regards to him having compatibility issues with one of the plugins I had developed. It turned out that both our plugins used a popular library called PclZip for adding archiving features. Due to the compatibility issue, accessing his plugin would cause a fatal PHP error saying that the PclZip class cannot be re-declared, when both our plugins were activated.
The compatibility issue arose because of two things;
- A mistake on his part while checking for existence of class objects in the code.
- A mistake on my part of using custom libraries, instead of using those provided by WordPress core.
Here is a code snippet used to check for class existence.
if(! function_exists(’class_name’)) {
require_once(’myclass.php’);
}
$object = new class_name();
The above code is wrong, since:
- Class names cannot be accessed as functions.
- The internal methods of a class are not available for checks, unless one decides to instantiate the class and use the method_exists instead.
The correct way to check if a class exists or not can be seen in the following code.
if(! class_exists(’class_name’)) {
require_once(’myclass.php’);
}
$object = new class_name();
This change in code actually solved the compatibility issue, but I would like to discuss a bit further on why one should rely on libraries provided by WordPress core instead of using their own custom libraries. The fatal error could have been avoided, if my plugin made use of the the library files from core WordPress, instead of using custom libraries included with my plugin.
If both our plugins had relied on the library files provided by WordPress, the require_once directive would not have re-evaluated the “same file” again, thus avoiding the duplicate class issue. Earlier versions of WordPress did not include many popular libraries, and many plugins include those libraries to provide backward compatibility. If you have to provide backward compatibility for your plugins, be sure to add in a WordPress version check so that you can rely on your own libraries, only when a version of WordPress does not provide it, doing this will certainly do away with having to tackle the compatibility issues caused by plugins using different files for the same libraries.
Update: Including files for backward compatibility can be accomplished by using the following code.
if(!class_exists(’PclZip’)) {
if(file_exists(ABSPATH.’wp-admin/includes/class-pclzip.php’)) {
require_once(ABSPATH.’wp-admin/includes/class-pclzip.php’);
}
else {
require_once(’/path/to/your/lib/class-pclzip.php’);
}
}
It is also a good practice to include the classes only when you require them, and later destroy the object by using the unset() method. This is a non-exhaustive resource for tackling compatibility issues between plugins, and I will try and research more on other things that can help avoid these issues and keep informing you about them.
If you have your own advice about avoiding such issues, please do share them with us.
Further reading from PHP documentation:
Donncha: WP Super Cache 0.7 - the dupe content killer
WordPress.org user, “definitelynot” discovered a bug in the WordPress plugin, WP Super Cache that could expose blogs to duplicate content penalties. Unfortunately this affects every blog that uses the plugin in “ON” or full “Super Cache” mode, and has URLs that end with the “/” (forward slash) character. If the plugin is on “half on” mode, you’ll be fine.
The problem is that an anonymous user might visit a legitimate URL, ending with a slash, the plugin then creates a static file out of that page, which is then used when people visit the same URL. Unfortunately if someone links to that URL without the ending slash, a visiting browser or search engine bot won’t be redirected to the proper URL, they’ll be served the static html file.
For example:
- John visits the URL /2007/05/23/why-the-nurses-cant-go-on-strike/ on my site. WP Super Cache creates a html file of that page.
- In his enthusiasm for that post, John publishes a post about those zany doctors, but he forgets the ending “/”.
- Googlebot, seeing fresh content on John’s site, crawls it and sees the link, visits my site eventually and wonders why it’s seeing the exact same page at two different URLs.
To be fair, Google is pretty good at figuring out where duplicate content is supposed to go but it’s better to avoid the issue completely. It also only matters if there are links to your site without the ending slash. The most common will probably be to your homepage as it’s likely internal URLs will be copy/pasted.
How to Fix
You should update to version 0.7 of the plugin which checks if your blog is affected by this problem. It also has instructions for updating the mod_rewrite rules in your .htaccess. It’s fairly easy to fix. Thank you “andylav” for the mod rewrite magic!
- Edit the .htaccess in the root of your WordPress install.
- You’ll see two groups of rules that look like this:
RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{QUERY_STRING} !.*s=.* RewriteCond %{QUERY_STRING} !.*wp-subscription-manager=.* RewriteCond %{QUERY_STRING} !.*attachment_id=.* RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$ RewriteCond %{HTTP:Accept-Encoding} .*gzip.* RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz -f RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [L] RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{QUERY_STRING} !.*s=.* RewriteCond %{QUERY_STRING} !.*wp-subscription-manager=.* RewriteCond %{QUERY_STRING} !.*attachment_id=.* RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$ RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html -f RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html [L] - You need to add the following 2 rules above each block of “RewriteCond” lines:
RewriteCond %{REQUEST_URI} !^.*[^/]$ RewriteCond %{REQUEST_URI} !^.*//.*$ - The rules should eventually look like this:
RewriteCond %{REQUEST_URI} !^.*[^/]$ RewriteCond %{REQUEST_URI} !^.*//.*$ RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{QUERY_STRING} !.*s=.* RewriteCond %{QUERY_STRING} !.*wp-subscription-manager=.* RewriteCond %{QUERY_STRING} !.*attachment_id=.* RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$ RewriteCond %{HTTP:Accept-Encoding} .*gzip.* RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz -f RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz [L] RewriteCond %{REQUEST_URI} !^.*[^/]$ RewriteCond %{REQUEST_URI} !^.*//.*$ RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{QUERY_STRING} !.*s=.* RewriteCond %{QUERY_STRING} !.*wp-subscription-manager=.* RewriteCond %{QUERY_STRING} !.*attachment_id=.* RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress|wp-postpass_).*$ RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html -f RewriteRule ^(.*) /wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html [L] - Or you could just delete those rules and let the plugin regenerate them for you again.
PS. Thanks also to Lloyd for noticing the “enable the plugin” link was pointing at the wrong URL, and to Ryan who spotted a minor problem with the admin page and was kind enough to send me a Tweet about it.
Related Posts
Lullabot: Drupalcon Szeged, Day 1
Whew. So day 1 of Drupalcon Szeged was a whirlwind of fun. Szeged is a very cool town. Lots of things going on, easy to get around and the weather is awesome! I'm not a good note-taker at all but here are the highlights for my day:
During Dries' State of Drupal presentation, he announced that webchick is the new maintainer for Drupal 7. Of course, Angie rocks and is taking the year by storm. It has been so cool to see her recognized so much for all the amazing things she has done and continues to do. I'm so proud to be not only her co-worker, but also her friend. Inspiring to say to the least.
Right after that I headed off to give my Gentle introduction to Drupal coding presentation (a PDF of the slides is on that page too). This was the first time I'd done this presentation and I got lots of really good feedback from folks who attended. It was quite a bit of fun and I look forward to expanding on intro coding types of presentations in the future.
Internet Explorer 8 Beta 2 Now Available
We’re excited to release IE8 Beta 2 today for public download. You can find it at http://www.microsoft.com/ie8. Please try it out!
You’ll find versions for 32- and 64-bit editions of Windows Vista, Windows XP, Windows Server 2003, and Windows Server 2008. In addition to English, IE8 Beta 2 is available in Japanese, Chinese (Simplified), and German. Additional languages will be available soon.
While Beta 1 was for developers, we think that anyone who browses or works on the web will enjoy IE8 Beta 2. Before the team blogs about our Beta 2 in detail, here’s an overview of what you’ll find in IE8.
We focused our work around three themes: everyday browsing (the things that real people do all the time), safety (the term most people use for what we’ve called ‘trustworthy’ in previous posts), and the platform (the focus of Beta 1, how developers around the world will build the next billion web pages and the next waves of great services).
Everyday BrowsingWe looked very hard at how people really browse the web. We looked at a lot of data about how people browse and tried a lot of different designs in front of many kinds of people, not just technologists. As tempting as it is to list here all the changes both big and small in IE8, we’ll take a more holistic approach. That’s how we built the product and how we’d like to talk about it.
From our customer research, we saw that the bulk of user activity outside of web pages involved tabs and “navigation” – the act of getting to the site the user wants to get to. We also knew that adding features has an impact only if they’re “in the flow” of how people actually use the product. Another menu item might matter in a checklist on a blog somewhere, but won’t matter to real people browsing. That’s why IE8’s New Tab experience is so remarkable: it’s obvious – after you see it:
IE8 makes bringing back tabs (and entire IE sessions) users have closed a lot easier; it’s in the natural flow of how users work. IE8 also takes into account that there are often relationships between new tabs that users open, and the browser can make it a lot easier to figure out which tabs go with which. Below, the tabs that came from the links in the search results page are grouped together and colored differently from the headlines the user followed off another page, which are different from links the user followed off other pages:
Navigation – or getting to where you want to – is a lot faster and easier too. Typing in the Smart Address Bar not only searches across Favorites, History, and RSS feeds, but provides a great experience:
We put a lot of different designs in front of users in order to find one that was this effective. It’s easy to scan, with the different sections marked off and one line for each item, and the highlighting is easy on the eye. Deleting typos (or other unwanted suggestions) from this list is also easy – notice the red "x" above appears when a user places his mouse over an item.
Beyond tabs and navigation, people use services all the time. When you have an address but want a map, or want to just select some text and make a blog post out of it, IE8’s Accelerators (formerly known as ‘Activities’) are handy. For Beta 2, we’ve worked with a lot of great partners to deliver a bunch of choices for users. They’re much faster and easier than the “select, copy, new tab, navigate, paste, repeat” process in today’s other browsers. We think users will enjoy the consistent experience they’ll get from service to service, and appreciate being in complete control of which are installed and are the default. We hope that websites (and enthusiasts!) write more of them and give us feedback. Staying up to date with the latest information is a lot easier with Web Slices, that put information directly in your Favorites bar where you can get at it quickly.
This is a good moment to talk about performance. We think about two kinds of performance: real world and lab. In a lab, we measure performance in milliseconds. That’s important work, and we did a lot of it since Beta 1. You’ll find IE8 is a lot faster than IE7 on many sites. We can go through and detail, for example, exactly which Gmail operations are faster in IE8 than other browsers and vice versa.
Real world performance is about how people get their tasks done, and that’s something you don’t measure in milliseconds. We think you’ll enjoy the impact of IE8’s new tabs, Smart Address Bar, Favorites bar, Search box, Accelerators, and Web Slices on your daily browsing.
Visual Search in IE8 speaks for itself. Websites can offer rich search results as you type in the Search box:
After installing IE8, try out Visual Search from the New York Times, Wikipedia, Amazon, or eBay. (Many other sites offer regular text suggestions as well.)
SafetySafety isn’t about technologies and features, but two words: in control. We think users should be in control… of their settings, their information, what code runs on their machine, of their browser overall.
Previous posts have described what you’ll find in IE8 Beta 2 with respect to the SmartScreen Filter and protection from phishing and malware as well as many other defenses. The XSS Filter is particularly exciting because it offers real people a real defense from a real threat, by default and out of the box. We’ve blogged about InPrivate previously as well. Taken together, these features do a great job putting the user in control of their information.
The reliability improvements in IE8 Beta 2 are big. Crash recovery is nice, but not crashing is even better. Because in IE8 Loosely-Coupled IE (LCIE) separates the frame (the address bar, back button, etc.) from the tabs, and the tabs (mostly) from each other, crashes are more contained and affect fewer tabs than before. We think users will also appreciate having close boxes on all their toolbars so that disabling ones they don’t want – while leaving the ones they do – is easier.
PlatformIE8 is more interoperable with other web browsers and web standards. The contribution of CSS 2.1 test cases to the W3C is an important in order to really establish a standard way to assess standards support. We think that CSS 2.1 remains the most important place to deliver excellent interoperability between browsers. We think developers will enjoy the improvements to the built-in tools, as well as the other opportunities to integrate their sites in the user’s daily life with Accelerators and Web Slices. You can find more information at the IE Development Center, http://msdn.microsoft.com/ie.
After deciding to default IE8 to the most standards-compliant mode available, we wanted to be sure to address compatibility concerns for organizations and individuals. Would websites that expect IE8 to behave the way IE7 does create a problem for end-users? Since March, we’ve been telling developers about a small change they can make to their sites to tell IE8 to show their sites as IE7 does. Many have – but there are a lot of sites that may have not yet addressed this. The Compatibility View button (new to IE8 Beta 2) is a good solution to provide end-users a good experience as the web transitions.
Some Important DetailsAnyone interested in customizing and redistributing IE8 (the way others have IE7) can find information about the IEAK here. (We’ll have a more detailed post about IEAK and group policy soon.) One important aspect of a beta release is getting feedback; we’re using the same channels as described in this Beta 1 post (for example, this IE Beta newsgroup).
Read more about guidelines for upgrading to IE8 Beta 2 today. Also, If you are currently using IE8 Beta 1 on Windows XP or Windows Server 2003 with Automatic Updates turned on, you will receive IE8 Beta 2 through Windows Update.
Download IE8 Beta 2, use it – the browser itself, the developer tools, writing an Accelerator, marking part of your page as a Web Slice – and let us know what you think.
Thank you,
Dean Hachamovitch
General Manager
Introducing Compatibility View
At the start of the Internet Explorer 8 project we made a commitment to great website compatibility. It’s worth noting that this commitment hasn’t changed, even given the short-term impact of our announcement to better align with Microsoft’s interoperability principles. In other words, compatibility has been and continues to be a very important part of the Internet Explorer 8 feature set.
With Beta 2 we’re announcing a brand new feature known as Compatibility View. In a nutshell, Compatibility View allows content designed for older web browsers to still work well in Internet Explorer 8.
Compatibility View and End Users
When a web site says that it supports modern web standards, Internet Explorer 8 respects that and displays the site using its most standards compliant mechanism. In the majority of cases, this works out just fine. However, every once in a while, a page that says “display me using modern standards” really means “display me like Internet Explorer 7 used to display modern standards pages”. This is where Compatibility View comes in.
There are a bunch of changes under the hood, but the main points to know are –
- Sites on the public internet still display in IE8 Standards Mode by default.
- Switching in and out of Compatibility View (between IE7 and IE8 modes) happens on the fly without a browser restart.
- Compatibility View is domain specific.
A new UI button located in the navigation bar just to the right of the address bar (next to the refresh button) controls the Compatibility View feature and replaces the Emulate IE7 button from Beta 1.
IE only displays this button when toggling into Compatibility View makes sense, such as when viewing Standards mode pages. In all other cases, such as when viewing Quirks mode pages or viewing intranet sites (they’re already being displayed in Compatibility View as discussed later in this post), IE hides the button.
Depending on the speed of your machine, you may see the page refresh when the Compatibility View button is selected. In any case, a balloon tip lets you know that the site is now running in Compatibility View. Additionally, the Compatibility View icon shows a “pressed” state so that you can know what view you’re running in after the balloon tip disappears.
The "scope" of emulation is limited to the domain you are viewing when you press the button, not some other mechanism like the life of the process or the tab. And, Internet Explorer remembers your preference by storing the domain in a client-side list so that the next time you visit the site you don't have to press the button again.
Compatibility View and the Enterprise
A large number of line-of-business websites are Internet Explorer 7 capable today. In order to preserve compatibility, Internet Explorer 8 ships with smart defaults based on zone evaluation. In the default state, all sites on the public internet display in Internet Explorer 8 Standards mode (Compatibility View off) and all intranet websites display in Internet Explorer 7 Standards mode (Compatibility View on).
Let’s look at some examples.
If you navigate to sites on the Internet like www.msn.com and www.live.com, Compatibility View is off by default. Internet Explorer 8 identifies itself with a User Agent string of ‘8’, Version Vector of ‘8’ and displays webpages that trigger standards mode in Internet Explorer 8 Standards mode. The same is also true if you navigate by IP address, such as http://192.168.0.1. As Internet Explorer can’t tell offhand whether the IP address is internal or external, it assumes the latter. Use Compatibility View to fix problems with websites in this category just like you used to use the Emulate IE7 button.
If you navigate to sites on your local intranet like http://myPortal and http://sharepoint/sites/mySite, Internet Explorer 8 identifies itself with a User Agent string of ‘7’, Version Vector of ‘7’, and displays webpages that trigger standards mode in Internet Explorer 7 Standards mode. This combination allows webpages that worked correctly in Internet Explorer 7 to continue to do so in IE8.
Just for completeness, it’s also worth noting that local pages such as ‘C:\Temp\MyWebPage.htm’ display in Internet Explorer 8 mode (Compatibility View off) by default.
A new entry in the ‘Tools’ menu allows for advanced configuration of the feature.
You can configure all intranet sites to display in Internet Explorer 8 mode. You can also configure policy such that every site is viewed in Internet Explorer 7 Compatibility View (identical to the behavior from Internet Explorer 8 Beta 1 when the Emulate IE7 button was pressed). Lastly, you can pre-populate a list of sites that should always be viewed in Compatibility View and / or edit the current entries that are populated via Compatibility View button press. This is especially handy if you encounter a Quirks mode site that is blocking Internet Explorer 8 due to incorrect User Agent String detection – you can add the site in question to the compatibility list and be on your way.
The entire feature is Group Policy enabled, giving you the most granular level control over the various knobs and switches. Most settings can also be configured using the IEAK.
Compatibility View and Web Developers
If you develop pages according to modern web standards and use the DOCTYPE directive to indicate layout mode, Internet Explorer behaves just as you would expect – Quirks DOCTYPEs map to Quirks mode and Standards DOCTYPEs map to IE8 Standards mode. And, just as in Beta 1, you can opt-out of IE8 Standards mode via <META> tag / HTTP header.
The best way to ensure users have a great experience with your website, and thus don’t have to use the Compatibility View feature at all, is to test your site using Internet Explorer 8 and update it as necessary. In the event that a user selects Compatibility View for your site, you can “bring them back” to your desired layout mode via use of the version targeting <META> tag / HTTP header. A new content value, ‘IE=EmulateIE8’, rounds out the list of supported values and assists in this particular scenario.
Content Value
Details
IE=EmulateIE8
Display Standards DOCTYPEs in IE8 Standards mode; Display Quirks DOCTYPEs in Quirks mode. Use this tag to override compatibility view on client machines and force Standards to IE8 Standards.The presence of the <META> tag / header serves as an indication that the site has been updated to support IE8 and its value “wins” over whatever mode Compatibility View on the client would have resulted in. The presence of the tag / header also has some other side effects. For one, it triggers clean-up of the user list entry, ensuring that long-term the client’s user list gets pruned and you don’t have to keep the <META> tag / header in place forever. (BTW, the user list also gets pruned when you choose to delete browser history). For another, presence of the tag / header causes the top-level command bar icon for Compatibility View to not be displayed, effectively preventing most users from adding your site to the Compatibility View list.
A new tag in the User Agent string allows for detection of clients viewing your site in Compatibility View. This tag is also present in the “normal” Internet Explorer 8 User Agent string.
- Compatibility View:
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; Media Center PC 5.0; .NET CLR 3.5.21022) - Updated IE8 UA String:
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; Media Center PC 5.0; .NET CLR 3.5.21022)
Finally, an update to the Developer Toolbar completes the feature set. The new ‘Browser Mode’ menu lets you modify how Internet Explorer behaves as well as how it reports its version to servers and websites. This lets you use Internet Explorer 8 to see what your site looks like in IE8 (the default), what your site looks like in IE7, and what your site looks like for users in IE8 who are running in Compatibility View.
The ‘Document Mode’ menu continues to exist independently of ‘Browser Mode’ to let you see what your site would look like if you changed the layout mode by using a different DOCTYPE or the <META> tag.
Summary
We hope you find the new Compatibility View feature a noticeable improvement over the Emulate IE7 button experience.
If you encounter problems with a specific website that Compatibility View doesn’t resolve, we’d like to know about it. The Report a Webpage Problem tool will help you submit a report.
Scott Dickens
Lead Program Manager
edit: updated ALT text for images
CiviCRM Blog: Keep CiviCRM for Drupal 5?
My self-appointed job is to hangout around here and complain about how CiviCRM could be more like Drupal or better implemented with Drupal. Instead of banning me from the forums and IRC for being annoying, Lobo gave me blogging access. So I'm writing to share about my latest campaign to Druplify CiviCRM.
Gerry J Kirk: links for 2008-08-27
- infinitest - Google Code I met Ben Rady at Agile 2008 and over lunch he explained how he can code and have continous testing happening in the background *as* he codes - no interruptions to his work unless a problem is found. Blew me away. Python people, try out his Python version and give him some feedback (he wants it). (tags: tdd software agile python)
Upgrading to Internet Explorer 8 Beta 2
I am here to tell you how to upgrade to IE8 Beta 2. IE8 Beta 2 system requirements are the same as IE8 Beta 1 and it’s currently available in English, Chinese Simplified, German and Japanese. Stay tuned for more localized IE8 Beta 2 versions to be available shortly.
Windows XP or Windows Server 2003 Getting ReadyBefore you start IE8 Beta 2 installation, there are a couple of things to keep in mind:
- Uninstalling IE8 Beta 1
If you have Internet Explorer 8 Beta 1 installed, the IE8 installer will automatically uninstall any earlier versions and then install the latest version of IE8 Beta2 for you. You will be prompted to reboot twice. The first reboot is to remove IE8 Beta 1 from your machine and the second one to complete the IE8 Beta 2 installation. When you launch Internet Explorer, you can open the Help->About Internet Explorer dialog to see the version number 8.0.6001.18241.
- Getting required updates for IE8 Beta 2
There is 1 update required when running IE8 Beta 2 on multi-core XPSP2 x86 computers:
Knowledge Base Article 932823 or Knowledge Base Article 946501 - This update resolves a problem in which an access violation occurs when an application exists on a Windows XP SP2-based multi-core computer. It will be installed automatically if you select “Install the latest updates” option in Setup Wizard.
Windows XP Service Pack 3(SP3) users onlyThe only time we encourage you to manually uninstall Internet Explorer 8 Beta 1 prior to upgrading to IE8 Beta 2 for Windows XP users is if you happened to install Windows XP SP3 after installing IE8 Beta 1.
To see if you need to manually uninstall IE8 Beta 1, check these things:
- Is your computer running Windows XP SP3?
Click on the Start Menu and then right click on My Computer and then click Properties
On the General Tab under System it’ll say Microsoft Windows XP Service Pack 3
- Is the remove option for IE8 Beta1 grayed out?
From the Start menu, open Control Panel and click Add or Remove Programs
Select Windows Internet Explorer 8 Beta 1 and you are unable to click on the Remove button.
If you answered yes to both questions, you will be able to install Internet Explorer 8 Beta2, but once installed, you will not be able to uninstall either IE8 or Windows XP SP3 later. The Setup Wizard will warn you prior to installation:
If you chose to continue, Windows XP SP3 and IE8 Beta2 will become permanent. You will still be able to upgrade to later IE8 builds as they become available, but you won’t be able to uninstall them.
To avoid getting into this situation, we strongly encourage you to follow these steps before installing Internet Explorer Beta 2:
- Uninstall Windows XP SP3
- Uninstall IE8 Beta1
- Re- install Windows XP SP3
- Install IE8 Beta2
See my earlier blog post on Internet Explorer and Windows XP SP3 for more information.
Windows UpdateInternet Explorer Beta 2 will be offered to those Windows XP and Windows Server 2003 systems that have IE8 Beta 1 installed and have Automatic Updates turned on. A prompt in your Windows task bar will alert you when IE8 Beta 2 is ready for installation. The language version of IE8 Beta 2 offered is based on the your Windows Operating System Language version. For example, if your computer is running a Chinese Simplified or German version of Windows, you will be offered IE8 Beta 2 in Chinese Simplified or German respectively. For any other Windows languages, Internet Explorer 8 will be offered to you in English. Again, this only applies to those systems that have IE8 Beta 1 installed.
Localized VersionsWhen installing localized versions of Internet Explorer 8 Beta 2 on XP or Windows Server 2003 please remember that the base language of the operating system must match the IE8 language you are trying to install; otherwise the Setup Wizard will display an error.
More information about installing localized versions of IE8 Beta 2 can be found in the release notes.
Uninstalling IE8 Beta 2- From the Start menu, open Control Panel and click Add or Remove Programs
- Click Windows Internet Explorer 8 Beta 2 and then click Remove.
- Your computer will be reverted to Internet Explorer 6 + previous IE6 security updates or Internet Explorer 7 + previous IE7 security updates depending on what you had before the upgrade.
- You can confirm that by clicking Help, then About Internet Explorer next time you launch Internet Explorer.
- Be sure to check for any new security updates.
Windows Vista or Windows Server 2008 Getting ready
Before you start installing Internet Explorer 8 beta2, there are a couple of things you need to do to prepare your computer:
- Uninstall Internet Explorer 8 Beta1
You need to manually uninstall earlier builds of IE8 before installing IE8 Beta 2.
- Open Control Panel and click Programs.
- Click Programs and Features, and click View installed updates.
- Wait for the full list to be populated and then select Windows Internet Explorer 8.
- Click Uninstall this update.
After uninstall is complete, restart the computer. Your computer will be reverted to Internet Explorer 7 + previous IE7 security updates.
- Getting required updates for IE8 Beta 2
Knowledge Base Article 937287 - This update helps improve reliability and performance when you install or remove Internet Explorer 8 and future individual updates from Microsoft. Without this update, IE8 setup will be blocked: “Setup cannot continue because one or more updates required to install Windows Internet Explorer 8 are not present.”
Knowledge Base Article 943302 – This update addresses known application compatibility issues in Windows Vista. It will be installed automatically if you select “Install the latest updates” option in the Setup Wizard.
Knowledge Base Article 957055 – This update addresses a known compatibility issue between RealNetworks RealPlayer 11 and Window Vista Service Pack 1. It will be installed automatically if you select “Install the latest updates” option in the Setup Wizard.
You are now ready to install IE8 Beta 2. After IE8 Beta 2installation is complete, the final screen of the Install Wizard indicates that Internet Explorer installation completed successfully.
After you restart your computer and launch Internet Explorer, you can open the Help->About Internet Explorer dialog to see the version number 8.0.6001.18241.
Localized versionsIn Windows Vista and Windows Server 2008, we significantly improved the installation experience for localized versions of Internet Explorer 8 beta 2. Unlike Windows XP and Windows Server 2003, the base language of Windows does not need to match the Internet Explorer 8 language version in order for a successful install. When your user active language matches the Internet Explorer 8 language you installed, then IE8 will appear in the desired language. You will still be able to use IE8 in all other scenarios, but it will appear in English as a fall back version.
More information about installing localized versions of IE8 Beta2 can be found in the release notes.
Uninstalling IE8 Beta 2- From the Start menu, open Control Panel and click Programs
- Click Programs and Features and click View Installed Updates (located in the left side menu
- Select Windows Internet Explorer 8 and Uninstall
- Your machine will be reverted to IE7 + previous IE7 security updates
- You can confirm that by clicking Help, then clicking About Internet Explorer next time you launch Internet Explorer.
- Be sure to check for any new security updates.
What do I do when I run into issues installing IE8?
Check out the knowledge base article on Troubleshooting IE8 installation. If after trying the recommended workarounds you still can’t install IE8, go to the IE Beta Newsgroup to see if there are any known solutions available. Microsoft MVPs and IE Team members are monitoring this newsgroup and they will help address your issues.
Thank you,
Jane Maliouta
Program Manager
Alex King: Twitter Tools 1.5b2
I’ve got a new beta version of Twitter Tools ready for testing. Twitter Tools is a WordPress plugin that creates an integration between your blog and your Twitter account.
This release has a couple of bug fixes (from version 1.5b1) and a couple of new features:
- fixed a logical bug that made the “exclude replies” option work backwards (oops!)
- removed a try/catch for PHP 4 compatibility (oops!)
- added support for hashtags (linked to search.twitter.com)
- abstracted all API endpoints and URLs so that it can theoretically support any service that implements the Twitter API
Hopefully this will be ready for a full release shortly, with only minor changes (if any). I guess we’ll find out soon.
The download and more information are available on my WordPress Plugins page.
If you have any trouble with this, please open a thread in the WP Support Forums and send me the link.
-->Bolaji Oyejide: Webinar Recording - Putting a Flex Face on Alfresco
Jim Robson, Architect at Rothbury Software, led a packed house in a demonstration of what you can do with Adobe Flex and an Alfresco repository.
It was a detailed, step-by-step walk through.
Jim built a simple Flex application, using custom components and leveraging the Flex event framework. He then integrated it with his Alfresco repository.
All in an hour.
For those who missed the show, we have it recorded.
Check out other developer-focused webinar recordings below:
Nuke evolution Video tutorials
Acquia: Come join the private beta
As you may have heard over on TechCrunch, the Acquia private beta program is in full swing. Beta testers are able to download and test our commercially supported Drupal distribution (aka "Carbon") and utilize our new web-based network services and support delivery platform (aka "Spokes").
Team Rubber Developer: Open Coffee (26th August)
Bristol Open Coffee ran again this week, with a nice number of people for free-ranging conversation. Things we kicked around included:
- eBay -> will it be there in ten years? What about vertical auction sites? Is everyone just using Amazon?
- Mobile applications -> how to get the location data at low cost.
- Vouchers -> Why does Orange Wednesdays work, and why do other mobile voucher schemes seem like too much hassle? Orange invested significantly in their scheme; they made redemption easy for retailers and customers; they supported it with well-funded advertising (we pitched on some).
- Twitter and viral voucher or referral schemes.
Next Bristol Open Coffee: September 9th 2008. Thanks to Starbucks, Park Street for hosting.
Arthur Foelsche: SSH Key Manger Module?
Weblog Tools Collection: WordPress Plugin Releases for 08/27
This plugin renders inline sheet music fragments inside posts and comments into images. It supports ABC, GUIDO, Lilypond and Mup music notations.
A new WordPress plugin has been created that will have direct links to 20 different places to submit your blog. These twenty blog submission directories are popular places to advertise your new WordPress blog. They appear as links inside the back office of your WordPress blog.
WP MarkItUp! is the Wordpress plugin that replaces the old “quicktags” toolbar with MarkItUp!, a lightweight jQuery plugin that allows to turn any textarea into an highly customizable markup editor. XHTML, Textile, Wiki, Markdown and BBcode toolbars are already provided out-of-the-box, but even your own markup syntax can be easily implemented with this system.
Top Friends is a WordPress blogroll enhancement plugin. The plugin will fetch your friends’ feeds, and then display the feed’s name and status icon base on last update time and latest two posts of the feed.
Tabbed interfaces are the most common on newspaper type website where they can save a lot of vertical space and make it look less cluttered.
Liz Strauss Comment Count Badge
Liz Strauss Comment Counter is a highly configurable “internet badge” that shows the number of comments your WordPress blog has. Use it either to show off how social your blog is, as an incentive for commenters to be part of it, or just because it’s fun.
Gives your WordPress WP-Admin interface a complete overhaul!
Provide Wordpress users with extra template tags.
OpenSourcery: Drupalcon: Rasmus Lerdorf, PHP performance, and a Drupal performance correction
Today, on the first day of Drupalcon, Rasmus Lerdorf gave a fantastic presentation about PHP, performance, scalability and security. In this talk (the slides are available here), he discussed the writing of frameworks, and how they tend to trade off performance for what might be deemed as cleaner code. After walking through some very cool benchmarking methods (see slides 8, 14 and 16), he proceeded to benchmark some of the more popular PHP frameworks out there (slides 24 through 32). Unfortunately, when it came to Drupal, it was benchmarked without caching enabled. I have duplicated his Hello World module, and enabled it on a clean Drupal 6 install.
Anello Consulting: Custom GMap Solution for Dynamically Updated Markers (Part 2)
In my previous post, I talked about how I implemented the dynamic marker system on OffRoadAtlas.com. In this post, I'll cover the functionality that the PdMarker adds to the site.
When you first hit the home page of the site, you'll see that the main content area is separated into two main sections: the narrow column to the left of the map (I call this the "info column") and the map itself.



Recent comments
1 week 4 days ago
1 week 4 days ago
1 week 5 days ago
1 week 6 days ago
2 weeks 2 days ago
2 weeks 4 days ago
2 weeks 4 days ago
2 weeks 5 days ago
2 weeks 5 days ago
2 weeks 6 days ago