HNHacker News
TopNewBestAskShowJobs

caipre

182 karma · joined September 27, 2012

[ my public key: https://keybase.io/caipre; my proof: https://keybase.io/caipre/sigs/U_psVMC-FxBA_5cziS_cDQkfRuDJ4SzJwhRX1FUJI7c ]
submissionscomments
caipre··on Call Me Maybe: MongoDB Stale Reads
Can't answer your question, but I'm curious how you managed to include an image in your comment. I didn't think embedded HTML was possible?
caipre··on C++ Streams
Working here, Firefox + Yosemite.

Tried Safari, it's working as well.

caipre··on Experimenting with HHVM at Etsy
Shameless self promotion: I wrote hussar[0], a tool that uses HHVM for PHP static analysis in projects that can't run HHVM directly. Etsy says "getting [their] code to run on HHVM was relatively easy", but my experience has been the opposite. Previous discussion on HN here: https://news.ycombinator.com/item?id=9071854

[0]: https://github.com/wayfair/hussar

caipre··on How GitHub Conquered Google, Microsoft, and Everyone Else
My thinking was that it's effectively a private repository (albeit publicly visible), so it would subvert their business model.
caipre··on How GitHub Conquered Google, Microsoft, and Everyone Else
I wonder whether something like [0] would work, where the repository is encrypted on push and decrypted on pull. Might be against Github's terms of use, though.

[0]: https://rovaughn.github.io/2015-2-9.html

caipre··on Hacking with Andrew and Brad: an HTTP/2 client in Go [video]
Really interesting to watch, thanks for doing this.

Anyone else really impressed by their development speed? I've not used Go and following someone else in an editor can be difficult, but it took me some effort to keep up: you guys never slowed down for nearly two hours!

Did you ever find out why ip.appspot.com yielded "Bad Request"?

caipre··on Io.js and Node.js reconciliation proposal
The quote in context isn't nearly as damning as GP made it out to be. It seems to me that Hammond was answering tongue-in-cheek and only meant to emphasize that his focus was on Node.js alone:

  One more thing: Developers using IO instead of Node are,
  well, not invited.

  “IO.js, what’s that?” asked Joyent CEO Scott Hammond in
  response to my query about whether projects based on the
  fork would be able to enter. “This is a Node.js project
  for Node.js innovations.”
I'm not sure I can take the criticism seriously after seeing the source.
caipre··on PHP Static Analysis with HHVM and Hussar
Here is a first pass over the Wordpress repository: https://gist.github.com/caipre/feb7f9fe46dc2fa90a79

Unfortunately, analyzing symphony caused an HHVM segfault. =( I'm not sure it's the same issue, but this happened to me before: https://github.com/facebook/hhvm/issues/4363

This was a good exercise: I was happy to see that hussar adapts pretty easily to outside projects. Basically, I ended up doing this:

  $ git clone git@github.com:Wordpress/Wordpress.git
  $ cd Wordpress
  $ ~/hussar/bin/make-report
There were one or two hiccups that required some manual changes to the scripts; I'll get fixes for these up soon.
caipre··on PHP Static Analysis with HHVM and Hussar
Good suggestion, I've not tried that yet! I'll see about doing that tomorrow. I believe both of those are able to run on HHVM already, so I'd be curious to see what hussar finds.
caipre··on PHP Static Analysis with HHVM and Hussar
Author here.

The project is on github if you want to skip the blog post: https://github.com/wayfair/hussar

Happy to answer any questions!

caipre··on A Gentle Primer on Reverse Engineering
I recently had to expand my list and came up with:

    foo bar baz buz qux pip pop tut rof art uff dex dom zed
caipre··on Texgen.js – Lightweight Procedural Texture Generator
Actually, it seems like a good question to me. The MIT license (and the other major ones, afaik) specifically applies to the software (and docs), not what artifacts the software might produce. It's not clear to me whether those would be included under the same terms. I would assume they're free to use, but I'm not sure that's (always) true and IANAL.

Something to think about: if I write a program that outputs a work under copyright (without actually containing the copywritten work), can I still use a permissive license?

caipre··on Gitlet: Git implemented in JavaScript
I was referring more to the "ran hundreds of experiments" than the "understanding by implementing." I agree wholeheartedly that actually making something reveals far more about a problem/solution than would simply reading about it.
caipre··on Gitlet: Git implemented in JavaScript
> Sometimes, I can only understand something by implementing it. So, I wrote Gitlet, my own version of Git. I pored over tutorials. I read articles about internals. I tried to understand how API commands work by reading the docs, then gave up and ran hundreds of experiments on repositories and rummaged throught the .git directory to figure out the results.

When the source itself is available, why not just read the code? I understand using articles and documentation to get the high to mid level view, but why not go to the real source of truth if it's available?

caipre··on Reptyr – Reparent a running program to a new terminal
screen (and tmux) start a new instance of the shell, which would have no knowledge of the backgrounded process. You'd just see the message "fg: no current job"
caipre··on Visualization of age, height and weight of players in the 2014 FIFA World Cup
FYI, the link to the LoTR project[0] on the about page is broken.

[0]: http://ejoh.se/worldcup2014/lotrproject.com

caipre··on Show HN: Velocity.js – Accelerated JavaScript animation
Well documented sure, but man are there some long lines in there. I get that 80 char width can be a bit limiting, but several of those are 200+.

Still, I'll take the documentation. :)

caipre··on Rust by Example
It's using highlight.js, but doesn't seem to be one of the default styles. [0] Maybe it's custom?

[0]: http://highlightjs.org/static/test.html

caipre··on A simple, kernel-space, on-disk filesystem from scratch
git is a digraph though, so it's not as complicated as an arbitrary graph. Every commit has a single parent, making a previous button trivial. The next commit is difficult, since that's where branching happens, but that's not so hard to represent: show all options and let the user continue along one path or another.

The implementation probably just involves walking backwards through history until you reach the initial commit, maintaining a bidirectional linked list as you go.

Github already allows users to walk forward and backward though history via the commits page[0]. It seems reasonable to provide the same "Newer", "Older" buttons when viewing an individual commit.

[0]: https://github.com/torvalds/linux/commits/master?page=1

caipre··on A simple, kernel-space, on-disk filesystem from scratch
I've had this thought as well. I would love to see Github add support for a previous/next button when viewing a commit to make the experience seamless.

The trouble is, for many projects claiming to start from scratch, the "Initial commit" includes hundreds or thousands of lines of code. The practicality of learning this way is very much dependent on the author/committer making digestible, incremental commits and maintaining a linear history.

caipre··on Announcing The Matasano/Square CTF
FWIW, happens with the second "Yay!" as well.

Thanks for making this!

caipre··on Rdio is Now Free on the Web
I think it's still available, just not advertised on the main page. When editing my subscription, the $4.99/month option was still there.
caipre··on On undoing, fixing, or removing commits in git
Usability note: after a few clicks through this (so my path had a few entries) I instinctively clicked up a few levels in the path expecting to be taken to that point. Instead, that entry was appended as another child.
caipre··on Why Emacs is a better editor – case study for JavaScript developer
AFAIK, ST2 doesn't have a plugin for a Javascript interpreter (though I haven't used ST2 for over a year now). You could extend the javascript.sublime-language file, but that only supports regexes so you won't have the same context as with the AST.

Your main point stands though: all major editors have the ability to add plugins to achieve this same functionality.

caipre··on Firefox 26 is released
I'd suggest Semantic Versioning[1]: <major>.<minor>.<patch>

[1]: http://semver.org/

Major releases break the API, so programs that depend upon them may not work. Minor releases add or improve features while preserving existing functionality. Patches fix bugs.

This is exactly why having version numbers is important. Even if the number becomes arbitrary, it's existence is necessary to build dependency trees.

Aside: I'm not certain, but it seem as though Firefox does have a major.minor version scheme: my user-agent reads "Mozilla/5.0 ... Firefox/25.0"; Firefox 5.25 is probably the most correct.

caipre··on Firefox fixes save gigabytes of memory on image-heavy pages
Have you used Firefox's pinned tabs[1]?

I have just two bars[2] for either browser, enough real-estate for me (wish I had a high resolution though).

[1]: https://support.mozilla.org/en-US/kb/pinned-tabs-keep-favori... [2]: http://i4.minus.com/i4lX5yMWuwoGi.png

caipre··on tmux 1.8 Released
Persistent sessions is a nice feature.
caipre··on tmux 1.8 Released
tmux has mouse mode to enable scrolling/clicking.

This appears to be a helpful article: http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

caipre··on An Open Source Author's Lament
I guess you don't like Perl much then. ducks
caipre··on Future of Firefox DevTools
In Firebug this is shown in the 'Remote IP' column under the 'Net' tab. I don't use FF or Chrome dev tools often enough to know if/where they have it.
← PreviousPage 2 of 3Next →