RSS
 

Archive for March, 2011

Enterprise Dependency: Big Ball of Yarn

07 Mar

Not too long ago, I posted The Enterprise Dependency. Essentially, it was a visual depiction of a good ole' enterprise framework that was "several dozen megabytes chock full of helper classes like IEnterpriseAuthenticationProviderFactoryManagementFactory." Inspired by the diagram, commenter "LieutenantFrost" shared his own "enterprise-ness and despair" with a dependency diagram that looks somewhat like an anglerfish.

But that got me thinking: like a Representative Line, perhaps dependency diagrams can help provide some insight into the pain that large applications' maintainers face each day. And just then, Jan-Hendrik sent in such a diagram. Note that each little box represents a class, and a line is its dependency to another class.

Jan added, "as people were introducing me to the code, they repeatedly said that parts of the system were so complex that no one dared touch it. My code dependency analyzer (X-Ray) generated this this beautiful spidery ball of fun."

If you have a dependency diagram of your own that would be a good fit for Enterprise Dependency, please send it to me!

 
 

Enterprise Dependency: Big Ball of Yarn

07 Mar

Not too long ago, I posted The Enterprise Dependency. Essentially, it was a visual depiction of a good ole' enterprise framework that was "several dozen megabytes chock full of helper classes like IEnterpriseAuthenticationProviderFactoryManagementFactory." Inspired by the diagram, commenter "LieutenantFrost" shared his own "enterprise-ness and despair" with a dependency diagram that looks somewhat like an anglerfish.

But that got me thinking: like a Representative Line, perhaps dependency diagrams can help provide some insight into the pain that large applications' maintainers face each day. And just then, Jan-Hendrik sent in such a diagram. Note that each little box represents a class, and a line is its dependency to another class.

Jan added, "as people were introducing me to the code, they repeatedly said that parts of the system were so complex that no one dared touch it. My code dependency analyzer (X-Ray) generated this this beautiful spidery ball of fun."

If you have a dependency diagram of your own that would be a good fit for Enterprise Dependency, please send it to me!

 
 

10 Tips for Decreasing Web Page Load Times

07 Mar

10 Tips for Decreasing Web Page Load Times

Patience is a virtue, but for many, it is often a difficult concept to practice. That is especially true for web users visiting a website that takes a long time to load. Users are enamored with speedy websites, and when a site responds slowly, visitors lose their patience and are less likely to come back.

Improving the speed of your website is important not only to users, but to search engine rankings as well. Last April, Google announced that they are now including website speed in their search ranking algorithms.

While this inclusion doesn’t hold the same weight as many of Google’s other ranking signals, it is still something that should be considered when planning out your website’s SEO efforts.

The following are some tips for decreasing your web page loading times.

1. Check the Current Speed of the Website

The first thing you will want to do is to analyze your current page speed. This allows you to track your improvement and ensure that any changes you make positively improves your page load times.

There are many free tools out there for checking how long it takes to load your website. Here are a few of them:

  • Pingdom offers an easy-to-use site speed test that mimics that way a page is loaded in a web browser.
  • Page Speed is an open source Firefox add-on that helps you assess the performance of your web pages. It also provides suggestions on how to fix performance issues.
  • Web Page Test is another great tool that shows you the speed and performance of your website in different browsers.

2. Optimize Your Images

Know when to use the appropriate file format for your images. Changing to a different file format can dramatically decrease the file size of an image.

  • GIF is ideal for images with few colors like logos.
  • JPEG is great for images with lots of colors and details like photographs.
  • PNG is the choice when you need high quality transparent images.

Check out these resources to learn more about optimizing images:

3. Don’t Scale Down Images

Avoid using a larger image than you need just because you can set the width and height attributes of <img> elements in HTML.

If you need a 100x100px image and you have a 700x700px image, use an image editor like Photoshop or one of these web-based image editors to resize the image to the needed dimensions. This lowers the file size of the image, thus helping to decrease page loading times.

4. Compress and Optimize Your Content

The task of compressing your website content can have a huge impact on reducing load times. When using HTTP compression, all of your web page data is sent in a single smaller file instead of a request that is full of many different files. For more information, see this Wikipedia article on HTTP Compression.

You can also optimize and compress your JavaScript and CSS files by combining them and minifying the source code.

5. Put Stylesheet References at the Top

Moving your stylesheet references to the <head> of your HTML document helps your pages feel like it is loading faster because doing so allows your pages to render the styles progressively. In addition, it doesn’t hurt that it’s the W3C standard.

6. Put Script References at the Bottom

Browsers can only download two components per hostname at the same time. If you add your scripts towards the top, it would block anything else below it on the initial loading of the page. This makes it feel like the page is loading slower.

To avoid this situation, place script references as far down the HTML document as possible, preferably right before the closing <body> tag.

7. Place JavaScript and CSS in External Files

If your JavaScript and CSS are directly in your HTML document, they are downloaded every time an HTML document is requested. This, then, doesn’t take advantage of browser caching and increases the size of the HTML document.

Always place your CSS and JavaScript in external files; it’s a best practice and makes your site easier to maintain and update.

8. Minimize HTTP Requests

When visiting a new web page, most of the page-loading time is spent downloading components of that page (e.g. images, stylesheets, and scripts).

By minimizing the number of requests a web page needs to make, it will load faster. To reduce HTTP requests for images, one thing you can do is to use CSS sprites to combine multiple images.

If you have multiple stylesheets and JavaScript libraries, consider combining them to reduce the number of HTTP requests.

9. Cache Your Web Pages

If you use a content management system that dynamically generates your web pages, you should statically cache your web pages and database queries so that you can decrease the strain on your server as well as speed up page rendering times.

When you cache your page, it saves a static version of it to be presented to the user instead of recreating it every time it’s requested.

For WordPress, check out WP Super Cache and W3 Total Cache (also read this WordPress codex entry on optimizing/caching WordPress). Drupal core has native caching.

10. Reduce 301 Redirects

Every time a 301 redirect is used, it forces the browser to a new URL which increases page-loading times. If possible, avoid using 301 redirects.

Conclusion

Web page speed is a metric that should not be ignored if you are concerned about providing an optimal user experience.

Want more information on decreasing your website’s page load times? Read Google’s section on page speed, which provides tools, articles, and community feedback regarding website speed. Good luck and happy optimizing!

Related Content

About the Author

Adam Heitzman is a web designer/developer with a strong background in SEO. He’s a Managing Partner at HigherVisbility, a Memphis-based internet marketing agency that offers a full range of marketing services ranging from SEO, Pay Per Click Marketing, Web Design and Development, and Social Media Marketing. Connect with HigherVisibility on Facebook and Twitter.

 
 

10 Tips for Decreasing Web Page Load Times

07 Mar

10 Tips for Decreasing Web Page Load Times

Patience is a virtue, but for many, it is often a difficult concept to practice. That is especially true for web users visiting a website that takes a long time to load. Users are enamored with speedy websites, and when a site responds slowly, visitors lose their patience and are less likely to come back.

Improving the speed of your website is important not only to users, but to search engine rankings as well. Last April, Google announced that they are now including website speed in their search ranking algorithms.

While this inclusion doesn’t hold the same weight as many of Google’s other ranking signals, it is still something that should be considered when planning out your website’s SEO efforts.

The following are some tips for decreasing your web page loading times.

1. Check the Current Speed of the Website

The first thing you will want to do is to analyze your current page speed. This allows you to track your improvement and ensure that any changes you make positively improves your page load times.

There are many free tools out there for checking how long it takes to load your website. Here are a few of them:

  • Pingdom offers an easy-to-use site speed test that mimics that way a page is loaded in a web browser.
  • Page Speed is an open source Firefox add-on that helps you assess the performance of your web pages. It also provides suggestions on how to fix performance issues.
  • Web Page Test is another great tool that shows you the speed and performance of your website in different browsers.

2. Optimize Your Images

Know when to use the appropriate file format for your images. Changing to a different file format can dramatically decrease the file size of an image.

  • GIF is ideal for images with few colors like logos.
  • JPEG is great for images with lots of colors and details like photographs.
  • PNG is the choice when you need high quality transparent images.

Check out these resources to learn more about optimizing images:

3. Don’t Scale Down Images

Avoid using a larger image than you need just because you can set the width and height attributes of <img> elements in HTML.

If you need a 100x100px image and you have a 700x700px image, use an image editor like Photoshop or one of these web-based image editors to resize the image to the needed dimensions. This lowers the file size of the image, thus helping to decrease page loading times.

4. Compress and Optimize Your Content

The task of compressing your website content can have a huge impact on reducing load times. When using HTTP compression, all of your web page data is sent in a single smaller file instead of a request that is full of many different files. For more information, see this Wikipedia article on HTTP Compression.

You can also optimize and compress your JavaScript and CSS files by combining them and minifying the source code.

5. Put Stylesheet References at the Top

Moving your stylesheet references to the <head> of your HTML document helps your pages feel like it is loading faster because doing so allows your pages to render the styles progressively. In addition, it doesn’t hurt that it’s the W3C standard.

6. Put Script References at the Bottom

Browsers can only download two components per hostname at the same time. If you add your scripts towards the top, it would block anything else below it on the initial loading of the page. This makes it feel like the page is loading slower.

To avoid this situation, place script references as far down the HTML document as possible, preferably right before the closing <body> tag.

7. Place JavaScript and CSS in External Files

If your JavaScript and CSS are directly in your HTML document, they are downloaded every time an HTML document is requested. This, then, doesn’t take advantage of browser caching and increases the size of the HTML document.

Always place your CSS and JavaScript in external files; it’s a best practice and makes your site easier to maintain and update.

8. Minimize HTTP Requests

When visiting a new web page, most of the page-loading time is spent downloading components of that page (e.g. images, stylesheets, and scripts).

By minimizing the number of requests a web page needs to make, it will load faster. To reduce HTTP requests for images, one thing you can do is to use CSS sprites to combine multiple images.

If you have multiple stylesheets and JavaScript libraries, consider combining them to reduce the number of HTTP requests.

9. Cache Your Web Pages

If you use a content management system that dynamically generates your web pages, you should statically cache your web pages and database queries so that you can decrease the strain on your server as well as speed up page rendering times.

When you cache your page, it saves a static version of it to be presented to the user instead of recreating it every time it’s requested.

For WordPress, check out WP Super Cache and W3 Total Cache (also read this WordPress codex entry on optimizing/caching WordPress). Drupal core has native caching.

10. Reduce 301 Redirects

Every time a 301 redirect is used, it forces the browser to a new URL which increases page-loading times. If possible, avoid using 301 redirects.

Conclusion

Web page speed is a metric that should not be ignored if you are concerned about providing an optimal user experience.

Want more information on decreasing your website’s page load times? Read Google’s section on page speed, which provides tools, articles, and community feedback regarding website speed. Good luck and happy optimizing!

Related Content

About the Author

Adam Heitzman is a web designer/developer with a strong background in SEO. He’s a Managing Partner at HigherVisbility, a Memphis-based internet marketing agency that offers a full range of marketing services ranging from SEO, Pay Per Click Marketing, Web Design and Development, and Social Media Marketing. Connect with HigherVisibility on Facebook and Twitter.

 
 

Server Attention Span

06 Mar
They have to keep the adjacent rack units empty. Otherwise, half the entries in their /var/log/syslog are just 'SERVER BELOW TRYING TO START CONVERSATION *AGAIN*.' and 'WISH THEY'D STOP GIVING HIM SO MUCH COFFEE IT SPLATTERS EVERYWHERE.'
 
 

World's Largest Jailer By Far, It's Not Even Close

06 Mar
Q: Which repressive country puts the most people in jail for violating government laws? 

A. Iran
B. Saudi Arabia
C. Libya
D. Egypt
E. United States of America

It's not even close..............

World Rank, 2010CountryPrisoners per 100,000 Population
1U.S.A.743
37Tunisia297
52Turkmenistan224
53Iran223
61Libya200
61Mexico200
69Colombia180
70Saudi Arabia178
92Bahrain149
116China120
126Venezuela114
137Iraq101
140Ethiopia98
150Egypt89
156Yemen83
185Syria58
187Afghanistan56
198Sudan45
198Pakistan45

The table above shows how the prison incarceration rate for in the United States (per 100,000 population) in 2010 compares to some of the roughest countries in the world.  The full list of 216 countries is here, the countries above were selected as some of world's the most repressive regimes (Iran, Saudi Arabia and Libya), some of the world's least economically free countries (Venezuela, Turkmenistan, Sudan, Afghanistan, according to the Heritage Foundation) and some countries with the biggest narco-terroism problems (Colombia and Mexico).  But none of them even come close to the incarceration rate of the World's #1 Jailer - the United States, largely because of the "war on drugs" (see chart below).  
 

Update: Note that neighbor Canada ranks #124 (117 per 100,000), and countries with liberalized drug laws like Portugal rank #128 (112 per 100,000) and Netherlands ranks #145 (94 per 100,000).  
 
 

Photo

06 Mar


 
 

Dolphins Save Doberman From Drowning in Florida Canal

06 Mar
doberman photo Photo: shioshvili Last week concerned dolphins successfully saved the life of a struggling Doberman Pinscher by alerting a vacationing couple that the poor pooch was stuck on the sandbar. The dolphins were enjoying a swim through the Florida canal on their way to the Gulf of Mexico when they noticed the 80 pound Doberman that had disappeared hours before. See how they saved the pup and why this incredibly intelligent species is under new threats. ...Read the full story on TreeHugger
 
 

Highlights and Shortfalls of Liferay’s Web Content Management

06 Mar

Liferay Portal 6 includes a Web Content Management system that integrates really nicely with the portal.  After reviewing Liferay Portal, I’ve come up with my list of highlights and shortfalls of the Liefray’s Web Content Management feature.  My comments are based on what is available in the standard UI.  Of course you could extend Liferay yourself to add features you may find missing.

Highlights

  • Works right out of the box – As soon as Portal finished installing you can begin to create content right away.  There is one standard template available that is generic enough to be used to create rich content immediately
  • Integration with Portal – this is where Liferay really shines.  You can easily create content on any page of the portlet with just a couple of clicks.
  • Modern User interface – the UI for managing Web Content is used the latest widgets within Liferay.  Creating content is a pleasurable experience within Liferay.
  • Localization – if you need to support multiple languages with your content, Liferay makes this pretty easy, compared with other Portals.
  • Structures and templates – Structures allow you to define input fields specific to the type of content you need to create.  This is important when you want to capture certain fields from the user.  Templates allow you to display content in a variety of forms using one copy of the data.
  • Tagging – authors can tag content rather than wait for users to do the tagging.  This

Shortfalls

  • Lack of Folders – this is really strange to me: you can create folders for images and documents, but not web content!  While you can organize content into communities and sub communities, but these are not the same as folders.  When you have more than 20-30 pieces of content, letting users organize them into folders seems like a good feature.  Some have suggested using categories instead of folders.  Either way, you need some way to organize content so authors don’t have to wade through long lists to locate what they want.
  • Sharing of content between communities – Liferay does not allow you to share content across communities, unless you put the content into the Global community.  So if you have an article created for your marketing community, you can’t easily display that in the HR community.
  • Preview in context – while you can preview content, you don’t see your content previewed in the context of portal.  It would be nice to preview a pieced of content in a specific page.
  • Publishing outside of Portal – Liferay intended its Web Content to be used within Portal.  If you want to publish content outside of your portal, there is not an easy way to create a non-portal site from the content.

Overall, Liferay’s Web Content Management feature is a quality part of Liferay Portal and is adequate for managing Portal content.  I think if Liferay addresses some of the shortfalls I mentioned, it could begin to be comparable to other enterprise-level Web Content Management systems.

 
 

this isn’t happiness.â„¢ Peter Nidzgorski, tumblr

06 Mar

via http://thisisnthappiness.com/post/685164597/we-love-typography