text:
This project is now an Open source project on CodePlex web site. Latest code and updates can be found at http://www.codeplex.com/MbCompression
Running after the best performance for your web application, one of the biggest improvement you can do is to use compression.
Page, Stylesheet & Javascript files (images are already compressed format).
There are few compression modules out there, all you needs to do is just 'goolge' for it, and the implementation is really very simple.
Not a lot of changes in your code are needed.
ASP.NET bring us a new way to integrate resources into our site - using WebResource.axd handler.
Those are like a 'Virtual containers' for other file that embedded into a DLL file. It can be Css, Javascript, Images...
Actually this is an handler that load the resource from the DLL file.
The Problem
The pages, .css & .js files can be easily compress with one of the modules on the net.
The basic technique is to pass your response through 'Compression Filter'.
WebResource.axd, that became very large (specially when using AJAX) are break down for unknown reason when you try to compress them that way.
That result is you will not compress them, and your client will download big files that contains js or css (sometimes of 70kb and even more)
The Challenge
First Try. Working, but bad performance. ( Compress pages and WebResource.axd files in ASP.NET )
I started to make tests and to play with WebResources files. Only WebResources that contains 'text' content (css, js, text) can be consider as compressible.
Images are not.
I was thinking, maybe I can load the WebResource, get it's content as string, compress the string and send it to the response as string (or as byte[]).
After some tests, It discovered as true. The WebResource was passing to the client completely and without any missing characters.
The problem was to get the WebResource content. For that, I had to make a 'fake' request based on the url,
asking again for the WebResource and then compress it.
HttpWebResponse request = (HttpWebRequest)WebRequest.Create(app.Context.Request.Url.OriginalString + "&p=1");
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream responseStream = response.GetResponseStream();
That make every time the client ask for webresource, the server made double HTTP request - what a waste.
This module was working. It was actually compressing the WebResources, But suffer from bad performance.
Second Try. Working better. But not enough. ( Compress your pages, css, js and WebResources.axd files for better performance )
Thanks to Mads Kristensen that point me to the performance issue and offer an idea how to improve it, The second try was better.
The first time the WebResource was loading, it was compressed and inserted into the Application object, and next time it was requested, it was served from there directly.
It was actually running on our production servers (Where I work) for a while, and compressed the WebResources.
But I was not happy with that solution. The 'fake' request throw an exception once in a while. Maybe one for some thousands of users.
Also it was not stable enough on some other servers, and throw 404 errors.
Third Try. Success! Working as expected. No errors and really WebResource compression module!
The compression part in the first two tries was perfect. compress the content of the webresource as byte[] and serve it to the client. The only problem is to load the actual resource content.
In this time, I decided to 'attack' the problem from another way.
.NET using System.Web.Handlers.AssemblyResourceLoader to load and serve WebResource requests.
I decided to implement my own AssemblyResourceLoader handler that will support compression. unfortunately, AssemblyResourceLoader handler is registered into the system, and can't be remove. Any try to do so will lead you to an exception.
So, what I did was to create an HttpModule, using the event PreRequestHandlerExecute that is one step before the handle action,
do my stuff here, and then end response and jump over the hander step.
That way I can prevented AssemblyResourceLoader handler to do his stuff.
To create my version for the AssemblyResourceLoader, I used the source code of 'ASP.NET 2.0 AJAX Extensions'
and a reflector to see the code of the original AssemblyResourceLoader.
There are few steps in that module:
1. Parsing the request query string. The request for WebResource has an encrypted query string with the the resource data separate with pipes chars ('|'):
Assemby info, Resource name and a char for the 'assembly type'. The query string is encrypted using the machinekey, and needs to be decrypted using reflection. The problem is, that share hosting servers (such GoDaddy) are not permitting using reflection from within your code. Only from assemblies that are in the GAC. What I had to do is to find a public method from an assembly that in the GAC of every server.
The solution I found (if somebody have a better idea, I will be glad to hear) is creating an empty Membership class, that inherits from MembershipProvider, and implement only one public method that using the 'DecryptPassword' method from the MembershipProvider. it is also using the machinekey.
(To use that decryption, add the attribute reflectionAlloweded="false" to the CompressorSettings section, and machinekey section to the web.config. See Readme.txt file in the source)
2. Load the assembly. The char for the 'assembly type' in the query string indicate if the assembly is the System.Web assembly or the one that encrypted in the query.
3. Load the resource info. Using the resource name from the query, we need to load the resource info - it's content type, if it exist and if it needs to perform substitution calls
(WebResource within another WebResource. If so, we let the original System.Web.Handlers.AssemblyResourceLoader to handle this WebResource). Of course we check in our cache if that resource already asked for, and load the info from the cache.
4. Setting the HttpCachePolicy headers to cache the request, and adding a ETag for checking in the next time.
5. Get the resource stream from the assembly.
6. Compress the resource stream if needed. If the resource is 'compressable' it can be read as a string, so we load it as StreamReader, read it to the end, convert the string into byte[] and compress it. If not (in case of images) we just load the resource, and serve it to the client.
7. Last thing to do, is to send the byte[] (compressed or not to the response stream, and end the response.
Optional Improvements for the WebResource module (maybe in the feature)
Tips when working with WebResources
Full instruction can be found in the readme.txt file in the source code.
The Source Code
The source code contain handlers to compress .js & .css files, simple module to compress pages, the module to compress the WebResources and helper classes.
Every module/handler is 'stand alone' and can be use independent in case you choose to use your own implementation for the pages of css/js.
The Readme.txt file include all needed info to implement the handlers/modules.
Important: If you are using the WebResource compression module on share hosting thatnow allowed using reflection from your code (as GoDaddy), you must
add the attribute reflectionAlloweded="false" to the CompressorSettings section.
See also post: Update to my compression module to compress third party scripts
Currently rated 4.5 by 15 people
Monday, October 15, 2007 12:46 AM
Great, thank you very much for this update !
Would it be possible to add in OnPostReleaseRequestState, where without gzip or deflate, which would:
// Check if GZIP is supported by the client
if (RequestUtil.IsSpecificEncodingSupported(app.Context, Constants.GZIP))
app.Response.Filter = new GZipStream(app.Response.Filter, CompressionMode.Compress);
ResponseUtil.SetEncodingType(app.Context.Response, Constants.GZIP);
// If GZIP is not supported, so only DEFLATE is : case with a console client which calls an aspx : no gzip, no deflate
if (RequestUtil.IsSpecificEncodingSupported(app.Context, Constants.DEFLATE))
app.Response.Filter = new DeflateStream(app.Response.Filter, CompressionMode.Compress);
ResponseUtil.SetEncodingType(app.Context.Response, Constants.DEFLATE);
...and sorry for my poor english
Monday, October 15, 2007 2:25 AM
Yes, its possible, but the second check
if (RequestUtil.IsSpecificEncodingSupported(app.Context, Constants.DEFLATE)) is not needed,
because in the method
we check if at least one of the compression type is supported.
So if we passed this condition, that's mean that GZIP or DEFLATE is supported, therefore, if GZIP
is not supported, for sure DEFLATE is. ;-)
Friday, October 26, 2007 3:51 PM
Hi Miron!
Great module!
Is it possible to combine multiple references to WebResource.axd on a page into one reference? It should increase page loading performance.
Monday, October 29, 2007 6:27 PM
Hello Miron,
First of all thank you for working hard to come out with such a module for compression, no doubt many people out there need it.
I have been using an Http compression module by darick_c available from the code project site:www.codeproject.com/aspnet/httpcompression.asp. My problem with that module is that it doesn't support post cache substitution, which is a big problem for me, because I run a site which involves membership registration and all. My question is, does this module support caching and post cache substitution? Thank you.
Tuesday, October 30, 2007 8:54 AM
I think it will be impossible, (maybe somebody will find the way one day) due some reasons:
1. WebResources can "contain" some mime types (css, js, images) and of course you can't combine some types.
2. WebResources usually come from different resources (dlls) and not directly from your code, and the reference url
is "injected" into the html, so it is harder to control it.
Anyway, I will think about it...
Tuesday, October 30, 2007 9:08 AM
Hi Fargii,
I took a look on that module, it nice, but suffer from the same sickness of my first two tries (see the post) -
Every time the browser requests the WebResource.axd handler this module created an HTTP request - A big overhead.
In my module, this "sickness" is gone, and the performance is much better.
You shouldn't expect to have problem with the membrship with my module. I run several sites with membership and registration, and no problem at all.
Good luck,
Thursday, November 08, 2007 9:28 AM
i have tried your module with telerik's treeview control but i m getting 403 status code and the javascripts are not d/l at all
Thursday, November 08, 2007 10:19 AM
Hi Toils,
If you will give me a little bit more info, I will be able to help you.
Do you get an exception? does all the page loading right except the WebResource ? do it happen only with the treeview control ?
Does it happen also if you run your application on your local machine?
I tested my module with some Telerik's controls, and it work perfect. Telerik's control have VERY big webresource files, and the compression will really improve your site.
Sunday, November 11, 2007 7:55 PM
Hello again Miron,
I have tried your module. It works fine with my site except for 1 thing (as is always the case), I am unable to do postbacks, let's say a search, when you click search button, the form is not submitted (The postback is sort of blocked). I am using urlrewritting.net for my url rewrittting. I have tried using an actionless form. Once I take out your module, postbacks work again. Any clues will be appreciated.
Monday, November 12, 2007 1:16 AM
Hi Miron,
I found why I had the problem posted above, I set reflectionAlloweded="false" in CompressorSettings. When I changed it to true,
validation worked, and so postbacks started working again.
Just a thought, It is possible to combine all css files into 1 file, and javascript files into 1 file in the CssCompressionHandler and JavascriptCompressionHandler classes. That should result in some performance gain. The files could be comma separated in the form
<script type='text/javascript' src='Scripts/jslib.axd?d=~/js/a.js,~/js/b.js,~/js/c.js,~/js/d.js'></script>
<script type='text/javascript' src='Scripts/css.axd?d=~/css/1.css,~/css/2.css,~/css/3.css,~/css/4.css'></script>
The beginning of ProcessRequest will look like so:
string file = context.Server.UrlDecode(context.Request.QueryString["d"]);
// get list of files
string[] tempFiles = file.Split(',');
// determine the last modification date of the files
foreach (string file in tempFiles)
string tempfile = file.Replace("/", "\\"
StringBuilder fileText = new StringBuilder();
foreach (string file in files)
// Add some new lines so javascript doesn't get cut off
Well, what do you think, can it be done, if so please point me in the right dxn.
Thursday, November 15, 2007 7:38 AM
Hi again Miron
that was my mistake (partial trust) it works now.
well almost try the following create a derived class from telerik's RadEditor and try to compress it u get resource not found exceptions.
i do not know why but it seachres to wrong assembly to get the resources thats the reason
couldn't figure out a fix though
Saturday, November 24, 2007 2:35 AM
Hi Miron, great code here:
But you mention on this page:
"usualy this method will be place in our BasePage", well how can I achieve that? Where can I find this BasePage class? Could you provide me some steps to implement this? Im a bit new to .NET...
Thanks and keep up the good work.
Saturday, November 24, 2007 11:41 AM
Usually, In a web project, there is a class that inherits from System.Web.UI.Page , and all the other pages inherit from this class.
In this class you put all the 'share' or 'common' things between all the pages.
You can place this class in the App_Code folder or in a DLL.
Saturday, November 24, 2007 9:20 PM
well...this is on top of all my pages:
Partial Class <name>
Inherits System.Web.UI.Page
So my pages already inherit directly from System.Web.UI.Page...
ps: (sorry to bother you with these basic questions )
Andreas Ekdahl
Tuesday, December 11, 2007 7:28 AM
Hey Miron. Your component is so perfect. excellent work. I have a problem though.
when i enable page compression it kills another component i am using.
this component saves the viewstate on the server in a xml file and also runs as a httpmodule.
when i add
<add name="PageCompressionModule" type="Miron.Web.HandlersAndModules.PageCompressionModule"/>
to the web.config it just stops saving the viewstate on the server and renders it on the page anyway.
Do you have any idea why this could be. I havent found any better component then yours so i hope that
this can be solved.
best regards
Tuesday, December 11, 2007 1:38 PM
Hi Andreas,
I guess it happen because that component can't find what it is looking for in the context because of the compression happen before.
All because the response filters order.
Since I don't know the events that component is using I can't help too much.
Try to change the order of the httpmodules in the web.config
Also I don't have that component, I can't try it on my machine. (mybe you can send me that component)
Thursday, December 13, 2007 10:46 AM
I am trying to use the compression on the .aspx pages and webresource.axd files for my 2.0 web app. I've followed your instructions about putting the DLL in the bin folder and adding the modules for both page and webresource compression pieces to the httpmodules section. However, nothing I do will get compression to work on the webresource.axd files. Fiddler shows no compression is used and the file size is not reduced. The .aspx pages are compressing. Any ideas what I'm doing wrong? I also tried using the configuration section to no avail.
thanks, Surf
Thursday, December 13, 2007 12:46 PM
Hi Surf,
If you followed exactly my instructions and your site is working ok without any exceptions and the Webresources are not compressed,
The only thing that can cause them not to be compressed is that they have to perform substitution (Webresource that contains calls to other Webresource or itself) this is the only case that it will not be compressed.
You can download the full source and debug it. You need to see in the class 'WebResourceCompressionModule.cs' the lines:
if (resourceInfo.Second)
if the execution stop here.
Keep update me.
Wednesday, February 13, 2008 10:48 AM
Hi Miron, great work, thankyou! Did IE6 previously not support compression? It seems to (now anyway?) so in RequestUtil.cs line 39 so I have changed 7 to 6:
if (context.Request.Browser.MajorVersion < 7 && !isPage)
return false;
When you have tried this with the Telerik framework have you sucessfully got to to compress the JS and CSS files that telerik's controls automatically insert into the response? it inserts code like:
<link type="text/css" rel="stylesheet" href="/Code/RadControls/TabStrip/Scripts/3_6_3/tabstrip.css" />
They are inserted into the <head> section but not found by PrepareToCompressCSS() so it appears this solution will only work with self written JS/CSS files and not frameworks like Telerik. Hopefully I am wrong about this? - but this is the main reason I need compression - the framework is several mb in size and there are probably thousands of us in this situation where the bulk of the download is the JS and CSS.
Miron Abramson
Friday, February 15, 2008 8:34 AM
Hi Ewart,
About the browser version, I won't recommend you to change it to '<7' duo the fact that even Microsoft use the same condition in their ScriptResourceHandler (the component that in charge to handle all the AJAX resources - include compress them):
private static bool IsCompressionEnabled(HttpContext context)
if (!ScriptingScriptResourceHandlerSection.ApplicationSettings.EnableCompression)
return false;
if ((context != null) && context.Request.Browser.IsBrowser("IE")
return (context.Request.Browser.MajorVersion > 6);
return true;
(Thats Microsoft code !!!)
About the RadControls, it will not be difficult to modify a little my code and make it works with the RadContols.
You can see that the method 'PrepareToCompressCSS()' 'preparing' only css links that begins with '~' (to make it easier to find it's physical location). You can change it, and also change in the class 'CssCompressionHandler.cs' the way it loads the file from the disk.
That should work perfect and no too much code changes.
Good luck
Friday, February 15, 2008 9:30 AM
Hi Miron, firstly thanks for your reply. If I can get compression working with the Telerik framework and post a solution it will make a substantive difference to a lot of people, starting with me My website is presently almost unusable on slow broadband connections due to their huge libraries.
Anyway, I did actually try that already but telerik's controls are _automatically_ inserted into the head section of the response by their library but are not found by PrepareToCompressCSS().. I did debug-step through that again just now to double check and none of the Page.Header.Controls are telerik stylesheets.
Perhaps I have missed something? Seems the framework is inserting the links after the Page_PreRender or Page_PreRenderComplete events. I know you say you've tested your module with some Telerik's controls, and it work perfect, but I'm wondering it if "ran fine" but did not actually compress the pages perhaps?
Sunday, February 17, 2008 10:03 AM
I played around with the Telerik contols.
The css files are really small. The problem is with the script files that are big.
I looked on the Telerik support forums and I couldn't find where they recommended not using WebResources.
There is no disadvantage of using WebResources, more than that, if you use the Webresources, you will be able to compress them (using my module) and they will be caches in the client machine.
Personally, I recommended you to use the Webresources and use my compresssion module for best performance.
Good luck
Sunday, February 17, 2008 12:59 PM
Hi Miron, I didn't think you'd be able to solve the problem of teleriks external files but thanks very much for trying, it's really appreciated.
I don't want people to think there are "no disadvantages" to using web resources so here's a reference to Telerik's Todd Angin in his own blog with advice including Tip #9, "Use External Resources instead of EmbeddedResources". In summary using the embedded resources can increase your page size anywhere from nothing to 100%.
I have found Todd's advice to be accurate however I suspect the disadvantage of webresources would be outweighed by the benefits of compression, assuming the client supports compression - which if I follow your earlier advice of disabling IE6 compression leaves about 32% of people in an even worse off position due to the increased page size of webresources (as at feb 08). My IE6 does seem to suport compression so I'm pretty tempted to turn it on! I wonder if anyone knows if there is a specific minor/major version whereby compression can be enabled for IE6.
All the best
Monday, March 10, 2008 1:07 PM
Hi Ewart,
By saying: "I didn't think you'd be able to solve the problem" you throw me a big challenge.
I worked a little and I have a solution (even I think there is nothing bad with WebResources ;-) ).
Check the new post:
Monday, March 10, 2008 1:33 PM
Awesum, well done Miron, you have indeed kicked some ass here solved the problem - avoiding the injection of long winded EmbeddedResource tags yet still managing to compress outgoing HTML and JavaScript for the third party controls. This will improve life for what will be a large number of Telerik customers!! (and probably others).
Your module is the ONLY one I've found (after much research and wasted time trying other modules). I'll put a reference back in the client area for telerik pointing to your solution.
Excellent work, it really works well.
Sander Soeteman
Tuesday, March 25, 2008 11:41 PM
Good stuff!
Very elegant solution. This way I didn't have to dig in my client's IIS settings and it enables me to deliver everything as a complete package/build.
Thanks a bunch!
Ch. Adeel
Tuesday, May 27, 2008 8:42 PM
after using the script manager tag on page the WebResources files which are generated have the size of 460 kb aprox. so if i apply this ScriptMode="Release" they are reduced to 260 Kb. plz tell me is it correct way to reduce the size of files generated as the result of usage of script manager tag in page also should i use it during using the .dll file provided by you
Tuesday, May 27, 2008 11:24 PM
The ScriptManager will compress the ScriptResource.axd and not the WebResource.axd
To compress the WebResource.axd you have to use my library.
Friday, May 30, 2008 1:32 AM
Hi Miron,
I have referenced your lib (HandlersAndModules 188.8.131.52) to my ASP.NET 2.0 application (developed for facebook - an IFrame based application). I have to reference the one the js file from within the AJAX ScriptManager tag as shown below:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<asp:ScriptReference Name="MicrosoftAjax.js"
ScriptMode="Auto" />
I don't know how to include the jslib.axd but I have tried changing the above path reference as Path="jslib.axd?d=~/Scripts/System.Web.Extensions/1.0.61025.0/MicrosoftAjax.js". I get error like "path must end with .js". For only this js file i 'm not able to include jslib.axd and moreover the size is around 240K. I 'm testing this from Firefox 22.214.171.124 using yslow plugin. In that i see other js files are showing as gzipped. Can you guide me to achieve this.
Apart from the above problem, I have one more question.
why have not done in this way: <add verb="*" path="*.js" type="Miron.Web.HandlersAndModules.JavaScriptCompressionHandler" validate="false"/> instead of <add verb="*" path="jslib.axd" type="Miron.Web.HandlersAndModules.JavaScriptCompressionHandler" validate="false"/>
Expecting your reply eagerly and can't wait to see the gain in performance
Thanks and Regards,
Friday, May 30, 2008 1:57 AM
About the first part of your question, ScriptManager is part of the Microsoft Ajax framework. I need to see what it is doing.
I will investigate it later.
About your second question, the part path="*.js" will work fine if you run your site within the VS but on an IIS it will not work (unless you will configure it) the js extensions are not being served by the .NET 'engine' so the requests from this type will not pass through your modules. axd are extensions that configured to pass through the .NET 'engine' so your can handle them in your modules/handlers.
Friday, May 30, 2008 9:50 AM
i have added the lines in http modlues and http handlers and have added the following code after system.web
<CompressorSettings reflectionAlloweded="false" daysInCahe="30" optimizeHtml="true" compressCSS="true" compressJavaScript="true" compressPage="true" compressWebResource="true" compressThirdParityScripts="false">
i have set the reflectionAlloweded="false" as i will be using shared hosting and in the aspx pages header i am doing this
<script type="text/javascript" src="Scripts/jslib.axd?d=~/Scripts/CollapsiblePanel1.js"></script>
<script type="text/javascript" src="Scripts/jslib.axd?d=~/Scripts/CollapsiblePanel2.js"></script>
so my question is that is it good enough to apply compression on script files and other compressions which are set to true
and my second question is that ScriptResource.axd files only download on client side only once for whole website or do they download for each page so tell me some what about them plz..
Friday, May 30, 2008 2:07 PM
I didn't fully understand your firs question, about your second one, ScriptResource.axd are been served by another handler
provided my Microsoft.
Friday, May 30, 2008 6:38 PM
well i have provided the code which i am applying in my application so i was just asking you that am i applying correctly?
Sunday, June 01, 2008 9:42 PM
Hi Again,
In one particular location of my ASP.NET 2.0 web page, the RemoveWhiteSpacesFilterStream is rendering my content as
<divclass="metoo" _moz-userdefined="" style="">
<a href="http://apps/metoo.aspx?pid=83" target="_parent"> Me Too!</a>
<span class="q">some text between the span element</span>
you can see that there is no space between the div and the attribute class. If i set optimizeHTML = "false", things are working correctly. I think the regular expression is removing the needed space. Can you help me out here.
Sunday, June 01, 2008 10:16 PM
Thanks for the info.
Until I will have time to work on that, leave the optimizeHTML = "false". The different is no so big.
I will let you know if I found the problem as soon as I can.
.NET slave
Thursday, June 12, 2008 7:46 AM
Trackback from .NET slave
Compress WebResource.axd in ASP.NET
Wednesday, July 09, 2008 4:58 AM
This is a great control!
When I enable: <add name="PageCompressionModule" type="Miron.Web.MbCompression.PageCompressionModule, MbCompression, Version=220.127.116.11"/>
I get:
"Content Encoding Error
The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression."
Wednesday, July 09, 2008 12:38 PM
I guess it something with the supported encoding header sent by your browser.
I'm this days working on that issue to improve it. Keep truck the changes in http://www.codeplex.com/MbCompression
What enviroment and browser are you using?
Wednesday, July 09, 2008 7:50 PM
Hi there,
Great code here,
How do you combine javascript and css into one request using your tool? Also is the technical document up to date with your latest release that has 3rd party scripts update?
Thanks for your time and effort
Wednesday, July 09, 2008 11:28 PM
The readme.txt file inside the release archives is up to date for the release code.
However, the current release (220.127.116.11) is not supporting the combining, only the next release that will go out soon.
I will post here when it will be released.
Feel free to suggest new features in the link: www.codeplex.com/MbCompression/Thread/List.aspx
Thursday, July 10, 2008 1:19 AM
Thanks for the reply,
I actually was using this module before maybe there might some stuff in there you might want to use:
Regards DotnetShadow
Wednesday, July 23, 2008 5:02 AM
Kudos Miron,
Kol Hakavod!! Very nice work. Another Telerik customer on the verge of happiness...
Wednesday, July 30, 2008 6:13 PM
in ie6 menu is not working.
Thursday, July 31, 2008 6:51 AM
Do you get a Javascript error ? is it comes from Webresource.axd, or from normal js file?
Thanks for share it. I guess removing the condition that exclude IE6 from the compression needs to come back.
follow the changes in http://www.codeplex.com/MbCompression
Thursday, July 31, 2008 10:20 PM
Hi Miron
thank you for replaying. i m not getting any error.actually mouse over is not working for menu.
can u pls suggest me what will be the problem?
Friday, August 01, 2008 5:39 PM
hi Miron, error is resolved. div is overlaping so i change css for div tag.i place menu in that division tag. now its working in ie6. and all other browser it is working now.
thank you.
Sunday, August 10, 2008 10:09 PM
Hi Miron,
Does it compress ScriptResource.axd as well ? How much percentage of compression is employed for WebResource.axd[Original:30KB - After Compression: ?] file ?
Sunday, August 10, 2008 11:18 PM
To compress ScriptResource.axd you can just use the build-in mechanism provided by the MS-AJAX framework.
About the compression rate, I guess you have to try and find it your self.
Sunday, August 10, 2008 11:43 PM
Thanks mate.
Wednesday, August 13, 2008 9:12 PM
Hi Miron,
I followed your instructions and added MbCompression.dll into my bin folder. I then added "<add name="PageCompressionModule" type="Miron.Web.MbCompression.PageCompressionModule"/>" into my web.config by following your instructions. when i run the application i get an error page that says "Parser Error Message: Could not load type 'Miron.Web.HandlersAndModules.PageCompressionModule'. (G:\anytimerooms\web.config line 52)" i am not uploading my site to the server. i get this on the localhost. why is this ? i did not add any other info into web.config too.
Wednesday, August 13, 2008 9:28 PM
wht is the purpose of cachingStorage="FileSystem", autoMode="true", scriptsVersion="1",cssVersion="1" in web.config in compressor settings
Wednesday, August 13, 2008 9:34 PM
why do i get a error that says 'Cannot resolve symbol 'Miron'' in my web.config'?
Wednesday, August 13, 2008 10:21 PM
Follow the instructions in the Readme.txt fife withing the source code.
You must add a new sectionGroup in the web.config
cachingStorage="FileSystem" means that first time a page load, the compression module/handler loading the external files (js/css) compress them, minify, combine them (if configured) and save the results as a file and next time it will be served from that file directly.
autoMode="true" means you don't need to change any thing in your code (only the web.config) for the compression to work. Only if you want it to combine files you will need to do it manualy (see readme file).
The propose of the scriptsVersion="1",cssVersion="1" is to force the clients to update the css & js content in it's cache.
You want the client to get new js file and update it's local cache - change the number in scriptsVersion="1" (the same for css)
Wednesday, August 13, 2008 11:28 PM
Thanks miron. wht is the purpose of including the machine key when reflection is not supported on hosting servers ? can i just include the machinekey given in your quickstart example file ?
Wednesday, August 13, 2008 11:41 PM
The original Webresource handler is using reflection to encrypt/decrypt the webresource url.
When reflection is not allowed for users code (usualy on share hosting) we can't decrypt that url, so I used some tricky stuff using faked membership class that can decrypt that url. For get it work right, it is better to use 'hard coded' machinekey.
You can use my machinekey or just generate one time one for your site. (you can use this site: www.orcsweb.com/articles/aspnetmachinekey.aspx)
Thursday, August 14, 2008 4:18 PM
Hi Miron,
I wrote to you a few weeks ago and wrote:
"The readme.txt file inside the release archives is up to date for the release code.
However, the current release (18.104.22.168) is not supporting the combining, only the next release that will go out soon. "
I know you must be busy but I was wondering if there is a new version yet that combines scripts as well?
Regards DotnetShadow
Thursday, August 14, 2008 10:16 PM
A new release will be soon. By now, feel free to download the latest code in the 'Source code' tab and send me some feedback that will help me before the release.
Note that it will support manual combining and not 'blind' combining and it will stay like this on purpose.
In my opinion,'Blind' combining have more drawbacks than benefits. I think the developer should decide by himself what combine with what and where.
Monday, August 25, 2008 3:40 AM
Hi there; I've spent the morning reading the two blogs (yours and Mads). Do these solutions presume that IIS HTTP Compression is not available? JS/CSS/AXD/etc. can all be gzipped at that level, with any gains attributable to whitespace 'minifying' files ahead of time rendered inconsequential. Short of consolidating AXD requests (which I haven't seen an elegant solution for that works in all cases), I'm not sure what the value-add is here...It doesn't really seem like enterprise deployments of .NET stand to benefit from these libraries, but please correct me I'm missing something? (Side-stepping any gains realized from extended client caching...)
Monday, August 25, 2008 3:54 AM
If you have full access to the IIS settings, You can get the compression benefits without any library.
But, what if your site is hosted on share hosting and you have no access for the IIS settings?
Another benefits are minifing and combine files. Those 2 benefits can't be done by the IIS itself.
Monday, August 25, 2008 4:44 AM
Perfect. That's what I expected - i.e. not applicable to enterprise deployments.
The value-add of a trivial (whitespace-based) minifying algorithm prior to IIS compression should be negligible, I think.
And I'd definitely be interested in combining all AXD requests, but as you've pointed out, this needs to be done carefully.
(I think this is almost a guranteed addition in the next release of System.Web).
Thursday, August 28, 2008 7:13 AM
The error you mentioned shouldn't happen again, since the code parse the "Accept-encoding" header as described by section 14 of RFC2616.
Please get the latest version (not release) and confirm that it works fine? So I can go
for the next Beta version ?
Monday, September 08, 2008 11:32 AM
Hi Miron,
We have found a bug on the html minification.
This code: ... class="vehicle vehicle1"...
become: ... class="vehiclevehicle1"...
which breaks the layout of the website. It is a rare case, only happens to a few pages (out of hundreds) in our website.
Monday, September 08, 2008 2:10 PM
Thanks for reporting the bug.
This is know bug, and if you use the release version (184.108.40.206) it is recommended to disable this feature by setting the attribute:
In the coming release, this feature has been removed since the disadvantages are bigger than its advantages.
Wednesday, September 24, 2008 8:27 AM
Trackback from Tim-Stanley.com
Using Cache And Compression For Performance
Wednesday, October 08, 2008 4:34 PM
Hello Miron
I have been posting as much info as possible at www.codeplex.com/.../View.aspx?WorkItemId=2408 regarding my issue with your app. This app looks to be really REALLY incredible but I just can't seem to figure it out. Any direction you might have would be great!!!.
Tuesday, October 14, 2008 3:15 AM
Hi Miron:
First of all, i would like to thanked you for share your
knowledge, it's a very helpful article, and it's really help me to improve my knowledge about this topic .Now i would like to ask you if you had the oportunity to try it with the ultrawebgrid of infragistic? My problem is the following i've added the tag in the webconfig as you suggest in the readme.txt file for the compression of the webresource.axd, but the only problem that i've found, when i make a search in my page it brings the result that match with the search term but the ultrawebgrid never bind the results and stay in blank. Any suggestion about it? It doesn't throw and exception.
Friday, October 31, 2008 1:16 AM
I am having an issue with mbcompression working with a webservice... I keep getting undefined errors when I try to call the web service from javascript, it works when the compressions automode is set to off. Any Ideas? Everything else works great!
Wednesday, December 10, 2008 8:40 AM
Hi Miron,
Have encourage one problem with component when page has inline JavaScript code in it with a comment. When compression is done it places valid code within that comment, i.e. if have next code on the page
<script type="text/javascript">
// reshow all hidden items
$("#modNewsHighlight .jcarousel-item div".show();
if (newsHighlightCarousel != null)
The compressed version will keep comment and compression code after the comment will end up within that comment line, i.e.
// reshow all hidden items $("#modNewsHighlight .jcarousel-item div".show();
Could you assist? Unless I'm missing the settting that allows to remove the comments from the code...
Thank you,
Thursday, December 11, 2008 12:02 AM
@Matias, @ Dave & @Henry,
All the problems you described fixed and suppose to be fine.
Download the latest source from the 'Source Code' tab, compile it and use the dll from the Bin directory instead of the on you downloaded before.
Please let me know if it works for you.
I'm still waiting for you to send me some source code with your problem, so I can investigate it.
Thursday, January 15, 2009 2:26 PM
Very nice tips thanks for sharing.. Very informative..
Stonehenge Tours
Sunday, January 18, 2009 9:39 PM
I had the same problem in IE6 although appears to work fine in FF.
Thursday, January 22, 2009 7:44 AM
Hi Miron,
Couple of things..
1. Needs modification for "mironabramson.com/.../...Implementation.aspx" as the namespace has changed . Miron.Web.HandlersAndModules to => Miron.Web.MbCompression. Users downloading dll still may refer the above link .. which I did.
2. I am using ajax and ajax toolkit for asp.net 2.0 .. also I have disabled Page viewstate.
I get following error while I tried to run the web app
[HttpException (0x80004005): Server cannot append header after HTTP headers have been sent.]
System.Web.HttpResponse.AppendHeader(String name, String value) +3296862
Miron.Web.MbCompression.ResponseUtil.SetEncodingType(HttpResponse response, String encoding) +53
Miron.Web.MbCompression.PageCompressionModule.OnPostReleaseRequestState(Object sender, EventArgs e) +474
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64
Well I also tried to clear contents and headers from response.. but no much help.
Appreciate you help.
Thursday, January 22, 2009 10:06 AM
@Mandar ,
You right. The implementation page needs to be change. Soon, when I will have time, I will release new version, and I will update that page.
Is the error you described happen with the last source code (not the release version) ?
If so, can you send me some code that I can exam it?
Friday, January 23, 2009 2:31 AM
Hi Miron,
I am using dll from download section.
Version 18.104.22.168
Created: Friday, May 09, 2008, 5:05:04 PM
As I mentioned earlier I am using ASP.NET 2.0 and AJAX toolkit (AJAX Extensions 1.0)..
My guess is the errors are caused due to Ajax's partial calls..
Friday, January 23, 2009 8:28 AM
Download and use the DLL from the last source in the source code tab.
The Ajax issue was solved.
Original London Tour
Sunday, January 25, 2009 9:43 PM
Hi Mandar, Thanks for this its really very good. I would definately like to know when you release the new version and will await your update. Thanks.
Wednesday, January 28, 2009 1:36 AM
Here is another solution - implementaion is very easy and flexible,
Hectic Capiznon bloggers 2009
Friday, February 13, 2009 6:19 PM
Wow this was a very informative post..thank you very much for providing this..
Yevgeni Frolov
Tuesday, February 17, 2009 6:12 AM
Trackback from Yevgeni Frolov
Web Performance: AXD files compression.
Kampanye Damai Pemilu Indonesia 2009
Friday, February 20, 2009 11:21 AM
great info, hopes someday I can understand bout this
car accident attorney in fontana
Thursday, February 26, 2009 5:31 AM
Thanks for breaking down this information. i've been trying to figure out the new compression module.
Wednesday, March 11, 2009 8:36 PM
thanks for this info..
Monday, April 06, 2009 10:15 PM
Hi Miron
Do you have any idea the following WebResource.axd files cannot be minified?
1. The WebResource which contains function WebForm_PostBackOptions(...) (pretty sure this is the main Ajax .js file)
2. The WebResource which contains function WebForm_FindFirstFocusableChild(control)
I am using Ajax 2.0 Framework.
Also currently I am working on the combination of WebResource.axd files. Please let me know if you are interested.
Tuesday, April 07, 2009 4:22 AM
Using the latest code from the source code tab (not the release) those files can be compressed and minified.
I always interest on new things and idea.
I will be glad to hear ideas and improvements.
Wednesday, April 08, 2009 7:59 PM
Can you send me the short version of the module which includes only the Webresource.axd compression?
There are several articles about combining Webresource.axd files. One of the articles I think quite helpful is www.codeproject.com/.../fastload.aspx
However, yes, as you said, it also has the problem of not caching the request (or double it). The technique is pretty much similar to combining .js and .css files in the sense that it tries to send a short version of the URL with parameters.
The solution that I am thinking here is to combine that and the current MbCompression module to make one single request to WebResource.axd files and compress the response to minimum.
I am happy to work with you on this. Just please let me know. You've got my email above.
Thursday, April 09, 2009 10:51 PM
Hi @Joy,
You can download the full source code from Codeplex: http://www.codeplex.com/MbCompression
Tuesday, April 14, 2009 10:16 PM
Can you send me your email? I tried the contact link above to attach a demo but it didn't work.
Thursday, April 16, 2009 12:06 AM
Miron, thank you for taking the time to figure this out. Can you please proof read your artical for spelling and grammatical errors. It is very difficult to read when every third word is spelled incorrectly.
Thursday, April 16, 2009 3:14 AM
Sorry for my English. It is not my native language.
I tried to correct the spelling in the article.
Missionary Travel Agency
Friday, April 24, 2009 1:21 AM
In one particular location of my ASP.NET 2.0 web page, the RemoveWhiteSpacesFilterStream is rendering my content as
<divclass="metoo" _moz-userdefined="" style="">
<a href="http://apps/metoo.aspx?pid=83" target="_parent"> Me Too!</a>
<span class="q">some text between the span element</span>
free ebook
Saturday, April 25, 2009 7:36 AM
Thanks for the great reference post.
jimmy choo
Saturday, April 25, 2009 11:17 PM
The solution that I am thinking here is to combine that and the current MbCompression module to make one single request to WebResource.axd files and compress the response to minimum.
Sunday, April 26, 2009 4:59 PM
Great solution choosed.what I did was to create an HttpModule, using the event Pre Request Handler Execute that is one step before the handle action, do my stuff here, and then end response and jump over the hander step.Thanks for sharing.
Tuesday, April 28, 2009 4:17 AM
I ran through the readMe with the source version and am still getting the message "Parser Error Message: Could not load type 'Miron.Web.HandlersAndModules.PageCompressionModule'. "
do you have a sample web.config with all the settings in it?
Tuesday, April 28, 2009 9:09 PM
The source in this post is old and not up-to-date.
Please download the source from http://www.codeplex.com/MbCompression
and follow the implementation instructions in the readme.txt file within the source
Thursday, April 30, 2009 2:47 AM
Any luck with improvement? Haven't heard any news from you yet.
Sunday, May 03, 2009 4:10 PM
Hi miron,
When i use your MbCompression in my VS 2008, the source code :
<script type='text/javascript' src='Scripts/jslib.axd?d=~/js/a.js,~/js/b.js,~/js/c.js,~/js/d.js'></script> work perfect ;-)
And page compression work perct !
But when i put it on my on IIS 7.0 server (Windows Server 2008), it's not work. :-(
Threre is a particular config IIS to use your MbCompression ? I have got direct access to configure IIS
Monday, May 04, 2009 10:17 PM
Hi, Miron
i've got a question: I add
<sectionGroup name="Miron.web">
<section name="CompressorSettings" type="Miron.Web.MbCompression.SettingsConfigSection"/>
in configSections, and when i add records to httpHandlers, no problem, but when i add records to httpModules
<add name="PageCompressionModule" type="Miron.Web.MbCompression.PageCompressionModule"/>
<add name="WebResourceCompressionModule" type="Miron.Web.MbCompression.WebResourceCompressionModule"/>
vs underlines it, saying Cannot resolve..... pleeeease tell me, what i'm doing wrong??
Wednesday, May 06, 2009 4:46 AM
Download the latest source from the Source Code tab and follow the readme.txt file in the compression project and the example.
German Translation
Wednesday, August 05, 2009 12:50 AM
Hi gays,
Hi Miron,
I am using dll from download section.
Version 126.96.36.199
Created: Friday, May 09, 2008, 5:05:04 PM
As I mentioned earlier I am using ASP.NET 2.0 and AJAX toolkit (AJAX Extensions 1.0)..
My guess is the errors are caused due to Ajax's partial calls.. ?
Wednesday, August 05, 2009 12:54 AM
See my last answer to @Casper
Tuesday, August 11, 2009 2:27 AM
Hi Miron
thank you for replaying. i m not getting any error.actually mouse over is not working for menu.
can u pls suggest me what will be the problem?
Tuesday, August 11, 2009 8:47 AM
Hi Miron,
I have followed all the steps defined in the ReadMe file. I am getting the error:
Could not load type 'Miron.Web.HandlersAndModules.PageCompressionModule'
I am jotting the steps that I did so that you can tell me where I was wrong:
--Copied the MbCompression.dll to Bin
--added the : <sectionGroup name="Miron.web">
<section name="CompressorSettings" type="Miron.Web.MbCompression.SettingsConfigSection"/>
--added to existing modules
<add name="PageCompressionModule" type="Miron.Web.HandlersAndModules.PageCompressionModule"/>
--Added the <Miron.web> section
One more question is , does this compress the Scriptresources too?
Tuesday, August 11, 2009 9:38 AM
@Madmat, you are mixing versions.
Download the latest source code from the "Source Code" tab from:
And follow the example in the 'QuickStart' web project.
MbCompression does NOT compress ScriptResource since 'ToolkitScriptManager' from the AjaxControlToolkit does it very well.
Thursday, October 08, 2009 3:17 AM
Hi, i can not combine anything. it works. i can see the jslib.axd handling my js. but they doesn't combine.
Also i use a framework (dotnetnuke) that include JS in the Body, is impossible to auto combine them?
anyway CSS are in the header, and they doesn't combine also
what im doing wrong, it compress and minify. but doesn't combine
automode is set to true
the module is working in www.mcjuegos.com now, you can check it
this are the settings
<CompressorSettings compressCSS="true"
<add key="~/DontCompressMe.aspx"/>
<add key=""/>
Thiago Burgo
Sunday, October 18, 2009 2:36 PM
Hi Miron,
Congrats for your great work.
I have a problem, after add MbCompression in my project i had a problem with Exception engine, the yellow page (with exception summary) disappears, the brownser cannot decompress the page. Other problem happens when activate Outputcache, the brownser render a crazy content, Can you help me?
Thank you.
Wednesday, October 21, 2009 3:20 PM
Great post
Friday, November 13, 2009 8:51 PM
Hi Miron,
i follow your blog and this is a great article like others.. Yesterday i downloaded your project's latest version.
When i open QuickStart sample in VS2005 to run it, it crashed in default.aspx (Microsoft JScript runtime error: 'swfobject' is undefined).
Also MbCompression CS Project can not build, i think something is missed or unfinished for next release??
i m using vista, iis7,ie7 or ff3.5, VS2005 and 3.5 components are included..
Thank you..
Saturday, November 14, 2009 4:01 AM
I checked again, I downloaded the latest version from mbcompression.codeplex.com/.../...ableCommits.aspx
and it run fine. No errors. Nothing is missing there.
Sunday, November 15, 2009 10:33 PM
Yes you are right, there is not unfinished code..
but these code lines does not work on .net2.0 and a simple change below;
in WebResourceCompressionModule.cs line 256
string[] strArray = assemblyName.Split(new[] { ',' });
string[] strArray = assemblyName.Split(new char[] { ',' });
in EncodingManager.cs line 118
string[] headersParts = _RequestHeader.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
string[] headersParts = _RequestHeader.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
but still QuickStart web site has got a javascript error ..
firebug console output;
swfobject is not defined
swfobject.embedSWF("test.swf", "... "120", "9.0.0", "expressInstall.swf" default.aspx (line 11)
jQuery is not defined
$("tr:visible",table.tBodies[0]).filter(...g Zebra widget",time);}}});})(jQuery); jslib.ax....6.js&v=1 (line 49)
where can be problem? if you can show me some way, maybe i can find the problem..
thank you..
Tuesday, November 17, 2009 12:54 AM
Hi there,
Very Nice library....i am using it for compression of js,css,WEbResource.axds and ASP.Net pages but i am having a problem with images.....
after applying the compression everything is working fine......no broken css, or js and webresource is also getting compressed along with ASP.NEP pages but strangely all the dynamic images have dissapppered.........the rest of the images i.e in the App_themes folder, and images folder are getting loaded....but when getting a image dynamically( such as to show in a datalist) it gives error code 500...
here is the error msg
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Could not load file or assembly 'MbCompression' or one of its dependencies. The system cannot find the file specified. (C:\whb\Sites\18448\Web\web.config line 81)
Source Error:
Line 79: <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=184.108.40.206, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 80: <!--<add name="HttpCompressModule" type="DC.Web.HttpCompress.HttpModule,DC.Web.HttpCompress"/>-->
Line 81: <add name="WebResourceCompressionModule" type="Miron.Web.MbCompression.WebResourceCompressionModule, MbCompression"/>
Line 82: <add name="MbCompressionModule" type="Miron.Web.MbCompression.MbCompressionModule, MbCompression"/>
Line 83: </httpModules>
Source File: C:\whb\Sites\18448\Web\web.config Line: 81
how do i solve this...........please it is urgent....
i have also posted this as an issue at CodePlex
Thursday, December 10, 2009 1:12 AM
Hi Miron,
Have you tested this library in Mono .. if so will you be able to post web.config settings for the same .
Thursday, December 10, 2009 1:46 PM
nice work, i download your sample code, but could not see the compress sample web page. there are 3 aspx files, same file size even if i disable compression. please advice to me which the file you have compressed. and add some testing result as well using ySlow or Firefug.
thank you
Sunday, March 07, 2010 10:55 PM
Hi Miron,
At first thank you for this library.
I get error:
Content Encoding Error "Content Encoding Error " for firefox
Could be it related to other compression/manipulation modules like Snapsis PageBlaster for DotNetNuke sites?
If so, should we place you module in the end of <httpmodules> section?
Kind Regards,
Tuesday, March 09, 2010 12:29 AM
when using compressPage="true" and aspx page output caching together, cached html content will be gzipped again, causing erroneous output on browser window. is there a way to prevent this?
Thursday, March 25, 2010 9:09 PM
Nice site
For the css to be compressed, the must be in the same directory...
Thursday, March 25, 2010 9:45 PM
You have to exclude those files from been compressed.
Thursday, March 25, 2010 9:46 PM
@Jonas ,
Try the latest version I uploaded. The bug should be fixed.
Thursday, March 25, 2010 9:48 PM
I havn't tested the library in Mono.
I will be glad if someone will do and report me the results and changes in code if needed
Thursday, March 25, 2010 9:49 PM
@ihsan ,
Thanks for the suggestions. I uploaded the fixes.
I also fixed the js errors.
Thursday, March 25, 2010 9:50 PM
@Thiago ,
Get latest version of the code.
The bug was fixed.
sonnerie portable gratuite
Friday, April 16, 2010 1:24 PM
This article gives the light in which we can observe the reality. This is very nice one and gives in depth information. Thanks for this nice article. Good post.....Valuable information for all.
dot net chat
Sunday, April 18, 2010 10:29 PM
Thank you for a great piece of info. Where else could anyone get that kind of information in such a perfect way of writing? I have a presentation next week and it is extremely helpful for me.
Medical Tourism IN India
Monday, April 19, 2010 5:47 AM
fully understand your firs question, about your second one, ScriptResource.axd are been served by another handler
provided my Microsoft.
Kids Games
Sunday, April 25, 2010 4:24 PM
This is a nice site you have here, information is carefully written and well-explained. I have been learning myself on .Net a while ago but haven't really worked in a company. Thanks for the info you posted here, it is a big help to everyone who browses the internet and researching. Good job!
phone answering service
Thursday, May 13, 2010 11:27 PM
Hey thanks for sharing. excellent read. I will definitely forward to my colleagues.
zoya nail polish
Friday, May 14, 2010 8:21 PM
I am happy to find so many useful information here in the post, thanks for sharing.
Saturday, May 15, 2010 2:15 AM
very good idea dude,Do u have another blog?? i want to read Regards
guaranteed bad credit loan
Sunday, May 16, 2010 11:58 PM
there are a lots of blog available on that theme but your best so far...that's why I am commenting here
Simulateur De Pret Auto
Wednesday, May 19, 2010 12:25 PM
Really impressed! Everything is very open and very clear explanation of issues. It contains truly information. Your website is very useful. Thanks for sharing. Looking forward to more!
piyush group
Friday, May 21, 2010 10:11 PM
nice post i had bookmarked your blog, feel free to visit my blog at
batu permata
Sunday, May 23, 2010 5:00 PM
WebResource.axd, that became very large (specially when using AJAX) are break down for unknown reason when you try to compress them that way. That result is you will not compress them, and your client will download big files that contains js or css (sometimes of 70kb and even more)
beijing tours
Sunday, May 23, 2010 9:29 PM
your site impresses me with neat structure and apprearance, always like site that shares useful info...
web hosting mumbai
Sunday, May 23, 2010 11:17 PM
nice post i had bookmarked your blog end .i had very much like this
Addiction Treatment
Monday, May 24, 2010 2:22 AM
Its a nice comment.I love reading it in detail and bookmarked it.I found some real value in the content.Loved it.
cara meninggikan badan
Monday, May 24, 2010 3:13 PM
I started to make tests and to play with WebResources files. Only WebResources that contains 'text' content (css, js, text) can be consider as compressible. Images are not.
Sell Junk Car
Thursday, May 27, 2010 3:27 PM
I am bookmarking this post. Its Awesome.


text:
"I'm Tom Brady, I'm from Staten Island and I predict Giants will prevail," Tom Brady told some poor reporter at 1010 WINS who drew the short straw. When you're scraping the bottom of Rick Reilly's barrel for Super Bowl week stories, it's probably time to rethink things.
[1010 WINS; h/t to Rob G.]

subset: commoncrawl


text:
FAA/AOPA Committee Pushes AOA
A report on approach and landing loss-of-control accidents has emerged from a work group co-chaired by the FAA and AOPA, recommending that GA "embrace to the fullest extent" angle-of-attack (AOA) systems and work to improve pilot decision making. The�work�group advises the General Aviation Joint Steering Committee. Its focus was derived from an FAA overview that found loss of control accounted for 40.2 percent of fatal general aviation accidents that took place from 2001 to 2010. Particular areas of concern included flying after a period of inactivity and transition training, as well as pilot decision-making.
Pilot decision-making remains a focus of safety concerns in general, as 85 percent of fatal accidents can be traced to pilot actions, according to AOPA. The report notes that controlled flight into terrain accidents have decreased and it attributes that improvement to new in-cockpit technology like terrain-aware GPS units. AOA systems, says the report, offer pilots awareness of their margin over stall and account for weight and acceleration differences, by design. The report notes that AOA systems offer substantial safety benefits but notes that cost and regulations may produce barriers for the pilots of light aircraft. The FAA "will need to identify the right level of certification," it says. It notes that the FAA should address these issues "with streamlined processes" for certifying and installing new technology that offers "a high probability of safety benefits" balanced against "low safety risk."�Find the full report, here (PDF).


text:
Before you buy or sell it is important to know what the price of other homes in the Beaverton, Oregon Real Estate market are priced at and are selling for. The Aloha neighborhood of Beaverton, Oregon goes east from 209th to 170th and then South from Tualatin Valley Highway to Farmington Road. There are a few parks in the area including Aloha park, Butternut park, Rosa park and Hazeldale Park.
As of 01/27/2012 here are the Beaverton, Oregon real estate home sale stats for the Aloha Neighborhood. This week I've changed the stats to only count the sales from the last 7 days to give a better reflection of what is going on in the neighborhood during any given week.
For a complete list of homes for sale in the Aloha Neighborhood of the Beaverton, Oregon real estate market, please call or Click here, to request an update.
If you are interested in selling your home for top dollar in the quickest amount of time, please contact me anytime at 503-524-9494 or Click here to send me an e-mail requesting further information.
Todd Clark and The Friendly Home Team
Broker / Marketing Coach
Knipe Realty NW
Phone: (503)524-9494
Fax: (503)746-9573


text:
We all know 2012 was a big year for Instagram and Internet GIFs, so it was only natural that Gifstory would eventually appear in the App Store. The newly launched startup aims to combine the allure of photo filters onto animated pictures, all while allowing you to garner a band of followers to Like and comment as they please.
Until now, GIFs have generally been used in Web forums, Tumblrs, and comment sections to go where words cannot (Tumblr blog WhatShouldWeCallMe being the prime example of this discovery). These GIFs also derive from existing videos, such as clips from movies and TV shows or a snippet from a music video. With Gifstory, users can record their own mini movies without the pain of manually cutting and creating their own stop-motion attempts, then apply vintage filters for a touch of hipster. Because everyone knows there's no point in GIFs of kittens cuddling in a basket if it doesn't come in Sutro.
Gifstory is currently in private mode, so if you want to jump on being the first to receive updates, sign up to the site's mail listing here. The app is currently slated for iOS, with an official launch date some time in February. If you can't wait that long, however, you can still make your own filter-less GIFs with iOS's Cinemagram.


text:
Linked by Thom Holwerda on Wed 22nd Nov 2006 22:33 UTC, submitted by Rich Morgan
Open Addict reviews Slackware Linux 11.0, and concludes: "The latest Slackware release is more of the same pure Slackware goodness from Patrick and Company. It doesn't drastically diverge from 10.2 but adds some new software packages and includes some newer kernel support. Hardware detection is pretty much as basic as it can be with much of the configuration and tweaking on you - the end user. Thankfully, it isn't hard to configure Slackware through its easy to find textfile-based configuration files, but newbies might be lost."


text:
Photo Friday: What can a Math Olympiad Tell You About Your Relative?
|Math Olympiads patch from the late 1980s
I had trouble photographing this patch for legibility. Even with the Macro setting enabled, the embroidery made capturing the object a challenge. I basically kept playing with different settings and zoom until I could finally read the word "Math Olypiads" clearly.
What I also loved about the patch, is that it came with a document. The document has a date on it, so I know when I received this particular patch.
|Certificates help tell the stories of our ancestors (or ourselves)
I now know that I received this particular patch from participation in the 1987-1988 program. I find it funny that the certificate reads "Mathematical Olympiads for Elementary Schools" and then mentions that I went to a Middle School.
I can also see the signature of my principal Mrs. L Sheehan. Mrs. Sheehan was a tough principal and often set my mischievous brother straight. When I got into trouble, she was firm but gentle as I generally didn't make trips to her office. Seeing her signature doesn't tell you much about Mrs. Sheehan and how she interacted with my brother or myself. But, my memories do. There is so much that can be found in documents like these, if we take the time to really capture our stories.
What the patch and certificate does not say, is what I actually did to participate. And, they don't say how well I did or did not do. The question then becomes, does it matter? I'm not sure.
I did well enough in math during elementary and middle schools to be invited to participate in the program (back then it wasn't open to everyone in my school). So, to have these items in my personal history stash tells you that I had an interest or talent in math at this time of life.
With my Photo Friday and Treasure Chest Thursday, I try to encourage people photograph the stuff in their attics, closets, under their beds, and around their house. Why? Because there are clues all around you about the individuals in your family, if you know where to look. These clues are not found in birth, marriage, and death record databases. But they do give you insight into the people on your tree. I also hope that by sharing my journey in photography, you can see that with a little practice, anyone can photograph the stuff that enriches their family history. So... if you want to do something truly awesome this Christmas Season... grab your camera, get into your family's possessions and start photographing their things. Then talk about those things and record the memories. Have fun, and bring on the Holiday Season.


text:
Talk:Cub Scout Computers
From MeritBadgeDotOrg
| Please familiarize yourself with Help:Talk pages before posting on discussion (a.k.a. talk) pages.
— Use headings, indentations; and please, always sign (~~~~) your posts. (See Help:Talk pages for details.)
— Ask your Scouting/advancement-related questions on our forums... several Scouters will be happy to help you.
Broken External Links - MS Encarta
Links to Encarta from below are broken ... I looked for suitable replacements without success. The problem is most are too complex for [Cub] Scouts.
Requirement resources
- Cub Scout Computers Belt Loop Requirements
- 1. Parts of a Personal Computer - Computer hardware
—Preceding unsigned comment added by Jamesryan (talk • contribs) November 18, 2009. (Please, sign and date your posts on talk pages.)
- Yes; unfortunately... Encarta is dead! (There are more than a few Encarta links here, I dare say, that are slowly getting fixed; but, some still remain and need attention.) Any help from our contributors would, of course, be most helpful. —RWSmith (Bureaucrat), 14:06, November 5, 2011 (EDT)
Academics Pin Requirements - Error
Academics Pin Requirements
- Earn the Computers belt loop and complete five of the following requirements:
- 2. Make a list of 20 devices that can be found in the home that use a computer chip to function.
The requirements are only 10 devices. (Ref: Scouting.org)
—Preceding unsigned comment added by RTeynor (talk • contribs) November 2, 2011. (Please, sign and date your posts on talk pages.)
- Fixed. Thanks, —RWSmith (Bureaucrat), 14:06, November 5, 2011 (EDT)


text:
Hii..Friday is here,one more lousy day to go n then two days are stretching lazily before us.This week went pretty fast,as we had a holiday,all for us on Tuesday as well.Thanks to all of you for all those kind words about my Sadya n wishes for the New year ahead..:)
So hope you all are doing great,All the cricket fans n fanatics must be having a gala time ,as IPL is going to kick off tomorrow..sobs sobs..Have I told you that I hate cricket n swear cricinfo n cricbuzz guys about 100 times a day..My better half is crazy about this bull shit game(No sorry,yeah the game pisses me off that much,takes a big part of the whole damn attention meant for me!!) ,n the moment he arrives home,he is all ready to get glued to the couch..n then he wont know even if the whole condo is bombed off..I goes all bonkers n starts yelling n so sometimes in an attempt to stop our neighbor's dialing 911,he mutes n watches it while am off in kitchen ..phew..!!
After almost 3 days of continuous cooking and eating of Veg food , I lost my appetite as well as interest for cooking..So you see,very soon I'll be out of posts..I just have this n another one in my drafts..:P..Yesterday It seemed like someone had put some super glue on my couch n my rear end simply refused to move all the time.I was feeding myself on Sarkkaravaratti packet all the day,n didn't want anything else.Finally I finished 2 whole packets yesterday evening,with a smug satisfaction.Then TV showed me a woman ,panting n struggling to pull down a tiny top over her over-sized body (timing..u know) n my horror-struck soul,kicked me up n I got out for a long walk,but then It was too cold that I jumped inside in a much faster pace.There ended my weak will..Haa..If at all,I had to eat something,then it was to be some hot spicy Non-veg n I had a strong aversion to kitchen,so he bought some spicy Chicken fry and I was a happy soul.Even my blog is craving for some kick ,I felt n so I am back with an Erivum puliyumulla Nadan Meen curry ( Hot n Sour traditional Kerala fish curry) with our good ole' Kappa (Tapioca aka Yucca root) ..The ever –so-famous n craved for combo.. Un-avoidable item of Kuttanadan Cuisine n toddy shops n house boats of Kerala..
I have posted both before,in two different posts.Here a kappa-chemmen combo…n in one of my oldest posts,this Meen curry with the clumsiest pic ever.So when I made this again,I thought time has come to post the deadly combo ,n yeah ..also to flaunt my cute dishware's..wink wink..:D ..That my Kappa Boat n Meen curry inside a Meen(fish)..:D
I get so many hits all the time for the word " Kappa Meen" ,as it happens to one of the prominent n tastiest dishes of Kerala cuisine..n I do get mails also all the time ,asking about this.So that why I have come up with this now..:)..For all the big fans out there..I am going to tell you all that you plan to ask me..First question : Where..?..For NRI's,Yucca root is available in all Indian stores and I have seen it in Fred Meyers as well.n when you buy,make sure it has no color change anywhere ,n it shoud be hard n brittle kind.While cleaning,which happens to be pain n an art which I have not mastered yet n which my Kutts do (it is his fav combo) ,you should skin them with brisk moves of knife n then chop roughly into cubes. After cutting,you can take a small bite.It should be mildly sweet.If you feel its bitter,then oops sorry n you can happily find a place to dumb it all ..RIP.
About fish,they use this tastiest Karimeen (Pearl fish) back there,but here the only Kari meen I can dream of is my karinja meen(burnt fish..kari is a malayalam word means burnt ) I do it with Tilapia usually,but the one you see here is Salmon ..Its got more Omega 3 than Tilapia n is slightly more fishy than Tilapia,with skin n the oils.The Curry came out quite tasty n I have quite accomplished well to make a decent tasty meen curry.Mastered it in course of time.So I am sharing it all fresh again with you.
For Kappa Puzhukku( Mashed n tempered Yucca root):
Do as it in here .Dont over cook it,as we need to drain the water away. It should be like soft n mash-able'.This time I added some slit green chillies with Kappa.
Drain away the water as much as you can.If you like it as bite sized pieces then no need to mash..
For tempering this time I added,shallots/onions along with mustard,coconut,red chillies n curry leaves n it came out superb.So dont skip that.
For Meen curry ,you can have a look at my old one following this link ,I still have the same old clumsy pic,n I don't feel like removing it..Nostalgia u know..:D
Heat oil,preferably coconut oil and do the tempering with 2 tsps of Mustard seeds,1 tsp fenugreek seeds,3 broken red chillies n lotsa curry leaves.
Add a Tbsp of mince garlic n a tbsp of julienned ginger n sauté till raw smell goes..
Throw in a cup of sliced shallots n 4 slit green chillies n sauté well till soft.
Make a paste of 2-3 tsp chilli powder,2 tsp coriander powder,1 tsp turmeric powder,1 tsp pepper powder and add it to the pan and sauté till raw masala smell goes.I personally love a tsp or 2 of Nirapara silky Fish Masala.If you are not using that then use a pinch of hing (asaofetida) n lil more of fenugreek powder than I have mentioned towards end.Always taste before adding things.
I used 3 coccum's plus a small bit of tamarind also for the extra sour kick.Soak it in a cup warm water and add it to the pan.
Let it come to a boil,then simmer n slide in 1lbs of cleaned cut fish pieces.Cover it with gravy,close n simmer till fish is cooked.Flip it once in a while n dont over cook or stir it with spatula as fish may break.Always rotate/swirl the pan so as to stir the gravy n lightly flip the fish.
After some 15 minutes ,fish will be all set..(Check though)
Taste n remove the cocums if its too sour for you.Its tasty when its lil too sour n too hot..both balances each other well.
Now sprinkle half a teaspoon of fenugreek powder over it.
Mash some curry leaves in oil very well,n pour it over the curry.Close n keep it for an hour or two before use.
Tastes best the next day..!!
..n this being a Kerala special,am sending this to Shama's village special event.. :)
Pratibha ,Madhu n Priya Sriram has passed me this sweet n lovely award..thanks so much for thinking of me sweethearts..:)
I pass this on to all my dear friends who always visit n comment me..I love your blog..So pleas take it with you.. :)
Also Food Buzz sent me a yummilicious Wild Mushroom Agnolotti pasta of Buitoni.The little pillows looks n sounds yummy,generously filled with all those imported Grana Padano n Parmesan Cheese n all yummy mushrooms.I'll come up with a review after tasting it..Thanks a ton FB team..!!!
Have a great weekend all of ya..:)


text:
Author Notes: When my younger daughter was in kindergarten she liked all vegetables except for cauliflower. She knew this for a certainty, without ever having tasted it. Once when we were visiting my parents in Maine, my mother presented her with a bowl of thick, creamy pale ivory soup, which she dubbed "Mystery Soup." It was lapped up speedily, along with a request for more. It was some years before we confessed just what made Mystery Soup so good, but now it is a family staple. I have played with this over the years, but it remains unapologetically The Essence of Cauliflower. Just before serving, add small amounts of creme fraiche and lemon juice to accentuate the flavor. You can substitute a shot of cream for the creme fraiche, but only a couple of tablespoons are necessary. —calendargirl
Makes: 4 - 8 servings
4 - 5
tablespoons unsalted butter
large onion, chopped
cauliflower, cut into florets
salt (kosher salt preferred)and white pepper
to taste
4 - 6
cups best chicken broth or stock
2 - 3
tablespoons creme fraiche
tiny squeeze
fresh lemon juice
- Melt the butter in a large heavy-bottomed saucepan or dutch oven over low to medium heat and add the onions, cooking and stirring until the onions are translucent.
- Add the cauliflower and stir everything around for 4 or 5 minutes. You want the veggies to soften and take on a bit of color, but not brown. If you need to add another bit of butter that's fine, it all depends on how much cauliflower you have. Season with salt and pepper (you will correct the seasoning before serving), and stir for a minute or two more.
- When you can gently pierce a cauliflower piece with the tip of a sharp knife, add about a cup of the broth or stock, a bit at a time, still stirring, and continue to cook until most of the liquid is gone.
- Set aside to cool slightly for about 10-15 minutes.
- Place contents of your soup pot into the bowl of a food processor and process until quite smooth, adding another couple of cups of the stock a little at a time, and scraping the bowl as necessary. This may take a good five minutes.
- Return the pureed cauliflower to the soup pot and place on medium low heat. Stir in the rest of the stock and cook for an additional ten minutes or so.
- When you like the consistency, check the seasoning: tasting and adding salt and pepper as necessary. Just before serving, remove from the heat and stir in the creme fraiche and a squeeze of lemon juice, also to taste.
- This recipe is a Community Pick!
- This recipe was entered in the contest for Your Best Cauliflower Recipe
More Great Recipes:
Soup|Lemon Juice|Vegetable|Serves a Crowd|One-Pot Wonders|Make Ahead|Winter|Fall


text:
From OLPC
| This activity is now hosted at the Sugar Activity Library.
The information here is likely to be out-of-date. Consult the new pages for "Record" first:
also see: Funky Record and Record+
see more templates or propose new
A project by Erik Blankenship and Bakhtiar Mikhak of Mediamods, with help from Dan Williams. Record can record photos, audio, and video.
Description & Goals
Record is the basic rich-media capture activity for the laptop. It lets you capture still images, video, and/or audio. It has a simple interface and works in both laptop and ebook mode. An interface for sharing pictures among multi XOs during a picture-taking session is a hallmark of the Record activity.
The Record activity provides a simple application for:
- Taking pictures
- Recording video
- Recording audio
- Stop-motion photography See Animation
- Time-lapse photography
- Creating 360 panoramas
- Viewing slide shows
- Annotation and tagging facility
Record stores images and audio in the Journal, from which they can be used by other activities, such as Draw, Write, Etoys, and Browse, as well as Memorize and some other games. Also, images can be transferred to a USB storage device from the Journal by "drag and drop".
The "Record" activity uses the built in camera and microphone to let children record and share their pictures, videos, and audio files. One of the cool things about sharing on the XO is that it happens effortlessly—when you take a picture with one XO it shows up on both your and your friends' XOs too. In this way, we envision classrooms of children working together to document their neighborhoods.
The Basics
Launch the record activity by clicking on the "eye" icon on the taskbar. Record takes about 30 seconds to start up, as it has to initialize the camera. The camera itself is located on the right side of the screen; the microphone is located on the left side of the screen. Once Record is started, you should see a video image in the middle of the screen; the green LEDs above both the microphone and camera will be illuminated.
Record starts up in photo mode; you can switch to video or audio using the tabs at the top of the screen.
To take a picture, either click on the small circle under the video frame or push the circle button on the right-hand game controller. (Using the game controller, you can put the laptop into ebook mode, which may be more convenient in some use conditions.) Each time you take a picture, a thumbnail appears in the tray at the bottom of the screen and it is automatically saved in the Journal. (The tray can be scrolled left or right as it fills up by clicking on the arrow icons at either end.)
The Record activity supports collaboration through both the invitation mechanism and the share-with-neighborhood mechanism. In both cases, the collaboration manifests itself in sharing of still photos. As each participant in the collaboration takes photos, videos or audios, thumbnails of these media appear in the trays of every participant, where they can be saved and viewed. Note that Record does not support real-time sharing of video or audio.
Advanced features
- Record has a built-in timer that will delay the shutter by 5 or 10 seconds after you click.
- Video and Audio modes include a duration control: you can record movies and sound up to 15 seconds (default); 30 seconds; or 45 seconds.
- Both video and still modes have full-screen modes.
- Hovering over a thumbnail gives you an option to delete the image or copy it to the clipboard.
- When you click on a thumbnail, it is previewed in the video window; you can give the thumbnail a title.
- Clicking on the video inset restores video mode.
- Clicking on the info tag brings up a detail view for adding tags. This is especially important for adding descriptions to the files you create. Describing your documents well will improve your recall of them from the Journal or through Search later on.
Visual Design
|No media
The media format that the Record Activity stores video as is Ogg, and is *.ogv http://wiki.laptop.org/go/Ogg#Theora After transferring the video file to a usb thumbstick and then to another PC, you can use a program such as the free VideoLAN software 'VLC' ( http://www.videolan.org/ ) to playback the video. (Relocate this info if necessary)
Feature Requests
Clicking the above link shows
- Stop motion and other requests
- extra Iris control of camera would be a nice feature.
(I'd also like to know if there's a way to easily add a iris + or - control above and beyond the auto-iris features inside the software. That might be a nice feature, but I don't know if it's possible depending on the hardware.)
- (add more feature requests here.)
- a simple way to upload videos to a YouTube account, and photos to a flickr account.
According to spec sheets for the ccd and the camera controller, both are capable of shooting and capturing in RAW format. I'm not sure what could/should be done with this, but it's a very fascinating possibility.
Implementation Discussion
Version History
Newest Record source code: [1]
sudo yum install git mv Record.activity Record.activity.old cd ~/Activities git clone git://dev.laptop.org/users/dsd/record Record.activity # Restart sugar with ctrl+alt+erase
To update the activity to the newest version,
cd ~/Activities/Record.activity/ git pull
If you make any good changes, you should contact Daniel Drake with patches.
- None available
Functional Test
Activity Summary
|Media, Audio, and Video Players
|Activity group:
|Short description:
|warning.png"Record is the basic rich-media capture activity for the laptop. It lets you capture still images, video, and/or audio. It has a simple interface and works in both laptop and ebook mode. An interface for sharing pictures among multi XOs during a picture-taking session is a hallmark of the Record activity." cannot be used as a page name in this wiki.
|Repository URL:
|Available languages:
|Available languages (codes):
|Pootle URL:
|Related projects:
|User:DanielDrake, User:Bakhtiar_Mikhak
|URL from which to download the latest .xo bundle
|Last tested version number:
|The releases with which this version of the activity has been tested.
|8.2.0 (767)
|Development status:
|Ready for testing (development has progressed to the point where testers should try it out):
|smoke tested :
|test plan available :
|test plan executed :
|developer response to testing :
|URL from which to download the last .xo bundle that works with old releases
|Activity version number:
|The releases with which this version of the activity has been tested.
|7.1.1 (653)
|Development status:
|Activity bundle
|http://dev.laptop.org/~cscott/bundles/Record-59.xo +, and http://dev.laptop.org/~dsd/record/Record-56.xo +
|Activity genre
|Media, Audio, and Video Players +
|Activity group
|Activities/G1G1 +
|Activity version
|59 +, and 56 +
|Contact person
|Jedierikb +
|Localization URL
|http://www.mediamods.com/public-svn/camera-activity/Record.activity/po/Record.pot +
|Short description
|warning.png"Record is the basic rich-media capture activity for the laptop. It lets you capture still images, video, and/or audio. It has a simple interface and works in both laptop and ebook mode. An interface for sharing pictures among multi XOs during a picture-taking session is a hallmark of the Record activity." cannot be used as a page name in this wiki.
|Software release
|8.2.0 (767) +, and 7.1.1 (653) +
|Source code
|http://git.sugarlabs.org/projects/record +, and http://dev.laptop.org/git?p=activities/record +
|Sugar icon
|Team member
|DanielDrake +, and Bakhtiar Mikhak +
General Public
Language support > POT
Language support > Pootle
Mimetype > Mimetype application
Mimetype > Mimetype ogg
Pages monitored by OLPC
Participate > Tasks > Cleanup > Activities migrated to Sugar Labs
Projects > Software > XO source
Sugar > Activities
Sugar > Activities
Sugar > Activities > Bundled > Core
Mimetype image
Mimetype jpeg


text:
February 16, 2018
If you've seen some crazy awesome sock designs out there, you probably have School of Sock (formerly known as Sock 101) to thank. So how did this Lee's Summit-based company get off the ground and make national waves? We sat down with the founders — Kelly Yarborough, Dave Feyerabend, Jason Grill and Lea Bailes — to learn more.
We thrive off of teamwork — that is why these specific founders were involved. Two of us had been heavily involved in retail and knew the business, another one of us specialized in PR and another in marketing. We thought all of us coming together would be very beneficial in helping us grow our brand.
At the time, socks were getting big but not at the level they are today. Based off of extensive research, we were confident socks would become very popular. That is when we sourced the highest quality socks we could get our hands on while still being able to provide them to our customers at a lower cost than the competition.
In the beginning, we were getting multiple requests every day for donations to different charities, and we got to a point where we couldn't just give away our product for free. However, we still wanted to help these causes. So what do we do? We came up with an idea where we could produce charity-specific socks for all of these requests at no cost to the charity and provide them with a donation of $3/pair sold. After some trial and error, we figured out that the most successful charities were the ones that put a marketing plan around the socks and didn't solely rely on our website for the sales/donations. Now we typically partner with charities that really want to push their causes with the socks because that gives them the most return in donations.
It was a very unique experience. We got the call out of nowhere asking us if we were interested in being on a TV show, and we got excited. But at the same time, we weren't sure if it would ever come to fruition. Then all of a sudden, it was happening. We were playing the waiting game, and then the next thing we know, we were on a plane to New York to start filming. We were able to bring Rebecca Minkoff and Gary Wassner on board because of the show. They have provided us with great connections, and their experience in the industry has really helped our growth as a company.
We all live here. All but one of the founders were born and raised in KC, and the one that wasn't now lives here and is proud to call it home. We all love the people of KC and their loyalty to KC companies.
While we are known for all of our crazy socks and Sock of the Month, we are really popular in custom socks. A lot of people aren't aware of that side of the business, even though we have produced custom socks for hundreds of companies, both big and small. These companies include large ones Facebook, Google and Microsoft and local ones like Boulevard Brewing, J. Rieger, Charlie Hustle and many more.
Photos courtesy of School of Sock.
Call 816-251-1432
Email email@example.com


text:
Starting next month, United Airlines will let users watch hundreds of movies and TV shows free on their laptops and Apple iOS mobile devices.
The airline said customers with compatible devices will be able to watch more than 150 movies and nearly 200 TV shows without having to pay any fees.
To watch the free content, iPhone, iPad and iPod Touch users will have to download the latest version of the United app. The airline said laptop owners will have to download and install a browser plug-in to watch certain types of content. Users will be able to download the app and plug-in at any time during their flight without having to purchase United Wi-Fi, the airline said.


text:
200 reasons to buy a Sony Ericsson Xperia Play
Last year around this time, one of the hottest rumors on the Android blogs was the PlayStation Phone. Just the idea of PlayStation branded phone had many of us excited, but the final product that Sony Ericsson released as the Xperia Play left some of us underwhelmed. Despite what you think of the device, ... Read More »


text:
First Lady Michelle Obama on Wednesday congratulated this Southern state for a more than 13 percent drop in its child obesity rates, saying its example should inspire the rest of the country.
It's the reason she made Mississippi the first stop on a two-day tour to promote her signature effort, the anti-childhood obesity campaign she launched three years ago called "Let's Move."
In remarks at an elementary school near Jackson, the first lady cited new research showing that childhood obesity rates among elementary school pupils in the state had declined by 13.3 percent between 2005 and 2011.
"What's happening here in Mississippi is really what 'Let's Move' is all about," she told an audience of state officials, school nutrition professionals and parents. She urged them to keep on doing what they've been doing.
"It's the story of what you all have achieved here that we want to tell. It's the story we want to be telling in every state all across this country," the first lady said.
When she visited Mississippi three years ago, it had just been declared the most obese state in the nation, she said. But things have begun to turn around in just a few short years.
Mrs. Obama attributed the decline in childhood obesity rates here to efforts by state lawmakers, the Board of Education and individual school districts, which she said took such steps as setting new standards for food and drinks in school vending machines, serving more fruits, vegetables and whole grains, and replacing food fryers with steamers, to which she exclaimed, "Hallelujah."
Some churches even declared "no-fry" zones for their congregations, where only healthy food and nothing fried was allowed.
"So there's no reason why this success can't happen in cities and states all across the country — if we're willing to work for it," Mrs. Obama said. "So now is the time for us to truly double down on these efforts. We know what works. We're seeing it right here. We know how to get results. Now we just need to keep stepping up."
The first lady said Mississippi, and other parts of the country that also have seen their childhood obesity rates come down — including California and New York City and Philadelphia — are showing others what works. After all, she said, "love for our children" is the motivating factor.
Mrs. Obama was joined by Food Network star and daytime talk-show host Rachael Ray, who arranged for two school chefs to compete to prepare lunches that meet newly adopted federal nutrition guidelines.
"I'm here to say, Mississippi, thank you. Thank you so much. Congratulations on your work," the first lady said. "Thank you for taking the lead on this issue. Thank you for serving as an inspiration for states and communities across the country."
About one-third of U.S. children are overweight or obese, putting them at higher risk for heart disease, diabetes and high blood pressure, among other ailments.
Mrs. Obama launched "Let's Move" with the goal of helping to reduce childhood obesity rates within a generation. In response, a range of industry groups and others, including food companies, restaurants, retailers and others, promised to make their food healthier and make it easier for kids to get needed exercise.
Among the changes: Wal-Mart is now putting special labels on some of its store-brand products to help shoppers quickly spot healthier items. Millions of schoolchildren are helping themselves to vegetables from salad bars that have been donated for their lunchrooms. Kids' meals at Olive Garden and Red Lobster restaurants are automatically served with a side of fruit or vegetables and a glass of low-fat milk.
For the cafeteria cook-off, each school chef was paired with a professional chef and each team was given 30 minutes to prepare a lunch for 20 kids that met federal nutrition guidelines.
One team fixed two types of fajitas and a fruit smoothie, while the other team whipped up a turkey Sloppy Joe sandwich on a patty made of quinoa, fruit salad with a sour cream and honey dressing and broccoli trees.
A panel of 20 students from the school judged the finished products. Mrs. Obama and Ray also sampled the lunches and kept saying how delicious they were.
"If these kids are eating like this every day," said Ray, "I'm coming to lunch here," added Mrs. Obama.
The competition was held for Ray's daytime talk-show, and the results are to be revealed during the March 11 broadcast.
… we'd like to ask for your support. More people are reading the Mississippi Business Journal than ever before, but advertising revenues for all conventional media are falling fast. Unlike many, we do not use a pay wall, because we want to continue providing Mississippi's most comprehensive business news each and every day. But that takes time, money and hard work. We do it because it is important to us … and equally important to you, if you value the flow of trustworthy news and information which have always kept America strong and free for more than 200 years.
If those who read our content will help fund it, we can continue to bring you the very best in news and information. Please consider joining us as a valued member, or if you prefer, make a one-time contribution.Click for more info


text:
It's Product Review Friday once again. And today we are lucky enough to have another LELO treasure for you to admire.
Dr Dick Review Crew member, Brad discovers the meaning of a Pleasure Object.
DAMN, this is the most expensive sex toy…I mean Pleasure Object I've ever seen. Before I got hooked up with the Dr Dick Review Crew I used to make all my own sex toys. You'd be amazed what you can do with some bubble wrap, Jell-O, a battery-powered toothbrush or a bar of soap. Now that I'm an official review crew member I'm getting the education of my life. You'll probably laugh, but before I got this BILLY I had never hear of LELO.
I knew I was in for a treat just by looking at the packaging. Everything about it says elegant. The message on the package, translated into multiple languages, reads:BILLY is a gentleman's G-spot massager for those who wish to explore a more energetic sensation within. Benefiting from an ergonomic design tailored precisely to the male form, he offers sustained control through five differing stimulation modes. Such versatility achieves breathtaking results, where vibrations may be kept mild during arousal, before increasing to the levels that excite his user most. Whether enjoyed individually or with a partner, BILLY is a highly discreet and satisfying companion, always primed to deliver the most intense and varied feelings of release.
That a fancy way of sayin' — ya pop this sucker in your ass for a groovy prostate massage. Hey, can I ask you people to stop referring to a dude's prostate as "a gentleman's G-spot"? I think a P-spot is pretty fuckin lame, but "a gentleman's G-spot" is absolutely ridiculous.
Now that I have that off my back I can get back to telling you about BILLY. It's a relatively petite thing as far as insertables go. 6.5" total length; 4" insertable length; 3.25″ circumference and weighs in at just about a pound. This is clearly intended for the novice butt pirate.
It has a ridge on the velvety-smooth silicone insertable part that is designed to make BILLY safe for ass play. The whole toy will never accidentally slip all the way in your bum, which is a fear that many guys new to ass play have. I know I did.
The controls for BILLY are located in the handle, which is made of hard plastic. It has 7 power settings and 5 vibe patterns. Steady vibration, three speeds of intermittent vibration and a wave setting where the vibration oscillates between gentle and stronger vibrations. And the best thing is it's rechargeable. There's this little port in the tip of the handle that accepts the recharging unit. Pretty slick, huh? My battery budget was gettin outta control. It takes about 2 hours to fully charge. And it'll last about 4 hours on a full charge. It even lets you know when it is time to recharge. The control dial will glow red, instead of white when pushed.
You'll have to use lube with this toy. Trying to insert it anally without lube is just asking for trouble. But be sure you use only a water-based lube.
Figuring out the four-quadrant controller can be a challenge. For the life of me I couldn't figure it out when first I tried. I thought it was a good idea to run through the different speeds and intensities before I popped it in my ass. But suddenly it just died. The white LED light was still on, but I couldn't get it to vibrate. I thought for sure I fucked up this expensive toy. I put it away for a while so I could review the instructions. On my second attempt, a couple hours later, it miraculously came back to life, but only slowly. I have no idea what the fuck was up with that. Freaked me out though.
Once I had BILLY in my hole, I really liked the feel of it. But I had the damnedest time working the controller while it was in place. The hard plastic handle and control button are impossible to hold on to or manipulate with lubed up fingers and hands. And don't even think about getting lube in the recharge port, because the thing will be toast for damn sure.
Full Review HERE


text:
Douglas Ahlstedt
Professor of Voice, tenor
Douglas Ahlstedt has sung professionally in the world's greatest opera houses and concert halls, from the renowned stages of Europe, South America, the Far East, and Africa, to the Metropolitan Opera, where he has sung 189 performances to date. He is the only American tenor featured in leading roles, including Fenton in Verdi's Falstaff and Pelleas in Dubussy's Pelleas et Melisande on the James Levine 25th Anniversary Collection of notable scenes from Metropolitan Opera broadcasts.
Leading roles of Ahlstedt's career have included Lindoro in Rossini's Lâ Italiana in Algeri, Almaviva in Barbiere di Siviglia, Narciso in Turco in Italia, Idreno in Semiramide, Pilade in Ermione and Ramiro in La Cenerentola; Fenton in Verdi's Falstaff; Pelleas in Debussy's Pelleas et Melisande; Ferrando in Mozart's Cosi Fan Tutte, Don Ottavio in Don Giovanni, Sifare in Mitridate, Belmonte in Die Entfuhrung aus dem Serail, Tamino in The Magic Flute, and Alessandro in Il Re Pastore; Rinuccio in Puccini's Gianni Schicchi; Ernesto in Donizetti's Don Pasquale; Lorenzo in Auber's Fra Diavolo; Junge Graf in Zimmermann's Die Soldaten; Flammand in Strauss's Capriccio; and Eisenstein in Strauss's Die Fledermaus.
Douglas Ahlstedt's singing career began with the American Boys' Choir, with whom he toured the United States and Canada. During that period, he sang the role of Miles in the American premiere of Benjamin Britten's The Turn of the Screw.
Ahlstedt earned a bachelor of science in music education from the State University of New York at Fredonia, and completed his master's degree at the Eastman School of Music in Rochester, New York.
In addition to his notoriety as a worldwide performer, Ahlstedt is known to be a formidable educator both in his studio and throughout the nation. Active in the promotion of arts, cultural, and education partnerships, Douglas Ahlstedt is well known as a national advocate for the advancement of the Arts in Education and as an authority on vocal health.