Google Data Centers virtual visit

2 weeks ago, a post on Google's official blog announced a project that allows users to step inside the private world of its data centers. For the first time, the company's impressive efficiency records and green ethos have been given a face in the form of the stunning photographs by Connie Zhou and the Street View-able hallways of the Lenoir facility in North Carolina…

GoogleDataCenters

http://www.google.com/about/datacenters/gallery/#/

Apache POI Speed Optimizations

apache-poi-logo The Apache POI Project’s mission is to create and maintain #Java APIs for manipulating various file formats based upon the Office Open XML standards (OOXML) and Microsoft’s OLE 2 Compound Document format (OLE2). In short, you can read and write MS Excel files using #Java. In addition, you can read and write MS Word and MS PowerPoint files using #Java. Apache POI is your #Java Excel solution (for Excel 97-2008). We have a complete API for porting other OOXML and OLE2 formats and welcome others to participate.

Switch Off logging

From the documentation at http://poi.apache.org/utils/logging.html

Logging in POI is used only as a debugging mechanism, not a normal runtime logging system. Logging is ONLY for autopsie type debugging, and should NEVER be enabled on a production system. Enabling logging will reduce performance by at least a factor of 100. If you are not developing POI or trying to debug why POI isn’t reading a file correctly, then DO NOT enable logging. You’ve been warned.

In order to effectively disable the logging functionality in Apache POI you must use an alternative logger. This is accomplished by providing a property to the POILogFactory to override the default logger. You can add one of these –D to your JVM settings

-Dorg.apache.poi.util.POILogger=org.apache.poi.util.NullLogger
-Dorg.apache.poi.util.POILogger=org.apache.commons.logging.impl.NoOpLog

I found Apache POI to slightly better perform with the NoOpLog of apache common!

Recompile poi with more adapted settings

You can create a custom build of Apache POI 3.8 and alter the following properties to better match the size of the excel files you are generating or reading:

  • org.apache.poi.hssf.usermodel.HSSFRow#INITIAL_CAPACITY=5;
  • org.apache.poi.hssf.usermodel.HSSFSheet#INITIAL_CAPACITY= 20;    // used for compile-time optimization.  This is the initial size for the collection of rows.  It is currently set to 20.  If you generate larger sheets you may benefit by setting this to a higher number and recompiling a custom edition of HSSFSheet.
  • org.apache.poi.hssf.usermodel.HSSFWorkbook#INITIAL_CAPACITY=3;  // used for compile-time performance/memory optimization.  This determines the  initial capacity for the sheet collection.  Its currently set to 3.Changing it in this release will decrease performance since you’re never allowed to have more or less than three sheets!     
  • http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html#INITIAL_CAPACITY

    Don’t use xlsx, prefer xls!

    This will only work if you do not reach xls limitations which may avoid you to go to that extreme solution. XLS is not compressed (XLSX is xml based and compressed) and your workbook may double size in memory as a result!

    For example, data beyond 256 (IV) columns by 65,536 rows will not be saved in xls! In Excel 2010 and Excel 2007, the worksheet size is 16,384 columns by 1,048,576 rows, but the worksheet size of Excel 97-2003 is only 256 columns by 65,536 rows. Data in cells outside of this column and row limit is lost in Excel 97-2003. But there is a lot more limitations listed at office.com

    The biggest side effect was that my excel file went from 354kb to 967kb, but the speed increase was quite interesting: more than 44% less evaluation time.

    Small localized optimization

    I don’t think these bring a lot of speed, JIT should optimize this bad piece of code for us but it is always worth trying Speeding up org.apache.poi.hssf.usermodel.HSSFRow.compareTo() and http://affy.blogspot.ch/2004/04/poi-optimization-speeding-_108265938673224937.html

    Samsung wins patent battle against apple

    Samsung / Apple UK judgment from http://www.apple.com/uk/legal-judgement/

    Apple is a kid with way too much power at the moment.

    On 9th July 2012 the High Court of Justice of England and Wales ruled that Samsung Electronic(UK) Limited’s Galaxy Tablet Computer, namely the Galaxy Tab 10.1, Tab 8.9 and Tab 7.7 do notinfringe Apple’s registered design No. 0000181607-0001. A copy of the full judgment of the Highcourt is available on the following link www.bailii.org/ew/cases/EWHC/Patents/2012/1882.html.

    In the ruling, the judge made several important points comparing the designs of the Apple and Samsung products:

    “The extreme simplicity of the Apple design is striking. Overall it has undecorated flat surfaces with a plate of glass on the front all the way out to a very thin rim and a blank back. There is a crisp edge around the rim and a combination of curves, both at the corners and the sides. The design looks like an object the informed user would want to pick up and hold. It is an understated, smooth and simple product. It is a cool design.”

    “The informed user’s overall impression of each of the Samsung Galaxy Tablets is the following. From the front they belong to the family which includes the Apple design; but the Samsung products are very thin, almost insubstantial members of that family with unusual details on the back. They do not have the same understated and extreme simplicity which is possessed by the Apple design. They are not as cool.”

    That Judgment has effect throughout the European Union and was upheld by the Court of Appeal on 18 October 2012. A copy of the Court of Appeal’s judgment is available on the following link www.bailii.org/ew/cases/EWCA/Civ/2012/1339.html. There is no injunction in respect of the registered design in force anywhere in Europe.

    However, in a case tried in Germany regarding the same patent, the court found that Samsung engaged in unfair competition by copying the iPad design. A U.S. jury also found Samsung guilty of infringing on Apple’s design and utility patents, awarding over one billion U.S. dollars in damages to Apple Inc. So while the U.K. court did not find Samsung guilty of infringement, other courts have recognized that in the course of creating its Galaxy tablet, Samsung willfully copied Apple’s far more popular iPad.

    The extreme simplicity of the following design is also striking, Can I enforce a patent?

    minimalistic_design_apple_what_a_joke

    Neo Geo X Gold Limited Edition pre order available

    The NEOGEO X Gold entertainment system comes complete with the NEOGEO X Station

    The NEOGEO X Gold entertainment system comes complete with the NEOGEO X Station, the NEOGEO X Handheld with 20 pre-loaded NEOGEO classic titles, and the NEOGEO X Joystick. In addition to coming pre-loaded with 20 NEOGEO classic titles, the NEOGEO X Handheld device features a crisp 4.3-inch LCD display, an expandable game card slot, internal stereo speakers, and a 3.5mm headphone jack for a personal gaming experience you can take anywhere. The NEOGEO X Handheld device works with the NEOGEO X Joystick and NEOGEO X Station to charge the handheld device and transfer the action directly to a television set or monitor, via HDMI or A/V out, for a true arcade experience right at home! The NEOGEO X Gold Limited Edition is only available for pre-orders made before 12/6. The NEOGEO X Gold Limited Edition comes with the Ninja Master’s NEOGEO X Game Card.

    As a NeoGeo fans since 1991, I will pre order at least 2 of them if not more Winking smile

    • Limited Edition – Includes the NEOGEO X Ninja Master’s game card.
    • Play anywhere – At home or on the go.
    • 20 pre-loaded classic Neogeo games.
    • Home arcade experience with the NEOGEO X Station when the NEOGEO X Handheld is docked inside and the NEOGEO X Arcade Stick is plugged in. Outputs to TV via HDMI or A/V out.
    • Contents include: NEOGEO X Station, NEOGEO X Handheld, One NEOGEO X Arcade Stick, and Ninja Master’s NEOGEO X game card
    • 4.3 inch LCD screen,
    • Expandable game card slot, stereo speakers and a headphone port.

    Continue reading Neo Geo X Gold Limited Edition pre order available

    Linux server Monitoring mind map

    I did create this mind map a while ago, and found it while going through my dropbox folders. #Linux server Monitoring “You can’t correct something you can’t measure” is in version v 1.0.0

    You’ll find in this mind map

    What to monitor, how and the most useful commands to detect what happening on your #Linux server.

    Why a mind map?

    A mind map is a diagram used to visually outline information. mind map help you take notes, brainstorm complex problems, and think creatively.

    • Information are summarized efficiently to be usable and accessible,
    • Inter-relationships are clear between the different concepts,
    • It is the most flexible for organizing associative, divergent and convergent thinking (Convergent thinking involves aiming for a single, correct solution to a problem, whereas divergent thinking involves creative generation of multiple answers to a set problem),
    map

    Linux Server monitoring mind map version at

    You may also like my now 4 years old  Joomla “Secure, Safe, Fast Linux Hosting” mind map at http://joomla-security.waltercedric.com/

    Easily Compress Web Application Resources with EhCache

    Resources such as #JavaScript and CSS files can be compressed before being sent to the browser, improving network efficiencies and application load time in certain case. If you are not using Apache with mod_deflate or nginx in front of your web application, you may need to implement resources compression yourself….

    Wait! don’t start writing your own filter to compress files like CSS, html, txt, javascript it is way more difficult than you think to properly handle http response headers and do proper handling of mime type and caching. In one sentence don’t start reinventing the wheel: use ehcache for example.

    Ehcache is an open source, standards-based cache used to boost performance, offload the database and simplify scalability. Ehcache is robust, proven and full-featured and this has made it the most widely-used #Java-based cache. It can scale from in-process with one or more nodes through to a mixed in-process/out-of-process configuration with terabyte-sized caches. For applications needing a coherent distributed cache, Ehcache uses the open source Terracotta Sever Array.

    Continue reading Easily Compress Web Application Resources with EhCache

    Tomcat 7 and Apache Maven

    Here is 3 different way to control the lifetime a local Tomcat 7 container using Apache #Maven. A typical scenario would be to start a servlet container prior to running integration tests (Selenium, SAHI or using any other framework you can think of )

    With the following examples, you will be able to start an instance of Tomcat 7 running your web application in the pre-integration-test phase and stop the instance in the post-integration-test phase. You can also decide to use an embedded container like Jetty instead.

    Continue reading Tomcat 7 and Apache Maven

    Sara Bareilles Stageit (Full Concert)

    51 minutes of pure joy! Thanks you Sara Bareilles!!! Listening to this on my Grado Sr-325 headphones is pure magic!

    On 9/10/12, Sara Bareilles played an online concert hosted by Stageit.com in order to raise money for an organization called Playing For Change http://playingforchange.org . Link to the organization with be posted below. All song rights and credits goes to Sara Bareilles and her respective label.

    • Playing for Change @ 4:34
    • Bright Lights and Cityscapes @ 9:45
    • Love Song @ 16:55
    • Only Shadows @ 24:40
    • Sittin’ on the Dock of the Bay @ 31:56
    • King of Anything @ 37:35
    • Gravity @ 45:29

    Understand Agile Development Methods with the Agile Development Poster

    Creating software with the agile development process delivers finished products quickly in fast changing and uncertain project environments. While agile development describes several iterative and incremental software development methods, they all involve continuous planning, continuous testing and continuous integration. (don’t under estimate effort to reach this prior to try to be agile)

    All agile development methods focus on helping teams to collaborate and make decisions quickly and effectively. The most popular agile methodologies is now Scrum that is resumed in the poster below.AgilePoster.ai

    Thanks to Agile software development, you will be able to accelerates the delivery of initial business value. Through continuous planning and feedback, agile development ensures that value continues to be maximized throughout the development process.

    (Version One, 2009)