HNHacker News
TopNewBestAskShowJobs

BruceIV

501 karma · joined June 16, 2012

A computer science grad student and sometime software developer, I'd rather be writing abstract syntax trees than database access layers.
submissionscomments
BruceIV··on Delegative Democracy – a scalable voting model
This. At least in a representative democracy the ideologues with the huge media reach are generally not the same people who are actually making the laws.
BruceIV··on Parsing: The Solved Problem That Isn't (2011)
I've been working on a derivative parsing algorithm for PEGs; it only uses memory proportional to the amount of backtracking and grammar nesting (i.e. about the same as recursive descent), but still gives a polynomial worst-case bound on time. An early draft of my paper on it is at [1]; this turned out to be about 6x slower than packrat when I actually built and tested it, but I've come up with a substantial simplification to the algorithm that I'm quite optimistic will have better performance results once I finish debugging my code.

[1] http://arxiv.org/abs/1405.4841

BruceIV··on Parsing: The Solved Problem That Isn't (2011)
I've been working on a new PEG parsing algorithm, and though my first crack at it was way too slow and I still haven't finished debugging the second version, I was able to show that packrat parsing had about a 40% runtime hit over recursive descent for well-behaved inputs on some common grammars (and linear memory usage vs. constant).
BruceIV··on Using GNU Stow to manage your dotfiles
Looks useful; I just symlink into a folder on my dropbox, which accomplishes much the same thing with about the same effort.
BruceIV··on Ruby’s Unary Operators and How to Redefine Their Functionality
I'm not a Rubyist, but isn't overloading operators to do things completely unrelated to their normal semantics (like most of the examples here) generally a terrible thing to do?
BruceIV··on On Error Handling in Rust
There's an RFC for try/catch: https://github.com/glaebhoerl/rfcs/blob/trait-based-exceptio...
BruceIV··on On Error Handling in Rust
Check out the RFC linked from the article for some thoughts on that:

https://github.com/glaebhoerl/rfcs/blob/trait-based-exceptio...

BruceIV··on On Error Handling in Rust
The Rust RFC[1] linked in the article is also super neat; it looks basically like a way to build a checked-exceptions like syntax in a way that meshes naturally with Rust's existing semantics and types, as well as the ? operator presented in the blog post.

[1] https://github.com/glaebhoerl/rfcs/blob/trait-based-exceptio...

BruceIV··on What makes for a stable marriage?
I have a similar experience; my wife and I spent about $4000 on our wedding,and had about 150 guests, and it was a perfectly lovely (if not particularly fancy) ceremony. We got sandwichs, cheese & crackers, and fruit trays (plus some baked goods my wife and some friends made) for the meal, it worked out to about $2 a person, and no one left hungry. The reception was in the church hall, my wife got her dress off Kijiji (think Canadian Craigslist), and I just wore the suit I already owned (why waste enough money to buy a new suit on renting a tux? I looked sharp, and no one cares how the groom's dressed anyway). We bought flowers for the bouquets, but none for decoration (again, why? where does it make the experience better?) Photography was probably our biggest single expense, and we got that cheaply because my wife knew a woman who was just getting her business started and wanted to build a portfolio (our wedding photos are great, and we have digital copies of all of them we can make as many prints of as we want).

The short version is we planned our wedding with a mindset of "we want as many of the people we care about to be able to share this day with us as possible, and since we have a limited budget we're only going to spend it on things that make a positive difference in the day".

BruceIV··on Whats Wrong with Markdown
I thought the only really legitimate gripe he had was the non-standardized interpretation of the edge cases, and once we get a number of decent CommonMark implmentations / refinements to the spec, we should be able to handle those fairly soon.

I use Markdown to take text notes; it's quick to write, and especially with my text editor's syntax highlighting it looks decent too.

BruceIV··on Sway: A new presentation application from Microsoft
So, I skimmed a couple of the example "Sways we love", and I have to say, all the whizzy animations just make me think of all those horrible PowerPoint presentations anyone just learning does. I don't find the addition of flat UI to that overabundance of animations makes it any less distracting and unprofessional looking.
BruceIV··on if (osName.startsWith("windows 9"))
I can't seem to find the link again, but I think I read a Microsoft blog post somewhere saying that that name was already taken (by a Mr. Gates, circa 1985).
BruceIV··on Windows 10 is the official name for Microsoft's next version of Windows
Rumors on the internet[1] suggest that Microsoft is moving to a more incremental update cadence, and, correspondingly, there will never be another major version release of Windows. If that's the case, I'd wager they didn't want to be stuck "a version behind" Mac OS X forever.

[1] http://www.zdnet.com/windows-threshold-and-cadence-how-fast-...

BruceIV··on Idiomatic Generics in Go
What happens if you want two different types of set? As-imports? (I've looked at Go, but not written in it.)
BruceIV··on C++11 use in Chromium
Not everyone has the most recent versions of the compilers, either; my institution is still working on the upgrade path from Ubuntu 12.04 LTS to 14.04 LTS, so I had to get a modern gcc manually compiled to get proper C++11 support, because nothing in the 12.04 package manager had full support.
BruceIV··on Netflix refuses CRTC demand to hand over subscriber data
Yes, and the whole world thanks us for Nickelback and Justin Bieber.
BruceIV··on Why the Kitchen Computing Dream of the 80s Never Caught On
I find the assumption throughout the last few paragraphs that being a hobbyist is a masculine thing rather sexist, and not representative of reality.
BruceIV··on Remove Ex-Mode from Neovim
This is wonderful, I must do this, I keep hitting `q` instead of `:q` when I want to quit Vim, and it's a pain to get out of...
BruceIV··on Ask HN: Do you still use an RSS reader?
Feedly. You need curation on the Internet, so HN is for the interesting stuff I haven't found yet, and Feedly is for sources with a high signal-to-noise ratio.
BruceIV··on The Road to Rust 1.0
C++11 is still C++ though. I've been writing pretty much exclusively C++11 for the last year, and, while they've added a lot of very nice features and I find it painful to go back to C++03, it's still a huge language with lots of hoary edge cases and everything and the kitchen sink built in (now with rvalue reference and move semantics for extra verbosity!).

I haven't touched Rust since 0.7 (where I abandoned it after filing two bugs on the project before I even got argument parsing working), but it's the most promising of the new batch of languages in my mind, and I have some side projects in mind I'd like to try when 1.0 comes out.

BruceIV··on Living Simply in a Dumpster
Did anyone else catch his Oscar the Grouch mug in the photo? I laughed.
BruceIV··on Standard Markdown
IIRC, lists and code blocks depend on indentation to decide where they begin/end, and I think what level they're at.
BruceIV··on Standard Markdown
TL;DR Packrat trades guaranteed linear memory usage for worst-case polynomial time; the worst-case almost never comes up in non-contrived input, so it's a reasonable implementation decision to go with the less memory-hungry naive implementation.

Depends on the algorithm; the naive recursive algorithm takes worst-case exponential time, while the packrat algorithm guarantees linear time.

However, for most sensible[1] inputs, the recursive algorithm runs in linear time and constant space, while packrat takes about the same time, but with linear space usage.

[1] Where "sensible" is defined to be "amount of backtracking is bounded by a fixed small constant, as is grammar nesting depth" - conditions that hold for most human-generated files matching useful grammars (I've been working on a new PEG parsing algorithm; it doesn't work so well, but the results I've been getting in testing about the existing algorithms are quite interesting.)

BruceIV··on The peculiar status of PhD-employees
That sucks; my experience in Canada is that the student/employee duality is usually spun to help us - hence, we're university employees in terms of labour protections, but as far as student loan repayment and income tax goes, we're 12-month a year full time students, and most of our income is non-taxable scholarships.
BruceIV··on The peculiar status of PhD-employees
I'm currently a computer science PhD student (in Canada). I love my job (and the freedom and flexibility it gives me), and my funding is good enough that I have a comfortable living situation, but I (and most of my colleagues) could double our salaries by leaving school and getting a good job in industry. Even if I get an increasingly-rare tenure-track position when I'm done, I will never make up the wage gap with my friends from undergrad who went out and got more traditional jobs.

I love teaching, and I hate fighting with the computer (especially for dull line-of-business CRUD apps), so I don't particularly want an industry job, but the fact that I'm spending most of a decade (counting Master's) in grad school working well below the market wage for someone of my skillset still rankles. The fact that I'm going to spend 3/4 of my PhD taking no courses, but paying $12,000 a year in tuition grates too, as it's essentially a quarter of my salary clawed back for "job training", which in my case is a (very supportive) mentor and a desk in a windowless room - I may as well be a miner in a company town paying the company for pickaxes and head lamps (on the other hand, I also get all the same tax breaks I did in undergrad, so at least I'm not paying income tax).

When I describe my job to friends and family, I describe it as a sort of apprentice professor, because that's much closer to the truth than some sort of super-student. I'd rather be paid like an apprentice professor too, rather than a ramen-eating subsistence wage, as the original poster suggests.

BruceIV··on Is De-Skilling Killing Arts Education?
In computer science, the later approachability comes from people finding ways to use the work, and eventually we get to the point where the people using the work aren't specialists anymore (one of my professors used to say that if you're the first to do something you're a scientist, if you're the second you're an engineer, and if you're the third you're just a technician). With modern art (my impression at least) is that the art is contained in the commentary on society and the dialog with other contemporary artists, and that will never become more relevant or approachable, you'll just need to be an art historian to understand it in a century.

That said, what I find approachable is not a terribly important criterion for art, I just found the it irritating that the actual art was in the process but the context of being in a gallery suggested that the artifact was the art.

(For what it's worth, I also find theoretical computer science papers that produce unimplemented and likely unimplementable algorithms which shave log factors off existing bounds irritating as well, but that is again a matter of personal taste - those at least might give some later researcher a hint about how to actually build a usably better algorithm, though.)

BruceIV··on Is De-Skilling Killing Arts Education?
I visited the Tate modern art museum in London while on vacation this summer, and left bothered by the idea of modern art. I could put a collection of furnace ducts in a corner, or hang a mirror on the wall, or bedazzle an internal combustion engine (all exhibits), but it wouldn't be art, because I don't know why it's art, and neither would it take any particular skill. It bothers me that this 'art' lacks both skill and approachability. As a PhD student, I'm no stranger to obscure academic fields that can't be understood by anyone outside your narrow specialization, but at least even the most obscure theoretical work in computer science might actually be useful to people who aren't theoretical computer scientists, and that possible future approachability to people outside the field seems to be lacking in modern art.
BruceIV··on I studied engineering, not English. I still can't find a job
Agreed. I think a better solution to the article author's problem would be to treat 'programming' education (which is not the same thing as computer science) like a skilled trade like carpentry or plumbing, and intersperse community college courses with a formalized apprenticeship program ... it might take a while to get some traction, but it seems like it would work as a way to train programmers while not gutting our ability to do blue-sky theoretical research in computer science.
BruceIV··on Self-referential functions and the design of options
Neat trick; it shouldn't be hard to make the Option method return a closure that reverses all the options, not just the last one.
BruceIV··on Death by Inches: The battle over the metric system in America
I'll bite (and I grew up in one of the colder parts of Canada, so I'd call 0F a cold but not unreasonable winter day).

-30: Avoid going outside, if you do don't leave any exposed skin

-20: A cold winter day: toque, scarf, mittens, winter coat and boots are must have

-10: An average winter day: same load-out as above, but you'll be more comfortable

0: A mild winter day: snow possible, you may leave your winter jacket open, or skip the scarf

10: Early spring or late fall: you might be able to get away with a light jacket, but I'd leave that until 15

15: Long pants and light jacket

20: Leave the jacket home, maybe wear shorts or a t-shirt

25: Comfortable summer weather: shorts and t-shirt

30: Annoyingly hot summer weather, good for swimming

35 or higher: hole up somewhere with AC

← PreviousPage 2 of 10Next →