Some exercises from the Falsy Values workshops.
The good parts:
- HTTP server and client in same script
- Express cookies example
- Express routing example
- Express error handling
- Express middlewares example
- Simple HTTP proxy
(function(uustats){ | |
uustats.sdev = function(series) { | |
return Math.sqrt(uustats.variance(series)); | |
}; | |
uustats.variance = function(series) { | |
var t = 0, squares = 0, len = series.length; | |
for (var i=0; i<len; i++) { |
/* by Joder Illi, Snowball mailing list */ | |
function stemm(word) { | |
/* | |
Put u and y between vowels into upper case | |
*/ | |
word = word.replace(/([aeiouyäöü])u([aeiouyäöü])/g, '$1U$2'); | |
word = word.replace(/([aeiouyäöü])y([aeiouyäöü])/g, '$1Y$2'); | |
/* | |
and then do the following mappings, |
Some exercises from the Falsy Values workshops.
The good parts:
#Mobile Device Detection via User Agent RegEx
Yes, it is nearly 2012 and this exercise has been done to death in every imaginable language. For my own purposes I needed to get the majority of non-desktop devices on to a trimmed down, mobile optimized version of a site. I decided to try and chase down an up-to-date RegEx of the simplest thing that could possibly work.
I arrived at my current solution after analyzing 12 months of traffic over 30+ US based entertainment properties (5.8M+ visitors) from Jan - Dec 2011.
The numbers solidified my thoughts on the irrelevancy of including browsers/OSes such as Nokia, Samsung, Maemo, Symbian, Ipaq, Avant, Zino, Bolt, Iris, etc. The brass tacks of the matter is that you certainly could support these obscure beasts, but are you really going to test your site on them? Heck, could you even find one?! Unless the folks that pay you are die hard Treo users my guess is "No".
Interestingly enough my research shows that /Mobile/ is more efficient than **/iP(
#!/usr/bin/python | |
#gypify.py for GYP (http://code.google.com/p/gyp) | |
#Found @ http://code.google.com/p/gyp/issues/detail?id=82 (Oct 1, 2009) | |
#Download original @ http://gyp.googlecode.com/issues/attachment?aid=1601673567448205219&name=gypify.py&token=qm9EhXN3mZxrS1pniUgsh5nG6Bs%3A1328804204976 | |
#Attached is a script that converts a set of existing Chromium-dependent | |
#.sln and .vcproj files to .gyp. It currently supports executable, shared | |
#library, static library and build event projects. The output .gyp file is | |
#created by: |
// Named constants with unique integer values | |
var C = {}; | |
// Tokenizer States | |
var START = C.START = 0x11; | |
var TRUE1 = C.TRUE1 = 0x21; | |
var TRUE2 = C.TRUE2 = 0x22; | |
var TRUE3 = C.TRUE3 = 0x23; | |
var FALSE1 = C.FALSE1 = 0x31; | |
var FALSE2 = C.FALSE2 = 0x32; | |
var FALSE3 = C.FALSE3 = 0x33; |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <unistd.h> | |
#include <libwebsockets.h> | |
static int callback_http(struct libwebsocket_context *context, | |
struct libwebsocket *wsi, | |
enum libwebsocket_callback_reasons reason, void *user, |
# Editor backup files | |
*.bak | |
*~ |