Analysis takes a lot of CPU and we're not doing any parallel processing. Phan itself is about 30k lines of code and takes about 1.5s for a clean run.
That being said, you should take a look at the '-s' flag for saving state to a sqlite database. After the initial run the stored state can be used to only scan changed files. For a patch with a few files changed it should be about 0.5s to run the analysis.
I'm not sure. PHP7 is pretty new so package maintainers may not have had a chance to put binary releases together. You may need to compile it yourself from https://github.com/nikic/php-ast.
We currently store method/function callers in the sqlite database (see https://github.com/etsy/phan/blob/master/src/Phan/Analyze/Br...), but aren't yet exposing an interface for getting callers. We'll want to store callers for constants, classes, properties and global variables as well.
Phan does not attempt to make sense of things like `$class_name->$function_name()` or `$$v`. I'd be happy to see a pull request that could handle simple strings, but otherwise I imagine the best we can do is emit a warning.
I'm not sure what SIMD refers to. Can you clarify that?
We'd like to get there eventually. Phan populates a sqlite database when analyzing code (if run with the -s flag). This allows fast runs on single file changes or patches. We're hoping to use this for things like auto-complete and finding callers for a class/method/whatever eventually.
We used construction paper to black out the back around the tablet. My guess is that the paper wouldn't like the humidity but the rest would be fine. Perhaps you could swap in some black plastic material that would work with spray adhesive.
The rectangle of light isn't noticeable at all in normal light if you adjust the brightness on the tablet well. In a dark room it can be noticeable, though.
Unfortunately, the touch screen doesn't work through the mirror, however, we're using reusable sticky stuff to attach the mirror to the tablet, so its easy to remove if needed.
That you're asking about keeping it unguessable makes me think that it feels like too few. Its actually only 5 bytes of random (the first character is always zero). 2^40 is a pretty large number and I don't expect to get high coverage over that space any time soon. That being said, perception is important, so I should probably up it.
As for hot-linking; I have no business plan and just wanted to make something useful. I should probably figure that stuff out.
re Quixotic Behavior: We want people who are comfortable taking a stand on an issue and going off on a mission to solve the problem. Not every great idea seems reasonable before people see it working.
re Full-Stack: We're looking for people who design and build full systems from low to high levels. Some have made their career working just as a front- or back-end hacker. We want to meet people who wouldn't dream of letting someone else take half their work or who would be comfortable throwing part of the problem over the fence. People that are a good fit probably don't care that much about what the stack is beyond some reasonable constraints.
If you end up sending that cover letter there's a chance that we'd all be amused enough to read your resume.
At Etsy, our coffee pot is hooked in to our IRC bot so that we can ask how many cups of coffee are left ("?coffee"). Someone from the ops team just opened a bug report due to non-compliance with RFC 2324.