Code Samples, Announcements, News and just tons of other awesome things for software developers.
Recent Tweets @skitsanoscom

Movea SA, developer of embedded software for sensor fusion and motion processing, is teaming up with MEMS foundry Tronics Microsystems SA and the Leti and List research instates in Grenoble to develop an inertial measurement unit to allow pedestrian dead reckoning when geo-location by satellite is not availabl

The fourth member of the collaboration, and the only one not based in Grenoble, is aerospace and military consultancy EASII IC.
The project plans to produce a wearable device that includes sensors, processor, data fusion algorithms that connects to a smartphone via Bluetooth.

Movea said the team plans to spend $8.5 million over three years on the ASIMUT project to develop a module that makes it possible to measure the location and movements of people inside buildings and in other areas where global positioning by satellite (GPS) is not available. ASIMUT stands for Advanced and Smart Inertial Measurement Unit.

Current dead-reckoning systems, based on inertial sensors for step counting and a pressure sensor for estimating vertical movement, are reportedly poor when used for prolonged periods as errors build up.

Applications for the technology include tracking activities such as lone worker safety inside a building or tracking firefighters, police and security workers during an emergency situation. The platform will also enable more commercial applications such as augmented reality displays for use in museums and shopping malls, Movea said.

Movea will provide the software for the module and Tronics will provide the MEMS accelerometers and gyroscopes. EASII IC will build the industrial prototypes of the wearable device. First demonstrations are expected in the middle of 2015.

Related links and articles:
www.movea.com
www.tronicsgroup.com
www.easii-ic.com

While i was on my way from Startup Weekend Timisoara event yesterday, someone asked me a good question “Why startups actually never happen after Startup Weekend and similar event?”… Surprisingly for myself, it was easy to answer, visiting events in various cities and countries within past, let’s say a year, gave me personally a lot of experience on how to do things and it gave me  a strong feeling that the way it’s done today is shit. You might be optimistic and excited and pee your pants of of this excitement every time some startup related event happens in your town, but reality is, - most likely you as participant and us, as mentors will successfully turn it into a shit, for one simple reason, - you don’t wanna learn shit and do your home work and and we’re not forcing you, young entrepreneur, not to be a dumb ass that will fail miserably already tomorrow.

You’re coming to an event where you need to work on your idea already with some how work done, - at least to have in mind one or more ideas that you might want to try to turn into a venture, not necessary into a venture for profit, it can be even non profit as well. Oh yea, you’ve been screwed already from here, no one told you that you have to be able to ‘explain’ your idea and your needs in 60 seconds time frame. Imagine there are like 20-30 smart asses like you and all have a dream idea. So try to be short. You need to be clear what you want to build and IF you need some help, be clear also on resources you might need.

Another thing, do your home work, again. Check what mentors you can access during the meeting, this is your social capital, one time opportunity to get unexpected awesome contacts, maybe in the future someone will know someone that knows someone you will need. Avoid self-proclaimed kings, VCs, social media experts and Club of Anonymous Alcoholics members represented by Personal Development Guru, you have business to do, you don’t have time for this shit. If you didn’t met at least one mentor/coach during the weekend, mostly because you had no balls, you better continuously do whatever you been doing.

If you coming to typical Startups events first time, 99% you never hear what the fuck is Business Model Canvas and how to feel it, guess what, you will use it anyway and no one will explain you how. So dig it on your own already today, before your next event. I suggest you to have pre-filled canvas samples for different types/natures of ventures, product, service, non-profit, application.

Oh yea, why you don’t want to be an exception, why in the world you want make another application. Oh please, not another application about finding a beer near you, for fuck sake, there is Foursquare and other apps already for that.

Another thing, you might want to steal someone’s idea and then present it as it is yours. Yea, why not, everyone does that, plus competition is a healthy thing. Few suggestions for you. First of all make sure when you name it, it does not sounds 95% like the ‘original’ idea, but in the same time, before agreeing on name because it sounds something funny for you, check the dictionary, to make sure your name doesn’t actually means ‘sticky substance’, or ‘cum’ and so on, otherwise you would need to change your whole app from running tracker into a ‘wanker helper’ app. Here is the tip for you, if you totally ran out of words, take one or top two words about your app and try to walk through various languages in Google Translator to find some fancy sounding word that you could use.

Also, keep in mind, that stealing idea requires stealing implementation as well, especially if you steal from people that have more life experience than your grandpa does. Idea without implementation is nothing, we are all nuts people, generating nuts ideas…

Education is the primary thing you lack at any age when you participating in any of these events, and we are, mentors, coaches, smart asses around you, not helping you to learn new things either. Well, since you don’t ask, why should we, right? You have your own fears, the bigger ranking we have — less chances you will approach us. Usual story. One day you will need to stop to be afraid so much.

Some of us, Gods/mentors, whatever you call us, will stay whole event for you, from the morning until late evening, some will not give a fuck and do something better than that, sight seeing, having fun, etc. You know, it’s an education thing as well. There are ‘Red Ocean’ and ‘Blue Ocean’, oh yea, you need to learn these too, so your Startup event is ‘Red Ocean’ zone, not only for you, but for your mentor as well, you are guys together at war in the same front line in that particular moment. Find the one that won’t leave you during the war and after it.

And what you gonna do after you are done with event? Did you noticed that in most of the cases no one even got your name and email to mail you back later and ask simple ‘hey, how are you?’. Who fucking cares. Okay, we added you on twitter (and will unfollow you later, unless we collecting followers just to impress some chicks). But what is your own plan, a strategy to keep your venture alive?

Last year i seen some completely dumb ass project won one of the Startup events, i guess jury was drunk or high, or both, being ‘funny’ for your teenager comrades is not really a reason to actually win something, i would rather declare even with ‘no winner’ than to announce a winner some time that will never, absolutely never get into ‘tomorrow’ with their project. But for you, the one that actually worked your ass off and did something that ‘could happen’, what’s your plan for tomorrow?

Life will slap you in the face and many times. There is no Entrepreneur DNA, you can learn all this stuff, and the only person to challenge here is YOU. Question is, will you have guts to leave your comfort zone and fight yourself?

For a feedback you can reach me out on https://www.facebook.com/groups/ideasproxy/

There are 20 of the most used/popular NodeJS modules for Nginx written by different NodeJS users. With this NodeJS modules you can do lot of things, like add or remove nginx virtual hosts, restart nginx, parse its configuration, and much more.

And if this is not enough, then search at the official NPM Nginx Modules page, you will find many more listed out there.

Source: http://www.nginxtips.com/nodejs-nginx-modules/

Cypress Semiconductor recently announced additional devices in its CapSense Controller series; low-cost devices that require no coding, allowing you to implement elegant, reliable user interfaces, with good noise immunity, proximity sensing and water tolerance

CapSense CY8CMBR3x controllers controllers, Cypress says, enable sleek and robust capacitive buttons, sliders and proximity sensors. They are part of Cypress’s Mechanical Button Replacement (MBR) family, which uses Cypress’s SmartSense Auto-tuning algorithm to completely eliminate the requirement for manual system tuning. SmartSense Auto-tuning enables automatic tuning of more than 10 parameters to achieve optimal touch sensing performance. The CY8CMBR3x devices are supported by Cypress’s EZ-Click software tool, which combines GUI-based configuration, product debug and production-line testing with no firmware development required. Cypress has the CY3280-MBR3 kit for $25, allowing engineers to evaluate the family’s advanced features. The kit also provides additional debug and test options, including the ability to vary trace lengths, add parasitic capacitance and change overlay thickness.

Cypress adds that you, “no longer have to make a choice between cost and performance, but instead can use low-cost devices with advanced features and proven reliability from the market leader.”

The controllers can implement up to 16 capacitive buttons or up to eight capacitive buttons while driving eight LEDs. Designers can add to the devices to add up to two proximity sensors with a 30-cm sensing distance for wake-on-approach applications. The controllers feature Flanking Sensor Suppression (FSS) that eliminates false touches when buttons are closely spaced.

Devices in the CapSense MBR family deliver robust sensing in noisy environments using Cypress’s patented CapSense Sigma-Delta (CSD) sensing method, ensuring superior immunity to conducted and radiated noise with a signal-to-noise ratio of greater than 100:1. Operating from 1.8V to 5.5V, the devices are ideal for a wide range of regulated and unregulated battery applications, including single coin cell battery operation. The controllers also feature an integrated voltage regulator to address power supply noise, as well as filters for any spurious noise. They are available in 8-pin SOIC, 16-pin QFN, 16-pin SOIC or 24-pin QFN packages.

Cypress; www.cypress.com/go/capsense

When you coding for a mobile device with use of Adobe AIR you might face quite weird behaviour for components like FormItem, in some cases input fields within it will try to get out far beyond their width, so in order to sort it out here is quick hack for you, make a new component, let’s call it LabeledInput with the following code:

<?xml version=”1.0”?>

<s:HGroup

xmlns:fx=”http://ns.adobe.com/mxml/2009

xmlns:s=”library://ns.adobe.com/flex/spark

verticalAlign=”top”

paddingLeft=”10” paddingRight=”10”

gap=”10”

width=”100%”

creationComplete=”init()”>

<fx:Script><![CDATA[

import spark.components.Label;

[Bindable]

public var title:String;

[Bindable]

public var labelWidth:int = 100;

private function init():void

{

var label:Label = new Label();

label.width = labelWidth;

label.text = title;

this.addElementAt(label, 0);

}

]]></fx:Script>

</s:HGroup>

It simply will do the same thing as FormItem does, just you won’t need to wrap it under the Form tag, we added label and labelWidth properties to hold our input label and it’s width. As you can see it just prepends label before any content you passed into this control. Using it is quite easy thing, here is a small app for you:

<?xml version=”1.0” encoding=”utf-8”?>

<s:Application

xmlns:fx=”http://ns.adobe.com/mxml/2009

xmlns:s=”library://ns.adobe.com/flex/spark

xmlns:components=”components.*”>

<s:layout>

<s:VerticalLayout paddingTop=”20” paddingBottom=”20”/>

</s:layout>

<components:LabeledInput title=”Username: ” labelWidth=”150”>

<s:TextInput prompt=”username” width=”100%”/>

</components:LabeledInput>

<components:LabeledInput title=”Password: ” labelWidth=”150”>

<s:TextInput prompt=”password” width=”100%”/>

</components:LabeledInput>

</s:Application>

Visually, result will be something like this:

SQL Server Import Wizard

As we promised this January, we added to Kanapes IDE a really nice and handy tool - SQL Server Import Wizard, it will help you with migrating your data from data tables and views into CouchDB. You will find this tool by right-clicking on any selected server node in your Project Explorer.

More detailed tips about SQL Server Import Wizard we will describe in dedicated blog post coming up shortly.

Cloudant Search 2.0

Another interesting feature we added is support for Cloudant Search 2.0. Cloudant’s search is built upon Lucene and allows you to do more ad hoc queries over your data than can be done with primary and secondary indexes. Please note that adding indexes to Kanapes IDE Project Explorer works only on Cloudant hosted servers. Just select any db from the list, select Design Document, right click and you will see new menu item appeared called ndx. When you select it, following dialog will popup, so just name your index and you will get into a code editor mode like with other function types.

Etc additions and improvements

You can Copy and Paste Design Documents between Databases, view Document Revisions, your recently opened projects now listed on welcome tab for a quick access. We also added you quick links for two CouchDB hosting options to start with if you don’t want to run your own CouchDB for any reason. Still, if you want to play with Cloudant Search 2.0 (https://cloudant.com/for-developers/search/) you need an account for that.

Also, you can compact databases and views as well with performing cleanup on selected views.

Having OSX and Linux builds are still on our list, but no timeline defined for these ones.

Talk to us

Most of the features added into Kanapes IDE actually added after collecting your feedback, so talk to us, it cost you nothing ;) You can ping @kanapeside on Twitter, or hit it Facebook https://www.facebook.com/kanapeside or just drop us an email directly from http://kanapeside.com web site

Have fun!

The biggest downside of Mono for Android is that you are building on Mono, a completely separate runtime that what Android expects. And while there are certainly some advantages to having access to a full CLR, marshalling calls between it and Android’s Dalvik runtime can be expensive. So why not skip the IL code and emit Dex code directly?


Actually that is a slight exaggeration. The dot42 (https://www.dot42.com/) compiler doesn’t actually skip the IL. Rather, it reads the IL code and converts it into a new language called RL or Register Language. The main difference between IL and RL is that IL is stack-based (somewhat like Java’s byte code) while RL is register based. Once converted into RL, a set of optimizations are performed and the final product is compiled again. This last compilation gives us dex code, the language of Android’s Dalvik Runtime.


Through each step of the process the original .NET debugging information is maintained, though of course it must be converted from the Windows/.NET PDB format to dex’s debug information format. dot42 uses the Android Debug Bridge to connect the Visual Studio debugging facilities


Android Libraries are accessed by directly referencing JAR files. “After compilation, your calls are redirected to calls into the original Android libraries.” Some mapping between types is needed, but that is largely addressed by the compiler. For example, java.lang.Boolean is mapped to C#’s Nullable.


Because dot42 emits dex code, there are some C# features that you will not be able to use. The most notable of these is user defined value types, a.k.a. structs. Since they don’t exist in Dalvik, there is simply no way to map them.


When using dot42, you’ll often need to decide between the C# and Android versions of common data structures. For example, should you use .NET’s List or Java’s ArrayList? According to Ewout Prangsma, developers should favor the Java version if they are concerned about memory and download size. Even though their implementation of List is basically a thin wrapper around ArrayList, it is still extra code that needs to be packaged and shipped to the phone.


dot42 is a commercial product that starts at 499 Euro per developer with the usual bulk licensing options.


(Source: http://www.infoq.com/news/2013/02/dot42)

Last week Opera announced that they were dropping development of their own Presto rendering engine and forking Webkit and V8 instead. Christian Heilmann provides some details and explains why this is a loss for web developers. “I always called Opera the Douglas Crockford of browsers as it was ruthless in its implementation of standards. If something didn’t work in Opera there is a good chance that you did something wrong.” (more: Christian Heilmann)

Well, original article states ‘7 Things Developers Should Know About SQL Server’, but #2 mention there is bullshit, the rest, think, it’s quite interesting reading.

Oh, by the way, did you ever used tips from http://support.microsoft.com/kb/920093 ?

Microsoft Azure’s cloud outperformed Amazon Web Services in a series of rigorous tests conducted by Nasuni, a storage vendor that annually benchmarks cloud service providers (CSPs).

Nasuni uses public cloud resources in its enterprise storage offering, so each year the company conducts a series of rigorous tests on the top CSPs’ clouds in an effort to see which companies offer the best performing, most reliable infrastructure. Last year, Amazon Web Services’ cloud came out on top, but this year Microsoft Azure outperformed AWS in performance and reliability measures. AWS is still better at handling extra-large storage volumes, while Nasuni found that the two OpenStack powered clouds it tested — from HP and Rackspace — were lacking, particularly at larger scales.

When you need to list quickly all your serial ports, you can use these simple lines in c#:

foreach (var p in SerialPort.GetPortNames()) {
Console.WriteLine(p);
}

It works both for Microsoft .NET and Mono frameworks, and somewhat similar to this shell command in *nix:

ls /dev/tty.*

Just appeared on CouchDB web site binaries for Mac OSX users, this build is for 1.2.1 release

You can find now JsonBridge on Facebook by visiting http://www.facebook.com/jsonbridge Code samples, downloads notifications and other related news will be posted on http://jsonbridge.com and Facebook both now.

JsonBridge client for ActionScript 3 got updated, Grab it from http://svn.skitsanos.com:8888/svn/sas3lib/ with demo/demo as your SVN credentials.
Today’s changes in ActionScript client is about latest support of JBAPs (JsonBridge Authentication Plugins) where you can use your own Authorization HTTP header to handle authentication.

Just to get you an very basic idea on how to use this thing in your Flex or ActionScript 3 application, here is the code sample for you, but let’s define our JsonBridge end-point URL:
private var urlJsonBridge:String = ‘http://jsonbridge.mywdk.com/jsonbridge/’;

Because we enabled JBAP in our web.config which look like this now:
<?xml version=”1.0”?>
<configuration>
  <appSettings>
    <add key=”jsonbridge.AuthEnabled” value=”true”/>
  </appSettings>
  <system.web>
    <compilation debug=”true” targetFramework=”4.0”/>
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests=”true”/>
  </system.webServer>
</configuration>

we need to tell JsonBridge to use Authorization and pass to it new Authorization HTTP Header:
JsonBridge.url = urlJsonBridge;
JsonBridge.useAuthorization = true;
JsonBridge.authorizationHeader = new URLRequestHeader(‘Authorization’, ‘Simple demo:demo’);

And now we can perform the call to server side methods, for example we want to browse available server side assemblies:
JsonBridge.execute(‘_browse’, null, null, function (success:Object):void
{
textOutput.text = ”;
if (success.type == “error”)
{
textOutput.text = success.message;
} else
{
for (var i:int = 0, l:int = success.result.length; i < l; i++)
{
textOutput.text += (success.result[i] + ‘\n’);
}
}
}, function (failure:Object):void
{
textOutput.text = failure.message;
});

As you can see execute() method didn’t changed at all, so all your old applications can function with no changes required.

sas3lib.swc Download this file
JsonBridgeExample.zip Download this file
We just released new JsonBridge updates for .NET that finally allows you to have very flexible way of handling authentication for your REST requests. This way you can implement Basic Authentication or support for OAuth or any other type of Authorization you would like to have for your own web application. To enable JBAP (JsonBridge Authentication Plugin) you need to make sure your web.config has jsonbridge.AuthEnabled set to true, otherwise JsonBridge will ignore your Authorization header and continue executing your request in free mode.
web.config
  <appSettings>
    <add key=”jsonbridge.AuthEnabled” value=”true”/>
  </appSettings>

Then you need to write your own JBAP/plugin, which is pretty straight forward thing, you just need to make sure you keep the class path like JBAP.YourAuthenticationClassName so when JsonBridge with jsonbridge.AuthEnabled set to true will execute request it will look into HTTP header Authorization find the name of the Handler and will try to load JBAP.YourAuthenticationClassName.dll in order to execute validate method. Validate method accepts just one parameter.
So if your HTTP header looks like this:
Authorization: Simple demo:demo

JsonBridge will look for JBAP.Simple.dll invoke validate method and pass to it everything that goes after Simple, in my particular example it will receive demo:demo
If validate method will return false you will see “Authorization failed” error wrapped into JsonBridge reply of InvokationErrorType type. Otherwise, on true it will execute your request and return you result you expect from your invoked method.

Example of JsonBridge Authentication Plugin (JBAP)
namespace JBAP
{
public class Simple
{
public bool validate (string authHeaderValue)
{
var authPair = authHeaderValue.Split (‘:’);
if (authPair [0] == authPair [1])
{
return true;
}
else
{
return false;
}
}
}
}}

JsonBridge is available as Open Source contribution and you can grab it from our WDK10 SVN here:
http://skitsanoswdk.googlecode.com/svn/trunk/WDK10/ 
For developers that using Java instead .NET we ill provide access to Java sources a bit later these days. Older version you can grab from our labs SVN: http://svn.skitsanos.com:8888/svn/JsonBridge/java