Skip to content

Instantly share code, notes, and snippets.

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

Chao Yang chaoyangnz

🏠
Working from home
View GitHub Profile
public class ActivejdbcTransactionManager extends DataSourceTransactionManager {
@Override
protected Object doGetTransaction() throws TransactionException {
Object txObject = super.doGetTransaction();
Method getConnectionHolder = ReflectionUtils.findMethod(txObject.getClass(), "getConnectionHolder");
ConnectionHolder connectionHolder = (ConnectionHolder)ReflectionUtils.invokeMethod(getConnectionHolder, txObject);
Connection connection;
if(connectionHolder == null) {
try {
connection = this.getDataSource().getConnection();
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
/**
* Expression Calculator
*/
public class ExpressionCalculator {
package life;
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ForkJoinPool;
/**
* Example main program for running the sequential Game-of-Life.
@chaoyangnz
chaoyangnz / gist:8920ec7c3900ee43120450327f9a8584
Created November 18, 2017 22:06 — forked from pfrazee/gist:8949363
In-Application Sandboxing with Web Workers

In-Application Sandboxing with Web Workers

A design rationale.

For the past fews years, the Web has been shifting control to the client. Given the limitations of remote services, developers are now looking for ways to "unhost" static applications – that is, break the dependency on remote servers while still using the Web platform.

One untapped technology for client-side control is the Web Worker Sandbox. This API lets the Page load, execute, and destroy separate Worker threads which use their own Virtual Machines. By using Worker Sandboxes to drive behavior, the Web can give users the choice of which software they run together, shifting development from a centralized SaaS model into a distributed and free (as in freedom) script-sharing model.

Worker Sandboxes can Execute Arbitrary Code

@chaoyangnz
chaoyangnz / toolbox.xml
Created November 22, 2017 20:57 — forked from davidferguson/toolbox.xml
Blockly Deafult Blocks Toolbox
<xml id="toolbox" style="display: none">
<category name="{catLogic}" colour="210">
<block type="controls_if"></block>
<block type="logic_compare"></block>
<block type="logic_operation"></block>
<block type="logic_negate"></block>
<block type="logic_boolean"></block>
<block type="logic_null"></block>
<block type="logic_ternary"></block>
</category>
import java.util.HashMap;
import java.util.Map;
/**
* Can be used in shorten url.
* Store urls in DB and get an id, then encode this id to a [a-zA-Z0-9] string
*/
public class Base62 {
Map<Character, Integer> char2int = new HashMap<>();
Map<Integer, Character> int2char = new HashMap<>();

How Do I Into Git?

a helpful primer for users sick of git's poorly-named commands

I've used Git since 2011, and this is the stuff that I've always had to Google to remember. I hope it helps you not hate Git so much.

Learning About the Repo

Learning About History

@chaoyangnz
chaoyangnz / README.md
Created January 24, 2018 10:38 — forked from roachhd/README.md
EMOJI cheatsheet 😛😳😗😓🙉😸🙈🙊😽💀💢💥✨💏👫👄👃👀👛👛🗼🔮🔮🎄🎅👻

EMOJI CHEAT SHEET

Emoji emoticons listed on this page are supported on Campfire, GitHub, Basecamp, Redbooth, Trac, Flowdock, Sprint.ly, Kandan, Textbox.io, Kippt, Redmine, JabbR, Trello, Hall, plug.dj, Qiita, Zendesk, Ruby China, Grove, Idobata, NodeBB Forums, Slack, Streamup, OrganisedMinds, Hackpad, Cryptbin, Kato, Reportedly, Cheerful Ghost, IRCCloud, Dashcube, MyVideoGameList, Subrosa, Sococo, Quip, And Bang, Bonusly, Discourse, Ello, and Twemoji Awesome. However some of the emoji codes are not super easy to remember, so here is a little cheat sheet. ✈ Got flash enabled? Click the emoji code and it will be copied to your clipboard.

People

:bowtie: 😄

@chaoyangnz
chaoyangnz / what-forces-layout.md
Created March 6, 2018 20:54 — forked from paulirish/what-forces-layout.md
What forces layout/reflow. The comprehensive list.

What forces layout / reflow

All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.

Element

Box metrics
  • elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent
  • elem.clientLeft, elem.clientTop, elem.clientWidth, elem.clientHeight
  • elem.getClientRects(), elem.getBoundingClientRect()
@chaoyangnz
chaoyangnz / README.md
Created April 7, 2018 21:55 — forked from pbojinov/README.md
Two way iframe communication- Check out working example here: http://pbojinov.github.io/iframe-communication/

Two way iframe communication

The main difference between the two pages is the method of sending messages. Recieving messages is the same in both.

Parent

Send messages to iframe using iframeEl.contentWindow.postMessage Recieve messages using window.addEventListener('message')

iframe