HNHacker News
TopNewBestAskShowJobs

jpallen

903 karma · joined November 25, 2010

submissionscomments
jpallen··on To Keep Passwords Safe from Hackers, Just Break Them into Bits
No doubt I'm missing something dumb, but would one get similar benefits from simply storing half of the password hash on one server, and half on the other? To authenticate the password, you would then just authenticate it against both servers which can tell you whether their half matches. What is the advantage of the technique described[1] in the article compared to this?

[1] That's putting it a bit kindly. 'that we were told exists' might be more fair.

jpallen··on I self-published a programming book, here's my story
You have a good point there. The problem is that LaTeX doesn't have a fundamental distinction between 'style' and 'commands'. Everything is really just a command, but by convention some of them are wrappers around predefined styles, like \section and \chapter for example. If you want to change the style of these yourself then you have to dive into the internals of LaTeX where things get messy.
jpallen··on I self-published a programming book, here's my story
As soon as I read his opening piece I thought 'this guy needs to use LaTeX', so I'm glad that he did in the end. I've benefited a lot from the stories and comments here at HN, so I'd like to offer my help in getting you started with LaTeX if you'd like to do something similar.

I'd say that the major of downside of LaTeX is that it's not very accessible. One of my goals at the moment is to improve that, and that's part of my motivation for working on ShareLaTeX [1], which is probably one of the easiest ways to get started with LaTeX (I am of course biased.) We've cut out all of the installation and configuration needed to set up LaTeX, so you can dive straight in.

[1] https://www.sharelatex.com

jpallen··on Dear brilliant students: Please consider not doing a PhD.
I don't have any experience with the US system, but I've heard similar things. In fact, when I started reading this article I assume the author was talking about the US system, so I was quite surprised to see it was in the UK system that she was referring too!
jpallen··on Dear brilliant students: Please consider not doing a PhD.
As others are saying in this thread, I find myself disagreeing with almost every point the author makes about doing a PhD. I'm just about to hand in my thesis after 3 and half years of doing a PhD in theoretical physics in the UK. I've published 2 papers and have a third in preparation so I feel like my PhD has been 'good'. In contrast to the author, I've worked on my PhD no more than 40 hours a week, often less since I've also spent a lot of time building up a website and a business that I hope to pursue full-time afterwards. I also haven't been 'broken' in anyway - sure it was tough at times, but I'm leaving my PhD feeling more intelligent and more energised that I ever did. The experience of pushing myself into the unknown and having to learn a lot in a short time has been very beneficial, and I now feel like there is little knowledge that I couldn't master given the time. So all in all, a very positive experience. Sure my research isn't particularly groundbreaking, but the personal development that has come with my PhD has been huge.
jpallen··on On logic in a Rails app
We use a very similar set up in a large Node.js app I'm working on. It works very well for the most part, but we're definitely still figuring out the best way to split things up.

For example, say we want to work with a 'user' model, and we need to do basic CRUD stuff. One argument would say that we should have a module for each action: creating users (registering, hashing password, sending out welcome email, etc.), deleting users (cleaning up their data, removing them from the db), and for authentication, profile updates, and so on. The downside to this is that we end up with a dependence on the underlying data structure across lots of modules. If we want to change the property 'username' to 'login', or something more complex, we have a lot of modules to change. We also need to understand how a user is created before we can understand how they are updated or deleted, which means we need to have the CreateUser module in our head while we're working on UpdateUser or DeleteUser.

Perhaps this problem is worse in our set up because we have only very thin 'models', which are basically just Mongoose wrappers around MongoDB, and so our UpdateUser models is still quite heavily coupled to our database.

All things considered, I've found the schema described in this article is better than any alternatives that we've tried. Perhaps we're just floating at the equilibrium point where either more or less abstraction would make the code more complicated. Certainly we refactor as soon as we can when a single module gets too complex. As always, pragmatism rules.

jpallen··on Juggling by numbers: How notation revealed new tricks
Not only does the problem become easier, using the right notation enables us to do things that we just couldn't do before. Humans (or at least me) can only hold a few simple things in our head at once. If the problem is too complicated, we can't deal with it, and the only way to approach it is to split it down into simpler abstractions that we can hold in our head all at once. I think this is a large part of what mathematics is - taking concrete concepts that are hard to hold in our head, and turning them into an abstraction that describes their important and general properties in a way that is simple enough that we can keep them in our head. So much of mathematics is the pursuit of different abstractions and general properties of things.

I can juggle with 3 balls, and I'm able to do a passable Mills-Mess, but I'm not sure I have the experience to judge the utility of your juggling notation. However, it certainly seems to be doing a similar thing. Your notation contains exactly the same information as the entire pattern but it can actually be kept in ones head and worked with. Even being able to juggle Mills-mess, I'm still not really sure what's going on, and certainly struggle to imagine the whole pattern. I'm not surprised it took you 2 and half pages to describe!

jpallen··on Juggling by numbers: How notation revealed new tricks
From reading the title I thought that 'juggling' and 'tricks' where metaphors for how choosing the right notation in mathematics can make a problem trivial, while choosing the wrong notation can make it nearly impossible. Even though the article is talking about a concrete example of juggling, I think it can still be taken as an appropriate metaphor.

Perhaps the oldest and most obvious example of the power of notation is the invention of algebra itself. Before that, people used to write maths in words. Fermat's Last Theorem for example was stated as:

    It is impossible to separate a cube into two cubes, or 
    a fourth power into two fourth powers, or in general, any 
    power higher than the second, into two like powers.
This isn't very easy to understand! With algebra we can just write

    There are no integers, a, b and c such 
    that a^n + b^n = c^n when n is an integer n > 2.
This is much easier to read once you're familiar with algebra, but much more importantly, the notation is very conducive to being able to manipulate the expression to derive new results from it.

Perhaps that's the criteria for good notation - it makes additional manipulations and insights easy to the point of trivial.

jpallen··on Online collaborative LaTeX editor
It's not going down, we've just started pointing new users at ShareLaTeX, since that's where our development efforts are focused. If you have an account with ScribTeX you'll still be able to use if for the foreseeable future.
jpallen··on Linode increases storage by 20%
This seems like a good strategy for Linode - rather than decrease their prices as their running costs get cheaper, they offer more for the same price. This keeps them competitive on price, but keeps their revenue high. It reminds me of the way that car manufacturers tend to make their smallest car get bigger with each new iteration, and then introduce another smallest model. People stick with the model they like but are now paying for the second smallest car, at a higher price.
jpallen··on Collaborating with LaTeX and git
As the author of this article I'm glad to hear you like it :). If you have a spare moment I'd love to chat to you about LaTeX and collaboration in academia, and what your experiences with git are in this context. The blog is hosted at ShareLaTeX, which is an online LaTeX editor we're developing to try to provide a simple solution to some of the problems that git has a bit too steep of a learning curve for.
jpallen··on Collaborating with LaTeX and git
I wrote this article, and I also founded and run ScribTeX so that's no coincidence! I'm now working with Henry on ShareLaTeX, where this blog is hosted, and we're about half way along with our plans to get git integrated there as well.
jpallen··on Pdf.js: PDF Reader in JavaScript
I'm really excited for this for http://www.sharelatex.com and other similar sites that are actually generating a PDF for you. With native PDF viewers there is no way to interact with the viewer via javascript and even just having the viewer stay on the same page when your reload a document (with minor changes) is impossible. Pdf.js means that we'll be able to do this easily, as well as other cool things like letting letting the user sync between the PDF and source.
jpallen··on Backbone has made me a better programmer
Unit testing will also force to decouple your code in a similar way. In the first example it is impossible test individually test all the things the code should do without worrying about everything else that is going on (e.g. you need make sure all the elements exist on the page). By moving to an event trigger like you suggest, you can then test that each listener does the correct thing independently of the others. You can have a separate test for 'selector' and 'yet-another-selector' and they don't need to know about each other. As an added benefit you don't need to mock out your ajax call either. Instead you can just fire a "DataModel:update" event in the unit test.

I've only recently grokked this aspect of unit testing and I feel like it's made my code an order of magnitude better and more maintainable. Thinking first about how to write code in a decoupled manner also makes unit testing really easy. After having tried unsuccessfully for years to test my code it was a revelation when I that it was because my code was bad that it was hard to test, not that testing is itself hard.

Edit: I've tried to illustrate my thoughts more clearly with a copy-cat post to show the parallels between the two: http://news.ycombinator.com/item?id=4427842

jpallen··on Write LaTeX - browser-based collaborative editor
I've done quite a bit of work getting a scalable cloud LaTeX compiler set up (http://clsi.scribtex.com). Send me an email at james@scribtex.com if you'd like to chat about some of the issues that you might be facing. LaTeX is surprisingly good at running quickly and efficiently once you tweak it a bit!
jpallen··on Different sizes of infinity
If I've followed your argument correctly, then the same is also true of the rational numbers, but these are countable (i.e. the same 'size' as the integers).

Oh fiddlesticks, the post was deleted before I'd even finished my reply! :(

jpallen··on Why I switched to Spine.js
No. 4 is something which I've solved in Backbone.js with about 50 lines of (commented) code. It's a pretty simple setup inspired by Rails and it has solved this problem in all use cases I've had. I've put it in a Gist here: https://gist.github.com/2762417
jpallen··on Infinity is not a number
I pretty much agree with you. I'm just worried that with all the comments about 'what is a number?', and 'sure, we can make infinity a well defined number', it will dilute the message of the article. Which is that infinity is not a 'number' (in the sense of real numbers). It's important to understand why it's not a number and what it means when we write it on one side of an equality.
jpallen··on Infinity is not a number
The problem is that "a number" is meaningless.

No it isn't. It's fairly clear from the article that in this context a number is something which you can have that many of. You can have 3 dollars. It even makes sense to have -2.5 dollars. Ok, an irrational number of dollars is pushing it a bit, but you don't need to go that far to see that infinity doesn't work when trying to count things consistently.

A lot of the comments here are getting hung up on trying to pin down the mathematics of what you can and can't do with infinity. That's fine, it's been keeping mathematicians busy for centuries, but this article is for the layman who doesn't know about rings, groups, algebras or any other mathematical structure which you might call 'numbers'. It's for someone who thinks the obvious when someone says 'number'.

jpallen··on Happy Anti-Valentine's Day from Grouper
I like the concept and it got me interested in joining, but I was really put off by the sexism as I scrolled down. Almost everything is perfect, except for the few columns in your table that just scream "we've stereotyped everyone into really unimaginative roles".

Why not replace "all guys, and especially single women" with something more neutral like "people who don't like pink". I'm a guy and I don't hate valentines day.

jpallen··on Infinity is not a number
I don't think the article is aimed anyone who knows what an ordinal number is.
jpallen··on The price of a messy codebase: No LaTeX on the iPad
At ScribTeX we regularly get comments from users about how fast our compiling is. Even with the round trip to the server, the PDF appears in the user's browser quicker than if they compile it locally. This isn't due to anything especially clever that we've done but instead stands as a testament to data speeds, and the performance of the Linodes that we compile on. Particularly with Linode, I think the high disk IO performance makes for a very quick LaTeX compile.
jpallen··on Study HN: Linear Algebra 1, fortnight 2
I just had a look at the first thread and this looks like an excellent project. I won't be following along since I did maths as an undergrad and am now doing a phd, but I'd be happy to lend an experienced hand if anyone is having trouble. I'm not sure what is the best format to offer my help, so please reply if I can be of assistance in some way. I've done some tutoring of similar subjects before.
jpallen··on Ask HN: Can I help you be more awesome today? (No strings.)
Thanks for the feedback, it's really useful. I think you're right that a big problem is the lack of compatibility between word and latex, particularly since few people know both well. We've been concentrating on just the latex side since it's what we know, but taking a wider view might help.

We're currently adding in templates and formats, as well as looking at how we can better integrate with other referencing tools.

Collaborative editing is not real time but warns and merges if you are editing a document at the same. I think the ease of use for collaborating is our main selling point at the moment, but I agree our pricing needs refinement. First we need to fix our focus and main features.

Thank for your time in replying.

jpallen··on Ask HN: Can I help you be more awesome today? (No strings.)
Thanks, any feedback is really helpful, but don't worry if it's not an area you're familiar with.
jpallen··on Ask HN: Can I help you be more awesome today? (No strings.)
Thanks, I didn't think the actual site was too important and didn't want to appear spammy. But you're right, actually what ScribTeX is can only help matters!
jpallen··on Ask HN: Can I help you be more awesome today? (No strings.)
I'm trying to expand my online LaTeX editor into a viable business. My cofounder and I think there is potential for a great enterprise product where we could really improve the workflow in publishing houses and teaching, where LaTeX is used a lot. We've had enough feedback from individual users to think this, but we're struggling to get our foot in the door with the people we'd need to talk to about selling to them on a larger scale.

Basically we're new to this game and are struggling to get started. I don't know if you or anyone can help, but it's worth a shot. Thank you very much for lending your time like this, I hope the karma comes back to you!

jpallen··on How did academic publishers acquire these feudal powers?
I didn't have a specific system in mind for 'open peer review'. I just meant that while peer review only happens through journals at the moment it doesn't depend on them in any fundamental way. The reputation attached to them does.
jpallen··on How did academic publishers acquire these feudal powers?
I recently published in JHEP and when I tried to view my paper outside the university I was greeted with a pay wall :(. They wanted the going rate of about £30.

All of my research to date and the work in that paper has been funded by the UK taxpayer. There is something very wrong with that.

jpallen··on How did academic publishers acquire these feudal powers?
> The reason is that the big publishers have rounded up the journals with the highest academic impact factors, in which publication is essential for researchers trying to secure grants and advance their careers(16). You can start reading open-access journals, but you can’t stop reading the closed ones.

This is the only problem standing in the way of open access publishing. While the arXiv doesn't offer peer review and so doesn't negate the need for journals, the ecosystem would quickly adapt to open peer review. Unfortunately the implied reputation of being published in certain journals is still something that's too ingrained in academia. It's getting better slowly but it's going to take at least a generation to go away at the current rate.

← PreviousPage 4 of 5Next →