Skip to content

Instantly share code, notes, and snippets.

View dcbriccetti's full-sized avatar

Dave Briccetti dcbriccetti

View GitHub Profile
@dcbriccetti
dcbriccetti / groupBy
Created December 28, 2014 21:58
Can you simplify this, please?
scala> case class A(a: Int, b: Int)
defined class A
scala> val as = Seq(A(1, 100), A(2, 100), A(3, 101))
as: Seq[A] = List(A(1,100), A(2,100), A(3,101))
scala> as.groupBy(_.b)
res3: scala.collection.immutable.Map[Int,Seq[A]] = Map(101 -> List(A(3,101)), 100 -> List(A(1,100), A(2,100)))
scala> res3.map{case (b, as) => b -> as.map(_.a)}
@dcbriccetti
dcbriccetti / gist:0e779a177b2fb3bc1602
Last active August 29, 2015 14:13
Errors running Minecraft from IDEA
/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/java -Xincgc -Xmx1024M -Xms1024M -Didea.launcher.port=7532 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA 14.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/Contents/Resources/Java/deploy.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/dt.jar:/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/Contents/Resources/Java/javaws.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/management-agent.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/sa-jdi.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/alt-rt.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/charsets.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar:/System/L
@dcbriccetti
dcbriccetti / gist:da05c00e4ae6d9afdef7
Last active August 29, 2015 14:13
An excerpt from Dave Briccetti’s first non-trivial Minecraft mod, inspired by Devoxx4kids Sharp Snowballs: https://github.com/devoxx4kids/materials/tree/master/workshops/minecraft
class SharpSnowballArray {
@SubscribeEvent
def replaceSnowballWithArrow(event: EntityJoinWorldEvent) {
val entity = event.entity
val world = entity.worldObj
entity match {
case snowball: EntitySnowball if ! world.isRemote =>
-2 to 2 foreach(xOff => {
-2 to 2 foreach (yOff => {
@dcbriccetti
dcbriccetti / gist:b70a7ff65541d79c467d
Last active August 29, 2015 14:16
Can you rewrite this to produce “combinations” for any nonzero value of “numDice”? (This is mostly academic curiosity.)
val combinations: Seq[Seq[Int]] = numDice match {
case 1 => for (a <- 1 to numSides) yield Seq(a)
case 2 => for (a <- 1 to numSides; b <- 1 to numSides) yield Seq(a, b)
case 3 => for (a <- 1 to numSides; b <- 1 to numSides; c <- 1 to numSides) yield Seq(a, b, c)
}
/* Display the numbers from 1 to 100 that are not divisible by both
4 and 7, but for those numbers divisible by 4, show ÷4 instead, and
for those divisible by 7, show ÷7 instead. */
object Solution1 extends App {
println(
(1 to 100 map(n => {
def divBy(div: Int) = n % div == 0
(divBy(4), divBy(7)) match {
case (false, false) => Some(n)
@dcbriccetti
dcbriccetti / sieve
Created July 3, 2015 21:00
Sieve of Eratosthenes is faster with list than with numpy.array
import math
import numpy
from timeit import timeit
HIGHEST = 100000
ARRAY_LEN = HIGHEST + 1 # For 0
def make_sieve():
sieve = numpy.ones(ARRAY_LEN)
mark_composites(sieve)
return sieve
case class NameAndScreenName(val name: String, val screenName: String) extends Ordered[NameAndScreenName] {
override def toString = name + " (" + screenName + ")"
def compare(other: NameAndScreenName) = screenName compareToIgnoreCase other.screenName
def matches(search: String) = {
val slc = search.toLowerCase
search.length == 0 || name.toLowerCase.contains(slc) || screenName.toLowerCase.contains(slc)
}
}
title = "Send Message"
val isMentions = tweetsProvider.isInstanceOf[MentionsProvider] // TODO do without this test
val model = if (isMentions)
new StatusTableModel(sto, tweetsProvider, usersTableModel, fs, service, user.user, tagUsers) with Mentions
else
new StatusTableModel(sto, tweetsProvider, usersTableModel, fs, service, user.user, tagUsers)
import javax.swing.SwingWorker
class A {
def loadAll(f:(Int) => List[String]): List[String] = List("a")
def getFriendsIds(page: Int): List[String] = List("a")
def getFollowersIds(page: Int): List[String] = List("a")
}
class B {
def setFollowers(followers: List[String]) {}
case class Word(val word: String, val count: Long) {
override def toString = word + ": " + count
}
private def showWordCloud {
val counts = LinkedHashMap[String,Long]()
statusTableModel.filteredStatuses.map(status => {
List.fromArray(status.text.split("\\s")).foreach(word => {
counts.put(word, counts.getOrElse(word, 0L) + 1L)
})