Main Content RSS FeedRecent Articles

Open Source WhatsApp Alternative–Telegram »

Telegram is like SMS, but more powerful. You can send messages, photos, videos and documents to people who are in your phone contacts (and have Telegram). You can also create groups for up to 200 people.

Unlike WhatsApp, Telegram is cloud-based and heavily encrypted. As a result, you can access your messages from several devices (including desktops!) and share an unlimited number of photos, videos and documents (doc, zip, mp3, etc). Telegram is also faster and way more secure. On top of that, Telegram is free and will stay free — no ads, no subscription fees, forever.

image

Open Source Project Management Tools »

LibrePlan

LibrePlan is a collaborative tool to plan, monitor and control projects and has a rich web interface which provides a desktop alike user experience. All the team members can take part in the planning and this makes possible to have a real-time planning.

ProjectLibre

ProjectLibre – Open source replacement of Microsoft Project.

OpenProject

OpenProject is free and open source software for project management with a wide set of features and plugins and an active community

AgileFant

Agilefant is the most advanced open source web based tool for agile management today, with a rapidly growing user base and a dedicated community behind it.

Android HTTP Library »

ion

 

Android Async HTTP

An asynchronous callback-based Http client for Android built on top of Apache’s HttpClient libraries. All requests are made outside of your app’s main UI thread, but any callback logic will be executed on the same thread as the callback was created using Android’s Handler message passing.

  • Make asynchronous HTTP requests, handle responses in anonymous callbacks
  • HTTP requests happen outside the UI thread
  • Requests use a threadpool to cap concurrent resource usage
  • GET/POST params builder (RequestParams)
  • Multipart file uploads with no additional third party libraries
  • Tiny size overhead to your application, only 25kb for everything
  • Automatic smart request retries optimized for spotty mobile connections
  • Automatic gzip response decoding support for super-fast requests
  • Binary file (images etc) downloading with BinaryHttpResponseHandler
  • Built-in response parsing into JSON with JsonHttpResponseHandler
  • Persistent cookie store, saves cookies into your app’s SharedPreferences

Open Source Android WebSocket Library »

 

AndroidAsync

AndroidAsync is a low level network protocol library. If you are looking for an easy to use, higher level, Android aware, http request library, check out Ion (it is built on top of AndroidAsync). The typical Android app developer would probably be more interested in Ion.

But if you’re looking for a raw Socket, HTTP client/server, WebSocket, and Socket.IO library for Android, AndroidAsync is it.

Features
  • Based on NIO. One thread, driven by callbacks. Highly efficient.
  • All operations return a Future that can be cancelled
  • Socket client + socket server
  • HTTP client + server
  • WebSocket client + server
  • Socket.IO client

 

AutobahnAndroid

AutobahnAndroid implements The WebSocket Protocol and The WebSocket Application Messaging Protocol (WAMP):

  • library for WebSocket and WAMP clients
  • implements WebSocket RFC6455, Draft Hybi-10+ and WAMP v1
  • works on Android 2.2+
  • very good standards conformance
  • high-performance asynchronous design
  • easy to use API
  • seamless integration in Android UI apps
  • no (really none) network activity on UI thread
  • Open-source (Apache 2 license)

You can use AutobahnAndroid to create native Android apps talking to WebSocket servers or any WAMP compatible server.

Using WAMP you can build applications around asynchronous RPC and PubSub messaging patterns.

 

android-websockets

android-websockets is a very simple bare-minimum WebSocket client for Android.

Java NIO Asynchronous Sockets »

Naga aims to be a very small NIO library that provides a handful of java classes to wrap the usual Socket and ServerSocket with asynchronous NIO counterparts (similar to NIO2 planned for Java 1.7).

All of this is driven from a single thread, making it useful for both client (e.g. allowing I/O to be done in the AWT-thread without any need for threads) and server programming (1 thread for all connections instead of 2 threads/connection).

Internally Naga is a straightforward NIO implementation without any threads or event-queues thrown in, it is "just the NIO-stuff", to let you build things on top of it.

Naga contains the code needed to get NIO up and running without having to code partially read buffers and setting various selection key flags.

Here is an example opening a server socket:

NIOService service = new NIOService;
NIOServerSocket serverSocket = service.openServerSocket(1234);
serverSocket.setConnectionAcceptor(myAcceptor);
serverSocket.listen(myObserver);

This is how working with a regular socket looks like:

NIOService service = new NIOService;
NIOSocket serverSocket = service.openSocket("www.google.com", 1234);
socket.listen(myObserver);
// Asynchronous write by default:
socket.write("Some message".getBytes());

Java–Realtime Client Server Framework »

The Atmosphere Framework contains client and server side components for building Asynchronous Web Application. The majority of popular frameworks are either supporting Atmosphere or supported natively by the framework. The Atmosphere Framework supports all majors Browsers and Servers

Atmosphere transparently supports WebSockets, Server Side Events (SSE), Long-Polling, HTTP Streaming (Forever frame) and JSONP.

The Atmosphere Framework Stack works on all Servlet based server including Tomcat, JBoss Jetty, Resin, GlassFish, Undertow, WebSphere, WebLogic etc. Not running a Servlet Container? Netty Play! Framework orVert.x

AJAX Push Engine »

APE is a full-featured OpenSource solution designed for Ajax Push. It includes a comet server and a Javascript Framework. APE allows to implement any kind of real-time data streaming to a web browser, without having to install anything on the client-side.

The Ajax Push Engine Project is divided into two distinct parts communicating via a very efficient protocol. The most central part is our epoll-driven HTTP streaming server, the APE Server. Through the APE Protocol, the APE JavaScript Framework sends and receives the actions on the client side.

APE Server is an Comet server implementing the POST and GET methods of the HTTP protocol. It does not replace a regular Web Server (such as Apache, Lighttpd or Nginx), however, the APE Server is only used for AJAX Push.

The APE JavaScript Framework receives information sent by the server (RAWs), handles the data, and sends back the users commands (CMDs). With a very small footprint (~10KB), the APE Framework loads really fast on your web browser, thus it’s fully adapted for slow connections such as EDGE or 3G.

Java–CORS Filter »

Cross-origin resource sharing (CORS) is a mechanism that allows JavaScript on a web page to make XMLHttpRequests to another domain, not the domain the JavaScript originated from. Such “cross-domain” requests would otherwise be forbidden by web browsers, per the same origin security policy.

eBay CORS filter is a Java Servlet Filter implementation of server-side CORS for Java web containers such as Apache Tomcat. Salient features:

  • Easy to integrate and use – enable CORS capability with a few lines in your web.xml!
  • Protects against CRLF injection / response splitting attacks.

Another CORS filter for Java is is also available here.

Java/Android UPnP Library »

Cling is a complete, clean, and very flexible Java/Android UPnP library, implementing the UPnP Device Architecture 1.0specification. Additional UPnP service modules and graphical tools are also part of this project. Cling helps you create, control, and monitor UPnP-compatible services on your local network.

Cling Core is a Java UPnP library that implements this infrastructure, it offers clean and natural APIs for any developer who wants to implement either UPnP services or control points.

The main features of Cling Core are:

Fine-grained and safe APIs

Cling Core is not just a thin layer on top of the low-level UPnP protocol, it offers rich and natural APIs for developers. Every UPnP header, every message, and every piece of metadata is exposed as a type-safe API with as few type casting and string-lookups as possible. Much of the API is thread-safe, thus simplifying the pervasively multi-threaded environment in which UPnP operates.

Modular design and extensive SPIs

Almost all functionality of Cling Core can be overridden or replaced with custom code. Subsystems such as network transport, message parsing, and even individual aspects of the UPnP protocol implementation (such as discovery, control, eventing) offer SPIs for extension and customization.

Specification compliance

Many vendors who implement UPnP software violate the UPnP device architecture (UDA) specification in one way or another. Cling Core’s goal is to implement and respect every detail of the UDA specification. Currently, Cling Core is targeting UDA 1.0, with preparations already made for future UDA 1.1 compliance.

Complete implementation

Cling Core does not take any shortcuts, no parts of the specification are omitted just because they are difficult to implement.

Full support for Android

All features of Cling Core are supported on Android (see manual, platform level 7/Android 2.1 required). Use Cling to write UPnP/DLNA Android clients or even server applications. The full source code of the UPnPBrowser example application of the manual can be found here. You can see the application in action in this video.

Opus–Open Source Audio Codec »

Opus is a totally open, royalty-free, highly versatile audio codec. It is primarily designed for interactive speech and music transmission over the Internet, but is also applicable to storage and streaming applications. It incorporates technology from Skype’s SILK codec and Xiph.Org’s CELT codec. It has been standardized by the Internet Engineering Task Force (IETF) as RFC 6716.

Opus has been in development since early 2007. Programmers associated with Xiph.Org, Skype, and several other organizations have contributed to its development and to the standardization process as part of the IETF’s codec working group.

Opus can handle a wide range of audio applications, including Voice over IP, videoconferencing, in-game chat, and even remote live music performances. It can scale from low bit-rate narrowband speech to very high quality stereo music. Supported features are:

  • Bit-rates from 6 kb/s to 510 kb/s
  • Sampling rates from 8 kHz (narrowband) to 48 kHz (fullband)
  • Frame sizes from 2.5 ms to 60 ms
  • Support for both constant bit-rate (CBR) and variable bit-rate (VBR)
  • Audio bandwidth from narrowband to fullband
  • Support for speech and music
  • Support for mono and stereo
  • Support for up to 255 channels (multistream frames)
  • Dynamically adjustable bitrate, audio bandwidth, and frame size
  • Good loss robustness and packet loss concealment (PLC)
  • Floating point and fixed-point implementation

Open Source Prediction Engine for Big Data »

H2O makes hadoop do math! H2O scales statistics, machine learning and math over Big Data. H2O is extensible and users can build blocks using simple math legos in the core. H2O keeps familiar interfaces like R, Excel & JSON so that big data enthusiasts and experts can explore, munge, model and score data sets using a range of simple to advanced algorithms.

Data collection is easy. Decision making is hard. H2O makes it fast and easy to derive insights from your data through faster and better predictive modeling.

Open Source Javascript SVG Library »

SVG is an excellent way to create interactive, resolution-independent vector graphics that will look great on any size screen. And the Snap.svg JavaScript library makes working with your SVG assets as easy as jQuery makes working with the DOM.

Snap.svg is designed for modern browsers and therefore supports the newest SVG features like masking, clipping, patterns, full gradients, groups, and more.

Open Source Hardware Controller »

Hauntbox is an open-source arduino-based prop controller for haunters and hackers. It is built upon the brilliance of other open source projects.

image

Ascii Camera »

ASCII Camera uses the HTML5 getUserMedia API to transform a video stream from your webcam into a real-time ASCII representation.

Supported browsers

  • Chrome ≥ 21
  • Firefox ≥ 17 (requires media.navigator.enabled = true in about:config)
  • Opera ≥ 12

Libraries used

Tor Open Network »

Tor is a network of virtual tunnels that allows people and groups to improve their privacy and security on the Internet. It also enables software developers to create new communication tools with built-in privacy features. Tor provides the foundation for a range of applications that allow organizations and individuals to share information over public networks without compromising their privacy.

Individuals use Tor to keep websites from tracking them and their family members, or to connect to news sites, instant messaging services, or the like when these are blocked by their local Internet providers. Tor’s hidden services let users publish web sites and other services without needing to reveal the location of the site. Individuals also use Tor for socially sensitive communication: chat rooms and web forums for rape and abuse survivors, or people with illnesses.

Kinect Common Bridge »

Kinect Common Bridge is a complement to the Kinect for Windows SDK that makes it easy to integrate Kinect scenarios in creative development libraries and toolkits

The Microsoft Open Technologies Hub is releasing this open source project, making it simple to integrate Kinect scenarios and experiences in creative development. MS Open Tech has worked closely with open source communities such as openFrameworks (OF) and Cinder and the Kinect for Windows team to integrate the new Kinect Common Bridge in popular creative development libraries and toolkits.

More details can be found at http://msopentech.com/blog/2013/10/14/ms-open-tech-releases-kinect-common-bridge/

Apache OpenNLP »

The Apache OpenNLP library is a machine learning based toolkit for the processing of natural language text.

It supports the most common NLP tasks, such as tokenization, sentence segmentation, part-of-speech tagging, named entity extraction, chunking, parsing, and coreference resolution. These tasks are usually required to build more advanced text processing services. OpenNLP also includes maximum entropy and perceptron based machine learning.

CLAVIN–Document GeoTagging and Parsing »

CLAVIN (*Cartographic Location And Vicinity INdexer*) is an open source software package for document geotagging and geoparsing that employs context-based geographic entity resolution. It combines a variety of open source tools with natural language processing techniques to extract location names from unstructured text documents and resolve them against gazetteer records. Importantly, CLAVIN does not simply "look up" location names; rather, it uses intelligent heuristics in an attempt to identify precisely which "Springfield" (for example) was intended by the author, based on the context of the document. CLAVIN also employs fuzzy search to handle incorrectly-spelled location names, and it recognizes alternative names (e.g., "Ivory Coast" and "Côte d’Ivoire") as referring to the same geographic entity. By enriching text documents with structured geo data, CLAVIN enables hierarchical geospatial search and advanced geospatial analytics on unstructured data.

Teaching Kids to Program–Resources »

Resources to get your kids started on programming

Scratch helps young people learn to think creatively, reason systematically, and work collaboratively — essential skills for life in the 21st century. Scratch is a project of the Lifelong Kindergarten Group at the MIT Media Lab. It is provided free of charge.

Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a freely available teaching tool designed to be a student’s first exposure to object-oriented programming. It allows students to learn fundamental programming concepts in the context of creating animated movies and simple video games. In Alice, 3-D objects (e.g., people, animals, and vehicles) populate a virtual world and students create a program to animate the objects.

Greenfoot teaches object orientation with Java. Create ‘actors’ which live in ‘worlds’ to build games, simulations, and other graphical programs. Greenfoot is visual and interactive. Visualisation and interaction tools are built into the environment.

Sagan – Sagan-1 Robot Simulator is used to program a robot using simple commands, convenient for kids around 10-14 years old, graphical simulate the outcome and send it (after background cross-compiling) into a real robot. The application is written in Java (1.6) Swing. Beside of the pure simulation, it supports cross-compiling and downloading into Arexx RP6 and Lego NXT Mindstrom robots out of the box.

Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments.

Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It’s a capable little PC which can be used for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video.

Mindstorms NXT is a programmable robotics kit released by LEGO.

Open Source Android Audio Library »

Patchfield is an audio infrastructure for Android that provides a simple, callback-driven API for implementing audio modules (such as synthesizers and effects), a graph-based API for connecting audio modules, plus support for inter-app audio routing. It is inspired by JACK, the JACK audio connection kit.

Patchfield consists of a remote or local service that acts as a virtual patchbay that audio apps can connect to, plus a number of sample apps that illustrate how to implement audio modules and how to manipulate the signal processing graph. The implementation resides entirely in userland and works on many stock consumer devices, such as Nexus 7 and 10.