Skip to content

Instantly share code, notes, and snippets.

Joe K jokecamp

Block or report user

Report or block jokecamp

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View ServiceStackApiHMAC
using ServiceStack.WebHost.Endpoints;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Security;
using ServiceStack.Common.Web;
using ServiceStack.Logging;
using ServiceStack.ServiceHost;
using ServiceStack.ServiceInterface;
jokecamp / ConsoleExample.cs
Last active Dec 13, 2015
RSS Example Output
View ConsoleExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using ServiceStack.Text;
using System.Runtime.Serialization;
using System.Xml;
[assembly: ContractNamespace("", ClrNamespace = "ServiceStackTester")]
jokecamp / monoserver
Created Aug 31, 2013
Linux startup script for fastcgi-mono-server4
View monoserver
# Provides:
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start fastcgi mono server with hosts
jokecamp / gist:7529013
Created Nov 18, 2013
Various ways of sanitizing XML input
View gist:7529013
public string Clean(string text)
return new string(text.Where(XmlConvert.IsXmlChar).ToArray());
public static string CleanInvalidXmlChars(string text)
jokecamp / RequestFilter
Created Dec 13, 2013
ServiceStack v3 Partial Updates
View RequestFilter
this.RequestFilters.Add((httpReq, httpResp, requestDto) =>
var hasFilter = requestDto as IAllowPartialUpdate;
if (hasFilter != null)
if (httpReq.QueryString["fields"] != null)
// store for later
httpReq.Items.Add("Patch_Fields", httpReq.QueryString["fields"].Split(new[] {','}));
jokecamp / example.dart
Created Jan 17, 2014
Dart HMAC SHA 256 Example code
View example.dart
import 'dart:html';
import 'dart:convert';
import 'package:crypto/crypto.dart';
void main() {
String secret = 'secret';
String message = 'Message';
List<int> secretBytes = UTF8.encode('secret');
jokecamp / AppHostBase
Created Jun 4, 2014
ServiceStack v3.9.55.0 - Dynamically add OPTIONS to all routes
View AppHostBase
/// Call this ad the end of your app host Configure(Funq.Container container) method
private void AddOptionsVerbToAllRoutes(IServiceRoutes routes)
var map = EndpointHost.ServiceManager.ServiceController.RestPathMap;
foreach (var key in map.Keys)
foreach (RestPath rp in map[key])
routes.Add(rp.RequestType, rp.Path, "OPTIONS");
jokecamp / client.html
Last active Aug 29, 2015
Working 1.0 with path option
View client.html
<!doctype html>
<title>Socket.IO chat</title>
<form action="">
<input type="input" id="m" /><button>Send</button>
<pre id="output"></pre>
jokecamp / gist:2c1a67b8f277797ecdb3
Last active Sep 15, 2019
Powershell HMAC SHA 256 Example
View gist:2c1a67b8f277797ecdb3
# Powershell HMAC SHA 256
$message = 'Message'
$secret = 'secret'
$hmacsha = New-Object System.Security.Cryptography.HMACSHA256
$hmacsha.key = [Text.Encoding]::ASCII.GetBytes($secret)
$signature = $hmacsha.ComputeHash([Text.Encoding]::ASCII.GetBytes($message))
$signature = [Convert]::ToBase64String($signature)
jokecamp / package.json
Last active Jul 31, 2019
Demo for Passport.js authentication in a Node.js Express application
View package.json
"name": "securehelloworld",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"author": "",
"license": "ISC",
You can’t perform that action at this time.