HNHacker News
TopNewBestAskShowJobs

constexpr

853 karma · joined August 16, 2011

submissionscomments
constexpr··on Ask HN: Who is hiring? (November 2015)
San Francisco; Full Time; Onsite

I'm the cofounder of Figma, a stealth startup in San Francisco building a browser-based collaborative design tool to improve the way designers and engineers work together. We're a small team of 14, and we're looking for talented designers and engineers (front end, backend, full stack, lead devops, mobile, and data science) who are interested in tackling challenges in the creative tools space.

Example challenges: annotation system on top of documents for feedback, 2D boolean operations on paths, speed up zooming in the app using a tile quadtree, UI testing framework that simulates user actions, real-time events and data pushing across the site, zero-downtime deployments, search API for filtering user files.

Our tech stack: C++, Emscripten, Node, CoffeeScript, JavaScript, WebGL, Ruby, Sinatra

If you're interested in learning more about what we're working on or want to meet up to talk about any of my other projects (http://madebyevan.com/), you can email me at wallace@figma.com.

constexpr··on Node.js: Some quick optimization advice
The bug has been marked as WontFix by the V8 team: https://code.google.com/p/v8/issues/detail?id=3354. It looks like they are considering fixing it for TurboFan and not for Crankshaft, but I'm not sure what that means. Does that only apply to asm.js code?
constexpr··on Ask HN: Who is hiring? (October 2015)
San Francisco; Full Time; Onsite

I'm the cofounder of Figma, a stealth startup in San Francisco building a browser-based collaborative design tool to improve the way designers and engineers work together. We're a small team of 14, and we're looking for talented designers and engineers (front end, backend, full stack, lead devops, lead quality, mobile, and data science) who are interested in tackling challenges in the creative tools space.

Example challenges: annotation system on top of documents for feedback, 2D boolean operations on paths, speed up zooming in the app using a tile quadtree, UI testing framework that simulates user actions, real-time events and data pushing across the site, zero-downtime deployments, search API for filtering user files.

Our tech stack: C++, Emscripten, Node, CoffeeScript, JavaScript, WebGL, Ruby, Sinatra

If you're interested in learning more about what we're working on or want to meet up to talk about any of my other projects (http://madebyevan.com/), you can email me at wallace@figma.com.

constexpr··on Servo WebRender Overview
I'm surprised to hear they produce lower quality output at small glyph sizes. Fragment shaders can do multiple texture samples and I've gotten very high quality results. You can even do ClearType-style subpixel rendering with a handful of samples. The case where signed distance fields don't work is for large glyph sizes. They often end up chopping off corners or not having the density to represent thin calligraphic strokes.
constexpr··on Ask HN: Who is hiring? (September 2015)
San Francisco; Full Time; Onsite

I'm the cofounder of Figma, a stealth startup in San Francisco building a browser-based collaborative design tool to improve the way designers and engineers work together. We're a small team of 12, and we're looking for talented designers and engineers (front end, backend, full stack, lead devops, lead quality, mobile, and data science) who are interested in tackling challenges in the creative tools space.

Example challenges: annotation system on top of documents for feedback, 2D boolean operations on paths, speed up zooming in the app using a tile quadtree, UI testing framework that simulates user actions, real-time events and data pushing across the site, zero-downtime deployments, search API for filtering user files.

Our tech stack: C++, Emscripten, Node, CoffeeScript, JavaScript, WebGL, Ruby, Sinatra

If you're interested in learning more about what we're working on or want to meet up to talk about any of my other projects (http://madebyevan.com/), you can email me at wallace@figma.com.

constexpr··on Ask HN: Who is hiring? (August 2015)
I'm the cofounder of Figma, a stealth startup in San Francisco building a browser-based collaborative design tool to improve the way designers and engineers work together. We're a small team of 12, and we're looking for talented designers and engineers (front end, backend, full stack, lead devops, lead quality, mobile, and data science) who are interested in tackling challenges in the creative tools space.

Example challenges: annotation system on top of documents for feedback, 2D boolean operations on paths, speed up zooming in the app using a tile quadtree, UI testing framework that simulates user actions, real-time events and data pushing across the site, zero-downtime deployments, search API for filtering user files.

Our tech stack: C++, Emscripten, Node, CoffeeScript, JavaScript, WebGL, Ruby, Sinatra

If you're interested in learning more about what we're working on or want to meet up to talk about any of my other projects (http://madebyevan.com/), you can email me at wallace@figma.com.

constexpr··on Edward Snowden’s Advice for an Unhackable Password
What I do for most sites is to enter a one-off random string and forget it immediately. I just leave myself logged in and when I get logged out I just use the email password recovery to set a new random password. Your email password recovery mechanism is already the weakest link.
constexpr··on IPFS Alpha Demo – Distributed Web
You bring up the internet archive in your presentation. Have you talked to them? What do they think of IPFS?
constexpr··on Genetic Algorithm Walkers
I'm always confused when people ask me this question. All browsers have the ability to view the source code of a web page (View > Developer > View Source in Chrome). The source code is here: http://madebyevan.com/nn-gait/script.js. Is that what you meant?
constexpr··on Genetic Algorithm Walkers
This experiment reminds me of one of my recent experiments: http://madebyevan.com/nn-gait/. Mine ends up figuring how to walk relatively quickly. It does have a regular pulse as an input though.
constexpr··on WebGL Water Simulator
Nope, it's much simpler than that. It's just a grid of vertical positions and each frame every cell moves toward the average position of the neighbors from the previous frame. See http://freespace.virgin.net/hugo.elias/graphics/x_water.htm for details.
constexpr··on Emscripten and asm.js: C++'s role in the modern web
What's completely broken about it? If you use it the way it was intended to be used, as a cache for apps, then it works perfectly fine in my experience. It behaves like a native app that updates itself in the background (Chrome itself does this, for example). If you try to use it as a HTTP cache then yes, it's completely the wrong tool for the job and you're gonna have a bad time.
constexpr··on Go 1.4+ Garbage Collection Plan and Roadmap
Yes. According to http://clang.llvm.org/docs/AutomaticReferenceCounting.html#s..., ARC assumes that self is valid for the lifetime of the call. This will not be the case if the last reference to the object is changed or cleared during the call, which may result a segfault. The performance loss of retaining and releasing self across all methods was deemed too much compared with the safety gains.
constexpr··on WebGL Water
Author here. I've done much more awesome stuff with WebGL since I made this demo but it's for my startup and is not public yet. We're actually looking for a backend engineer with graphics experience at the moment. Send me an email at evan@figma.com if you're interested.
constexpr··on WebGL Water
Author here. The caustics in this demo are computed entirely on the GPU and are approximated with a mesh. The shader for the caustics needs the ratio of the projected area to the original area for each triangle to compute the brightness. You're right that a vertex shader can't access whole triangles (you usually use a geometry shader for that, which WebGL doesn't have) but you can still get the ratio of the triangle areas in this case by using the screen-space derivative functions dFdx() and dFdy() in the fragment shader. Reflections and refractions can also be done in entirely in the fragment shader for simple scenes like this one with standard raytracing intersection tests.
constexpr··on WebGL Water
Author here. The water effect is a simple 2D heightfield simulation, which is explained pretty well at http://www.matthiasmueller.info/talks/GDC2008.pdf. It essentially just moves each vertex toward the average height of its neighbors, which turns out to propagate waves that look like water ripples.

The caustics are also pretty simple. Basically you take your heightfield mesh that represents the water surface and project each vertex independently along the ray refracted from the light through that vertex (using the vertex normal) and onto the pool floor. So you now have a mesh that is completely on the pool floor and contains lots of tiny triangles. To render caustics, just make triangles that got smaller brighter and ones that got bigger dimmer. I think I used the ratio of the projected area to the original resting area.

The reflection and refraction raytracing is all hard-coded for the geometry in the scene, which makes it really easy. It's just a simple sphere and box intersection test. The "ambient occlusion" is done by making parts of the objects darker when they get near each other.

State of the art for real-time water uses a full 3D volumetric representation for the water like in this paper: http://www.matthiasmueller.info/publications/tallcells.pdf. This lets you get waves that can fold over themselves like real waves. I haven't seen any other realtime methods that have caustics as good as the ones in my demo though.

constexpr··on Why Asm.js Bothers Me
Ouch, that's a great point about versioning.

The thing that appeals to me about asm.js is that it short-cuts the long, slow path of VM optimization and gives great performance now instead of five years down the road. Sure it's an ugly hack but that doesn't matter to your users, all they see is a much faster user experience.

Now all we need is a SIMD API for JS and we can write some truly amazing apps.

← PreviousPage 4 of 4