Skip to content

Instantly share code, notes, and snippets.

View marcesher's full-sized avatar

Marc Esher marcesher

View GitHub Profile
package edu.gmu.mut;
import java.util.ArrayList;
import java.util.Calendar;
/**
* Class Account represents an immutable customer account.
*/
public class Account {
@marcesher
marcesher / BadObject.cfc
Created January 12, 2012 20:51
cfc with no var scoping
component output="false"{
function loop1(){
x = 1;
for( x = 1; x LTE 100; x++ ){
writeLog("x is #x#");
loop2();
}
return x;
}
@marcesher
marcesher / gist:1662639
Created January 23, 2012 11:28
Synthesizing functions in javascript... practical applications?
From David Laing & Greg Malcolm's excellent javascript koans. I'm wondering: What are practical uses cases for this function synthesizing in javascript, where this approach would be preferable to all other possible approaches:
it("should use lexical scoping to synthesise functions", function () {
function makeIncreaseByFunction(increaseByAmount)
{
var increaseByFunction = function increaseBy(numberToIncrease)
{
return numberToIncrease + increaseByAmount;
};
@marcesher
marcesher / eff_you_var_scope
Created February 25, 2012 16:01
How many concurrent requests does it take to get into the throw?
<cfcomponent>
<cffunction name="getArtist" output="false" access="public" returntype="any" hint="">
<cfargument name="id" type="numeric" required="true"/>
<cfquery datasource="cfartgallery" name="artist">
select *
from artists
where artistid = <cfqueryparam value="#arguments.id#" cfsqltype="cf_sql_integer"/>
</cfquery>
@marcesher
marcesher / ChatService.groovy
Created August 20, 2012 10:06
websocket chat example
class ChatService {
static transactional = false
static atmosphere = [mapping: '/atmosphere/chatty']
@marcesher
marcesher / ChatService.groovy
Created September 4, 2012 22:41
websocket broadcaster example
class ChatService {
static transactional = false
static atmosphere = [mapping: '/atmosphere/chat']
.....
@marcesher
marcesher / ZipCodeService_method.groovy
Created September 12, 2012 20:57
mongodb examples
def populationByState(){
return zipcodes().aggregate(
[ $group :
[ _id : [ state : '$state', city : '$city' ], pop : [ $sum : '$pop' ] ]
],
[ $group :
[ _id : '$_id.state', avgCityPop : [ $avg : '$pop' ] ]
],
[ $sort: ['avgCityPop' : -1] ]
).results()
@marcesher
marcesher / famine.sql
Created October 16, 2012 16:05
a commentary
During the great alphabet famine of two thousand aught six, column names were abbreviated to near-non-readability. In order to automate tests of [newsystem] reports against [oldsystem] reports, we're retaining those column names here. You're welcome.
@marcesher
marcesher / state_is_a_bug.txt
Created November 9, 2012 14:29
State Is a Bug : Questions
Joe, thanks for responding.
I'm most interested in what are perhaps pedestrian issues, but they're issues (for me) nonetheless. You mentioned "outsourcing" session management... where can I read more on that?
Take the simple case of: I'm a user on your system. I'm logged in. I'm doing things. The server I'm on disappears while the screen I'm reading is currently loading.
What happens? Do I see an error? Am I sent to a new machine, with all my session state in tact, and the screen I was reading simply reloads?
Or take perhaps a different architecture where a machine isn't brought down until all its users have been successfully moved to other servers. For example, perhaps our configuration is such that we have N instances, and we do a rolling code push to those instances. User A is on Server 5, which has the old code. We need to get that user to Server 2, which has the new code, along with all of his state. Once all users are off of Server 5, the deploy then moves to Server 5 as well and then Server 5 is b
@marcesher
marcesher / classpath.xml
Created November 29, 2012 12:06
database migration automation example
<!-- jtds.jar, used to connect to SQL Server, is in 'lib' -->
<path id="project.classpath">
<fileset dir="lib">
<include name="*.jar" />
</fileset>
</path>