Skip to content

Instantly share code, notes, and snippets.

Walter Chang weihsiu

Block or report user

Report or block weihsiu

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 keybase.md

Keybase proof

I hereby claim:

  • I am weihsiu on github.
  • I am weihsiu (https://keybase.io/weihsiu) on keybase.
  • I have a public key ASB6GjLt6f3b4py5zOvdVa4qaBLoBjdXeSCxHNPXrsS5HAo

To claim this, I am signing this object:

View NGrams2.scala
package ngrams
import java.io.{ BufferedReader, FileReader }
import scala.collection.mutable
object NGrams2 extends App {
val start = System.currentTimeMillis
// download from https://github.com/codygman/faster-command-line-tools-with-haskell/raw/master/ngrams.tsv.tgz
val br = new BufferedReader(new FileReader("ngrams.tsv"))
val kvs = mutable.Map.empty[String, Int]
@weihsiu
weihsiu / GuessTheNumber.scala
Created Apr 11, 2017
Example of using Eff monad
View GuessTheNumber.scala
package catssandbox
import aiyou._
import aiyou.implicits._
import cats._
import cats.data._
import org.atnos.eff._
import org.atnos.eff.all._
import org.atnos.eff.syntax.all._
import IOEffect._
View Exprs.scala
package matryoshkasandbox
import matryoshka._
import matryoshka.data._
import matryoshka.implicits._
import scalaz.Functor
object Exprs extends App {
sealed trait Expr[A]
View gist:53c0e846a23156060272
#include <stdio.h>
// recursive function, "a" is the accumulator
int _reverse(int n, int a) {
if (n < 10)
return n + a;
else
return _reverse(n / 10, (a + (n % 10)) * 10);
}
View designer.html
<link rel="import" href="../core-scaffold/core-scaffold.html">
<link rel="import" href="../core-header-panel/core-header-panel.html">
<link rel="import" href="../core-menu/core-menu.html">
<link rel="import" href="../core-item/core-item.html">
<link rel="import" href="../core-icon-button/core-icon-button.html">
<link rel="import" href="../core-toolbar/core-toolbar.html">
<link rel="import" href="../core-field/core-field.html">
<link rel="import" href="../core-icon/core-icon.html">
<link rel="import" href="../core-input/core-input.html">
<link rel="import" href="../core-icons/core-icons.html">
@weihsiu
weihsiu / interpreter.scala
Created Mar 11, 2012 — forked from chrislewis/interpreter.scala
quick interpreter for nescala
View interpreter.scala
package necsala.embedded
import scala.tools.nsc.interpreter.AbstractFileClassLoader
import scala.tools.nsc.{Global, Settings}
import scala.tools.nsc.util.BatchSourceFile
import scala.tools.nsc.io.{AbstractFile, VirtualDirectory}
import java.io.File
import java.util.jar.JarFile
import java.net.URLClassLoader
@weihsiu
weihsiu / cake_pattern_di.scala
Created Nov 19, 2011 — forked from HarryHuang/cake_pattern_di.scala
Scala Dependency Injection: an improved cake pattern
View cake_pattern_di.scala
//harry huang [huanghui.huang@gmail.com]
//
//After reading the original post [http://jboner.github.com/2008/10/06/real-world-scala-dependency-injection-di.html, ]
//the original cake pattern seems quite verbose for me, and it is quite invasive, so I spent a bit time
//and come up with an improved version of cake pattern, which I call it a "Auto Cake DI". It is working
//well with any POST(plain old scala trait)/POSO(plain old scala object) which means that anything can be
//injected without modification or introducing new traits.
/*---------inject trait---------*/
trait Inject[+T] { def inject: T }
View twitter_translate.user.js
// ==UserScript==
// @name Twitter Translate
// @namespace http://www.netgents.com/twitter-translate
// @description Translate tweets in a foreign language to English
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// @include http://twitter.com/*
// ==/UserScript==
$(document).ready(function() {
function addTranslate() {
View pronounce.js
CmdUtils.CreateCommand({
name: "pronounce",
author: { name: "Walter Chang", email: "weihsiu@gmail.com" },
license: "Creative Commons 3.0 (by nc)",
description: "Pronounce a selected or typed English word",
takes: {"word": noun_arb_text},
preview: function(pblock, text) {
var msg = 'Pronounces "${word}"';
var subs = { word: this._pickWord(text.text) };
pblock.innerHTML = CmdUtils.renderTemplate(msg, subs);
You can’t perform that action at this time.