Lenovo ThinkServer RD330 – Danger Danger Danger

Last year my employer purchased a ThinkServer RD230 for a server consolidation virtualization project. This was the most competitively priced server I found matching my specs after a reasonably careful search. My plan was always to purchase a second server as a backup, but my manager delayed the second purchase for a year.

By the time the second server was approved, RD230’s were discontinued. I ordered an RD330 4304E3U, thinking it would be about like the ‘230, only somehow less expensive, with six, not four cores. I order servers without hard drives when I have a choice because it is almost always a better deal.

When I opened the box, I had a surprise. The server arrived with no hard drive trays. One bay was empty and the other three contained fillers that look just like a hard drive tray from the front but have no tray on the back of the bezel. Provantage, my supplier of choice and generally very good, does not sell the trays or even trays with drives.

The parts manual lists the 3.5″ tray as 03X3969. The best price I found on the web from non-Ebay sources for the tray was $89. Times four trays would add $356 to the price of the server. The manual lists about 40 hard drives, presumably with trays. Part numbers for 1 TB SATA 3.5″ are: 03X3950 (HS) and 91Y1655 (WD). Searches on the Web on these part numbers and the word price do not produce any useful results. Needless to say, this server is going back.

css text-outdent

Outdented list items are useful for lists of links where some links wrap. When the links are outdented visitors get a good indication of which lines are continuation lines and which lines are new links.

Use the css text-indent property with a negative number. Add the same amount of positive left padding or left margin to move the whole outdented paragraph or li to back to where it should be. The outdented items must be block level or have display: block; set.

Here is a sample ul:

Here is the css for the samples above:

.outdent li, .outdent p{
        padding-left: 1.5em;
        text-indent: -1.5em;
}
.outdent li{
        list-style: none;
        line-height: 1.3em;
        margin: 0;
}

WordPress and jScrollPane

Some notes for getting WordPress and jScrollPane working.

I wasn’t interested in the plugin because it is out of date and seems to carry a log of baggage.

These links were helpful:

http://jscrollpane.kelvinluck.com/

http://jscrollpane.kelvinluck.com/dynamic_width.html

http://matthewruddy.com/using-jquery-with-wordpress/

My code in an add_action function to wp_head:

<?php
add_action( 'wp_enqueue_script', 'load_jquery' );
function load_jquery() {
    wp_enqueue_script( 'jquery' );
    }
?>

<!-- the mousewheel plugin - optional to provide mousewheel support -->
<script type="text/javascript" src="wp-content/themes/some path.../jquery.mousewheel.js"></script>

<!-- the jScrollPane script -->
<script type="text/javascript" src="wp-content/themes/some path.../jquery.jscrollpane.min.js"></script>

<script type="text/javascript" src="wp-content/themes/some path.../resize.js"></script>

<script type="text/javascript" id="sourcecode">
    jQuery(document).ready(function($) {
        // Code here will be executed on document ready. Use $ as normal.
        $('.scroll-pane').jScrollPane({mouseWheelSpeed: 30});
        });
</script>

I had to set the mouse wheel speed; it was way too slow, default is 3.

resize.js didn’t work without modification.

(function($) {
// added outer stuff to get resize working with js wordpress way 2013-05-13
$(function()
{
    $('.scroll-pane').each(
        function()
        {
            $(this).jScrollPane(
                {
                    showArrows: $(this).is('.arrow')
                }
            );
            var api = $(this).data('jsp');
            var throttleTimeout;
            $(window).bind(
                'resize load', //added load 2013-04-30 so the images would fit on android
                function()
                {
                    if ($.browser.msie) {
                        // IE fires multiple resize events while you are dragging the browser window which
                        // causes it to crash if you try to update the scrollpane on every one. So we need
                        // to throttle it to fire a maximum of once every 50 milliseconds...
                        if (!throttleTimeout) {
                            throttleTimeout = setTimeout(
                                function()
                                {
                                    api.reinitialise();
                                    throttleTimeout = null;
                                },
                                50
                            );
                        }
                    } else {
                        api.reinitialise();
                    }
                }
            );
        }
    )

});
})(jQuery);

The containing anonymous function was needed to get this working with WordPress. I added load because this prevents panes with photos loaded from a third party site from being incorrectly rendered. Without it the space they take up is not accounted for.