Skip to content

Instantly share code, notes, and snippets.

View honnix's full-sized avatar
🏠
Working from home

Honnix honnix

🏠
Working from home
View GitHub Profile
@honnix
honnix / DefaultTransformer.scala
Created November 24, 2010 13:25
transform ASN.1 module into xml schema
package com.ericsson.asn12schema.transformer
import scala.xml.{UnprefixedAttribute, Null}
import com.honnix.asn12schema.model.datatype.complex.{ASN1EnumeratedType, ASN1SetField, ASN1SetOfType, ASN1SetType}
import com.honnix.asn12schema.model.ASN1Module
import com.honnix.asn12schema.model.datatype.primitive.{ASN1PrimitiveType, ASN1BooleanType, ASN1IA5StringType, ASN1IntegerType}
class DefaultTransformer extends Transformer {
private def dealWithIntOrString(field: ASN1SetField) = {
@honnix
honnix / XPathParser.scala
Created April 13, 2012 09:59
simple xpath alike parser in scala combinator
// _[@type=="baoc" and ts10[@value=="1" and a==2] and ts20]
package com.honnix.xml.transformer
import scala.xml.NodeSeq
import scala.util.parsing.combinator.JavaTokenParsers
object XPathParser {
def apply(conditionalPath: String, topSelector: (NodeSeq, String) => NodeSeq) =
new XPathParser(conditionalPath, topSelector)
@honnix
honnix / tree.scala
Created April 19, 2012 16:18
build and walk through the tree
case class Tree(var left: Tree, var right: Tree, var value: Int)
def build(seq: Seq[Int]): Tree = seq match {
case Nil => null
case _ =>
import scala.util.Random
val pos = Random nextInt seq.length
val (left, right) = seq splitAt pos
Tree(build(left), build(right.tail), right.head)
}
@honnix
honnix / dns.rb
Created January 23, 2013 12:52
play dns with ruby
#!/usr/bin/env ruby
# Copyright (c) 2009 Samuel Williams. Released under the GNU GPLv3.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
@honnix
honnix / guess.scala
Created June 10, 2013 15:12
genetic algorithm experiment
import scala.language.postfixOps
import scala.util.Random
class Guess {
class GeneticSolver {
def getBest(toMatch: String) = {
def random: Stream[Char] = toMatch(Random.nextInt(toMatch.length)) #:: random
def iterate(parent: Seq[Char], score: Int, generation: Int): Seq[Char] = if (score != toMatch.length) {
def mutate = parent.updated(Random.nextInt(toMatch.length), toMatch(Random.nextInt(toMatch.length)))
us_state_abbrev = {
'Alabama': 'AL',
'Alaska': 'AK',
'Arizona': 'AZ',
'Arkansas': 'AR',
'California': 'CA',
'Colorado': 'CO',
'Connecticut': 'CT',
'Delaware': 'DE',
'Florida': 'FL',
@honnix
honnix / Recv.java
Created November 25, 2013 14:51
rabbitmq receiver
package com.ericsson.research.axon.messenger;
import java.io.IOException;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.DefaultConsumer;
import com.rabbitmq.client.Envelope;
@honnix
honnix / server.rb
Created November 25, 2013 21:33
upload file in sinatra
require 'sinatra'
require 'haml'
# Handle GET-request (Show the upload form)
get "/upload" do
haml :upload
end
# Handle POST-request (Receive and save the uploaded file)
post "/upload" do
@honnix
honnix / ec
Created February 10, 2014 20:14
emacsclient enhanced
#!/bin/sh
if [ $# -ne 1 ]
then
echo "use: ec <file>"
exit -1
fi
/Applications/Emacs.app/Contents/MacOS/bin/emacsclient -n $1 > /dev/null 2>&1
#!/usr/bin/env perl
# You can use this script in a pipe. It's input will become an emacs buffer
# via emacsclient (so you need server-start etc.)
# See http://mark.aufflick.com/o/886457 for more information
# Copyright (C) 2011 by Mark Aufflick <mark@aufflick.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy