| DistroWatch Weekly
|DistroWatch Weekly, Issue 367, 16 August 2010
Welcome to this year's 33rd issue of DistroWatch Weekly! It can be difficult trying to count Linux users. Any counting method from downloads, to tracking updates, to monitoring sales continues to leave big question marks on the subject. This week we touch on a new move by Canonical to get a better head count in the OEM market. This week we also shift focus a little, examining an application called Imagination and a helpful command-line tool. This time of the year most of the big-name distros are quiet, but things are still churning in the FOSS community and this week saw releases from Peppermint, Vector, BackTrack, Salix OS, Puppy, Untangle and BlankOn. See our release section to find out the details on these projects. Finally we talk a little about setting up mail server in your own home and the considerations which go with it. As always, happy reading!
Join us at irc.freenode.net #distrowatch
|Feature Story (by Jesse Smith)
Using Some Imagination
At one point or another most of us have either sat through a presentation of slides or talked friends into sitting through our own slide shows. Often it's of pictures taken from a vacation or wedding photos. Regardless of who is subjecting who to the slides, it's usually a long process with little excitement. If you've ever thought it would be nice to mix a little music or audio commentary into a slide show, I'm happy to report there is an open source tool which will do just that. It's called Imagination.
website's own words, "Imagination is a lightweight and simple DVD slide show maker" which is distributed under the GNU GPL. But the program isn't limited to just DVD formatted video, it will also help the user create .ogg and Flash videos, giving the artist greater flexibility and the option to target a wider audience. While there are other tools which will perform similar actions one of the benefits to using Imagination, a creation of Giuseppe Torelli, is that the project tries to keep dependencies to a minimum, simplifying installation.
(full file size: 617KB, resolution: 1072x697 pixels)
The Imagination application is split into four basic parts: the menus at the top of the window; slide settings, which are displayed to the right; a picture of the current slide, shown in the centre of the window; and a list of all the slides in the project, which are shown at the bottom of the window. When we first fire up Imagination, everything is blank and empty. So how do we get started?
The first thing we'll want to do is go up to the menu bar and click on the Slide menu and select Import pictures. This will bring up a standard file dialogue which allows us to select multiple images. Generally our next step is to add an audio track to go with our slide show. This is an almost identical process of clicking on the Slide menu and choosing Import music. At this point we see a collection of image thumbnails along the bottom of our screen and a list of audio tracks over on the lower-right. In both cases, these can be moved around, the images by dragging them and the audio tracks have convenient manipulation buttons.
In the top-right corner we find the Slide settings area. This container lists the properties of the currently selected slide. We get to see the slide's dimensions, how long it will stay on the screen, what sort of cenimatic effect will occur at the end of the slide and how long the entire show will take. It's possible to select multiple slides at once by holding the Control key and clicking additional slides and it's easy to remove unwanted slides by highlighting them and choosing Delete from the Slide menu.
Once all the slides are in the right order and have been given the desired properties, we can see what the show will look like by going up to the Slideshow menu and picking Preview. If everything looks correct, we can again return to the Slideshow menu and select Export. The export function makes it easy to save our slide show as a DVD-playable file, an .ogg formatted file or as a Flash video. Saving the file takes a relatively short time and I've found no problems with any of the above formats.
Exporting a slide show
(full file size: 482KB, resolution: 1072x697 pixels)
On the one hand this may seem like a very simple process of taking one part images and one part sound and mixing them together to make simple cartoons, presentations and vacation tributes. But, on the other hand, Imagination gives the user a good deal of flexibility. Each slide can be individually adjusted or the entire collection can be changed. Audio tracks and slides can be shuffled around and the output formats are suitable for either family DVD watching or for embedding on a website.
There may be some question as to why I would select such a specifically-focused program to review. It's certainly not that I find the application useful on a daily basis. What I think makes Imagination a point of interest is more wrapped up in its style, rather than its purpose. It has a number of design points which I think make it worthy of recognition. For instance, Imagination does essentially one thing and one thing well. It's not of the family of apps which tries to be an audio player + disc burner + file server + social media interface. It has one specific task and does this task with finesse. The interface is one which I find both intuitive and helpful. Each button comes with a tool tip which clearly states what the button does. The controls are fairly standard and the menus are uncluttered. The user has the option of using menus, a toolbar or keyboard short-cuts to perform most tasks. Things are easy to find and operate in a straight forward manner, really removing any need for a user's manual. A third point in Imagination's favour is that it comes equipped with sane defaults, but almost everything is an option. Background colour, region settings (for DVDs), time delays and visual effects are all adjustable.
What it boils down to is Imagination has one of the nicest graphical user interfaces I've used. The program is clean, user-friendly and the few error messages I've encountered where helpful. This is an application with a small focus which does its job well.
While Imagination is nicely crafted, its target audience is probably small and so I'd like to take a moment to mention another program which I think will be of use to my fellow Linuxers. This second program is called cpulimit and it also does one thing with a straight forward collection of options. Previously, we talked about using the nice and renice commands to adjust a process's priority. This can be handy for making sure your programs are running smoothly, but it doesn't prevent your CPU cycles from being gobbled up. Sometimes it can be useful to put a limit on just how much processing power a process can access at a given time. This might be in an effort to keep your video encoding from interfering with your compiling, or it might be something as simple as keeping your laptop's CPU from getting stuck at 100% and imitating a space heater.
cpulimit program stops a process from using up more than N per cent of your CPU. Let's say I've started up VirtualBox and left its guest operating system doing some long, boring task and I want to make sure it doesn't use more than 25% of my host CPU, I can run
cpulimit -e VirtualBox -l 25
This form of usage will also pick up future processes of the same name and limit their usage as well. Alternatively, if I have more than one instance of the program running, I can specify one process by its PID.
cpulimit -p 10225 -l 25
Used in this way, cpulimit continues to run, even after the process it is throttling dies. To make sure cpulimit exits (and no longer interferes with other processes) after its target terminates, the -z option can be used. For example:
cpulimit -p 10225 -l 25 -z
The cpulimit command should be run with administrator rights. So far I've found it handy for keeping virtual machines, large encoding jobs and backups out of the way while I use my computer's processing power for something else.
|Miscellaneous News (by Jesse Smith)
Counting Ubuntu OEM installs, FreeBSD conferences, Patching a running kernel the easy way
There is always a bit of a question mark attached to the number of Linux users in the world. Getting an accurate count can be difficult because people in the Linux community tend to move around a bit (from distro to distro) and also tend to be a private group. Last week
Canonical introduced a new way to get a head count. Future OEM installs of Ubuntu will come with a package called canonical-census that will send a daily ping to a Canonical server. The software "does not send any user specific data; it only transmits the operating system version (/var/lib/ubuntu_dist_channel), the machine product name, and a counter how many pings were sent." This should tell Canonical how many OEM installs are being sold and how long the systems continue to run Ubuntu.
* * * * *
Do you want to travel the world, meet like-minded people, shake a daemon's hand? If so, you will be happy to read about upcoming events, such as
KyivBSD Con, BSD-Day, EuroBSDCon and others. Each of these events is a great opportunity for users and developers to mingle, share ideas and talk about BSD. Some of these events have registration, so check them out now!
* * * * *
The concept, and indeed the practise, of patching a running Linux kernel isn't new. However, the idea of making adjustments to the heart of an operating system while it is still running sounds scary and complicated. IBM has a
well-written article on their website explaining why live kernel patching can be useful and how to go about performing the task. The steps are clearly laid out and it should be beneficial to anyone concerned with maintaining their uptime.
* * * * *
One of the benefits to using open source software is that a wide range of people can examine and, potentially, fix problems in the code. The Chromium web browser recently demonstrated this when a regression inadvertently made its way into a build, causing Chromium to send data back to Google. The unintended behaviour was
quickly discovered, the code located and a bug filed.
In other software news, the KDE project recently released version 4.5 of the popular desktop environment. To mark the occasion TechWorld is running a short
interview with Sebastian Kugler, a developer and spokesperson for the project. This release appears to focus mostly on bug fixes and performance improvements, bringing some polish to the KDE4 series.
* * * * *
If you've looked at Peppermint OS One and Peppermint Ice, you might have wondered what their relationship is and what separates them. Is one an upgrade, a re-spin, a fork? Which one is better suited to your needs? Jim Lynch
examined the two Peppermints and gives us some answers. A good read for people curious about the light, web-focused distribution.
* * * * *
Rumours have been circulating over the death of OpenSolaris for several months now and Oracles official stance of silence has only added fuel to the fire. This week a document, purported to be a
leaked internal Oracle memo, touches on the future of OpenSolaris, or its lack of a future. If this document is real, it spells can end to the OpenSolaris project.
|Questions and Answers (by Jesse Smith)
Virtual Post Office
Wants-to-receive-mail-at-home asks: I'd like to setup my own e-mail server and get my mail off the cloud. Any tips on setting up my own home-brew e-mail server?
Setting up your own private e-mail server can be an educational and rewarding experience. Good for you on taking the initiative to try this! There are a few things you might want to consider before you begin. The big one being: what do you hope to achieve above and beyond what your existing cloud-based service is providing? For instance, some people create private e-mail servers to gain privacy and prevent Google (or other big corporations) from reading their mail. The problem with this thinking is most e-mail is still sent in plain-text and it will pass through various other networks like so many pages of an open book. Also, copies of your messages will be stored on the other correspondent's e-mail server, which may be Gmail or Yahoo Mail, etc.
There are other considerations too. For example, you probably expect your cloud-based e-mail provider to be on 24 hours a day, every day. You probably want the same or better attachment size allowances, similar or better storage space, as good or better security, and as little or less spam getting through. A question to ponder is: can you provide these things to yourself as well as your existing provider? These are some points to keep in the back of your mind while you're putting together your new server. Being independent has its perks, but it also requires a bit of work.
I don't want to go into deep details on actually setting up the server here as each person will have slightly different preferences as to server type, operating system, spam filter and anti-virus, but I will point you to a few tutorials. This first one is for people on the Ubuntu family of systems and covers most of the basics. Here is another document for installing a mail server on an Arch Linux system. For FreeBSD fans, you can consult the project's Handbook as a place to get started. And for folks who like to learn from books, I suggest picking up a copy of Linux E-mail, which talks about setting up an e-mail server for a small network.
One more thing to keep in mind is running any sort of service on your home machine opens a potential avenue of attack against your computer. Be sure to keep your system locked down and up-to-date with security patches.
|Released Last Week
Peppermint OS One-08042010
Kendall Weaver has announced a new release of Peppermint OS One, an Ubuntu-based distribution with LXDE and integrated web-based applications: "We are proud to announce the release of Peppermint-One-08042010, being the third respin of our 'One' release. This release offers a fully updated system as of August 4, 2010 and comes with a number of bug fixes, some new features, and some other miscellaneous goodies. The default Firefox is now version 4.0 Beta 2. Due to the recent issues with the 3.6.x series and the frequency of updates and instability we figured this would be a good move. It's faster and generally more stable though a few extensions are likely to not work just yet..." Read on for the complete release annoucement.
BackTrack 4 R1
BackTrack 4 R1, a Linux-based penetration testing arsenal for security professionals, has been released: "The BackTrack Team is proud to announce the public release of BackTrack 4 R1. At the risk of sounding like a broken record, we believe this version is by far the best version released to date. With a shiny new 2.6.34 kernel, there are many significant improvements, such as expanded hardware support and improved desktop responsiveness. Tools have been updated system-wide, and a full Fluxbox desktop environment has been added. A walk-around for the rt28xx driver has been implemented. The VMWare version has complete integration with VMWare Tools, which provides a seamless interaction with BackTrack in a virtual environment...." The release announcement is here.
VectorLinux 6.0 "SOHO"
Robert Lange has announced the release of VectorLinux 6.0 "SOHO" edition for small or home office: "The SOHO final release is based on the KDE-4.4.2 plasma desktop with many graphical and system enhancements. We have included all the productivity software one would need like Digikam, the gimp-2.6.10, k3b-2.0, Scribus, OpenOffice and Inkscape to name a few. The kernel is version 188.8.131.52 which adds new wireless network possibilities along with greater speed and stability. The GUI installer first introduced in the VL standard 6.0 release has seen further refinements and is the default installer. Support has been added for a wider range of graphic chipsets and both lilo and grub2 bootloaders are available. Importing user accounts from previous installs is now possible provided a separate home partition is used...." The
full release announcement is here.
The VectorLinux 6.0 Desktop
(full file size: 734KB, resolution: 1023x767 pixels)
Salix OS 13.1.1
George Vlahavas has announced the release of Salix OS 13.1.1, a Slackware-based distribution with Xfce as the preferred desktop: "Here is Salix 13.1.1, using the Xfce desktop, available both in 32-bit and 64-bit flavours. A list of changes since the previous release in the 13.1 branch: Lilosetup, a new graphical tool that can be used for setting up the LILO bootloader has been added; new graphical system administration tools have been added; the installation CDs can now be used as a local repository with slapt-get/gslapt, complete with dependency support; new packages included in a 'full' mode installation - pyxdg, notify-python, libnl, net-snmp; all security fixes and package upgrades since the previous release have been included; flash has been removed from the 64-bit release." Read on for the
Barry Kauler has announced the release of Puppy Linux 5.1: "The brilliant new Puppy Linux 5.1, code-name 'Lucid' as it is binary-compatible with Ubuntu Lucid Lynx packages, has been released. Lucid Puppy 5.1 is a 'full-featured compact distro.' It's a Puppy, so it is fast, friendly, and fun, and it can also serve as one's main Linux desktop. Quickpet and Puppy Package Manager allow easy installation of many of the best Linux programs, tested and configured for Lucid Puppy. Lucid Puppy boots directly to an automatically configured graphical desktop, with the tools to personalize the desktop right at hand, and it even recommends which add-on video driver to use for high-performance graphics..." The
release announcement is here.
Untangle Gateway 7.4
Untangle, a Debian-based multifunctional firewall, has been updated to version 7.4 which is a major bugfix release: "This release has focused sharply on quality. Untangle 7.4 brings additional improvements throughout the Untangle suite of applications, and the Untangle platform itself. Untangle has also used this release as the opportunity to simplify its product line up. 'As our business has grown over the last two years, our offering has become increasingly complex,' Mark Floisand, COO, said: 'We have trebled our paying customer base in 18 months, and with that came more product packages and price points. With this release, we wanted to regain some of the simplicity inherent in our brand.' Untangle now offers three distinct packages: Untangle Lite Package, Untangle Standard Package, and Untangle Premium Package." Read on for the release announcement.
BlankOn Sajadah 6.0
BlankOn Sajadah 6.0 is a variant of BlankOn 6.0 (also known as Ombilin), added with Islamic content and applications. BlankOn Sajadah supports entertainment software for immediate use without installing additional multimedia codecs, Internet access with very light web browsing, communications for instant messaging and social networking, and also office software. It also features vector and bitmap graphics as well as digital photo albums, and of course provides Islamic applications such as Qur'an, Hadith, Prayer Reminders, and Negative Content Filtering. BlankOn Sajadah 6.0 is launched to help the Indonesian Muslims. The project's press release is here.
Trinity Rescue Kit 3.4
Tom Kerremans has announced Trinity Rescue Kit 3.4, a Mandriva-based distribution designed to facilitate data rescue from Linux and Windows systems: "Big news from the Trinity Rescue Kit camp: an all new version of the live distro has just been published after almost a year of silence. The biggest visible enhancement here is the addition of a menu interface. Not a graphical one, but a text based, scrollable menu from which any regular computer user can perform otherwise complicated tasks. TRK 3.4 has received numerous feature additions like 'winclean', a home brewed utility to perform offline Windows disk cleaning, a new virusscan engine in the seriously debugged virusscan tool, rewritten winpass (password reset tool) which is way more tamperproof, complete manpages for TRK's own utilities, a quick and dirty guide for the impatient, and literally thousands of other changes..." The
release announcement is here.
* * * * *
Development, unannounced and minor bug-fix releases
|Upcoming Releases and Announcements
Summary of expected upcoming releases
New distributions added to waiting list
- Anthares OS, a new general purpose Linux distro based out of Brazil.
* * * * *
DistroWatch database summary
* * * * *
This concludes this week's issue of DistroWatch Weekly. The next instalment will be published on Monday, 23 August 2010.
If you've enjoyed this week's issue of DistroWatch Weekly, please consider sending us a tip.
(Tips this week: 0, value: US$0.00)
|• Issue 680 (2016-09-26): Uruk GNU/Linux 1.0, blocking applications at the firewall, Lenovo controversy, Ubuntu running on the Nextcloud Box|
|• Issue 679 (2016-09-19): OpenMandriva 3.0, 32-bit vs 64-bit performance, openSUSE updates, KaOS unveils first run wizard|
|• Issue 678 (2016-09-12): Apricity 07.2016, Mageia adopts DNF, KDE neon to use Wayland, FreeBSD updates Linux compatibility, creating cron jobs|
|• Issue 677 (2016-09-05): Peppermint OS 7, Manjaro updates leadership, TrueOS becomes rolling release, organizing files, creating torrents|
|• Issue 676 (2016-08-29): Korora 24, Fedora 25 to use Wayland by default, Linux turns 25, PC-BSD becomes TrueOS, finding software licensing information|
|• Issue 675 (2016-08-22): Gentoo LiveDVD "Choice Edition", moreutils, Ubuntu improves terminal convergence, MATE packaged for Openindiana, FreeBSD improves video support|
|• Issue 674 (2016-08-15): Zenwalk Linux 8.0, Ubuntu phone follow-up, Lubuntu transitioning to LXQt, Steam running on FreeBSD|
|• Issue 673 (2016-08-03): noop linux and EasyNAS, Debian's GnuPG switch, Fedora "Flock", using "nice"|
|• Issue 672 (2016-08-01): Ubuntu Phone 15.04, Solus embraces rolling release model, interview with Jane Silber, FreeBSD Quarterly Report|
|• Issue 671 (2016-07-25): Slackware 14.2, Point Linux 3.2, OpenBSD disables usermount, KaOS releases significant changes, Fedora 22 reaches end of life.|
|• Issue 670 (2016-07-18): Linux Lite 3.0, Bodhi team plans 4.0.0, pfSense changes licensing, running software across distributions, Linux Mint upgrade path|
|• Issue 669 (2016-07-11): Linux Mint 18, proving a system is secure, LibreSSL in FreeBSD, Ubuntu plans phasing out 32-bit, pfSense status report|
|• Issue 668 (2016-07-04): Fedora 24, Linux Mint plans for 18.1, FreeBSD and DragonFly BSD improve their file systems, comparing Flatpak, Snap and AppImage|
|• Issue 667 (2016-06-27): GeckoLinux 421, Fedora supports Flatpak, Solus unveils new features, running GNU/Linux on tablets|
|• Issue 666 (2016-06-20): Comparing more live update methods, Ubuntu's snap packages, Antergos drops 32-bit media, GeckoLinux unveils Rolling edition, learning Linux resources|
|• Issue 665 (2016-06-13): BunsenLabs Linux Hydrogen, Fedora 24 delayed, NetBSD grows in size, Clonezilla questions|
|• Issue 664 (2016-06-06): Sabayon 16.05, Debian updates install media, the cost of free software, Qubes explains secure build process|
|• Issue 663 (2016-05-30): Comparing live update methods, Ubuntu MATE's progress, distros debate systemd change, DistroWatch turns 15|
|• Issue 662 (2016-05-23): Clonezilla Live, new Fedora community repository, DragonFlyBSD runs Wayland, a live edition of Slackware and kernel components|
|• Issue 661 (2016-05-16): FreeBSD 10.3, OpenMandriva adopts Clang, Debian adds ZFS packages, PCLinuxOS drops 32-bit and comparing CentOS with RHEL|
|• Issue 660 (2016-05-09): Ubuntu MATE 16.04, Mint's xapps, FreeBSD Quarterly Report, Debian updates 32-bit support, addressing GPL violations|
|• Issue 659 (2016-05-02): Ubuntu 16.04, compiling custom kernels, Cinnamon 3.0, Sabayon launches ARM build, Devuan ships Beta release|
|• Issue 658 (2016-04-25): Kali Linux 2016.1, elementary OS 0.3.2, Debian elects Project Leader, Fedora 24 feature preview, Nard reaches 1.0|
|• Issue 657 (2016-04-18): Redox, Linux Mint improves update manager, planned Fedora 24 features, Ubuntu 16.04 getting Snappy packages|
|• Issue 656 (2016-04-11): Qubes OS 3.1, Whonix offers bug bounties, Puppy's family tree, setting up disk partitions and running bash on Windows|
|• Issue 655 (2016-04-04): Parsix 8.5, Sabayon's Community repository, Red Hat offers free subscriptions, Ubuntu tablets, command line tips|
|• Issue 654 (2016-03-28): PCLinuxOS 2016.03, Using signatures to create a web of trust, Arch Linux rolls out Pacman update, GuixSD packages GNOME|
|• Issue 653 (2016-03-21): Antergos 2016.02.21, Debian prepares for election, a Unix-like OS written in Rust, watching Netflix on FreeBSD|
|• Issue 652 (2016-03-14): ReactOS 0.4.0, Debian swaps Iceweasel for Firefox, Fedora moving forward with Wayland, Verifying ISO files|
|• Issue 651 (2016-03-07): Korora 23, Linux Mint improves security, Ubuntu MATE on Raspberry Pi 3 computers, trying different file systems|
|• Issue 650 (2016-02-29): Haiku in 2016, running Android apps on GNU/Linux, 30 years of MINIX, Fedora plans Atomic Workstation|
|• Issue 649 (2016-02-22): Zorin OS 11, openSUSE launches new editions, Linux Mint website compromised, sandboxing applications using Firejail|
|• Issue 648 (2016-02-15): XStream Desktop 153, Raspbian unveils OpenGL feature, free hardware, Ikey Doherty talks desktop design|
|• Issue 647 (2016-02-08): Tails 2.0, KDE project launches Neon, Manjaro unveils ARM support, FreeBSD's quarterly report|
|• Issue 646 (2016-02-01): deepin 15, Mint plans X-Apps, FreeBSD to support boot environments, logging into the desktop as root|
|• Issue 645 (2016-01-25): Linux Mint 17.3 "Xfce", Chromixium changes its name, Ubuntu tablets coming soon, Linux vs BSD comparision|
|• Issue 644 (2016-01-18): Kwort 4.3, Sabayon tests ARM images, Slackware adopts PulseAudio, running Linux without GNU software|
|• Issue 643 (2016-01-11): Solus 1.0, Mint provide upgrade path to 17.3, Fedora developers work on stability, running the LXQt desktop|
|• Issue 642 (2016-01-04): paldo GNU/Linux, vetting distro repositories, Fedora plans to adopt GCC 6, Ian Murdock passes|
|• Issue 641 (2015-12-21): Arch Linux, Qubes OS to ship on Librem laptops, ALT offers start kit images, the spread of systemd and launchd|
|• Issue 640 (2015-12-14): Chakra GNU/Linux 2015.11, removing meta-data from files, Ubuntu to remove on-line dash searches|
|• Issue 639 (2015-12-07): OpenBSD 5.8, openSUSE gathers Summer of Code proposals, running WINE on a live disc, Enlightenment adds Wayland support|
|• Issue 638 (2015-11-30): Qubes OS 3.0, KaOS with Plasma, NetBSD 7.0, Fedora seeks Wayland testers, scheduling tasks|
|• Issue 637 (2015-11-23): NixOS 15.09, Antergos introduces ZFS support, MINIX shares new features, copying an OS to a new computer|
|• Issue 636 (2015-11-16): openSUSE 42.1, Fedora uses Wayland by default, Debian replaces live CD project, Steam consoles launch|
|• Issue 635 (2015-11-09): Fedora 23, Cinnamon 2.8 released, a Fedora KDE packager quits, Red Hat signs deal with Microsoft|
|• Issue 634 (2015-11-02): Ubuntu 15.10, Chakra upgrades to Plasma 5, OpenMandriva plans new editions, MINIX plans conference|
|• Issue 633 (2015-10-26): GhostBSD 10.1, Bodhi Linux to get new settings panel, Fedora 23 delayed, creating live image of existing OS|
|• Issue 632 (2015-10-19): Linux Lite 2.6, 32-bit build of CentOS, OpenBSD turns 20, Bodhi Linux releases AppPack|
|• Issue 631 (2015-10-12): Parsix 8.0, Manjaro seeks new artwork, sending commands to multiple servers, Debian drops LSB support|
|• Issue 630 (2015-10-05): Android-x86 4.4-r3, Ubuntu's new installer, Raspbian defaults to GUI interface, cleaning out dot files|
|• Issue 629 (2015-09-28): Open source desktops and touch interfaces, locking down user accounts, OpenMandriva opens gaming documentation|
|• Issue 628 (2015-09-21): Neptune 4.4, changes to pfSense, Pinguy OS releases updated ISO images, accessing hard disk images|
|• Full list of all issues|
|Free Tech Guides
NEW! Vaadin Programming Cookbook
FREE 144-page Cookbook
|Free Tech Guides
NEW! Java Design Patterns
NEW! Delve into the world of Java Design Patterns with this compact guide that introduces design patterns for the Java programming language.
FREE 183-page Guide