java

Java (Indonesian: Jawa; Javanese: ꦗꦮ) is an island of Indonesia. With a population of 143 million, Java is the world's most populous island, and one of the most densely populated places in the world. [read more at http://en.wikipedia.org/wiki/Java]

  • Tomshardware has an interesting articles for all XBOX modder which prefer having an original Network attached Storage instead of a game machine.

    With the arrival of the Xbox360, there will soon be a buyer's market for its older sibling. Kevin Herring shows how to give an Xbox a new lease on life as a full-featured NAS.


    {mosgoogle}

  • spektrumDX5e

    Spektrum introduces another enormous change for the RC industry—The most affordable full-range 2.4GHz radio ever available. The DX5e brings together the unbeatable control of genuine DSM2 technology with the simplest, easiest-to-use design available, letting anyone, from park fliers to students to instructors and more, take advantage of Spektrum technology for less

    Mode 2 is most often used in the United States, while Mode 1 is most often used in Europe, there are two other modes that are used overseas and here is a listing of the 4 modes and their actions.

     

      Left stick Right stick
    up/down left/right up/down left/right
    Mode 1 elevator rudder throttle aileron
    Mode 2 throttle rudder elevator aileron
    Mode 3 elevator aileron throttle rudder
    Mode 4 throttle aileron elevator rudder
  •   I am  currently in the process of  moving all my open source project (7!) in CVS Head to the latest Joomla API 1.1.X. I've tried to summarize in the following table some conversion rules

    In Joomla 1.0.Xhas to be converted in Joomla 1.1.XWhere
    mosMenuBar::startTable();
    JMenuBar::startTable();PHP code
    defined('_VALID_MOS') or die('Direct Access to this location is not allowed.');defined( '_JEXEC' ) or die( 'Restricted access' );PHP code
    require_once( $mainframe->getPath( 'toolbar_html' ) );require_once( JApplicationHelper::getPath( 'toolbar_html' ) );PHP code
    <?xml version="1.0" encoding="iso-8859-1"?>
    <mosinstall type="component" version="1.0.0">
    ....
    <?xml version="1.0" encoding="iso-8859-1"?>
    <install type="component" version="1.0.0">
    ....
    Installer XML file
    More to come...

    Bad news
    • New code wont work in Joomla 1.0.X or latest
    • New code wont work in Mambo 4.X or latest

    Some links which may help also Help You:

    {mosgoogle}

  • joomla_cms

     10 minutes ago, I got a strange error message:

    DB function failed with error number 1016
    Can't open file: 'mos_session.MYI'. (errno: 145) SQL=SELECT session_id FROM mos_session WHERE session_id=MD5('e20eafcf277b7bc0dd125357b4a1b223')
    SQL =
    SELECT session_id FROM mos_session WHERE session_id=MD5('e20eafcf277b7bc0dd125357b4a1b223'

    I was not able to access the frontend or admin panel of my homepage. I tried to look in PHPMyAdmin the table mos_session but was getting the same error message. The only solution was to recreate the table with the following code:

    DROP TABLE IF EXISTS `mos_session`;
    CREATE TABLE `mos_session` (
    `username` varchar(50) default '',
    `time` varchar(14) default '',
    `session_id` varchar(200) NOT NULL default '0',
    `guest` tinyint(4) default '1',
    `userid` int(11) default '0',
    `usertype` varchar(50) default '',
    `gid` tinyint(3) unsigned NOT NULL default '0',
    PRIMARY KEY (`session_id`),
    KEY `whosonline` (`guest`,`usertype`)
    ) TYPE=MyISAM;

    Why my table has crashed is still unknow but I am looking further in logs files...
  • Create a new RSA key

    # openssl genrsa -des3 -out server.key 1024
    Give a very lengthy key, and save it somewhere in a PGP file or TrueCrypt volume

    Create a non encrypted version for Apache

    # openssl rsa -in server.key -out server.key.unsecure

    Prepare the mark inquiry

    # openssl req -new -key server.key -out server.csr
    Attention enter the host from where the certificate will be use, since browser are matching content of certificate with host url.

    Sign the certificate

    # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

    Add the SSL certificate to Apache

    Attention
    path to server.key and server.crt may differ!

    (SuSE 9.3 keys store at /etc/apache2/ssl.key/)
    # cp server.key.unsecure /etc/httpd/ssl.key/server.key
    # cp server.crt /etc/httpd/ssl.crt/server.crt
    # chmod 400 /etc/httpd/ssl.key/server.key
    # chmod 400 /etc/httpd/ssl.crt/server.crt

    Restart Apache

    BrutalGraceful

    # /etc/init.d/apache restart

    # apache2ctl gracefu
     
  • css.sprite.generator

    Here is an useful tool for improving performance of your website: The CSS sprite generator takes a number of source images and combines them into a single "sprite" image and supplies CSS to map to each image within the sprite. The technique this tool employs is often used to improve the performance of a web site by reducing the number of HTTP requests that the client's browser needs to make.

    CSS sprites are a way to reduce the number of HTTP requests made for image resources referenced by your site. Images are combined into one larger image at defined X and Y coordinates. Having assigned this generated image to relevant page elements the background-position CSS property can then be used to shift the visible area to the required component image.

    This technique can be very effective for improving site performance, particularly in situations where many small images, such as menu icons, are used. The Yahoo! home page, for example, employs the technique for exactly this.

    I’ve installed a copy of this tool at:

    http://css-sprite-generator.waltercedric.com

    And took time to:

    1. Improve the overall internal security of the tools, by using some technique of Joomla! framework, so most type of attacks (XSS, parameter tampering, path browsing, avoid direct execution of files) should be eliminated,
    2. The tool now extract the ZIP file without being forced to use the dangerous shell_exec php command (I switch it off on my host anyway), the tool support&160; if they are available in that order: ZipArchive(), zip_open() and shell_exec()
    3. Make the code a bit more portable (avoiding .. inclusion for files, use DIRECTORY_SEPARATOR)

    And I did audit the code using Acunetix Web security Scanner, the result can be seen below:

    css.sprite.generator.acunetix&160;

    The source code for CSS Sprite Generator is available for download and is covered by a BSD license. Want to run a local copy, get the source code at https://launchpad.net/css-sprite-generator

    My version will be available soon, link to appear later this week.

    Note about PHP and Zip support

    To install zip PECL package run the following as root:

    # pear installhttp://pecl.php.net/get/zip

    and create a new file at

    # vi /etc/php5/conf.d/zip.ini

    with following content

    extension=zip.so

    Restart apache

  • I've installed SuSE 9.3 on a Notebook HP Nx7000 and a AMD desktop without any major difficulties except the fact that for some legal reasons, Novel has removed the ability of SuSe to play out the box any Divx, Xvid, mp3. In fact If You have a acess to internet, the online update tool may resolve some of these issues (You will have to download what Novel call "Multimedia pack" ). After using 2 years long SuSE 9.0, 9.1, 9.2 and now 9.3 I found pathetic that I still need to remove this crappy noatun, kaffeine and xine because they simply do not work as good as Mplayer or even better Videolan (VLC). Note that both Videolan, or VLC can not be install through YaST, and I think that it is really a big mistake.
    So let repair this by:

    • Installing APT-GET packaging system (a lot simpler than YaST as It deal with package conflicts!!!), First read this page, then If You are interested read on :-)
    • Decode encrypted DVD  under Suse 9.3
    • Install Videolan (VLC), the best multiplattform video player

     Before deciding to buy it, download it (FTP source are here), or starting Your favorite Bittorent client, You can

  • offVertColor-phil2.eps  Short description of how to accomplish some specific task in Debian Lenny.

    • How to install Sun java 1.6 on Debian Lenny
    • How to install Tomcat 6.x on Debian Lenny
    • How to install MySQL on Debian Lenny

     

     

     

     

     

     

    How to install Sun java 1.6 on Debian Lenny

    And not the OpenJDK, as sometimes some applications do not work without the SUN JDK

    Edit APT sources list

    # vi /etc/apt/sources.list

    The original Sun Java 2 is available in the ‘non-free’ section of the Debian repositories. To enable this section first add the non-free repository to the apt sources file - the /etc/apt/sources.list should look like, - important parts are in bold:

    deb http://ftp.ch.debian.org/debian/ lenny main non-free
    deb-src http://ftp.ch.debian.org/debian/  lenny main non-free
    deb http://security.debian.org  lenny/updates main

    Update the list of sources

    apt-get update

    Install java

    #  apt-get install sun-java6-bin

    Just follow and select all the time

    How to install Tomcat 6 on Debian Lenny

    Create new file

    # vi /etc/apt/sources.list.d/squeeze.list

    and put inside

    # Repository for Squeeze, to get Tomcat6
    deb http://ftp.ch.debian.org/debian/ squeeze main contrib non-free
    deb-src http://ftp.ch.debian.org/debian/ squeeze main contrib non-free

    Create new file

    # vi /etc/apt/preferences

    And put inside

    Package: *
    Pin: release o=Debian,a=stable
    Pin-Priority: 990
    Package: *
    Pin: release o=Debian,a=testing
    Pin-Priority: 500
    Package: tomcat6,tomcat6-admin,tomcat6-common,libtomcat6-java,libservlet2.5-java
    Pin: release o=Debian,a=testing
    Pin-Priority: 990

    Update sources

    # apt-get update

    Upgrade

    # apt-get upgrade

    To locate the correct package name, search for it

    # apt-cache search tomcat

    Found

    tomcat6

    Install

    # apt-get install -t testing tomcat6

    You may want also to install the tomcat manager

    # apt-get install -t testing tomcat6-admin

    Create new users/roles for tomcat manager

    # vi /etc/tomcat6/tomcat-users.xml

    NOTA: Webapp are located in

    /var/lib/tomcat6/webapp

    How to install MYSQL on Debian Lenny

    Luckily MYSQL 5.0 is available in the default source list of APT.

    # apt-cache search mysql
    # apt-get install mysql-server-5.0

    Open a mysql prompt

    Grant access to root from any host, this is insecure for production machine but in case of continuous build machine, development this is sometimes very useful.

    Let root connect not only from localhost by running

    # mysql –u root –p
    mysql> use mysql;
    mysql> update user set host = '%' where user = 'root' and host='127.0.0.1'
    mysql> flush privileges;

    Bad written code (DAO) will sometimes forces you to start MYSQL using insensitive casing table. In windows it will always work as the operating system do not make any difference between lower and upper case. In Linux, either you change your DAO’s or if you can’t, use this kind of trick:

    Case insensitive table in MYSQL

    # vi /etc/mysql/conf.d/lower_case_table_names.cnf

    Put inside file

    [mysqld]
    lower_case_table_names = 1

    Restart mysql

    # /etc/init.d/mysql restart

  • Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.



    Source Code

    /**
     * Defines the interface for objects that can have responsibilities added to the
     * dynamically.
     * 
     * @role __Component
     */
    public abstract class Component {
    	/**
    	 * Sample operation.
    	 */
    	public abstract void doSomeStuff();
    }
    
    /**
     * Defines an object to which additional responsibilities can be attached.
     */
    
    public class ConcreteComponent extends Component {
    	/** @see patterns.gof.decorator.ComponentdoSomeStuff() */
    	public void doSomeStuff() {
    		// provide implementation here
    	}
    }
    
    /**
     * Adds responsibilities to the component.
     */
    
    public class ConcreteDecorator extends Decorator {
    	public ConcreteDecorator(Component decorateMe) {
    		super(decorateMe);
    	}
    
    	/**
    	 * Behavior added by decorator.
    	 */
    	private void addedBehavior() {
    		// some extra functionality goes here
    	}
    
    	public void doSomeStuff() {
    		super.doSomeStuff();
    		addedBehavior();
    	}
    }
    
    /**
     * Maintains the reference to a Component object and defines an interface that
     * conforms to Component's interface
     * 
     * @role __Decorator
     */
    
    public abstract class Decorator extends Component {
    	/** reference to the decorated component */
    	protected Component component;
    
    	/**
    	 * @param decorateMe
    	 *            component to decorate
    	 */
    	public Decorator(Component decorateMe) {
    		this.component = decorateMe;
    	}
    
    	public void doSomeStuff() {
    		component.doSomeStuff();
    	}
    }
    
  • apache_maven

     cargo-banner-left
    A ready to use example on how you can deploy your web application to a Tomcat 6 container using Maven Cargo. Cargo is a thin wrapper that allows you to manipulate Java EE containers in a standard way. 

    Cargo provides the following Tools and APIs:

    • A Java API to start/stop/configure Java Containers and deploy modules into them.
    • A Java API to parse/create/merge Java EE Modules
    • Ant tasks, Maven 1, Maven 2 plugins.
    • Intellij IDEA and Netbeans plugins are in the sandbox.

    First you have to decide if your tomcat server run locally or remotely as this influence the way you’ll configure your pom.xml

    Below is an example of a standard architecture

    |---MyApplication
    |           |- ear       (ear)
    |           |- service (jar)
    |           |- client    (jar)
    |           |- web      (war)
    |           |- integration (jar)

    The most interesting Maven module, which will be the subject of this article, and the next one is describing how to automate the deployment of a war to Tomcat and later on running integration tests using Selenium.

    'Integration testing'  is the activity of software testing in which individual software modules are combined and tested as a group. It occurs after unit testing and before system testing. Integration testing takes as its input modules that have been unit tested, groups them in larger aggregates, applies tests defined in an integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing. [WikiPedia]

    Deploying to Tomcat running locally

    Locally mean running on your development machine, at localhost 8080 or on any other port. Maven has the concept of a 'phase' which can be thought of a collection of goals. Hence here we are specifying that during the
    ’pre-integration-test’ phase first deploy the web app to the container specific folder and then start the container. Both 'deployer-deploy' and 'start' are cargo specific goals. The code below is already ready for integration testing!

    <!—Example of Configuration –>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.cargo</groupId>
                <artifactId>cargo-maven2-plugin</artifactId>
                <configuration>
                    <wait>true</wait>
                    <container>
                        <containerId>tomcat6x</containerId>
                        <type>installed</type>
                        <home>${catalina.home}</home>
                    </container>
                    <configuration>
                        <type>existing</type> 
                        <home>${catalina.home}</home>
                    <properties>
                            <cargo.tomcat.manager.url>https://yourhost/manager</cargo.tomcat.manager.url>
                            <cargo.remote.username>ManagerAdminLogin</cargo.remote.username>
                            <cargo.remote.password>ManagerAdminPassword</cargo.remote.password>
                        </properties>
                    </configuration>
                    <deployer>
                        <type>installed</type>
                        <deployables>
                            <deployable>
                                <groupId>com.waltercedric</groupId>
                                <artifactId>myapplication-web</artifactId>
                                <type>war</type>
                            </deployable>
                        </deployables>
                    </deployer>
                </configuration>
                <executions>
                    <execution>
                        <id>start-container</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>deployer-deploy</goal>
                            <!--  Only local containers can be started 
                            <goal>start</goal>
                            -->
                        </goals>
                    </execution>
                    <execution>
                        <id>stop-container</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>deployer-undeploy</goal>
                            <!--  Only local containers can be started 
                            <goal>stop</goal>
                            -->
                        </goals>
                    </execution>
                    <execution>
                        <id>verify-deploy</id>
                        <phase>install</phase>
                        <goals>
                            <goal>deployer-deploy</goal>
                        </goals>
                    </execution> 
                    <execution>
                        <id>clean-undeploy</id>
                        <phase>pre-clean</phase>
                        <goals>
                            <goal>deployer-undeploy</goal>
                            <!--  Only local containers can be started 
                            <goal>stop</goal>
                            -->
                        </goals>
                    </execution> 
    
                </executions>
            </plugin>
        </plugins>
    </build>

    Deploying to Tomcat running remotely

    The code slightly change:

    • You can NOT start and stop Tomcat running remotely, only deploy and un deploy your web application
    • ‘installed’ is replaced by ‘remote’
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.cargo</groupId>
                <artifactId>cargo-maven2-plugin</artifactId>
                <configuration>
                    <wait>true</wait>
                    <container>
                        <containerId>tomcat6x</containerId>
                        <type>remote</type>
                    </container>
                    <configuration>
                        <type>remote</type> 
                        <properties>
                            <cargo.tomcat.manager.url>https://yourhost/manager</cargo.tomcat.manager.url>
                            <cargo.remote.username>ManagerAdminLogin</cargo.remote.username>
                            <cargo.remote.password>ManagerAdminPassword</cargo.remote.password>
                        </properties>
                    </configuration>
                    <deployer>
                        <type>installed</type>
                        <deployables>
                            <deployable>
                                <groupId>com.waltercedric</groupId>
                                <artifactId>myapplication-web</artifactId>
                                <type>war</type>
                            </deployable>
                        </deployables>
                    </deployer>
                </configuration>
                <executions>
                    <execution>
                        <id>start-container</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>deployer-deploy</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>stop-container</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>deployer-undeploy</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>verify-deploy</id>
                        <phase>install</phase>
                        <goals>
                            <goal>deployer-deploy</goal>
                        </goals>
                    </execution> 
                    <execution>
                        <id>clean-undeploy</id>
                        <phase>pre-clean</phase>
                        <goals>
                            <goal>deployer-undeploy</goal>
                        </goals>
                    </execution> 
                </executions>
            </plugin>
        </plugins>
    </build>

    If you don’t want to let cargo deploy your web application artefact under the default name myapplication-web-0.0.1.SNAPSHOT.war, you can add the following to the deployable section of cargo

    <plugin>
        <groupId>org.codehaus.cargo</groupId>
        <artifactId>cargo-maven2-plugin</artifactId>
        <configuration>
            <deployer>
                <deployables>
                    <deployable>
                        <properties>
                            <context>mywebapp</context>
                        </properties>
                    </deployable>
                </deployables>
            </deployer>
        </configuration>
    </plugin>

    So you’ll be able to access your web application with http://localhost/mywebapp instead of http://localhost/myapplication-web-0.0.1.SNAPSHOT

    From now on, any phase higher than ’pre-integration-test’ will trigger the deployment to your web application to any tomcat, jboss or weblogic container. As a reminder, here are the major phase of Maven, You can put many of them just separate by a space in run as - goals

    • validate - validate the project is correct and all necessary information is available
    • generate-sources - generate any source code for inclusion in compilation
    • process-sources - process the source code, for example to filter any values
    • generate-resources - generate resources for inclusion in the package
    • process-resources - copy and process the resources into the destination directory, ready for packaging
    • compile - compile the source code of the project
    • process-classes - post-process the generated files from compilation, for example to do byte code enhancement on Java classes
    • generate-test-sources - generate any test source code for inclusion in compilation
    • process-test-sources - process the test source code, for example to filter any values
    • generate-test-resources - create resources for testing
    • process-test-resources - copy and process the resources into the test destination directory
    • test-compile - compile the test source code into the test destination directory
    • test - run tests using a suitable unit testing framework. These tests should not require the code be packaged or deployed
    • prepare-package - perform any operations necessary to prepare a package before the actual packaging.
    • package - take the compiled code and package it in its distributable format, such as a JAR
    • pre-integration-test - perform actions required before integration tests are executed. This may involve things such as setting up the required environment
    • integration-test - process and deploy the package if necessary into an environment where integration tests can be run
    • post-integration-test - perform actions required after integration tests have been executed. This may including cleaning up the environment
    • verify - run any checks to verify the package is valid and meets quality criteria
    • install - install the package into the local repository, for use as a dependency in other projects locally
    • deploy - done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects

    I recommend you also to use:

    • Maven profiles (triggered by environment, Linux, Windows, DEV, TEST, PROD)
    • Key value pair for sensitive data (login, password)
    • Key value pair for contextual data (URL’s of management console)

    All of these data can be saved in your Maven settings.xml or given by system variables at build time.

  • joomla_cms

    php.logo 

    Digital watermarking is the process of possibly irreversibly embedding information into a digital signal. The signal may be audio, pictures or video, for example. If the signal is copied, then the information is also carried in the copy. In visible watermarking, the information is visible in the picture or video. Typically, the information is text or a logo which identifies the owner of the media.[Wikipedia]

    If you decide to go with an online watermarking, you can let watermark picture on the fly using php and .htaccess (at the cost of additional CPU server resources).

    Why Watermarking pictures?

    There is a lot of reasons, among others:

    • To limit images stealing, advanced users will still be able to crop/blur your watermark through!
    • To drive more new users/returning visitors to your site, anybody using your images in a forums may want to visit your site if the watermark can be read (don’t use complex logo, except if you have a well known brand)
    • To advertise your online work,

    This article is a follow up of a previous article presenting how to watermark picture offline (definitive watermarking) using ImageMagick bash script. A lot of steps described there still apply

    Features

    • Watermark pictures on the fly as soon as they are bigger than 500 pixels in width (PHP)
    • Watermark all or only pictures that are hot linked from outside your blog, for example in forums, other blogs (.htaccess setting)
    • Don’t watermark pictures hot linked from search images engine: Google images search or other (.htaccess setting)
    • Easily extensible to your needs: support multiple watermark pictures based on original image size.

    Installation

    create a file .htaccess with the following content, I recommend you to save it at the root of Joomla!® directory structure, you can merge this file with the one provided by Joomla!

    # Uncomment next line to avoid that watermark apply on your
    # site, replace yoursite.com with you Joomla! base
    rewritecond %{http_referer} !^
    http://([^.]*[.]*)?yoursite.com/ [nc]

    # Uncomment next line to avoid applying watermark in Google images
    # search, copy as many lines as needed if you would like to also add Bing, Yahoo, etc...
    rewritecond %{http_referer} !^
    http://(www.)?google.com/ [nc]


    RewriteCond %{REQUEST_FILENAME} –f

    # Path to the watermark.php script, and list of supported images
    RewriteRule \.(gif|jpeg|jpg|png)$ /images/watermark.php [QSA,NC]

    watermark.php script

    Save this script into Joomla!® /images directory, under /images/watermark.php

    Decide at which size you want to protect your images, here starting at 500pixels width, I will apply a watermark overlay in the left corner of the image.

    <?php 
    
      $path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI']; 
    
      $image = imagecreatefromstring(file_get_contents($path)); 
    
      $w = imagesx($image); 
    
      if ($w > 500) { 
    
        $h = imagesy($image); 
    
        $watermark = imagecreatefrompng('watermark.png'); 
    
        $ww = imagesx($watermark); 
    
        $wh = imagesy($watermark); 
    
        imagecopy($image, $watermark, $w-$ww, $h-$wh, 0, 0, $ww, $wh); 
    
      } 
    
      header('Content-type: image/jpeg'); 
    
      imagejpeg($image); 
    
      exit(); 
    
    ?>

    Caveats

    It cost CPU and depending how you set your .htaccess may still allow users to steal images without watermark.

  • TeamCity is a Continuous integration and build management server from JetBrains.

    As the first build step, create a custom script that reads %build.number%, and uses service messages to append the short GIT hash programmatically.

    image

    Here’s an example using a bash script pasted right into the TeamCity GUI (Runner type: Command Line, Run: Custom Script):

    GIT_HASH=%build.vcs.number%
    GIT_HASH_SHORT=${GIT_HASH:0:7}
    echo "#teamcity[buildNumber '#${GIT_HASH_SHORT}']"
    &160;
  • sony_playstation_ps3

    Guide how to replace PS3 Laser Lens  
            version 1.0

    ps3.change.lens

    Attention: This operation will void your warranty!!! I recommend you to send it to
                      SONY if bought your PS3 less than a year ago.
    Attention: While this operation require no particular knowledge, don't try it if you
                      have no patience and feel not confident enough!
    Attention: Look at other tutorials at the end of my article before starting, I did not represent
                      all steps in details. Use them to complete missing steps (this is my brother's PS3, mine
                      may die also soon, will complete tutorial then)

     

    DISCLAIMER: This tutorial is for information purposes, and I am not responsible or can
    be held responsible if you screw up your PS3 by following this tutorial. Make sure the
    PS3 is unplugged from mains power AT ALL TIMES. Mains power is dangerous!
    Dismantle the Playstation 3 console and follow this tutorial at your own risk!


    Duration: 25 minutes
    Cost: 35 euro (SONY ask 200 euro, some shops 99 euro with 3 months warranty) 

    Tool required:

     
    ps3.change.lens_torx_set
    Torx screwdriver TR10 :ps3.change.lens_torx_tr10
    ps3.change.lens_000 Small flathead screw driver + Philips screwdriver
    PS3.Laser.Lens.KES400AAA Order part: KES-400AAA on Internet or search for "ps3 lens" on EBAY.
      Big flat space well lit

     

    Operation done on 18 July 2008, PS3 fully working.

    ps3.change.lens_001 Prerequisites :-)
    ps3.change.lens_002 Remove the 8 screws, slightly lift up the back corners of the top half of the console. There is there 2 small clips near the back you may need to undo with a small screw driver. Now the top of the console should just lift off
    ps3.change.lens_003 1. Lift the drive.
    2. Unplug the power supply near the front right side of drive.
    3. Remove the wide ribbon cable connecting the drive to the motherboard.
     ps3.change.lens_004 details of power supply near the front right side of drive.
    ps3.change.lens_005 Remove the main board by removing the screws.

    Put them beside in the same order as you did remove them. This will help a lot when you put everything back!

    You can now remove the 2 metal plate that encase the ps3 BLU-RAY drive.
    ps3.change.lens_006 Remove the white plastic part that maintain the DVD in place and put beside.

    You now see the drive plastic box.

    More screws to remove to to open that black case.
    ps3.change.lens_007 remove these screws to be able to pull up the old ps3 lens out of the plastic case
    SANYO DIGITAL CAMERA Lens details
    ps3.change.lens_008 the old lens is now ready to die.

    Metal axes can be removed ad will have to be transferred to the new lens
    ps3.change.lens_009 On the new lens, put the cable ribbon, by first pulling up the black clip (A), then insert the ribbon (B) and pull back the black clip .
    ps3.change.lens_010 On the old lens, the white plastic part has to be transferred to the new lens as well.
    ps3.change.lens_011 One screw to remove
    ps3.change.lens_0660 Put axes on new lens and place it back in case.
      screw everything back
       

     

    Comments, corrections are welcome in the new forum Board "Changing your PS3 lens"

    Other  tutorials

  • A seen on TV,  the Fagioli group is specialized in moving huge and heavy objects: 2000, 3000, 5000, 6000 tons!

    Fagioli can offer specialist services, which deal with oversized and over-weight cargo that cannot be transported by conventional methods. These operations cover on a turn key basis all operations from the conceptual engineering design provided in-house, through to positioning onto foundation including any lifting and logistics operations.

     

    HTR_016
    FAGIOLI - TRANSPORT OF A 2100 TON BLAST FURNACE SECTION

    HTR_020
    TRANSPORT OF A 4800 TON MODULE

    HTR_021

    TRANSPORT OF A 6000 TON MILITARY SHIP

    But what is even more interesting is their in house development: SELF PROPELLED MODULAR TRANSPORTERS (SPMT's)

    Self-propelled modular transporters (SPMTs) are multi-axle trailers designed for the transportation of large and heavy cargoes. The SPMT's are designed in modular construction and can be coupled side to side and end to end, or remote units can be operated as a single transporters via radio controls.

    The more heavy the more SPMT they put in parallel: crazy!

    Watch more video and get more info at http://www.fagioli.com


  •  Overall view of my 1st caliber

    24.08.2002 Add a dual battery system for more safety. I have no heli with only one battery. Here is why:

    Problems 1 battery pack 2 packs +
    mechanic
    Switches
    2 packs +
    Electronic
    switch
    Additional cost of system reference + 55€ + 180€
    Open circuit between battery and switch's pack Failure Redundant Redundant
    Open circuit in one of the pack Failure Redundant Redundant
    Battery short circuit in one pack Failure Failure Redundant
    One pack not fully charged Failure Redundant Redundant
    Switch failure (assumes between RX and backup sys) Failure Redundant Failure
    Battery connector from backup system to the receiver Failure Redundant Failure

    Build yourself a dual switch

  • This package contains a dynamic polymorphic factory...

    •  New class can be add dynamically to the factory... even during runtime (dynamic)
    • Factory methods are in a separate class as virtual functions. (polymorphism)
    • Different types of factories can be subclassed from the basic factory.. (abstract)
    • Useful iin case of licence problem, since Concrete classes are created at runtime, and only need to reside in classpath (If they are not present the code still compile). Below, the example show multiple authorization and autorisation scheme, that can be switche on/off very fast.
    • Factory can be driven with an external condition (properties, registry....)
     
    Notice also that the specific concrete classes are dynamically loaded on demand...(class.forname())


    Source Code

    /**
     * Creation date: (7/19/2002 2:50:45 PM)
     * 
     * @author: Cedric Walter
     */
    public interface AuthentificationIF {
    
            public boolean Authentificate(HttpServletRequest req,                        HttpServletResponse resp);        public boolean hasAutorisation(HttpServletRequest req,                        HttpServletResponse resp);}
    
    public abstract class AuthentificationA implements AuthentificationIF {
    
    /**
      * AuthentificationA constructor comment.
      */
            public AuthentificationA() {
                    super();        }
    
           
    /**
      * Authentificate method comment.
      */
           
    public abstract boolean Authentificate(                       
    javax.servlet.http.HttpServletRequest req,                       
    javax.servlet.http.HttpServletResponse resp);
    }
    
    abstract class AuthentificationFactoryA {
    
            private static java.util.Map factories = new java.util.HashMap();       
    /**
      * ComputeFactory constructor comment.
      */
            public AuthentificationFactoryA() {
                    super();        }
    
            public static void addFactory(String id, AuthentificationFactoryA f) {
                    factories.put(id, f);        }
    
            public static final AuthentificationIF createAuthentification(String id)                        
    throws FactoryCreationException { if (!factories.containsKey(id)) { try { // Load dynamically Class.forName(id);
    }
    catch (ClassNotFoundException e) { throw new FactoryCreationException(id);
    } // verify that it has been stored if (!factories.containsKey(id))
    throw new FactoryCreationException(id);
    } return ((AuthentificationFactoryA) factories.get(id)).getAuthentification();
    } protected abstract AuthentificationIF getAuthentification();} /** * concrete class of the abstract factory */ public class MyAuthentificationFactory extends AuthentificationFactoryA { public MyAuthentificationFactory() { super(); } /** * not use since it is subclass */ protected AuthentificationIF getAuthentification() { return null; } } /** * @author: Cedric Walter */ public class NimiusAuthentification extends AuthentificationA implements AuthentificationIF { private static class Factory extends AuthentificationFactoryA { protected AuthentificationIF getAuthentification() { return new NimiusAuthentification(); } } static { AuthentificationFactoryA.addFactory("com.waltercedric.gof.pattern.factory.NimiusAuthentification", new NimiusAuthentification.Factory()); }
    /**
      * Local constructor comment.
      */
            public NimiusAuthentification() {
                    super();        }
    
           
    /**
      * Authenficate method comment.
      */
            public boolean Authentificate(javax.servlet.http.HttpServletRequest req, 
    javax.servlet.http.HttpServletResponse resp)
    { //do some stuff return true; } public boolean hasAutorisation(javax.servlet.http.HttpServletRequest req,
    javax.servlet.http.HttpServletResponse resp)
    { //do some stuff return true; } } /** * @author: Cedric Walter */ public class NoAuthentification extends AuthentificationA implements AuthentificationIF { private static class Factory extends AuthentificationFactoryA { protected AuthentificationIF getAuthentification() { return new NoAuthentification(); } } static { AuthentificationFactoryA.addFactory( "com.waltercedric.gof.pattern.factory.NoAuthentification", new NoAuthentification.Factory()); } /** * Local constructor comment. */ public NoAuthentification() { super(); } /** * Authenficate method comment. */ public boolean Authentificate(javax.servlet.http.HttpServletRequest req,
    javax.servlet.http.HttpServletResponse resp) { return true; } /** * hasAutorisation method comment. */ public boolean hasAutorisation(javax.servlet.http.HttpServletRequest req,
    javax.servlet.http.HttpServletResponse resp) { return true; } } /** * @author: Cedric Walter */ public class ObtreeAuthentification extends AuthentificationA implements AuthentificationIF { private static class Factory extends AuthentificationFactoryA { protected AuthentificationIF getAuthentification() { return new ObtreeAuthentification(); } } static { AuthentificationFactoryA.addFactory( "com.waltercedric.gof.pattern.factory.ObtreeAuthentification", new ObtreeAuthentification.Factory()); } /** * Local constructor comment. */ public ObtreeAuthentification() { super(); } /** * Authenficate method comment. */ public boolean Authentificate(javax.servlet.http.HttpServletRequest req,
    javax.servlet.http.HttpServletResponse resp) { return true; } /** * hasAutorisation method comment. */ public boolean hasAutorisation(javax.servlet.http.HttpServletRequest req,
    javax.servlet.http.HttpServletResponse resp) { return true; } }
  • 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.

    in the pom.xml of your project add the following dependency to ehcache-web

    <dependency>
        <groupId>net.sf.ehcache</groupId>
        <artifactId>ehcache-web</artifactId>
        <version>2.0.4</version>
    </dependency>

    in your web.xml, add a filter and configure it properly

    <filter>
     <filter-name>CompressionFilter</filter-name>
     <filter-class>net.sf.ehcache.constructs.web.filter.GzipFilter</filter-class>
    </filter>
    <filter-mapping>
     <filter-name>CompressionFilter</filter-name>
     <url-pattern>*.css</url-pattern>
    </filter-mapping>
    <filter-mapping>
     <filter-name>CompressionFilter</filter-name>
     <url-pattern>*.html</url-pattern>
    </filter-mapping>
    <filter-mapping>
     <filter-name>CompressionFilter</filter-name>
     <url-pattern>*.js</url-pattern>
    </filter-mapping>
    <filter-mapping>
     <filter-name>CompressionFilter</filter-name>
     <url-pattern>/*</url-pattern>
    </filter-mapping>

    Read more at EhCache Web Caching page.

    As a bonus, I provide you also below the configuration for the famous challenger HTTP server nginx

     ##
     # Gzip Settings
     ##
     gzip  on;
     gzip_http_version 1.1;
     gzip_vary on;
     gzip_comp_level 6;
     gzip_proxied any;
     gzip_types text/plain text/css application/json application/x-javascript \
    text/xml application/xml application/xml+rss text/javascript \
    application/javascript text/x-js; gzip_buffers 16 8k; gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    &160;

    or for the number one HTTP server Apache using mod deflate /etc/apache2/conf.d/deflate.conf

    <Location />
    # Insert filter
    SetOutputFilter DEFLATE
    
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE image/svg+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/atom_xml
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE text/html
    
    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    
    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    
    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    # Don't compress images
    SetEnvIfNoCase Request_URI \
    \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    
    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary
    </Location>
  • At SD Forum 2006, Randy Shoup and Dan Pritchett, both with eBay, gave a presentation on eBay's architecture. Pritchett subsequently posted his presentation slides in his blog, The eBay Architecture.
    Predictably, the presentation contained a few inspiring statistics, such as:
    • 15,000 application instances running in eight data centers
    • 212,000,000 registered users
    • 1 billion page views per day
    • 26 billion SQL queries and updates per day
    • Over 2 petabytes of data
    • $1,590 worth of goods traded per second
    • Over 1 billion photos
    • 7 languages
    • 99.94% uptime

    Other stats in the presentation related to development process and features, such as:

  • Over 300 new features released each quarter
  • Over 100,000 lines of code released every two weeks

"According to the presentation, the goal of eBay's current architecture is to handle an additional ten-fold increase in traffic, something eBay expects to reach within a few short years. Another architecture objective is to be able to handle peak loads, and for components to gracefully degrade under unusual load or in the case of system failures." read more  HERE

 

  • While the Brits are lighting up for Bonfire Night and burning effigies of Guy Fawkes, the Eclipse development team has delivered their 3rd Eclipse 3.1 milestone build. Here are some of the more noteworthy things available in milestone build M3 (November 5, 2004) which is now available for download. See the M3 build notes for details about bugs fixed and other changes.
  • eclipse

    It is always difficult to discover what’s new in every Eclipse release, as the number of features is just growing over the years. More difficult is even to locate the new and noteworthy page, that’s why I list them all below for eclipse 3.5

    News and noteworthy pages contains interesting or significant changes made to the Eclipse Platform for the 3.5 release of Eclipse.

    &160;

    &160;

    I have personally saved them all (since eclipse 3.3) in a directory for further references. I wish eclipse would list them all in their wiki

    You’ll find a “What’s new page” also in your local help at http://127.0.0.1:1829/help/topic/org.eclipse.platform.doc.user/whatsNew/platform_whatsnew.html but it look smaller in size than the html counterpart.


  • Community Bulletin

    Eclipse is turning 5! It was November 7, 2001 when IBM first released Eclipse as an open source project. To celebrate, a number of activities are being organized for the Eclipse community.

    Birthday Card

    An electronic birthday card has been setup to allow individuals in the the Eclipse community to show their support for Eclipse. Everyone in the Eclipse community is encouraged to sign the Eclipse birthday card.

    Individuals signing the card before December 1, 2006 will qualify for a random draw to win one of 20 Eclipse sweaters.

    Product Hall of Fame

    Over the last five years, the Eclipse community has built hundreds, if not thousands, of Eclipse based products. Therefore, an Eclipse Product Wall of Fame has been setup to showcase these products. Organizations and individuals that have created Eclipse based products and plug-ins are invited to add their solution to the Product Wall of Fame.

    Eclipse Birthday Parties

    There are over 25 local Eclipse birthday parties organized in cities around the world to celebrate this event. Locations, dates, and RSVP links can be found here.


    And here is my submission

     
  • The goal of the Callisto Simultaneous Release is to release ten major Eclipse projects at the same time. We are doing this simultaneous release to support the needs of the ecosystem members who integrate Eclipse frameworks into their own software and products. While those product producers naturally accept the ultimate responsibility for their customers' experiences, Callisto's goal is to eliminate uncertainity about project version numbers, and thus to allow ecosystem members to start their own integration, cross-project, and cross-product testing efforts earlier. Callisto is about improving the productivity of the developers working on top of Eclipse frameworks by providing a more transparent and predictable development cycle; Callisto is about developers helping developers serve the whole Eclipse community.

    from Eclipse.org Calisto

    I am using Calisto now and YOU?

  • The major news I was waiting for:


    Eclipse Foundation, Zend Technologies, and IBM Announce the Approval of the PHP IDE Project
    The Eclipse Foundation, an open source community committed to the implementation of a universal software development platform, Zend Technologies and IBM, today announced that the Eclipse PHP IDE project has been approved by the Eclipse Foundation. The technology project was proposed by Zend and IBM on October 21, 2005. It will deliver a PHP Integrated Development Environment framework for the Eclipse Platform and will encompass the development components necessary to develop PHP-based web applications and will leverage the existing Eclipse Web Tools Project.

    Read the proposal here, If youre are in the area of Santa Clara, Zend is showing  demo at EclipseCon. Do someone know what wwill happen wwith PHPeclipse.de ???

  • eclipse.galileo

    For the sixth year in a row, the Eclipse community has delivered its annual release train on its scheduled date. Galileo, the 2009 release train, is the largest ever release from the Eclipse community, comprising 33 projects and over 24 million lines of code. Over 380 committers from 44 different organizations participated to make this release possible.

    &160;

    &160;

    Download it now

    Note: Subversive is part of Galileo, but the first time you sync your code, you may get in SVN console a red error message:

    Selected SVN connector library is not available or cannot be loaded.
    If you selected native JavaHL connector, please check if binaries are available or install and select pure Java Subversion connector from the plug-in connectors update site.
    If connectors already installed then you can change the selected one at: Window->Preferences->Team->SVN->SVN Client.

    That’s because SVN connectors are not part of Galileo…

    The site where you’ll be able to download subversive connectors is HERE

  • I found today the mother of all shortcuts in eclipse, by accident....

    Type CTRL-3 in eclipse and a pop windows will appear where you can type any part of
    a keyword

    eclipse.best.shortcut.ctrl-3

    The windows will propose you anything related to your search (here I am searching
    the rename refactoring, for the example)

    shortcut

    This is the most easiest way to learn new tricks (news and noteworthy release note being the second).

    If you prefer the old way, that is by printing a huge list of shortcut list, here is what
    I found to be the most up to date:
    http://eclipse-tools.sourceforge.net/shortcuts.html