Recent Articles

Transform PHP into C++ »

HipHop for PHP transforms PHP source code into highly optimized C++. It was developed by Facebook and was released as open source in early 2010.

HipHop transforms your PHP source code into highly optimized C++ and then compiles it with g++ to build binary files. You keep coding in simpler PHP, then HipHop executes your source code in a semantically equivalent manner and sacrifices some rarely used features – such as eval() – in exchange for improved performance.

Facebook sees about a 50% reduction in CPU usage when serving equal amounts of Web traffic when compared to Apache and PHP. Facebook’s API tier can serve twice the traffic using 30% less CPU.

One of the explicit design goals leading into HipHop was the ability to continue writing complex logic directly within PHP. Companies with large PHP codebases will generally rewrite their complex functionality directly as PHP extensions in either C or C++. Doing so ends up reducing the number of people who are able to work on the company’s entire codebase. By keeping this logic in PHP, Facebook is able to move fast and maintain a high number of engineers who are able to work across the entire codebase.

HipHop is not the right solution for everyone deploying PHP. We think it will be useful to companies running very large PHP infrastructures who do not wish to rewrite complex logic within C or C++.

Popularity: 1% [?]

Remote Desktop Access from Any Browser »

ThinVNC is pure-web Remote Desktop solution. The remote computer can be accessed from any OS platform through any HTML5 compliant browser (Firefox, Google Chrome, Safari, etc.).

ThinVNC takes advantage of the latest web technologies like AJAX, JSON and HTML5 canvas to deliver a high-performance Remote Desktop access over the web, using HTTP and SSL protocols.

Without the need for any plugin, add-on or any kind of installation on the client side, ThinVNC is the optimum way to ensure that you can connect to your remote computer from any place.

ThinVNC Server can also act as a Gateway, allowing to provide internet desktop access to company’s LAN computers by publishing only one IP address. ThinVNC keeps the network protected while eases the remote desktop access to the entire company’s workstations and servers.

ThinVNC also provides a Presentation Mode, which allows to securely invite people and show them the whole desktop or selected applications, always taking advantage of a pure-web access with no download or installation of any kind on the client side.


Popularity: 1% [?]

Ardour Digital Audio Station »

Ardour from


  • Unlimited audio tracks and buses
  • Non-destructive, non-linear editing with unlimited undo
  • Anything-to-anywhere signal routing
  • Unlimited pre- and post-fader plugins
  • 32 bit floating point audio path
  • Automatic track delay compensation
  • Sample accurate automation
  • Standard file formats (BWF, WAV, WAV64, AIFF, CAF & more …)
  • Full AudioUnit plugin support on OS X
  • More than 200 LADSPA & LV2 plugins freely available
  • Support for Windows VST plugins available
  • MIDI CC control with 1 click
  • Level 2 MIDI Machine Control
  • MIDI Timecode (MTC) Master or Slave
  • Full integration with all JACK applications
  • Video-synced playback, pull up/pull down
  • No copy-protection
  • Distributed, world-wide development
  • Released under the GPL
  • Source code for everyone
  • Open XML session file format
  • On OS X, works with any CoreAudio supported audio hardware
  • On Linux, works with any ALSA/FFADO-supported audio hardware
  • Network audio (full fidelity over local network or long haul with CELT) via NetJack

Popularity: 1% [?]


For the SQL “select … from table where value in (v1, v2)”, in SubSonic you need to use the SqlQuery statement

   1: // numbers is a List<string>

   2: SqlQuery query = new Select().From("Pick44D").Where(Pick44DTable.MatchedNoColumn).In(numbers).OrderDesc(new string[] { "DrawDate" });

   3: List<Pick44D> result = query.ExecuteTypedList<Pick44D>();

To add the BETWEEN clause

   1: // SqlDateFormat = yyyy-MM-dd

   2: SqlQuery query = new Select().From("Pick44D").Where(Pick44DTable.MatchedNoColumn).In(numbers).And(Pick44DTable.DrawDateColumn)

   3:                         .IsBetweenAnd(dtpSearchFrom.Value.AddDays(-1).ToString(SqlDateFormat), dtpSearchTo.Value.AddDays(1).ToString(SqlDateFormat)).OrderDesc(new string[] { "DrawDate" });

   4: List<Pick44D> result = query.ExecuteTypedList<Pick44D>();

Popularity: 1% [?]

LMMS Multimedia Studio »

LMMS is a free cross-platform alternative to commercial programs like FL Studio®, which allow you to produce music with your computer. This includes the creation of melodies and beats, the synthesis and mixing of sounds, and arranging of samples. You can have fun with your MIDI-keyboard and much more; all in a user-friendly and modern interface.


  • Song-Editor for composing songs
  • A Beat+Bassline-Editor for creating beats and basslines
  • An easy-to-use Piano-Roll for editing patterns and melodies
  • An FX mixer with 64 FX channels and arbitrary number of effects allow unlimited mixing possibilities
  • Many powerful instrument and effect-plugins out of the box
  • Full user-defined track-based automation and computer-controlled automation sources
  • Compatible with many standards such as SoundFont2, VST(i), LADSPA, GUS Patches, and MIDI
  • Import of MIDI and FLP (Fruityloops® Project) files


Popularity: 1% [?]

Open Source MP3 Encoder »

LAME is a library that allows some programs to encode MP3 files. LAME is free, but in some countries you may need to pay a license fee in order to legally encode MP3 files.

Once you have unzipped the archive, you will have a file called lame_enc.dll, LameLib or libmp3lame.dylib. To use it with Audacity, you can put it anywhere you want, but the first time you want to export an MP3 file, Audacity will ask you for the location of this file, so you’ll want to remember where you put it.

Popularity: 1% [?]

Open Movie Editor »

Open Movie Editor is a free and open source video editing program, designed for basic movie making capabilities. It aims to be powerful enough for the amateur movie artist, yet easy to use.


Popularity: 1% [?]

BlitzBlank: Windows Malware Removal Tool »

BlitzBlank is a tool for experienced users and all those who must deal with Malware on a daily basis. It deletes files, Registry entries and drivers before Windows and all other programs are loaded.

To do this it uses special low-level technology and different protection mechanisms that make it almost impossible for Malware to hinder BlitzBlank from carrying out the desired actions.

  • Removes locked files
  • Destroys registry entries
  • Disables drivers
  • Full scripting support
  • 32 and 64 bit support
  • Only 1 MB, no setup


Popularity: 1% [?]

SubSonic SQLite Data Mappings »

  • int maps to Int32
  • integer maps to Int64
  • bit maps to boolean
  • guid maps to Guid
  • long maps to Int64

For the complete listing, please see below code snippet from SubSonic

   1: switch(sqlType)

   2: {

   3:    case "varchar":

   4:        return DbType.AnsiString;


   6:    case "nvarchar":

   7:        return DbType.String;


   9:    case "int":

  10:        return DbType.Int32;


  12:    case "integer":

  13:      return DbType.Int64;


  15:    case "long":

  16:      return DbType.Int64;


  18:    case "guid":

  19:        return DbType.Guid;


  21:    case "datetime":

  22:        return DbType.DateTime;


  24:    case "bigint":

  25:        return DbType.Int64;


  27:    case "binary":

  28:    case "blob":

  29:    case "image":

  30:    case "timestamp":

  31:    case "varbinary":

  32:        return DbType.Binary;


  34:    case "bit":

  35:        return DbType.Boolean;

  36:    case "char":

  37:        return DbType.AnsiStringFixedLength;

  38:    case "decimal":

  39:        return DbType.Decimal;

  40:    case "float":

  41:        return DbType.Double;

  42:    case "money":

  43:        return DbType.Currency;

  44:    case "nchar":

  45:        return DbType.String;

  46:    case "ntext":

  47:        return DbType.String;

  48:    case "numeric":

  49:        return DbType.Decimal;

  50:    case "real":

  51:        return DbType.Single;

  52:    case "smalldatetime":

  53:        return DbType.DateTime;

  54:    case "smallint":

  55:        return DbType.Int16;

  56:    case "smallmoney":

  57:        return DbType.Currency;

  58:    case "sql_variant":

  59:        return DbType.String;

  60:    case "sysname":

  61:        return DbType.String;

  62:    case "text":

  63:        return DbType.AnsiString;

  64:    case "tinyint":

  65:        return DbType.Byte;


  67:    default:

  68:        return DbType.AnsiString;

  69: }

Popularity: 1% [?]

SubSonic: Select Distinct Column Values »

To do a select distinct from a column for a database table using SubSonic, it is very straightforward

Below is the code to get the unique customer number from the Customer table, and order them in descending order

   1: Customer.All().Select(c => c.CustomerNo).Distinct().OrderByDescending(c => c)


Popularity: 1% [?]

Javascript Library for Interactive Maps »

Polymaps is a free JavaScript library for making dynamic, interactive maps in modern web browsers.

Polymaps provides speedy display of multi-zoom datasets over maps, and supports a variety of visual presentations for tiled vector data, in addition to the usual cartography from OpenStreetMap, CloudMade, Bing, and other providers of image-based web maps.

Because Polymaps can load data at a full range of scales, it’s ideal for showing information from country level on down to states, cities, neighborhoods, and individual streets. Because Polymaps uses SVG (Scalable Vector Graphics) to display information, you can use familiar, comfortable CSS rules to define the design of your data. And because Polymaps uses the well known spherical mercator tile format for its imagery and its data, publishing information is a snap.



Popularity: 1% [?]

C# UserControl: Detect Design Mode »

When developing a user control in .NET, if certain codes are not meant to be run in design mode, then you should check for it and avoid executing those code

   1: /// <summary>

   2: /// Handles the Load event of the MenuPanel control.

   3: /// </summary>

   4: /// <param name="sender">The source of the event.</param>

   5: /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>

   6: private void MenuPanel_Load(object sender, EventArgs e)

   7: {

   8:    if (this.DesignMode) return;


  10:    // Load the menu

  11:    LoadMenu();

  12: }

Popularity: 1% [?]

Query and Kill Terminal Session Remotely »


Displays information about sessions on a terminal server.

qwinsta /?

Display information about Terminal Sessions.

QUERY SESSION [sessionname | username | sessionid]
             [/SERVER:servername] [/MODE] [/FLOW] [/CONNECT] [/COUNTER]

 sessionname         Identifies the session named sessionname.
 username            Identifies the session with user username.
 sessionid           Identifies the session with ID sessionid.
 /SERVER:servername  The server to be queried (default is current).
 /MODE               Display current line settings.
 /FLOW               Display current flow control settings.
 /CONNECT            Display current connect settings.
 /COUNTER            Display current Terminal Services counters information. 



rwinsta: removes the sessions

rwinsta /?

Reset the session subsytem hardware and software to known initial values.

RESET SESSION {sessionname | sessionid} [/SERVER:servername] [/V]

 sessionname         Identifies the session with name sessionname.
 sessionid           Identifies the session with ID sessionid.
 /SERVER:servername  The server containing the session (default is current).
 /V                  Display additional information. 

Popularity: 1% [?]

Windows Built-in Snipping Tool »

You can use Snipping Tool under c:\windows\System32\SnippingTool.exe to capture a screen shot, or snip, of any object on your screen, and then annotate, save, or share the image. Simply use a mouse or tablet pen to capture any of the following types of snips:

  • Free-form Snip.  Draw an irregular line, such as a circle or a triangle, around an object.
  • Rectangular Snip.  Draw a precise line by dragging the cursor around an object to form a rectangle.
  • Window Snip.  Select a window, such as a browser window or dialog box, that you want to capture.
  • Full-screen Snip.  Capture the entire screen when you select this type of snip.

After you capture a snip, it’s automatically copied to the mark-up window, where you can annotate, save, or share the snip.


Popularity: 1% [?]

Open Source Developer Report »

Some highlights from the report

  • Linux continues to gain market share on the developer desktop. Close to one
    third of developers (33%) now use Linux as their primary development operating system; this is up from 20% in 2007. In parallel Microsoft Windows has dropped from 74% in 2007 to 58% in 2010. Linux continues to be the most popular deployment operating system.
  • Developers continue to use open source solutions in their software development environment. Respondents report JQuery and Spring are the most popular frameworks for building RIA and server side applications.
  • Deploying to a cloud infrastructure is a current option or planned option for 29.5% of the respondents. Amazon EC2, Google App Engine and a private cloud are the popular choices for those considering a cloud infrastructure.
  • Eclipse users tend to use the most recent version of Eclipse. A large majority of developers use the most current Eclipse Galileo release (75.5%) or a milestone build (7.1%).
  • 89.1% are satisfied or very satisfied with Eclipse.

The complete report is available at

Popularity: 1% [?]

Open Source Tail for Win32 »

Tail for Win32 is used to monitor changes to files; displaying the changed lines in realtime. This makes Tail ideal for watching log files.

Tail has a plugin architecture, which allows notifications to occur when certain keywords are detected in monitored files. At the moment a MAPI plugin is available, and work is in progress on an SMTP version.


A few features of Tail:

  • Watch multiple files in realtime
  • Detect keyword matches, and highlight occurences
  • Send mail notifications on keyword matches by SMTP or MAPI
  • Plugin architecture allows you to write specialised handlers
  • Can process files of any size on all types of drive (local or networked)


Popularity: 1% [?]

Windows: Automatic Driver Installation »

DriverPack Solution is a program that makes the job of finding and automatically installing drivers a pleasure.

DriverPack Solution simplifies the process of reinstalling Windows on any computer. No more problems of searching and installing drivers. Everything will be done in couple of mouse clicks!

  • Automated drivers installation – The program installs all required drivers to any computer in just about 5 minutes.
  • Saves Time and money – No more wasting time looking for drivers; all required drivers will be installed by making only a few clicks.
  • Any driver for any computer – All drivers on a single DVD! Simplifies downloading new drivers from the Internet.
  • Drivers update capability – Updates previously installed drivers to their latest versions.
  • Windows XP / Vista / 7 (x86-x64) – Supports all modern operating systems! Both 64-bit and 32-bit versions!
  • Easy to use – Simple and foolproof interface.
  • Customization ability – Our program is open source software.
  • Distributed for FREE – Under the GNU GPL license.


Popularity: 1% [?]

Free Rescue Disk from Kaspersky »

Boot from the Kaspersky Rescue Disk to scan and remove threats from an infected computer without the risk of infecting other files or computers.

Burn this ISO image to a CD, insert it into the infected system’s CD-ROM drive, enter the PC’s BIOS, set it to boot from the CD and reboot the computer.

This lists the Gentoo-specific options, along with a few options that are built-in to the kernel, but that have been proven very useful to our users.
Also, all options that start with "do" have a "no" inverse, that does the opposite. For example, "doscsi" enables SCSI support in the initial ramdisk boot, while "noscsi" disables it. Easily remove malicious objects from your computer without the risk of getting infected.

Hardware options:
acpi=on – This loads support for ACPI and also causes the acpid daemon to be started by the CD on boot. This is only needed if your system requires ACPI to function properly. This is not required for Hyperthreading support.
acpi=off – Completely disables ACPI. This is useful on some older systems, and is also a requirement for using APM. This will disable any Hyperthreading support of your processor.
console=X – This sets up serial console access for the CD. The first option is the device, usually ttyS0 on x86, followed by any connection options, which are comma separated. The default options are 9600,8,n,1.
dmraid=X – This allows for passing options to the device-mapper RAID subsystem. Options should be encapsulated in quotes.
doapm – This loads APM driver support. This requires you to also use acpi=off.
dobladecenter – This adds some extra pauses into the boot process for the slow USB CDROM of the IBM BladeCenter.
dopcmcia – This loads support for PCMCIA and Cardbus hardware and also causes the pcmcia cardmgr to be started by the CD on boot. This is only required when booting from a PCMCIA/Cardbus device.
doscsi – This loads support for most SCSI controllers. This is also a requirement for booting most USB devices, as they use the SCSI subsystem of the kernel.
hda=stroke – This allows you to partition the whole hard disk even when your BIOS is unable to handle large disks. This option is only used on machines with an older BIOS. Replace hda with the device that is requiring this option.
ide=nodma – This forces the disabling of DMA in the kernel and is required by some IDE chipsets and also by some CDROM drives. If your system is having trouble reading from your IDE CDROM, try this option. This also disables the default hdparm settings from being executed.
noapic – This disables the Advanced Programmable Interrupt Controller that is present on newer motherboards. It has been known to cause some problems on older hardware.
nodetect – This disables all of the autodetection done by the CD, including device autodetection and DHCP probing. This is useful for doing debugging of a failing CD or driver.
nodhcp – This disables DHCP probing on detected network cards. This is useful on networks with only static addresses.
nodmraid – Disables support for device-mapper RAID, such as that used for on-board IDE/SATA RAID controllers.
nofirewire – This disables the loading of Firewire modules. This should only be necessary if your Firewire hardware is causing a problem with booting the CD.
nogpm – This diables gpm console mouse support.
nohotplug – This disables the loading of the hotplug and coldplug init scripts at boot. This is useful for doing debugging of a failing CD or driver.
nokeymap – This disables the keymap selection used to select non-US keyboard layouts.
nolapic – This disables the local APIC on Uniprocessor kernels.
nosata – This disables the loading of Serial ATA modules. This is useful if your system is having problems with the SATA subsystem.
nosmp – This disables SMP, or Symmetric Multiprocessing, on SMP-enabled kernels. This is useful for debugging SMP-related issues with certain drivers and motherboards.
nosound – This disables sound support and volume setting. This is useful for systems where sound support causes problems.
nousb – This disables the autoloading of USB modules. This is useful for debugging USB issues.

Volume/Device Management:
dodevfs – This enables the deprecated device filesystem on 2.6 systems. You will also need to use noudev for this to take effect. Since devfs is the only option with a 2.4 kernel, this option has no effect if booting a 2.4 kernel.
doevms2 – This enables support for IBM’s pluggable EVMS, or Enterprise Volume Management System. This is not safe to use with lvm2.
dolvm2 – This enables support for Linux’s Logical Volume Management. This is not safe to use with evms2.
noudev – This disables udev support on 2.6 kernels. This option requires that dodevfs is used. Since udev is not an option for 2.4 kernels, this options has no effect if booting a 2.4 kernel.
unionfs – Enables support for Unionfs on supported CD images. This will create a writable Unionfs overlay in a tmpfs, allowing you to change any file on the CD.
unionfs=X – Enables support for Unionfs on supported CD images. This will create a writable Unionfs overlay on the device you specify. The device must be formatted with a filesystem recognized and writable by the kernel.
Other options:
debug – Enables debugging code. This might get messy, as it displays a lot of data to the screen.
docache – This caches the entire runtime portion of the CD into RAM, which allows you to umount /mnt/cdrom and mount another CDROM. This option requires that you have at least twice as much available RAM as the size of the CD.
doload=X – This causes the initial ramdisk to load any module listed, as well as dependencies. Replace X with the module name. Multiple modules can be specified by a comma-separated list.
noload=X – This causes the initial ramdisk to skip the loading of a specific module that may be causing a problem. Syntax matches that of doload.
nox – This causes an X-enabled LiveCD to not automatically start X, but rather, to drop to the command line instead.
scandelay – This causes the CD to pause for 10 seconds during certain portions the boot process to allow for devices that are slow to initialize to be ready for use.
scandelay=X – This allows you to specify a given delay, in seconds, to be added to certain portions of the boot process to allow for devices that are slow to initialize to be ready for use. Replace X with the number of seconds to pause.

Popularity: 1% [?]

Free Tool to Wipe Out Hard Disks »

Darik’s Boot and Nuke ("DBAN") is a self-contained boot disk that securely wipes the hard disks of most computers. DBAN will automatically and completely delete the contents of any hard disk that it can detect, which makes it an appropriate utility for bulk or emergency data destruction.


Popularity: 1% [?]

Puppy Linux »

Puppy really is small, the live-CD typically being 85MB, yet there really is a complete set of GUI applications. Being so small, Puppy usually loads completely into RAM, which accounts for the incredible speed.

  • Easily install to USB, Zip or hard drive media.
  • Booting from CD (or DVD), the CD drive is then free for other purposes.
  • Booting from CD (or DVD), save everything back to the CD.
  • Booting from USB Flash drive, minimise writes to extend life indefinitely.
  • Extremely friendly for Linux newbies.
  • Boot up and run extraordinarily fast.
  • Have all the applications needed for daily use.
  • Will just work, no hassles.
  • Will breathe new life into old PCs
  • Load and run totally in RAM for diskless thin stations

Popularity: 1% [?]