Skip to content

Instantly share code, notes, and snippets.

@JonasGroeger
JonasGroeger / build.gradle
Last active December 8, 2024 11:45
Gradle: Read git commit hash.
def getCheckedOutGitCommitHash() {
def gitFolder = "$projectDir/.git/"
def takeFromHash = 12
/*
* '.git/HEAD' contains either
* in case of detached head: the currently checked out commit hash
* otherwise: a reference to a file containing the current commit hash
*/
def head = new File(gitFolder + "HEAD").text.split(":") // .git/HEAD
def isCommit = head.length == 1 // e5a7c79edabbf7dd39888442df081b1c9d8e88fd
@aadnk
aadnk / BukkitSerialization.java
Created December 26, 2013 20:17
Serialize and deserialize inventories to a string.
package com.comphenix.example;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.bukkit.Bukkit;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.io.BukkitObjectInputStream;
@aadnk
aadnk / ItemSerialization.java
Created December 26, 2013 20:33
Only use this version if you've used ItemSerialization before, and want backwards compatibility. This Bukkit-only version is far superior: https://gist.github.com/aadnk/8138186
package com.comphenix.example;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.lang.reflect.Method;
@andelf
andelf / simple_chat.rs
Last active April 13, 2024 15:09
Simple Socket Chat Server in Rust. (TcpListener, TcpStream, SharedChan, RWArc)
extern mod sync;
// str op trait
use std::str::StrSlice;
// for tcp listen
use std::io::{TcpListener, TcpStream};
use std::io::net::ip::SocketAddr;
// for trait
use std::io::{Listener, Writer, Acceptor, Buffer};
// for spawn
@tiimgreen
tiimgreen / app.rb
Created April 12, 2014 16:59
A simple Ruby program.
puts 'Hello World'
@Garris0n-
Garris0n- / self-cancelling task example.java
Last active January 12, 2022 00:07
Example of a self-cancelling Bukkit task.
public void countdown(final Player player){ //A method
new BukkitRunnable(){ //BukkitRunnable, not Runnable
int countdown = 10; //Instance variable in our anonymous class to easily hold the countdown value
@Override
public void run(){
if(countdown <= 0 || !player.isOnline()){ //countdown is over or player left the server, just two example reasons to exit

Continuous Integration - Know your opportunities

Continuous Integration in a nutshell

Continuous Integration (CI) is an important practice every team should adopt in order to detect defects and errors early and solve integration problems easily. Roughly speaking we may say that CI is a practice that allows the growth of solid software by giving greater confidence to the developers and better products to the final customers.

The concept behind CI is fairly simple: the codebase is owned by several developers that continuously integrate their changes to a common version control system. For each integration the system runs a predefined set of tasks automatically; these tasks may vary from running all the tests to building all the components.

@VijayKrishna
VijayKrishna / ReturnAdapter.java
Last active September 8, 2023 19:53
Example code showing how the AdviceAdapter in ASM(.ow2.org) can be used/extended.
package self.vpalepu.stackoverflow;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.MethodVisitor;
@vinceallenvince
vinceallenvince / README.md
Last active July 2, 2024 15:12
CI with Travis, github Releases API, gh-pages and npm publish

CI with Travis, GitHub Releases API and gh-pages

When hosting a project on GitHub, it's likely you'll want to use GitHub Pages to host a public web site with examples, instructions, etc. If you're not using a continuous integration service like Travis, keeping your gh-pages site up to date requires continuous wrangling.

The steps below outline how to use Travis CI with GitHub Releases and GitHub Pages to create a "1-button" deployment workflow. After testing and running a release build, Travis will upload your release assets to GitHub. It will also push a new version of your public facing site to GitHub Pages.

Organize your project

Let's assume you are hosting a JavaScript project that will offer a single JavaScript file as a release asset. It's likely you'll organize your files like this.

@phase
phase / Kill Streaks
Created July 24, 2014 01:54
Kill Streaks up to 20
private String getKillStreak(int score) {
switch(score){
case 2: return "Double";
case 3: return "Triple";
case 4: return "Quadruple";
case 5: return "Penta";
case 6: return "Hexa";
case 7: return "Hepta";
case 8: return "Octo";
case 9: return "Ennea";