In production and development, open source as a development model promotes a universal access via a free license to a product's design or blueprint, and universal redistribution of that design or blueprint, including subsequent improvements to it by anyone. [read more at]

  • 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


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


    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)";


    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
  •  I see a lot of FUD (FUD is an abbreviation for Fear, Uncertainty, and Doubt, a sales or marketing strategy of disseminating negative but vague or inaccurate information on a competitor's product. The term originated to describe misinformation tactics in the computer software industry and has since been used more broadly.[WikiPedia])  coming from the biggest company around there, namely Microsoft and Oracle stating that the open source developer, a geek, virtually does not exist. As last year, Steve Ballmer (Microsoft) has tagged Linux developer consecutively, ("Linux is a cancer that attaches itself in an intellectual property sense to everything it touches," ), then a bunch of  Communist. A lot of FUD and the reality is as usual in between...

    An Open source developer profile?

    I presume that a lot of professionals in big companies, when they go back home, have an envy to create code in the same domain of competence or in a new one, maybe it is their hobby, which can be mixed with their computing knowledge, or they use a program to solve, help them in their hobby . It is the case for me.

    I am a java developer, working in a swiss insurance company, and doing some PHP code for FUN and because I STILL consider it RELAXING. It has also permit me to learn a new language: PHP and make me a name in the joomla community, the site counter of this page (1.2 Millions visitors and counting), the number of weekly mails is my only salary. I have a well paid job that's true, and it allow me to offer a part of my  free time and code under the GPL license. What would had happen otherwise? I think I would have sell a limited number of user of licenses, and may have stop the support one day...

    Reality in a gray zone in huge projects

    While I agree that at some point any open source project which has million of lines of code, will require so much professionalism, release management overhead, architecture vision, or manage its internal complexity that it wont be possible to achieve big milestones without a lot of  professionals backing up the project. (where IBM which has injected 1Bn dollars) is a good example of what big companies can do to help such major project..

    Why making my code open?

    Open source is different, open source will allow any future maintainer to take my code, reuse or enhance it. My code will or may never die if it is still useful. Something not possible in closed source relationship, where the code may be bought at some time by an evil company, and killed.

    Open source has been clearly an advantage in the development model of my Joomla components. Lets take securityimages (a CAPTCHA framework), I've develop the first plugin named core, and integrated 2 other well known open source plugins. FREECAP and HNCaptcha (Both GPL). While using them and looking at their internal code, it has help me improving my core plugin, using existing and well stable code, has pushed the overall quality, stability at a fraction of the cost: no licenses except keeping the copyright header untouch, it has only cost me time to integrate them!

    Open Source do not mean that You can take my code away, my code is still copyrighted, You can not remove the GPL header or Credits text, The only way to close this code now, i to take my GPL code away and rewrite this code in Your own way.
    I assume nearly every open source developer has its own reasons, but I've mainly develop code because:
    • I have had to solve concrete problem on my homepage: fighting spams. Nothing was existing at that time to solve my problem under Mambo and now Joomla,
    • Ive learn a lot at looking at someone else code, and I am now receiving some patches by emails from other developer around the world, translation in foreign languages, individual give their time back because they also see the advantage of open source: You can really get in contact with the main developer and influence the list of new features...
    • I want to give back something to the community in a whole, Joomla, but also Linux which is powering my 2 PC since 3 years, and so many others tools I daily use and appreciate.
    Oracle is a predator company like Microsoft, and I hope they understand that GPL project may be bought but can't totally disappear!
  • I am really glad to announce that I am now officially in the EOS Directory Advisory and Expert Board of the EOS directory.

    The EOS directory is the leading online platform to help enterprises and organizations identify and evaluate Open Source technologies.

    Initially launched by Optaros, about two years ago, the platform has been recently handed over Bruno von Rotz, initial sponsor of the initiative and well known Open Source specialist (follow Bruno on Twitter: accelIT).

    In support to strengthen the neutral approach to ratings and selection of the technologies, the new EOS Directory Advisory and Expert Board has been established over the last weeks and announced today.

    The Advisory and Expert Board will be both instrumental in guiding the future development of the EOS Directory Platform as well as in making sure that the content is accurate, relevant and fairly represented. (Source: EOS Directory Blog)

    The initial member list of the EOS Directory Advisory and Expert Board – representing user and provider communities as well as international expert audiences – includes Aleksander Farstad, Cédric Walter, David Nüscheler, Gianugo Rabellino, Roberto Galoppini, Hannes Gassert, Hans Waarle, Joel Gardet, Matt Asay, Matthias Geisler, Michael Hanisch, Olivier Pépin, Raju Bitter, Ralf Hauser, Seth Gottlieb, Stephen Walli and Tiberiu Fustos.

    During the next months the EOS Directory Platform will also be rejuvenated and updated to even better support Enterprises and Organizations in need for Open Source technologies’ selection and evaluation help. (Source: EOS Directory Blog

    Read more at the official EOS Directory Blog)

  • If you want to have more info about your favorite open source project, it can be firefox, gimp, joomla!, Linux (324 projects!). OpenOffice...
    If youre maintaining a project, You can sign there for a free account, and let OhLoh connect to your source control server and provide some insight about your project.
    OhLoh was founded by the former Microsoft managers Jason Allen and Scott Collison in 2004 and joined by the developer Robin Luckey. The Codebase History informs about the activity inside the projects.

    Linux Kernel 2.6.19
    Over the history of the project, 2390 developers have contributed code. However, only 1673 have done so in the last year.
    Estimated project costs:
    Codebase 5,133,027 LOC
    Effort (est.) 1574 Person Years
    Avg. Salary $/year
    Total $86,550,897

    Some of the most popular projects (more than 3700 projects available):
    Coppermine Photo Gallery
    XOOPS Dynamic Web CMS

    Visit  OhLoh now
  • chrome As seen at

    Extensions for Google Chrome are Coming :-)

    Developing extensions for Google Chrome

    "Learn how Google Chrome makes it easy to write extensions using the web technologies you already know. This talk will cover the basics of the extension system (distribution/packaging, installation, updates), as well as the different APIs to enhance with the browser."

    Google I/O offers 80+ sessions that present highly technical content on Android, Chrome, App Engine, Google Web Toolkit, AJAX and many more. A subset of the content is currently available, providing you with a preview of what I/O has to offer. We'll be updating this session list so check back frequently.

  • SuperKaramba is, in simple terms, a tool that allows you to easily create interactive eye-candy on your KDE desktop. Currently, only linux is officially supported.
    • RPM for Suse 9.2 are here
    • A choice of Karamba theme are here is worth a visit: You will find under the GPL:
    Wallpapers,  Themes / Styles, Window Decorations, Icons, System Sounds , Color Schemes, Screensavers, Noatun Skins,  K-Jofol,  Kaiman, Screenshots, Splash Screens, X11 Mouse Themes, KDE Improvements    
    Karamba themes, Fonts, Service Menus, Other, Artwork Contest
  • Some people are trying to redefine freedom, and limit our liberty; but  they loose miserably...

    A US federal judge has ruled against antitrust claims that the General Public Licence promotes unfair competition, and in doing so has promoted its cause.

    On Monday, US Federal Judge John Daniel Tinder, dismissed the Sherman Act antitrust claims brought against the Free Software Foundation.

    The claims made by Plaintiff Daniel Wallace included: that the General Public License (GPL) constituted a contract, combination or conspiracy; that it created an unreasonable restraint of trade; and that the FSF conspired with IBM, Red Hat, Novell and other individuals to pool and cross-license their copyrighted intellectual property in a predatory price fixing scheme.


    Read more here
  • The version 8.0rc2 is available here
    FreeMind is a premier free mind-mapping software written in Java. The recent development has hopefully turned it into high productivity tool. We are proud that the operation and navigation of FreeMind is faster than that of MindManager because of one-click "fold / unfold" and "follow link" operations.

  • Freemind.for.joomla.logo 

    Freemind for Joomla is a content plugin that easily display mindmap in your articles

    Version 1.2.1

    NEW: Logging is working is debug mode (written to /logs/plg_freemind.php)
    NEW:  New applet using java if you don not like flash (the flash applet is way nicer)
    NEW: Tested with Freemind 0.8.1 and 0.9RC7
    NEW: Add documentation in administrator plugin panel with links to wiki, forums, download

    Support: If you require support for this component please visit the Support Forums.

    Documentation: Official documentation available at Cédric Walter Wiki.

    Do you like this extension? Rate it at Joomla Extension Directory (JED)

    Download Visit the version manager HERE

    Always use the latest version subscribe to the download RSS feed-icon-14x14[26]

  • BOSTON, Massachusetts, USA—Friday, June 29, 2007—The Free Software Foundation (FSF) today released version 3 of the GNU General Public License(GNU GPL), the world's most popular free software license.

    “Since we founded the free software movement, over 23 years ago, the free software community has developed thousands of useful programs that respect the user's freedom. The programs are in the GNU/Linux operating system, as well as personal computers, telephones, Internet servers, and more. Most of these programs use the GNU GPL to guarantee every user the freedom to run, study, adapt, improve, and redistribute the program,” said Richard Stallman, founder and president of the FSF.

    Version 3 of the GNU GPL strengthens this guarantee, by ensuring that users can modify the free softwareon their personal and household devices, and granting patent licenses to every user. It also extends compatibility with other free software licenses and increases international uniformity.

    Jeremy Allison, speaking on behalf of the Samba team, states that they see the new license as “a great improvement on the older GPL,” and that it is “a necessary update to deal with the new threats to free software that have emerged since version 2 of the GPL.”

    I am currently looking at the GPL version 3 and all my Joomla components will be available under that licence soon.
  •  GIMP is the GNU Image Manipulation Program is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.

    Version 2.2.10 of the GNU Image Manipulation Program is now available. This is a bug-fix release in the stable 2.2 series and it contains a new splash screen to celebrate the 10 anniversary today of GIMP.

    Windows binary can be grab here while linux version are available at the main site

     And because I was searching for a long time an alternative to Frontpage (I have an old version of 1997!) and/or Dreamweaver  which is open source and  WYSIWYG, I am very pleased to use since 2 weeks now, NVU: A complete Web Authoring System for Linux Desktop users as well as Microsoft Windows and Macintosh. Make a try You won't regret it :-)

  •  GIMP is the GNU Image Manipulation Program is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages (77).

    Version 2.4 of the GNU Image Manipulation Program is now available.

    The release note contains the list of new features and some nice screenshots. You can download this semi professional tool at no charge

    GIMP  run on any NT-based version of Windows (NT4, 2000, XP or Vista download HERE), and also on Macintosh  (download HERE)
    Windows binary can be grab here while linux version are available at the main site

    Some useful links to finish this small blog post GIMP Documentation

  • When working with many feature/release/bugix/hotfix branches, it is a bad idea to start changing the pom version as this will create merge conflicts using pull request. this plugin allow you to keep in ALL branches the same pom version for all your projects, for example MASTER-SNAPSHOT the version will be derived from branch name automagically :-)

    You may want to read more first these 2 short articles

    git-branch-renamer-maven-plugin allow you to keep in ALL branches the same pom version for all your projects: for example MASTER-SNAPSHOT and never change it again.

    the project version will be derived from branch name automatically when running in your continuous integration server.

    branch name feature/xxxx

    • <version>xxxx-SNAPSHOT</version> (default)
    • <version>xxxx</version> (release = true)
    • <version>0-xxxx-SNAPSHOT</version> (forceNumericalVersion = true)
    • <version>feature-xxxx-SNAPSHOT</version> (filterOutBranchQualifier = false)

    The project is hosted at Github 

  • The Open Handset Alliance, a group of more than 30 technology and mobile companies, developed Android: the first complete, open, and free mobile platform. To help developers get started developing new applications, we're offering the Android Software Development Kit.

    ANDROID is now OPEN SOURCE software

    At they describes how to set up your local work environment, how to use GIT to get the Android files, and how to build the files on your machine. The source is approximately 2.1GB in size.

    Try android emulator for FREE;

    Important links:

    • "RSSOwl collect data from RSS-compliant sites are called RSS readers or "aggregators." RSSOwl is such an application. It lets you gather, organize, update, and store information from any compliant source in a convenient, easy to use interface, save selected information in various formats for offline viewing and sharing, and much more.RSSOwl is also free of charge, fast, cross-platform, and unobtrusive. It's easy to install, easy to use, and easy to move."
      Get RSSOwl
    • Azureus is a java bittorrent client.It provides a bittorrent protocol implementation using java language.Azureus offers multiple torrent downloads, queuing/priority systems (on torrents and files), start/stop seeding options and instant access to numerous pieces of information about your torrents.
    • ComicViewer is a browser for online comics. Using a simple interface you can read multiple comics without having to browse all the sites.
  • The Apache  software fundation has put a new project in it's incubator line: Harmony

    A free open source Java virtual machine and classes librairies!!!

    Right now it is only a thread, and a interesting discussion has start on  

    Purpose of this project is to create and use an open source, compatible implementation of J2SE
    5, the latest version of the Java 2 Standard Edition specification.

    "The Apache Software Foundation provides support for the Apache community of open-source software projects. The Apache projects are characterized by a collaborative, consensus based development process, an open and pragmatic software license, and a desire to create high quality software that leads the way in its field. We consider ourselves not simply a group of projects sharing a server, but rather a community of developers and users."

    Update: Sun executives have endorsed the project, and the company might even participate. found at

    • How does Open source and Linux look like? A complete listing of Linux and Open Source screenshot is available at  OSDIR
    • A quoi ressemble l'open source et linux en général?  une liste complète de copie d'écran des logiciels Linux open-source est disponible sur OSDIR

  • Ever pondered how companies make money from free and open source development projects? Could you open source your code and still make a profit?
    In this easy-to-follow guide, we’re going to examine the commercial opportunities for open source software. We’ll investigate the different ways of generating revenue from open source software and how to reduce development costs by using open source software in your development life cycle and how to select open source software technologies for building that next knockout product.
    Read more HERE at
  • MySQL is a multithreaded, multi-user, SQL (Structured Query Language) Database Management System (DBMS) with an estimated six million installations. MySQL AB makes MySQL available as open source software / free software under the GNU General Public License (GPL), but they also sell it under traditional commercial licensing arrangements for cases where the intended use is incompatible with use of the GPL. [Wikipedia]

    MySQl is powering a lot of open source application all over the world (for example my homepage with Joomla CMS, phpnuke, postnuke...), a lot of internet provider let you define at least 1 to 5 database.
    MySQL 5.0 is the most significant product upgrade in the company's ten-year history, and the list of new features is impressive and futhfill a lot of requirementsfrom small to middle complexity applications

    Wineis a project to allow a PC running a Unix-like operating system and the X Window System to run x86 programs for Microsoft Windows. Alternately, those wishing to port a Windows application to a Unix-like system can compile it against the Wine libraries. The name was derived from the recursive acronym "Wine Is Not an Emulator" (it implements a compatibility layer), although some have used the unofficial expansion "Windows Emulator". Although the forms "WINE" and "wine" of the name are sometimes used, the developers have agreed on the now correct "Wine". [Wikipedia]

    Note I have personally already tested following major tools (which I can not live without) under my SuSE box: XMLspy, Beyond compare, HP49 emulator without any pain using a daily build of WINE(beginn of 2005)

    This is release 0.9 ofWine, a free implementation of Windows on Unix. After 12 years of development, this release marks the beginning of the beta testing phase. Everybody is encouraged to try it; while there are still bugs, most applications are expected to at least install and do something useful. from release 0.9 anouncement

  • Another tool that open source community can be proud: INKSCAPE

    Inkscape is an open source drawing tool with capabilities similar to Illustrator, Freehand, and CorelDraw that uses theW3C standardscalable vector graphicsformat (SVG). Some supported SVG features include basic shapes, paths, text, markers, clones, alpha blending, transforms, gradients, and grouping. In addition, Inkscape supportsCreative Commons meta-data, node-editing, layers, complex path operations, text-on-path, and SVG XML editing. It also imports several formats like EPS, Postscript, JPEG, PNG, BMP, and TIFF and exports PNG as well as multiple vector-based formats.

    Inkscape's main motivation is to provide the Open Source community with a fully W3C compliant XML, SVG, and CSS2 drawing tool. Additional planned work includes conversion of the codebase from C/Gtk to C++/Gtkmm, emphasizing a lightweight core with powerful features added through an extension mechanism, and the establishment of a friendly, open, community-oriented development process.

    To be convinced by the quality of operations performed by inkscape, a look at the screenshots section is invaluable.  As usual in the open soure world, the code has been made to be highly portable, understand that inkscape is available for download for Linux, MacOsx and windows...
    For any "Bitmap only" operations on pictures files, I recommend to use the complementary open source Tool GIMP 

  • shaunthesheep_google_chrome_3d_css

    The latest version of a Chrome browser show its muscle in version 12 (just restart your chrome browser to get this new version), major new features

    • Hardware accelerated 3D CSS
    • New measures to prevent malware and phishing attempts

    Watch Shaun and his friends' antics in clips from "An Ill Wind", "Snowed In", "The Big Chase", and "Twos Company" through an interactive experiment created with hardware-accelerated HTML5 video, 3D CSS Transforms, and WebM. Use the controls to expand and shrink the video, rotate the scene, bring up a rotating carousel of videos, turn on puddle reflection, and navigate between videos in a snap.

    HTML5 and CSS make these advanced functionalities (and more!) a part of the modern web standard, and allow developers and artists to create immersive, imaginative experiences for everyone to enjoy.

    Google is really pushing the web and they show it nicely.

    I am also a fan of Wallace & Gromit as well Smile

  • linuxOnIPhone

    Linux 2.6 kernel has been ported to Apple's iPhone platform!!!!!

    A short narrated video demonstrating iPhone Linux, a port of the Linux operating system to the iPhone 2G, iPhone 3G, and first-generation iPod touch platforms. This video was created with Cycorder, a video recorder app for the iPhone, with apologies for the blurriness.

    Original POST with the news is HERE

  • Java Will be release under a GPL licence!

    From Joshua Marinacci Blog

    "The big announcement today: Java will be open sourced under the GPL. I think it makes a lot of sense because it protects Sun's interest in preventing forks and also the community's interest in knowing that Java will forever be available in the public sphere. The GPL has always provided an option to fork just in case someone takes the code in a bad direction. Historically having this option available ensures that it never needs to actually be used, letting the community grow and thrive.

    So what does this actually mean? What is the benefit to open source Java? How will things change? Here's what I think will change and what won't. I say this as my own opinion, not an official statement from Sun. I also say this as someone new to Sun, coming to Sun two years ago from an open source background. I'm sure that engineers with more experience than I will have different opinions. So with that, let's hear it:

    How will open source change Java

    • Real bugs will be fixed faster and non-bugs will be closed faster than ever.
    • Java won't fork. Few developers will have incentive to fork Java. It's a lot of work for little gain. Branches for new features or new platform support: yes. A true fork: no. Not even MS has much to gain from this anymore.
    • The JCP will grow and change. As before, big decisions about the future of Java will go through the Java Community Process. However, with more interested developers the ranks of the JCP will grow and change in some very good ways.
    • Java will have first class support on Linux, Free-BSD, and other 100% open operating systems. This is huge. Hugely, huge. I'm hoping we'll finally get a KDE look and feel as well.
    • NetBeans will open the entire JDK sources all at once. It's true, we're working on it for NetBeans 6. With the new editor infrastructure this will be possible. You might not actually want to do this, but it should be possible if you've got enough memory.
    • We will see lots of small crazy experimental versions of Java that add different things. Imagine a JDK with Find Bugs, MySQL, SwingX, JDIC, JInput, JOGL, Java3D, Tritonus MP3, jSDL, KDE-Java, Gnome-Java and a bunch of other cool libraries pre-integrated. We might even see an entire downloadable VMWare virtual harddrive with Ubuntu + Super JDK + NetBeans preinstalled for the ultimate prefab development environment.
    • More adoption of Looking Glass. Now that Java can be freely run on Linux desktops out of the box, there is incentive to ship Looking Glass bundled in with the OS. There's a lot of good 3D cards out there. Let's use'em!
    • More 3D Java Games for all platforms. I expect that people will start shipping an optimized copy of Java embedded in their applications. The end user will never need to know that Java is involved. JOGL + Java3D is now available for Win, Mac, and any copy of Linux with the right X configuration (which is more common than ever).
    • Burnable Java. Imagine a tool that burns a photo slideshow application preloaded with your photos, plus a copy of Java, straight to a CD. Hand the CD to your Mom, she pops it into her computer, and the photo slideshow starts right up. You'll never need to worry about the version of Java because it's shipped with your app. You don't need to worry about the OS because you code against Java, not against native APIs. (hmm. perhaps 'burnable java' isn't the right name for this. :)
    • Java will grow to fill every available computing niche and finally achieve the goal of total world domination.

    Okay, so maybe that last one is a stretch, but it's true that this will help to bringMore Java to More Places."

    The licence that Sun have now decided for Java are explained in a document called the "GPL license". Those terms included the most important one, which is that no-one may redistribute a version or derivative of this Sun Java code without making the source code of that version or derivative also come under the GPL.  (Yes Steve Ballmer GPL act like a virus ;-)).

  • Keyboard Shortcuts


    Control-NNew file.
    Control-OOpen file.
    Control-WClose buffer.
    Control-E Control-WClose all buffers.
    Control-SSave buffer.
    Control-E Control-SSave all buffers.
    Control-PPrint buffer.
    Control-Page UpGo to previous buffer.
    Control-Page DownGo to next buffer.
    Control-`Go to recent buffer.
    Control-QExit jEdit.


    Control-E Control-TTurn gutter (line numbering) on and off.
    Control-2Split view horizontally.
    Control-3Split view vertically.
    Alt-Page UpSend keyboard focus to previous text area.
    Alt-Page DownSend keyboard focus to next text area.
    Control-E Control-Up; Control-Left; Control-Down; Control-RightSend keyboard focus to top; bottom; left; right docking area.
    Control-E Control-`Close currently focused docking area.
    Control-E Control-ESend keyboard focus back to current text area.


    Control-EnternumbercommandRepeat the command (it can be a keystroke, menu item selection or tool bar click) the specified number of times.

    Moving the Caret

    ArrowMove caret one character or line.
    Control-ArrowMove caret one word or paragraph.
    Page Up; Page DownMove caret one screenful.
    HomeFirst non-whitespace character of line, beginning of line, first visible line (repeated presses).
    EndLast non-whitespace character of line, end of line, last visible line (repeated presses).
    Control-HomeBeginning of buffer.
    Control-EndEnd of buffer.
    Control-]Go to matching bracket.
    Control-E Control-[; Control-]Go to previous; next bracket.
    Control-LGo to line.

    Selecting Text

    Shift-ArrowExtend selection by one character or line.
    Control-Shift-ArrowExtend selection by one word or paragraph.
    Shift-Page Up; Shift-Page DownExtend selection by one screenful.
    Shift-HomeExtend selection to first non-whitespace character of line, beginning of line, first visible line (repeated presses).
    Shift-EndExtend selection to last non-whitespace character of line, end of line, last visible line (repeated presses).
    Control-Shift-HomeExtend selection to beginning of buffer.
    Control-Shift-EndExtend selection to end of buffer.
    Control-[Select code block.
    Control-E W; L; PSelect word; line; paragraph.
    Control-E Control-LSelect line range.
    Control-\Switch between single and multiple selection mode.


    Control-E Control-JCenter current line on screen.
    Control-E Control-ICenter caret on screen.
    Control-'; Control-/Scroll up; down one line.
    Alt-'; Alt-/Scroll up; down one page.

    Text Editing

    Control-E Control-ZRedo.
    Backspace; DeleteDelete character before; after caret.
    Control-Backspace; Control-DeleteDelete word before; after caret.
    Control-D; Control-E DDelete line; paragraph.
    Control-Shift-Backspace; Control-Shift-DeleteDelete from caret to beginning; end of line.
    Control-E RRemove trailing whitespace from the current line (or all selected lines).
    Control-JJoin lines.
    Control-BComplete word.
    Control-E FFormat paragraph (or selection).

    Clipboard and Registers

    Control-X or Shift-DeleteCut selected text to clipboard.
    Control-C or Control-InsertCopy selected text to clipboard.
    Control-E Control-UAppend selected text to clipboard, removing it from the buffer.
    Control-E Control-AAppend selected text to clipboard, leaving it in the buffer.
    Control-V or Shift-InsertPaste clipboard contents.
    Control-E Control-PVertical paste clipboard contents.
    Control-R Control-X keyCut selected text to register key.
    Control-R Control-C keyCopy selected text to register key.
    Control-R Control-U keyAppend selected text to register key, removing it from the buffer.
    Control-R Control-A keyAppend selected text to register key, leaving it in the buffer.
    Control-R Control-V keyPaste contents of register key.
    Control-R Control-P keyVertically paste contents of register key.
    Control-E Control-VPaste previous.


    Control-E Control-MIf current line doesn't contain a marker, one will be added. Otherwise, the existing marker will be removed. Use the Markers menu to return to markers added in this manner.
    Control-T keyAdd marker with shortcut key.
    Control-Y keyGo to marker with shortcut key.
    Control-U keySelect to marker with shortcut key.
    Control-K keyGo to marker with shortcut key, and move the marker to the previous caret position.
    Control-E Control-,; Control-.Move caret to previous; next marker.

    Search and Replace

    Control-FOpen search and replace dialog box.
    Control-GFind next.
    Control-HFind previous.
    Control-E Control-BSearch in open buffers.
    Control-E Control-DSearch in directory.
    Control-E Control-RReplace in selection.
    Control-E Control-GReplace in selection and find next.
    Control-,Incremental search.
    Control-.Quick HyperSearch.
    Alt-,Incremental search for word under the caret.
    Alt-.Quick HyperSearch for word under the caret.

    Source Code Editing

    Control-;Expand abbreviation.
    Alt-Left; Alt-RightShift current line (or all selected lines) left; right.
    Shift-Tab; TabShift selected lines left; right. Note that pressing Tab with no selection active will insert a tab character at the caret position.
    Control-IIndent current line (or all selected lines).
    Control-E Control-CWing comment selection.
    Control-E Control-BBox comment selection.

    Folding and Narrowing

    Alt-BackspaceCollapse fold containing caret.
    Alt-EnterExpand fold containing caret one level only.
    Alt-Shift-EnterExpand fold containing caret fully.
    Control-E XExpand all folds.
    Control-E AAdd explicit fold.
    Control-E SSelect fold.
    Control-E Enter keyExpand folds with level less than key, collapse all others.
    Control-E N NNarrow to fold.
    Control-E N SNarrow to selection.
    Alt-Up Alt-DownMoves caret to previous; next fold.
    Control-E UMoves caret to the fold containing the one at the caret position.


    Control-M Control-RRecord macro.
    Control-M Control-MRecord temporary macro.
    Control-M Control-SStop recording.
    Control-M Control-PRun temporary macro.
    Control-M Control-LRun most recently played or recorded macro.

    Alternative Shortcuts

    A few frequently-used commands have alternative shortcuts intended to help you keep your hands from moving all over the keyboard.

    Alt-J; Alt-LMove caret to previous, next character.
    Alt-I; Alt-KMove caret up, down one line.
    Alt-Q; Alt-AMove caret up, down one screenful.
    Alt-ZFirst non-whitespace character of line, beginning of line, first visible line (repeated presses).
    Alt-XLast non-whitespace character of line, end of line, last visible line (repeated presses).

    Glob Patterns

    jEdit uses glob patterns similar to those in the various Unix shells to implement file name filters in the file system browser. Glob patterns resemble regular expressions somewhat, but have a much simpler syntax. The following character sequences have special meaning within a glob pattern:

    • ? matches any one character
    • * matches any number of characters
    • {!glob} Matches anything that does not match glob
    • {a,b,c} matches any one of a, b or c
    • [abc] matches any character in the set a, b or c
    • [^abc] matches any character not in the set a, b or c
    • [a-z] matches any character in the range a to z, inclusive. A leading or trailing dash will be interpreted literally

    In addition to the above, a number of "character class expressions" may be used as well:

    • [[:alnum:]] matches any alphanumeric character
    • [[:alpha:]] matches any alphabetical character
    • [[:blank:]] matches a space or horizontal tab
    • [[:cntrl:]] matches a control character
    • [[:digit:]] matches a decimal digit
    • [[:graph:]] matches a non-space, non-control character
    • [[:lower:]] matches a lowercase letter
    • [[:print:]] same as [:graph:], but also space and tab
    • [[:punct:]] matches a punctuation character
    • [[:space:]] matches any whitespace character, including newlines
    • [[:upper:]] matches an uppercase letter
    • [[:xdigit:]] matches a valid hexadecimal digit

    Here are some examples of glob patterns:

    • * - all files
    • *.java - all files whose names end with ".java"
    • *.{c,h} - all files whose names end with either ".c" or ".h"
    • *[^~] - all files whose names do not end with "~"

     Regular Expressions

    jEdit uses regular expressions to implement inexact search and replace. A regular expression consists of a string where some characters are given special meaning with regard to pattern matching.

    Within a regular expression, the following characters have special meaning:

    Positional Operators

    • ^ matches at the beginning of a line
    • $ matches at the end of a line
    • \b matches at a word break
    • \B matches at a non-word break
    • \< matches at the start of a word
    • \> matches at the end of a word

    One-Character Operators

    • . matches any single character
    • \d matches any decimal digit
    • \D matches any non-digit
    • \n matches the newline character
    • \s matches any whitespace character
    • \S matches any non-whitespace character
    • \t matches a horizontal tab character
    • \w matches any word (alphanumeric) character
    • \W matches any non-word (alphanumeric) character
    • \\ matches the backslash ("\") character

    Character Class Operator

    • [abc] matches any character in the set a, b or c
    • [^abc] matches any character not in the set a, b or c
    • [a-z] matches any character in the range a to z, inclusive. A leading or trailing dash will be interpreted literally
    • [[:alnum:]] matches any alphanumeric character
    • [[:alpha:]] matches any alphabetical character
    • [[:blank:]] matches a space or horizontal tab
    • [[:cntrl:]] matches a control character
    • [[:digit:]] matches a decimal digit
    • [[:graph:]] matches a non-space, non-control character
    • [[:lower:]] matches a lowercase letter
    • [[:print:]] same as [:graph:], but also space and tab
    • [[:punct:]] matches a punctuation character
    • [[:space:]] matches any whitespace character, including newlines
    • [[:upper:]] matches an uppercase letter
    • [[:xdigit:]] matches a valid hexadecimal digit

    Subexpressions and Backreferences

    • (abc) matches whatever the expression abc would match, and saves it as a subexpression. Also used for grouping
    • (?:...) pure grouping operator, does not save contents
    • (?#...) embedded comment, ignored by engine
    • (?=...) positive lookahead; the regular expression will match if the text in the brackets matches, but that text will not be considered part of the match
    • (?!...) negative lookahead; the regular expression will match if the text in the brackets does not match, and that text will not be considered part of the match
    • \n where 0 < n < 10, matches the same thing the nth subexpression matched. Can only be used in the search string
    • $n where 0 < n < 10, substituted with the text matched by the nth subexpression. Can only be used in the replacement string

    Branching (Alternation) Operator

    • a|b matches whatever the expression a would match, or whatever the expression b would match.

    Repeating Operators

    These symbols operate on the previous atomic expression.

    • ? matches the preceding expression or the null string
    • * matches the null string or any number of repetitions of the preceding expression
    • + matches one or more repetitions of the preceding expression
    • {m} matches exactly m repetitions of the one-character expression
    • {m,n} matches between m and n repetitions of the preceding expression, inclusive
    • {m,} matches m or more repetitions of the preceding expression

    Stingy (Minimal) Matching

    If a repeating operator (above) is immediately followed by a ?, the repeating operator will stop at the smallest number of repetitions that can complete the rest of the match.

  • Maybe You do not know or have ever heard that there can be an alternative to notepad, wordpad, textedit, ultraedit, textpad...and the list of text editor can be very long. I am using JEDIT since 4 years now and will never give it back. It is one of these Java application which demonstrate the portability and quality of Java software. (Mac OS X, OS/2, Unix/Linux, VMS and Windows)
    Open source, GNU General Public License, 7 years of development: jEdit is a mature and well-designed multi purpose text editor.  Feature list here