Skip to content

Instantly share code, notes, and snippets.

Ami Fischman fischman

Block or report user

Report or block fischman

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile

Keybase proof

I hereby claim:

  • I am fischman on github.
  • I am ami ( on keybase.
  • I have a public key whose fingerprint is 326F 3B6A 660B 9CB0 637D AA17 A678 6237 68A5 6A7C

To claim this, I am signing this object:

fischman /
Last active Jan 21, 2019
This gist is a "table of contents" for the finished versions of things I've designed, either for 3d-printed or lasercutting.

Tapered text

Prompted by a G+ post I hacked up a demo of tapered text

Badge holder

Inspired by laser origami and having wanted a smaller badge holder for a while, this is ghost-badge. Cut out of a clear sheet of 1.4mm PETG and (hand) folded with a heat-gun and a ruler, this does a nice job of holding a badge. Make sure to select either layer and click "Update" to get the two different layers to cut & mark. SVG version of the same.

Unfortunately after a few months of use, the PET-G bec


Keybase proof

I hereby claim:

  • I am fischman on github.
  • I am ami ( on keybase.
  • I have a public key whose fingerprint is 3BA9 6B9A BF5C 97BE D624 D409 A96B 2854 0A01 71B9

To claim this, I am signing this object:

fischman / shell log
Created Jul 11, 2013
Example of negation in gyp
View shell log
fischman@fischman-linux ~/t $ GYP_DEFINES="base=0" GYP_GENERATORS=ninja ~/src/chromium/src/tools/gyp/gyp --depth=. t.gyp && grep NEGATION out/Default/obj/
cflags = -DNEGATION_1
fischman@fischman-linux ~/t $ GYP_DEFINES="base=1" GYP_GENERATORS=ninja ~/src/chromium/src/tools/gyp/gyp --depth=. t.gyp && grep NEGATION out/Default/obj/
cflags = -DNEGATION_0
fischman / gist:3654045
Created Sep 6, 2012
vdpau-driver use-after-free
View gist:3654045
==25091== ERROR: AddressSanitizer heap-use-after-free on address 0x7f1d93f98188 at pc 0x7f1d85f33161 bp 0x7f1d7bc16e30 sp 0x7f1d7bc16e28
READ of size 8 at 0x7f1d93f98188 thread T4
#0 0x7f1d85f33160 in render_thread /home/fischman/va-craxy/vdpau-driver/src/vdpau_video_x11.c:85
#1 0x7f1de231613b in __asan::AsanThread::ThreadStart() ??:0
0x7f1d93f98188 is located 264 bytes inside of 2304-byte region [0x7f1d93f98080,0x7f1d93f98980)
freed by thread T0 here:
#0 0x7f1de23131b5 in __interceptor_realloc ??:0
#1 0x7f1d85f0e38a in object_heap_expand /home/fischman/va-craxy/vdpau-driver/src/object_heap.c:62
#2 0x7f1d85f0e63b in object_heap_allocate /home/fischman/va-craxy/vdpau-driver/src/object_heap.c:104
View gist:3231029
fischman@trap ~/src/chromium/src/third_party/WebKit {b92881} $ echo -e "file://`pwd`/LayoutTests/jquery/traversing.html\nfile://`pwd`/LayoutTests/media/video-poster-blocked-by-willsendrequest.html" | ../../ninja/Debug/DumpRenderTree --pixel-tests -
Xlib: extension "RANDR" missing on display ":0.0".
ALERT: 198 tests of 198 passed, 0 failed.
Content-Type: text/plain
Content-Type: text/plain
Test for
View gist:3099718
<class 'google.appengine.api.datastore_errors.Timeout'>: The datastore operation timed out, or the data was temporarily unavailable.
Traceback (most recent call last):
File "/base/data/home/apps/chromium-status/r118900.356331869415836973/", line 74, in <module>
File "/base/data/home/apps/chromium-status/r118900.356331869415836973/", line 132, in bootstrap
config = db.GqlQuery('SELECT * FROM GlobalConfig').get()
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/", line 2101, in get
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/", line 2313, in next
return self.__model_class.from_entity(
View gist:2921204
commit 7dbe5ab20cdf7b014f1697d97908dd81100ca878
Author: Ami Fischman <>
Date: Tue Jun 12 18:18:47 2012
Better impl of MakeCurrent
diff --git a/content/common/gpu/media/ b/content/common/gpu/media/
index 39dd80f..e782235 100644
--- a/content/common/gpu/media/
+++ b/content/common/gpu/media/
View gist:2913124
diff --git a/Source/WebKit/chromium/src/WebLayerTreeView.cpp b/Source/WebKit/chromium/src/WebLayerTreeView.cpp
index fed3db9..7de17fd 100644
--- a/Source/WebKit/chromium/src/WebLayerTreeView.cpp
+++ b/Source/WebKit/chromium/src/WebLayerTreeView.cpp
@@ -167,7 +167,10 @@ void WebLayerTreeView::finishAllRendering()
WebGraphicsContext3D* WebLayerTreeView::context()
- return GraphicsContext3DPrivate::extractWebGraphicsContext3D(m_private->layerTreeHost()->context()->context3D());
+ WebCore::CCGraphicsContext* c = m_private->layerTreeHost()->context();
View gist:2913101
(gdb) bt
#0 0x00007f2cb89daa32 in WTF::RefPtr<WebCore::GraphicsContext3D>::get (this=0x20) at ../../third_party/WebKit/Source/WTF/wtf/RefPtr.h:58
#1 0x00007f2cb89da8ea in WebCore::CCGraphicsContext::context3D (this=0x0) at ../../third_party/WebKit/Source/WebCore/platform/graphics/chromium/cc/CCGraphicsContext.h:47
#2 0x00007f2cb89da874 in WebKit::WebLayerTreeView::context (this=0x7f2cb496faf8) at ../../third_party/WebKit/Source/WebKit/chromium/src/WebLayerTreeView.cpp:170
#3 0x00007f2cb8a17096 in WebKit::WebViewImpl::graphicsContext3D (this=0x7f2cb496f880) at ../../third_party/WebKit/Source/WebKit/chromium/src/WebViewImpl.cpp:3659
#4 0x00007f2cc083065a in RenderViewImpl::createMediaPlayer (this=0x7f2cae18d000, frame=0x7f2cad4d6e00, client=0x7f2cac8a43d0) at ../../content/renderer/
#5 0x00007f2cb89db5bb in WebKit::createWebMediaPlayer (client=0x7f2cac8a43d0, frame=0x7f2caccb6000) at ../../third_party/WebKit/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:56
#6 0x00007f2cb
You can’t perform that action at this time.