Skip to content

Instantly share code, notes, and snippets.

Working from home

Chen Tao jagt

Working from home
View GitHub Profile
View gist:93cb508f42051c5ba2a863b16ac0cbaf
==6756==ERROR: AddressSanitizer: new-delete-type-mismatch on 0x11b647ca0820 in thread T0:
object passed to delete has wrong type:
size of the allocated type: 24 bytes;
size of the deallocated type: 8 bytes.
#0 0x7ff6990d82aa in operator delete(void *, unsigned __int64) D:\agent\_work\13\s\src\vctools\crt\asan\llvm\compiler-rt\lib\asan\asan_new_delete.cpp:172
#1 0x7ff6990dd4a0 in ply::OutPipe::`scalar deleting dtor'(unsigned int) C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xthreads.h:129
#2 0x7ff6990d9404 in ply::OutStream::destructInternal(void) C:\Dev\plywood\repos\plywood\src\runtime\ply-runtime\io\OutStream.cpp:50
#3 0x7ff6990914dd in ply::OutStream::~OutStream(void) C:\Dev\plywood\repos\plywood\src\runtime\ply-runtime\io\OutStream.h:118
#4 0x7ff6990912da in main C:\Dev\plywood\repos\plylox\PipeLeak\Main.cpp:8
jagt /
Last active Sep 17, 2018
Standalone script for exporting camera animation w/ custom attributes.
export camera standalone
1. put in `C:/Users/<user>/Documents/maya/scripts`
2. open maya and select the camera in outliner
3. menu 'custom->Export Selected Camera'
from maya import cmds
from maya import mel
def make_kwargs(overrides, **kwargs):
jagt /
Created Jun 19, 2018
Setting up IPython for Maya 2018
  1. Put mayapy on Path
  2. Open a cmd as admin
  3. run mayapy -m ensurepip --default-pip
  4. run mayapy -m pip install --upgrade pip
  5. run mayapy -m pip install ipython==5.7.0
  6. delete C:\Program Files\Autodesk\Maya2018\Python\Lib\site-packages\_scandir.pyd. it's build against original python release version.
  7. test mayapy -c "from IPython import embed; embed()"
View union.cs
using System;
using System.Runtime.InteropServices;
// turns out primitive C# union is already doable
public struct MyUnion
jagt / twod_array.linq
Last active Jan 4, 2019
c# 2d array example
View twod_array.linq
void Swap(ref float lhs, ref float rhs)
float tmp = lhs;
lhs = rhs;
rhs = tmp;
void InplaceFlipX(float[,] arr)

Core Coding Standard

Coding practices are a source of a lot of arguments among programmers. Coding standards, to some degree, help us to put certain questions to bed and resolve stylistic debates. No coding standard makes everyone happy. (And even their existence is sure to make some unhappy.) What follows are the standards we put together on the Core team, which have become the general coding standard for all programming teams on new code development. We’ve tried to balance the need for creating a common, recognizable and readable code base with not unduly burdening the programmer with minor code formatting concerns.

Table Of Contents

jagt / InstaLODEditorUtils.cs
Created Feb 1, 2018
InstaLOD binding example
View InstaLODEditorUtils.cs
using System;
using System.IO;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using InstaLOD;
using System.Runtime.InteropServices;
public static class InstaLODEditorUtils
jagt / publicize.cs
Last active Jan 30, 2018
View publicize.cs
using Mono.Cecil;
using System;
using System.Linq;
using System.Collections.Generic;
// inplace publicize all methods/types in a dll
// need Mono.Cecil in nuget
class Program
View embed_civet_genie.lua
solution 'embed-civet'
location './build'
configurations {'Debug', 'Release'}
platforms {'x32', 'x64'}
startproject 'main'
includedirs {
defines {'USE_WEBSOCKET'}
View on_hit.lua
local delegates = {}
local function OnEvent(evt, cb)
local cb_dump = string.dump(cb)
delegates[evt] = cb_dump
-- declare callbacks
OnEvent('hit', function(evt)