WordPress 2.5, the culmination of six months of work by the WordPress community, people just like you. The improvements in 2.5 are numerous, and almost entirely a result of your feedback: multi-file uploading, one-click plugin upgrades, built-in galleries, customizable dashboard, salted passwords and cookie encryption, media library, a WYSIWYG that doesn’t mess with your code, concurrent post editing protection, full-screen writing, and search that covers posts and pages.
If you want to see everything I would grab a cup of coffee or a mojito, because this post is epic.
User Features
Cleaner, faster, less cluttered dashboard — we’ve worked hard to take your feedback about what’s most important in the dashboard and organize things to allow you to focus on what’s important — your blog — and get out of your way. In collaboration with Happy Cog and the community we’ve taken the first major step forward in the WordPress interface since version 1.5.
Dashboard Widgets — the dashboard home page is now a series of widgets, including ones to show you fun stats about your posting, latest comments, people linking to you, new and popular plugins, and of course WordPress news. You can customize any of the dashboard widgets to show, for example, news from your local paper instead of WP news. Plugins can also hook in, for example the WordPress.com stats widget adds a handy double-wide stats box.
Multi-file upload with progress bar — before when you would upload a large file you’d wait forever, never knowing how far along it was. And uploading more than one photo was an exercise in patience, as you could only do one at a time. Now you can select a whole of folder images or music or videos at once and it’ll show you the progress of each upload.
Bonus: EXIF extraction — if you upload JPEG files with EXIF metadata like camera make and model, aperture, shutter speed, ISO, et al. WordPress will extract all the data into custom fields you can use in your template. If you use the EXIF title fields or similar those will be put into their equivalent fields in WP. Most modern digital cameras generate EXIF data.
Search posts and pages — search used to cover just posts, now it includes pages too, a great boon for those using WordPress as a CMS. New themes can style or sort pages differently in results.
Tag management — you can now add, rename, delete, and do whatever else you like to tags from inside WordPress, no plugins needed.
Password strength meter — when you change your password on your profile it’ll tell you how strong your password is to help you pick a good one.
Concurrent editing protection — for those of you on multi-author blogs, have you ever opened a post while someone was already editing it, and your auto-saves kept overwriting each other, irrecoverably losing hours of work? I bet that added a few words to your vocabulary. Now if you open a post that someone else is editing, WordPress magically locks it and prevents you from saving until the other person is done. You’ll see a message like below.
Few-click plugin upgrades — if the plugins you use are part of the plugin directory since 2.3 we’ve told you when they have an update available. Now we take that to the next logical step — downloading and installing the upgrade for you. This is dependent a little bit on your host setup, and it may ask you for your FTP password much like OS X or Windows will ask you for a password, but it works well on majority of hosts we were able to test, your mileage may very, plugins in mirror may be larger than they appear.
Friendlier visual post editor — I’m not sure how to articulate this improvement except to say “it doesn’t mess with your code anymore.” We’re now using version 3.0 of TinyMCE, which means better compatibility with Safari, and we’ve paid particular attention this release to its integration and interaction with complex HTML. It also now has a “no-distractions” mode which is like Writeroom for your browser.
Built-in galleries — when you take advantage of multi-file upload to upload a bunch of photos, we have a new shortcode that lets you to easily embed galleries by just putting [ gallery] (without the space) in your post. It’ll display all your thumbnails and captions and each will link each to a page where people can comment on the individual photos. I’ve been using this feature on my blog and have already uploaded over 1,200 pictures into 23 galleries. The shortcode has some hidden options too, check out this documentation.
Developer Features
Now for the geeky stuff. While we’re excited about the above features, each one represents a new opportunity or API for other developers to take to another level. (The best of which we’ll someday integrate back into WP.)
Salted passwords — we now use the phpass library to stretch and salt all passwords stored in the database, which makes brute-forcing them impractical. If you use something like mod_auth_mysql we’ve created a plugin that will allow you to use legacy MD5 hashing. (The hashing is completely pluggable.) Users will automatically switch to the more secure passwords next time they log in.
Secure cookies — cookies are now encrypted based on the protocol described in this PDF paper. which is something like user name|expiration time|HMAC( user name|expiration time, k) where k = HMAC(user name|expiration time, sk) and where sk is a secret key, which you can define in your config.
Easy taxonomy and URL creation — probably best illustrated with an example: I can call register_taxonomy() with a few arguments to register a “people” taxonomy and whenever I edit an image I’ll see a UI like tags has for identifying the people in a photo, and these will be URL addressable with /person/firstname-lastname/. All with a single function call.
Inline documentation — the vast majority of the new code going into WordPress include inline documentation that explains the functions and documents their arguments.
Database optimization — we haven’t changed the table layout in this release, which is one of the reasons so many plugins work fine with 2.5. We have added a few new indicies and made a few default fields more flexible based on some bottlenecks we found on WordPress.com, which now hosts 2.7 million WordPress blogs. It should be invisible to the application, just a bit faster on the database side.
$wpdb->prepare() — now almost all of the SQL in WordPress is prepared first, and the same functions are available to your plugins. This should prevent elementary SQL escaping issues.
Media buttons — the add media buttons above the post are both expandable, so you could have an “Add Google Map” button if you like, They can be overridden, so if you think you can do the video or audio tab better than we have you can replace the default.
Shortcode API — the new gallery functionality is powered by the new shortcode API. Shortcodes are little bracket-delineated strings that can be magically expanded at runtime to something more interesting. They give users a short, easy to type and copy/paste string they can move around their post without worrying about messing up complex HTML or embed codes. The Shortcode API is fully documented.
Now you see why 2.5 took a little extra time.
Upgrade Notes
2.5 does include security fixes so it is recommended for all users, the 2.3 branch will no longer be updated. The upgrade instructions for this version are pretty much the same as any other version. The most important thing to check is your plugins, so if for example everything works except the new uploader, a legacy plugin might be causing a javascript error on the page and breaking it. If something goes wrong, the safest thing to do is turn your plugins off (we have a button to do them all at once, now) and turn them back on one-by-one, testing the problem along the way. This has solved almost everybody’s problems in testing, and it also lets you know which plugin author to show some love to so they’ll update their plugin, and which plugin authors already have so you can shower them with praises on your blog.
One brief note about some of the new upload and plugin upgrade features, there are some edge-case hosting platforms, like versions of Lighttpd before 1.5 or over-agressive mod_security rules, which can break. If something isn’t working like it was looked in the screenshot, ask your host if there’s something on the server side which may be interfering. Hosts, feel free to join and post to our wp-testers mailing list if you have an environment that requires some extra code to work around. We’d be happy to include it in the next update.
Quick tip: in 2.5 you click the name of things to edit them, like your username to edit your profile or the title of a post to edit it.
The Community is Growing
More than growing, it’s on fire. We always talk about things like downloads, and the 2.3 branch has already had 1.92 million downloads as I write this post, but this time we have some far more interesting information I’d like to share.
There were over 1,200 commits to our repository since 2.3.0 and over 90 people were credited in them. This means in our core code, not plugins, there were at least 90 individual folks that contributed something high-quality enough that it made the cut to be part of the download you guys get today. I had no idea this group of people was so large.
The 2.5 branch is nicknamed “Brecker” in honor of Michael Brecker, an exceptionally talented saxophonist who could cross styles effortlessly and never stopped experimenting and pushing himself until he passed away last year.
New WordPress.org
All of this wasn’t enough, so in our copious spare time we decided to redesign WordPress.org to better match the aesthetics of the new dashboard and also to spruce up a few areas that needed lovin’. Some parts of the site, like the Codex, might show the old style for a day or two. We know, just give us a bit of time. Thanks to Matt Thomas for his epic effort in designing and coding the new site.
What’s Next
As always with WordPress, we don’t claim any of these features to be perfect, or to be better than everyone else in the world, but they are done by and for the people and the one thing we do promise is that with every release we listen and do our best to improve.
2.5 is a major milestone for WordPress not because it added dozens of user-requested features, but because it reaffirms that we’re as passionate about blogging as the day we started. Our community is too fierce to rest on its laurels — contrary to what pundits claim, blogging is far from “finished” and every improvement just whets our appetite for more. And more is coming.
It’s a good thing WordPress doesn’t limit the length of posts, because this one would have hit it. If you made it this far, thanks for sharing a bit of your day with us. I sincerely hope this new version of WordPress helps you do what you love to do.
Hangs and how to Solve Them (Part 1) and (Part 2): Tom has some useful posts that talk about deadlocks and request queuing in ASP.NET, and how to detect and debug what might be causing them.
Real-Time Progress Bar with ASP.NET AJAX: SingingEels shows a technique for displaying real-time progress notifications using AJAX as a long-lived activity runs on the server.
Using JQuery to Consume ASP.NET AJAX JSON Web Services: Dave Ward has a nice post that describes how to use the JQuery AJAX library on the client to call an ASP.NET Web Service on the server that is JSON enabled (using ASP.NET AJAX on the server).
ASP.NET MVC
Kigg - Building a Digg Clone with ASP.NET MVC: Kazi Manzur Rashid published an excellent Digg-clone sample built with ASP.NET MVC last February. He recently updated the code to work with ASP.NET MVC Preview 2 (full details here). You can download the latest version of his source code here.
ASP.NET MVC Action Filters - Caching and Compression: Kazi Manzur Rashid has another great post that shows how to use the new ActionFilterAttribute support in ASP.NET MVC to implement output caching and compression attributes. Read this quickstart article to learn more about how Action Filters work, or watch Scott Hanselman's video that covers them.
Defining Routes using Regular Expressions with ASP.NET MVC: Someone asked me the other day how to use regular expressions to define route rules with ASP.NET MVC. Turns out Fredrik Kalseth already has a nice sample that shows how to-do this.
Testing with the ASP.NET MVC Framework: Simone Chiaretta has a great article that discusses how to test controllers using ASP.NET MVC Preview 2. Note: the next ASP.NET MVC preview release will include a number of refactorings that will simplify controller testing considerably (and avoid the need to mock anything for common scenarios).
Test-Driven Development with Visual Studio 2008 Unit Tests: Stephen Walther has a really nice post that describe how the unit testing features now built-in VS 2008 Professional work (using an ASP.NET MVC project). Also check out Stephen's excellent Introduction to Rhino Mocks blog post that describes how to use the open source Rhino Mocks framework with VS unit test projects.
Visual Studio
VS 2008 Web Deployment Hot-Fix Roll-Up Now Available for non-English Languages: Last month we shipped a hot-fix release that fixes a number of bugs, adds a few features, and improves performance for web development scenarios in VS 2008 and Visual Web Developer 2008 Express. Last month's release only worked with the English-language VS 2008 products. Yesterday we shipped an update that now works for all VS 2008 languages except Portuguese and Russian (which are still to come in the future).
Hotfix Available for VB Performance Issue in VS 2008: The Visual Basic team recently released a hotfix as well that addresses a performance issue with large files that contain XML documentation. Read this post to learn more about how to download it if you are running into this issue.
Using Silverlight 2's DataGrid with WCF + LINQ to SQL: This 15 minute video blog demonstrates how to build a LINQ to SQL object model on the server and publish it using WCF. It then demonstrates how to build a Silverlight client that uses the new Silverlight DataGrid control, and which calls the WCF service to retrieve the LINQ to SQL data to populate it with.
Simple Editing of Web Service Data in a DataGrid: Mike Taulty has a nice blog post that shows how to create a WCF service on the server, and then use it from a Silverlight 2 client to retrieve data, bind it to a DataGrid, allow users to update rows, add/delete rows, and then save it back to the server using Silverlight 2 Beta1.
Sorting with Silverlight 2's DataGrid Control: The DataGrid control in Silverlight 2 Beta1 doesn't yet have built-in column sorting support (it is coming in Beta2). That hasn't stopped Matt Berseth though! In this post he shows how to implement sorting using a custom header column approach. Also check out Matt's post here, which provides a DataGrid test page that shows off a number of the current DataGrid features.
Open Source Silverlight Charts with VisiFire: Silverlight doesn't yet have built-in charting controls. The good news is that the folks at Webyog just released a really cool set of open source Silverlight charting controls (complete with animation support) that enable you to easily build great looking charts. Their model makes it super easy to use the chart components within existing HTML or AJAX applications.
.NET
FormatWith and DateTime Extension Methods: James Newton-King and Fredrik Kalseth have some nice posts and samples that demonstrate how to use the new extension method feature in the VB and C# languages in VS 2008 to create some useful convenience libraries.
2.5 is coming along thanks to the fantastic feedback you guys provided on RC1 (over 580 pingbacks and counting), and we’re now ready to show you a bit more of a peek with a short screencast covering the new dashboard and uploader and Release Candidate 2. First here’s the screencast, which is also available embedded below, as a Flash movie, or as a 17mb AVI download:
(This was my first screencast, but I hope we can have more on WordPress.org and our documentation in the future.)
If you make frequent backups and you’re interested in helping us out with development by testing the very latest, download and install Release Candidate 2 of WordPress 2.5, and join our testers mailing list to report any bugs you find in the code.
Finally with regards to theme and plugin compatibility, we’ve had no reports of any broken themes in this upgrade, which makes sense because we didn’t really change anything core about themes, just added new optional capabilities like Gravatars. Plugins that work with the admin may require updating to take advantage of the new, cleaner UI in WordPress 2.5.
The community has started to keep a list here of which plugins work great and which don’t. It’s worth looking at, or even better just deactivate your plugins before upgrading for 2.5 and let the built-in updater notify and give you one-click upgrades to plugins you have installed, assuming the developer is cool and has updated their code for 2.5 already.
One of the core priorities we focused on when building IIS 7 was to enable a rich .NET extensibility model that provides developers with the hooks to easily plug-in and extend the web server.
These extensibility hooks are provided in the web-server pipeline (enabling scenarios like the new IIS7 Bit Rate Throttler), within the configuration system (enabling developers to create new web.config schema settings), within the health monitoring system (enabling developers to add custom trace events), and within the admin tool (enabling developers to plug-in new admin UI modules).
We added these extensibility hooks so that anyone can easily extend and enhance the web server using .NET. We also selfishly wanted them so that we can ship regular feature packs that add additional features to the core web server.
IIS 7 Admin Pack Preview 1 Released
Last week the IIS team shipped the first technical preview of some really cool administration modules that I think web developers will find super useful. This preview adds several new features to the IIS7 Admin Tool:
Database Manager: Built-in SQL Server database management, including the ability to create, delete, and edit tables and indexes, create/edit SPROCs and execute custom queries. Because it is integrated in the IIS administration tool it all works over HTTP/SSL - which means you can use the module to remotely manage your hosted applications (even with low-cost shared hosting accounts), without having to expose your database directly on the Internet.
Log Reports: Built-in report visualization with charting support for log files data. Full range selection and custom chart creation is supported, as well as the ability to print or save reports. Like the database manager you can use this module remotely over HTTP/SSL - which means it works in remote shared hosting scenarios.
Configuration Editor: This is a power module that provides complete control over editing all web.config settings within the admin tool. You can configure it to track the changes you make using the UI and have it auto-generate configuration change scripts that you can then save and tweak to re-run later in an automated way.
Request Filtering UI: This admin module provides more control over the new request filtering feature in IIS7. Check out Carlos' blog post here for details on how to use it.
.NET Authorization: This admin module provides a custom authorization rules editor which allows you to more easily manage the ASP.NET <authorization> configuration section.
FastCGI UI: This admin module provides more support for editing all the new <fastCGI> settings (for when you use FastCGI modules with IIS7 like PHP).
Below are some screen-shots and simple walkthroughs of the Log Reporting and Database Manager administration UI modules:
Log Reporting Admin Module
Have you ever deployed a web application onto a server and wondered how much load it is getting?, what the average response time from the server is?, or whether many server errors are occurring (and if so on what URLs)? All of these settings are carefully logged by IIS in a text based log file. Today most people use command-line tools like the IIS Log Parser utility to query and analyze these files.
The IIS 7 Admin Pack and the new "IIS Reports" admin module now enable you to also query and chart your reports graphically within the IIS admin tool:
Out of the box the "IIS Reports" admin module comes with a bunch of pre-built logparser-based reports that you can easily run on your sites and applications:
Below is a simple graphical report we could pull up that looks at the HTTP status codes being returned by my "TestSite" application (note how we are using the "bar graph" visualization option):
Reports can optionally be filtered using a date range. You can also push the print or save buttons within the report page to generate a printer or a local saved version of the report.
The IIS7 Admin Tool is a rich client application (built using WinForms) - but it does all of its remote access and work using HTTP based web-services that connect to the remote web-server. This means it will work through firewalls, and a hoster does not need to open up ports in their network in order to enable it.
Once a hoster installs the IIS 7 Admin Pack on their web-servers, remote customers managing their hosted sites using the IIS admin tool (which is built-into Vista and available as a download for Windows XP clients) will automatically be prompted to enable the IIS Reports admin module (the install of the client-side module is seamless). They'll then be able to use the reports module inside their admin tool to pull up reports for their remote hosted sites.
Note: hosters can optionally disable this feature if they want, or choose to restrict or customize the list of reports provided. Hopefully most hosters will chose to just make this a standard feature of all IIS and ASP.NET plans they offer.
Database Manager Module
Have you ever deployed your application and database to a remote hosting provider and wanted to make a quick change to the database (but your hosting provider didn't support accessing it using the SQL admin tool)? Using the new "database manager" module within the IIS admin tool you can now remotely access your database and make changes to it using HTTP/SSL through the web-server.
Just connect your IIS administration tool to your remote site and click the new "Database Manager" icon:
By default the Database Manager module will look at the <connectionStrings> section of your web application's web.config file, and allow you to easily access any of the databases your hosted application is using.
For example, below my TestSite application has a "NorthwindConnectionString" setting in the <connectionStrings> section of my web.config (which is why it shows up in my list of connection nodes). When I click it I can view and edit my SPROCs and Table Schema (including indexes):
We could right-click on any table to edit the row data within it, or alternatively perform a custom SQL query to retrieve a custom set of data:
What is nice is that a hoster can easily enable all of the above database admin features for both dedicated and shared hosting plans (even when there are hundreds or thousands of customers on a single server). Like all other modules in the admin tool, all communication between the rich client front-end and the backend at the hoster is done over HTTP/SSL based web-services (meaning it goes through firewalls and doesn't require the hoster to open any new ports - nor expose the SQL server directly on the Internet).
Hopefully this database administration module will just be a standard feature that all IIS hosters enable - which will make remote hosted data management much easier going forward.
Summary
Over time you'll see even more admin UI modules be shipped in the IIS 7 Admin Pack and many more features enabled (Carlos, who runs the dev team building the admin tool, is actively asking for suggestions on what you'd like to see via his blog - so drop him a comment if you have a suggestion or want to provide some encouragement).
You can download the first technical preview of IIS 7 Admin Pack release here as well as learn more about it via the online documentation here. The above modules work with both the IIS7 release in Vista SP1 as well as Windows Server 2008.
Last month I blogged about our ASP.NET MVC Roadmap. Two weeks ago we shipped the ASP.NET Preview 2 Release. Phil Haack from the ASP.NET team published a good blog post about the release here. Scott Hanselman has created a bunch of great ASP.NET MVC tutorial videos that you can watch to learn more about it here.
One of the things I mentioned in my MVC roadmap post was that we would be publishing the source code for the ASP.NET MVC Framework, and enable it to be easily built, debugged, and patched (so that you can work around any bugs you encounter without having to wait for the next preview refresh release).
Today we opened up a new ASP.NET CodePlex project that we'll be using to share buildable source for multiple upcoming ASP.NET releases. You can now directly download buildable source and project files for the ASP.NET MVC Preview 2 release here.
Building the ASP.NET MVC Framework
You can download a .zip file containing the source code for the ASP.NET MVC Framework for the release page here. When you extract the .zip file you can drill into its "MVC" sub-folder to find a VS 2008 solution file for the project:
Double-clicking it will open the MVC project containing the MVC source within VS 2008:
When you do a build it will compile the project and output a System.Web.Mvc.dll assembly under a \bin directory at the top of the .zip directory. You can then copy this assembly into a project or application and use it.
Note: the license doesn't enable you to redistribute your custom binary version of ASP.NET MVC (we want to avoid having multiple incompatible ASP.NET MVC versions floating around and colliding with each other). But it does enable you to make fixes to the code, rebuild it, and avoid getting blocked by an interim bug you can't work around.
Next Steps
Our plans are to release regular drops of the source code going forward. We'll release source updates every time we do official preview drops. We will also release interim source refreshes in between the preview drops if you want to be able to track and build the source more frequently.
We are also hoping to ship our unit test suite for ASP.NET MVC in the future as well (right now we use an internal mocking framework within our tests, and we are still doing some work to refactor this dependency before shipping them as well).
Video on the web is now one of those common scenarios that every user takes for granted, and increasingly every major site is incorporating in some form (product videos, training videos, richer advertising scenarios, user generated content, customer testimonials, etc).
One of the challenges when adding video to a site, though, is delivering it in a way that doesn't cost a fortune. Network bandwidth costs a lot of money, and the cost of high quality video usage can quickly add up.
The blog post below provides a quick overview of some of the options you can use to reduce the cost of delivering video, and discusses a new free download - the IIS 7.0 Bit Rate Throttling Module - that was released a few days ago and which enables you to easily save money when serving video from an IIS web server using any video technology (including Silverlight, Windows Media Player and even Flash).
Option 1: Using a Video Hosting Service
One approach you can take to reduce video bandwidth costs is to use a video hosting service like YouTube or the free Microsoft Silverlight Streaming Service. This allows you to use someone else's network to deliver the video content, and avoid having to pay the bandwidth costs yourself.
If you aren't familiar with the Silverlight Streaming service, it allows you to upload up to 10GB of videos and download 5 Terabytes/month of video content (at up to a 1.4 Mbps bit-rate) for free. You can build any custom Silverlight client player application you want to embed the video within it. This means it doesn't require a specific video player look and feel, nor a service logo/watermark to play the video. This allows you to fully integrate the video into your site and use whatever UI you want to host it.
Option 2: Hosting Video on Your Own Servers
Sometimes using a video hosting service doesn't make sense (for example: you want to use custom authentication to grant/deny user's access, you want to play really long video segments, or you want to serve up custom ads in your videos). Instead you might want to serve the video up from your own servers and have complete control over it.
There are typically two options you can use to deliver the video from your servers: using a streaming approach or a progressive video download approach:
Streaming Server Scenario
In a streaming scenario a client (like Silverlight, Windows Media Player, Flash or Real Networks) connects to a streaming server. The streaming server then sends down the video stream to watch, and typically enables a user to dynamically skip ahead/behind, pause or stop the video stream. When the user closes the browser or navigates away from the page the video stream automatically stops transmitting.
Windows Media Services (WMS) is a free streaming server download available for Windows, and can stream video to both Windows Media Player and cross-platform Silverlight browser clients. It is generally regarded as the most server scalable and cost effective way to enable video streaming on the web, and handles both on-demand file streaming scenarios (for example: streaming a .wmv file) as well as live stream scenarios (for example: a sporting event like the Olympics that is happening live in real time).
Windows Media Services can be used on any version of Windows Server - including the new Windows Server 2008 Web Server edition (which only costs $469, enables up to 4 processors and 32GB of RAM, and supports IIS, ASP.NET, SharePoint, and Windows Media Services).
Progressive Download Scenario
In a progressive download scenario a client (like Flash or Silverlight) downloads a video directly off of a web-server, and begins playing it once enough video is downloaded for it to play smoothly.
The benefit of using a progressive download approach is that it is super easy to setup on a web-server. Just copy/ftp a video up to a web-server, obtain a URL to it, and you can wire it up to a video client player. It doesn't require any custom web-server configuration, nor require a streaming server to be installed, in order to enable.
The downside of using a progressive video download approach, though, is that web-servers are by default designed to download files as fast as possible. So when a user clicks to watch a video on your site, your web-server will attempt to transmit it to the client as fast as possible. This is fine if the user decides to watch the entire video. But if the user stops watching the content half way through the video (or navigates to a different page), you will have downloaded a bunch of video content that will never be watched.
If the remaining un-watched video content is several megabytes (or even tens of megabytes) in size, you will end up over time spending a lotof money on bandwidth that is not benefiting your business/site at all....
IIS 7.0 Bit Rate Throttling Module
Last week the IIS team shipped a new free IIS 7.0 bit-rate throttling module that makes progressive video scenarios much cheaper in cost.
The bit rate throttling module enables you to easily configure bandwidth throttling rules for any type of media content downloaded from an IIS web server (including .WMV, .MOV, .FLV and .MP3 files).
Out of the box, the bit rate throttling module causes IIS to quickly transmit a burst of initial media content when a file is requested. By default the rules are set to look at the mime-type and bit-rate encoding of the file, and send as fast as possible enough of the media file to play 20 seconds of it. Once the video client has 20 seconds of the media to play, the IIS bit rate throttling module will then throttle down the transmit rate to equal the bit-rate encoding of the file. It will then monitor whether the video player on the client ever closes or navigates to a different video, and automatically stop the remainder of the file being sent if the user goes away.
For example, if you are playing a 35MB video file that is encoded at a bit-rate of 500 Kbps, IIS will send a 20 second burst of the video (20 seconds @ a 500Kbps encoding == 1.25MB of content) as fast as possible to start the video client playing, and then download the remainder of the video at a download rate of only 500 Kbps (enough so that the user always has 20 seconds of video cached on the client so that they never get buffered).
If after a minute the user gets bored and either stops the video or navigates to a new page, IIS will detect that they went away and stop transmitting the remainder of the 35MB file. Since IIS only downloaded 80 seconds of total video in this scenario (the 60 seconds that the user watched + the 20 second buffer window), only 5MB instead of 35MB of network bandwidth ended up being used. 30MB of bandwidth savings repeated hundreds or thousands of times a day can easily translate to thousands of dollars of bandwidth savings per year....
IIS 7.0 Bit Rate Throttling Module Download and Installation
You can download and learn more about the IIS 7.0 bit-rate throttling module here.
Once installed, you can click the "Bit Rate Throttling" node in the IIS admin tool:
And then configure whatever bit-rate throttling rules you want on a per file or per file-type basis:
The below whitepapers describe how to enable and use it more:
A customizable dashboard, multi-file upload, built-in galleries, one-click plugin upgrades, tag management, built-in Gravatars, full text feeds, and faster load times sound interesting? Then WordPress 2.5 might be the release for you. It’s been in the oven for a while, and we’re finally ready to open the doors a bit to give you a taste.
For the past few months, we’ve been working with our friends at Happy Cog — Jeffrey Zeldman, Jason Santa Maria, and Liz Danzico — to redesign WordPress from the ground-up. The result is a new way of interacting with WordPress that will remain familiar to seasoned users while improving the experience for everyone. This isn’t just a fresh coat of paint — we’ve re-thought the look of WordPress, as well as how it’s organized so that you can forget about the software and focus on your own creative pursuits.
Here are a few vignettes of what’s in store.
The Dashboard
The Dashboard’s most important role is to inform quickly and get you to where you’re headed in the admin. In interviewing users, we found that most of you ignore the Dashboard entirely — its useful information being mostly hidden in an overly complex design. The new Dashboard is focused on the most relevant tasks at hand: a quick summary of what’s published and scheduled for publication, the latest comments and incoming links, blog stats, and WordPress updates and news. You can add your own RSS feeds and edit the way information is presented so that the new Dashboard conforms to the way you use WordPress.
Navigation
The WordPress navigation has confounded even sophisticated users. With the new design, we’ve cut the number of navigation options in half, separating the primary functions (writing, managing posts and pages, editing the blog’s design, and managing comments) from secondary functions. This presents information at a more comfortable pace, revealing only the information that’s necessary. Everything you need is still there — just better organized. (Especially for people new to WP.)
Write
By far, the most frequently accessed part of WordPress is the Write screen. It gets the job done, but its myriad options can be overwhelming. The new write screen only displays the information that you’ll use most often. It displays the most common fields in a way that makes posting incredibly easy. Additional options are hidden away until you need them. The new Write screen anticipates the natural flow of the way you write, and is smart enough to remember the way you left it so that your preferred writing environment is always quickly available. The new visual editor even has a handy full-screen mode to help block out distractions while composing your newest post. (My personal favorite new feature.)
Manage
The Manage screens have been redesigned and unified so that now, managing your pages, posts, media, and comments all use similar, consistent interfaces. We’ve omitted superfluous information and made what’s important faster to find. We believe these changes will make you a faster, more proficient blogger.
You might also notice there are some new colors, the dashboard feels much fresher and lighter. If you’re jonesing for the old look under your user options you can now select the “classic” colors and get those old blues back. (It’s also pluggable so people can easily add or share their own color schemes.)
If you make frequent backups and you’re interested in helping us out with development by testing the new code, download and install Release Candidate 1 of WordPress 2.5, and join our testers mailing list to report any bugs you find in the code.
We’re also interested in feedback on the new interface and would love to hear your opinions, thoughts, rants, raves, and anything in between. We created a special email address just for the occasion: 2.5-feedback@wordpress.org.
The software is basically done and stable, and could be released today, but we’d like to incorporate feedback from a wider audience before making it available to the general public. After a few days of your feedback we’ll set a final release date. Personally, I can’t wait.
I'm slowly recovering from keynoting at MIX last week, and have been digging my way out of backlogged email the last few days. I'm going to try and finish catching up on blog comments this weekend - apologies for the delay in getting back to some of your questions.
To kick-start my blogging again I thought I'd post a new link-listing series. Today's post is mostly focused on ASP.NET and web related links. I'm going to be doing more Silverlight and WPF posts soon.
New ASP.NET AJAX Control Toolkit Release: David Anson blogs about a new ASP.NET AJAX Control Toolkit release that the team made right before MIX. This release includes a number of patches (including a bunch from the community) with bug fixes and improvements in a bunch of areas.
JavaScript Intellisense for the Virtual Earth Map Control: Marc Schweigert is driving a project to add great VS 2008 JavaScript intellisense support for the Virtual Earth Map Control. Check out his video and visit his codeplex project to learn more.
ASP.NET MVC
ASP.NET MVC Preview 2: Last week at MIX the ASP.NET team shipped a second preview release of the ASP.NET MVC framework. This release has a number of improvements in it (see my earlier MVC roadmap post that covers some of them). Watch the Scott Hanselman videos on the http://www.asp.net/mvc page, as well as the quickstart samples to learn more.
Thoughts on ASP.NET MVC Preview 2 and Beyond: Phil Haack from the ASP.NET team has a great post where he talks about the ASP.NET MVC Preview 2 release, as well as some of the features and work that will show up in the next preview drop. One of the major focuses in Preview 3 will be improvements to the testing workflow of controllers.
Cheesy Northwind Sample Code: Scott Hanselman has posted a sample application that shows building a simple data driven application using the ASP.NET MVC Framework and the Northwind sample database.
Securing Your Controller Actions: Rob Conery shows how to use the new ASP.NET MVC ActionFilterAttribute feature to apply declarative security rules to a controller. Also check out David Hayden's post here for more security attribute examples.
Url Routing Debugger: Phil Haack posts a cool Url Routing Debugger he has built that demonstrates an easy way to test URL route conditions using the ASP.NET MVC framework.
ASP.NET MVC Test Project Integration with NUnit and Rhino Mocks: Joe Cartano from the VS Web Tools team walks-through using some NUnit and Rhino Mocks project templates that he has created. These plug-into the new VS 2008 tools support for ASP.NET MVC, and enable you to easily get a test project started when you create a new ASP.NET MVC application.
Graffiti: The folks at Telligent have recently released a sweet new CMS system for ASP.NET that is trivial to setup, and which provides a bunch of great content editing support. Definitely worth looking at if you are in the market for an great way to publish or manage content on the web.
Beta of LINQ to LLBLGen Pro Released: Frans Bouma announces the first public beta release of LINQ to LLBLGen Pro (a very popular commercial ORM for .NET). Frans has a very in-depth 14 post series that discusses how he built the LINQ support for it (a nice technical read).
Update: You can now download the slides + demos I used during my talks. Click here for the Silverlight Talk. Click here for the MVC Talk.
This week I'm visiting Scottsdale Arizona and will be presenting at a free user group event during the day. I'm presenting two sessions myself:
1) Developing Applications using Silverlight 2: This will be a drill-down into the new Silverlight 2 Beta1 release, and how you can build applications with it using VS 2008 and Expression Blend. You'll leave this session with a good understanding of the basics of Silverlight programming and how to start building applications with it.
2) Developing Applications using ASP.NET MVC: This session will be a drill-down into the new ASP.NET Model-View-Controller framework option (which last week was updated . You'll leave this session with a good understanding of what it is, how it works, and how to start building ASP.NET web applications with it.
In addition to my sessions above, there will also be great sessions at the event from Microsoft employees on "Consuming Web Services with Microsoft Silverlight", "Encoding Video for Microsoft Silverlight", and "Serving Applications with Microsoft Silverlight Streaming".
You can sign up and attend the sessions for free. Click here for more details on the events, and click here to register online to attend.