HNHacker News
TopNewBestAskShowJobs

epenn

2,982 karma · joined March 2, 2011

I think therefore I engineer.
submissionscomments
epenn··on Two Generals' Problem
For a little bit more, here [1] is a link to the lecture notes from the Distributed Systems course I took that covers this. Also covers the related Byzantine Generals problem. If you find this interesting I'd recommend taking a look through the rest of the course's lecture notes too. They're very descriptive and written really well.

[1] http://www.andrew.cmu.edu/course/15-440-f13/index/lecture_in...

epenn··on Eterni.me - Become Virtually Immortal
I think immortality of any kind is a poor description for what this actually offers. This seems like a chatbot with a deeper personal context to work with, which is cool and interesting in and of itself, but not something that would allow for that grandiose of a description.

A project claiming to offer digital immortality I think would need to offer at least one of two particular features to live up to that description. (A) It would have to directly augment the human body to extend its lifetime indefinitely or (B) it would need to emulate the target human in such a way as to provide extensional equality. Extensional equality [1] in this context I think would mean that for any given situation, the human and the emulator would need to behave equivalently. This automatically entails that it would need to have the same thoughts, contain the same memories, etc to provide the necessary context for its decision-making.

Neither (A) or (B) consider any ethical implications of course. I'm just musing off the top of my head. My point is that although I think eterni.me could still pan out to be a cool project, it falls short of achieving digital immortality.

[1] http://en.wikipedia.org/wiki/Extensionality

epenn··on Light Table is now open source
I love Light Table. I just wish there was a text-only mode/version too (even if it's somewhat limited) that I could use when I'm doing development via ssh on other machines, which accounts for a large portion of what I do. If that pops up sometime it would likely become my primary editor pretty quickly.
epenn··on Soylent Micronutrient Breakdown
That wave of novelty could just as easily gain them a critical mass of customers as well. Ultimately it will depend on their satisfaction/dissatisfaction with the product.
epenn··on A history of the Amiga, part 1: Genesis
It was the summer of 1996. I was 12 years old and really into exploring older computers, especially the Commodore brand, after my grandmother gave me an old Commodore Plus/4 that she had won as a door prize somewhere many years earlier and never used. I was also able to tinker with others that belonged to my friends or that I found in thrift stores (PET, 64, 128, etc). Unfortunately everything Amiga had eluded me thus far.

I somewhat got to know the Amiga through the UAE Amiga emulator which at the time was only in a semi-working state at best. My 66mhz 486DX Packard Bell didn't exactly do the greatest job of running it at full speed or really even usable speed. But it was still enough that I became enamored with the look-and-feel (and ARexx to some degree) and knew I needed to get my hands on a real one someday. It was the holy grail of my ancient computer quest.

Then one day that fateful summer it finally happened. I was in the Montgomery Ward department store in Indiana, PA with my mom. I was poking through the electronics section and saw a very large stack of reduced-price VCR boxes on one of the shelves out on the open floor. I was looking over the stack from top to bottom when I noticed there was another box stuck underneath the lowest ledge of the shelf. I pulled it out and wiped off the unfathomably thick layer of dust from the box to reveal that it was an unopened Amiga 500, probably untouched and forgotten for many years. THE DAY WAS MINE.

I was never the type of kid to blow my allowance money on random things. I saved it all with my eyes on bigger prizes and I had just found the ultimate prize. The sticker price was $200 and I had roughly that amount saved up at the time. I asked my mom if I could use my allowance money to buy it. Naturally an argument ensued but ultimately I won and was allowed to make the purchase. When I took it up to the counter the lady remarked that she hadn't seen one of those in several years and didn't realize they still sold them. She rung it up and it was still apparently in their inventory system, so the Amiga was mine.

Emulators be damned, I finally got to explore it in real life. It was every bit as magical as I had hoped. I couldn't help but make comparisons to my aforementioned Packard Bell. 4096 colors vs a meager 256. Deluxe Paint vs MS Paint. An operating system with true preemptive multitasking and a very responsive GUI vs DOS 6 and Windows 3.1. Turrican vs. anything that wasn't Turrican. There was no going back. I had left Plato's Cave and seen the light. I didn't ever want to be away from the light again.

Unfortunately we all know how the allegory of the cave ends. No man can give light to the blind. My mom decided that I had spent way too much of my saved allowance on the Amiga, especially since I already owned an old but still working Packard Bell. Then just shy of a month later, while still within the timeframe of the return policy, she forced me to pack it all up and take it back. Just as quickly as I had found the holy grail and drank sweet Amiga-brand kool aid from it, it was gone.

I guess the main point of my post is that the Amiga, even in that short period of time, had a fairly profound effect on me when I was little. At least enough for me to write this long, rosy-eyed, nostalgic comment. It was also partially the impetus for me wanting to study computer science and become a software engineer. My thought being that if someone else can create something so cool, maybe I can too if I just learn how. (Also, secondarily, wtf mom? Where the hell else am I going to get a new-in-the-box Amiga 500 now?)

epenn··on Debugging Python Like a Boss
Normally I wouldn't comment on someone downvoting me. However I'm going to presume there is a very high probability that it's due to my analogy with the goto statement, something which most programmers seem to view as inherently evil thanks either to received dogma or to a misunderstanding of the context of Dijkstra's original paper on the subject. The point of my post was that there is a time and place for everything -- print statements in the context of this thread -- and I used gotos as an additional analogy/example. So in case anyone sees this and wonders why I would actually consciously choose to use a goto statement, please see the following goto entry in CERT's Secure Coding Standard [1] for a concise but thorough explanation.

https://www.securecoding.cert.org/confluence/display/seccode...

epenn··on Debugging Python Like a Boss
To expand on your point, I look at print statements in the same light as goto statements. There is a time and place for both, just make sure it's the best tool to accomplish your goal. In C I often use gotos for error handling, but I wouldn't use them in situations where higher-level branching constructs are more suitable. Similarly, sometimes you don't need the features of a heavy-weight debugger but just want to check some output. Print statements are great for this.
epenn··on Fundamental Qualities of Good Programmers
Having a good mental model of your programming environment

This also does a lot to cut down on cargo cult programming [1] which in my experience is much more prevalent than I would like. Having a solid understanding of the environment you're working with makes it much harder to blindly follow the examples of others, because it's much easier to determine whether or not all/part/any of their example applies to your situation.

[1] http://en.wikipedia.org/wiki/Cargo_cult_programming

epenn··on Elite Grads In Business Flock To Tech
A person can have multiple interests.
epenn··on ‘Sitting is the new smoking’
It can be at first, but it just takes some conditioning. The more you do it, the more your muscles will adjust to it. An added benefit is that you likely be less tired standing in line too.
epenn··on My Friends and I Bought an Island
Sometimes it's just a matter of thinking outside the box and doing a little research, rather than assuming it's impossible or impractical.

Good advice in general too, not just when buying an island.

epenn··on Cannot Measure Productivity
Can you elaborate on why you believe this to be the case? Saying that a scientist is one who does science seems like a truism bordering on being tautological. I'm curious why you disagree.
epenn··on Think Distributed: A Distributed Systems Podcast
Liking this so far. Can anyone recommend other good Computer Science podcasts as well?
epenn··on Scientists reveal bionic eye prototype
I'll save my full accolades for when I hear about the results of the first human trial, but I think this is an amazing idea and I really hope it works how they expect. More importantly, we are now one step closer to turning me into Robocop.
epenn··on Facebook paid $4.5K for disclosure of my user account exploit
white-hat status just means you don't do any harm

This definition falls short. For example, the hacker who spends time searching for a vulnerability with the intent to do harm, but fails to find one. The hacker has done no harm, therefore by your definition he or she is a white hat despite the fact that they would do harm given the opportunity. For that reason, a person's motivations need to be taken into account in order to provide a proper assessment.

epenn··on Facebook paid $4.5K for disclosure of my user account exploit
I should have said "principally motivated" instead of just "motivated" in my original statement about white hats. I'll add that as a correction to the bottom of my original post. The main motivation of a white hat can't be money, but sure money can come into play secondarily. To further demonstrate:

As a hypothetical example, let's say there are two parties in which it would be equally responsible to disclose a vulnerability to (perhaps they jointly developed the product or service) and as a condition of payment both separately require that the vulnerability not be disclosed elsewhere, theoretically including the other party (hopefully that wouldn't be the case in reality, but again, this is hypothetical). Now let's say party one offers $4,500 and party two offers $20,000. The choice of either party is ethical on the grounds that both have been defined as equally responsible recipients of the disclosure. Therefore a determining factor is still needed, in which case, the amount of money offered is a perfectly reasonable criterion.

So in short, I agree with you on that. I may not have been completely clear in my original post.

epenn··on Facebook paid $4.5K for disclosure of my user account exploit
He has no duty.

If he is going to use the white hat label, which he does, then he does in fact have that duty. If he chooses to hide the vulnerability or sell the knowledge and/or exploit to another party, that's his choice of course, but then he cannot use the white hat label.

The 4.5K is representative of how much they care about customer privacy. That's what, I think, his only point is.

I understand that's the point he's trying to make, but I respectfully disagree since as previously stated I view the reward as a gesture of good will and not as a payment for services rendered.

epenn··on Facebook paid $4.5K for disclosure of my user account exploit
I never said they weren't allowed to care about money in general; only that it shouldn't be their primary motivation for disclosing a security vulnerability. Even if it is, I'm not saying that makes them a bad person either; only that they can't use the white hat label as the author did in my second quote.
epenn··on Facebook paid $4.5K for disclosure of my user account exploit
...intrigued by the bold sentence on Facebook's security researcher page "There is no maximum reward" I went out and started giving Facebook's code another peak.

I'm not surprised that you feel this wasn't enough since it appears the reward is your motivation for finding an exploit in the first place. The reward shouldn't be viewed as payment for services rendered, but rather as a gesture of good will for performing your duty of responsible disclosure.

Without the disclosure of whitehat hackers, like I did, these exploits can also become available to dubious parties who could wreak (digital) havoc.

If you are truly a white hat then you aren't motivated by money. You are principally motivated by wanting to make the world a better, safer place. Since you're well-versed in computer security, that motivation will propel you to apply that knowledge to the web (or really to any vulnerability) when the opportunity presents itself.

If the reward is your motivation then at best this makes you a grey hat. You did the right thing, but for the wrong reasons. Note that for the following I'm not saying you personally will necessarily do this; but it would be easy from that position to start treating the group of people who you're willing to disclose a vulnerability to as a marketplace. Facebook will pay $4,500? Fair enough. L33tBotNetHaxz0r will pay $20,000? Done.

If you're someone who possesses the skill to discover security vulnerabilities, I think it's important to think through what your real motivations are. Is it for the rush capturing the flag? Is it for the money? Is it to help people? Your actions can affect many, so act wisely.

Edit: I should clarify that I mean that money can't be the principal motivation for a white hat hacker. I believe it's fine as a secondary motivation. I give an example in another comment below.

epenn··on Top 10 popular programming languages and their history
Ada Lovelace credited with first computer programming language; wrote an algorithm for the Analytical Engine (early mechanical computer)

This is often credited as the first computer program ever written and by extension she is often credited as the first computer programmer. Those are great things and accurate as far as I know, but I think saying that she created the first programming language is a bit disingenuous.

epenn··on Ask HN: Is an Autonomy Fund a viable business model?
I would love to see something like this. I think this shouldn't just be limited to one city or industry though. Assuming that this is successfully attempted in one city, it might be a good idea to try it in other cities while focusing on various industries that speak to the existing core competencies of that city. So for example, a Detroit version of the Autonomy Fund could focus on funding autonomous individuals within the automotive industry.

As for choice of initial tech hub, my vote goes to Pittsburgh. The population size is [roughly] what you're going for at ~300K. The housing market here is great. It already has a tech-friendly local government. Plus Carnegie Mellon is here, ready to feed top young CS talent directly into the autonomous positions.

For what it's worth Pittsburgh was also voted as the most livable city in the U.S. a couple years ago [1]. I might be biased since I live/work in Pittsburgh and take CS classes at CMU, but by that same token it also means I'm speaking with first-hand experience.

[1] http://www.marketplace.org/topics/life/news-brief/its-offici...

epenn··on Show HN: Napster.fm, Napster reimagined for the modern Web
Ryan, I would strongly encourage you to rename this. For obvious reasons.
epenn··on BioBlender: Blender for Biologists
This looks interesting but doesn't appear to have been updated in a year and a half unfortunately.
epenn··on “The AT&T Hacker” Sentenced To 41 Months In Prison
Whether they've stated it publicly or not, I would imagine AT&T's main contention with weev is that he released the information publicly (to Gawker) without attempting to disclose the information to them first (please correct me if he did and I've overlooked that). Nonetheless, if he were to have gone to AT&T first I don't think there's anything that could have stopped AT&T from accusing him of hacking and pressing charges anyway since that wouldn't have changed the way he went about discovering the issue. That's scary. Even this particular case aside, how is a person supposed to ethically disclose an exploit to an organization without fear of prosecution?
epenn··on When Google kills Gmail
I’m going to start using my own domain address for email 100% now. I’ll still push it through Google Apps premium because I love using Gmail. But if Google ever kills off Gmail then I still have full control of my email address.

This is good advice in general, regardless of which email service you use. Even further, it's good advice for any service you use that has a public component. I love tumblr, but if they were to go out of business tomorrow then foobar.tumblr.com isn't going to mean much. If you're using it as the backend for a blog at your own URL though, you can switch services without requiring your readers to change their habits. Whether it's email, blogging, or anything else, I think maintaining control of the entry point(s) for any publicly facing services you use is really important.

epenn··on Chief Architect of Google+ requests clarification on Google Reader
It's been quite a while since I've used Google Reader since my reliance on RSS in general has decreased over the last couple years. However, for anyone who still uses Reader on a regular basis who might be able to comment on this, I think Yonatan might be missing the point. It seems he's looking to incorporate individual features/aspects of Reader into G+ in order to woo newly disenfranchised users back into the Google ecosystem. The problem is that I think this is a case where the whole is greater than the sum of its parts.

Even if he incorporated a large subset of Reader features into G+, I think at best that would likely only capture the wants of a small fraction of the Reader user base given that both products have inherently different goals. G+ is, depending on how you look at it, either a full-fledged social network or a central identity service connecting various components of the Google ecosystem. Reader is a dedicated, decentralized (in the sense that the feeds themselves come from outside Google) RSS consumer. Both products seemingly have different philosophical approaches to the web (walled-garden vs. generally open) and I'm not sure that can be reconciled so easily.

These musings are off the top of my head though, so I'd love to hear thoughts from any avid Reader users and/or G+ engineers/users who agree/disagree.

epenn··on O’Reilly Media Has Lost Its Soul
You make an excellent point that I fully agree with. Different companies have different target audiences and will therefore provide value in different ways. The value that O'Reilly can provide many other authors is likely not the kind that the OP needs given the amount of control he likes to maintain; and there's nothing wrong with that.

With that said though, it's very important that you fulfill your contractual obligations, which if I take the article at face value it appears O'Reilly did not (although I don't know their side of the story of course). If I enter into a contract filled with a long list of technical details, but include a clause that demands a bowl of M&Ms with all brown ones removed, then on pain of legal action there better be a bowl of M&Ms with all brown ones removed [1]. The author no doubt had specific reasons for his requests that he felt were important to the success of his book. During negotiations there is nothing requiring O'Reilly or any other company to give someone any special considerations. They could just as easily walk away. However once both parties sign a contract agreeing to the terms, both parties are legally required to provide what they agreed to. According to the post that did not happen in this case.

[1] http://www.snopes.com/music/artists/vanhalen.asp - According to David Lee Roth the reason for the M&M clause effectively boils down to he who doesn't pay attention to the small details probably won't pay attention to the truly important ones either; like making sure your arena floor can actually support the weight of the concert equipment (whoops).

epenn··on How to Escape from {{ #PROGRAMMING_LANGUAGE }}
While I won't say this is bad advice, I also don't think it's the best way to truly free yourself in the manner I think the OP is getting at. In the long run you'll be far better off learning and cultivating rock solid CS fundamentals rather than just hopping from one framework to the next hoping to glean a little more from each. Having an in-depth understanding of the types of data structures and algorithms that go into developing $new_hotness will allow you to pick up different languages/frameworks/etc significantly faster than just learning $new_hotness on the surface level.

Take parametric polymorphism [1] as a random example; i.e. what's called generics in Java, templates in C++, etc. You might know how to use it in a particular language and realize it provides some benefit. But if you truly understand the underlying concept then you can quickly recognize it and/or know to look for it in any language you pick up, whether it's Java, OCaml, Visual Prolog, etc. Note each of those languages are in three totally separate paradigms (object oriented, functional, & logic) and yet all of them still make use of the same underlying idea to achieve a particular goal (in this case, a form of type-safe expressivity). If you have a good understanding of $random_fundamental_concept then all you would need is to take a couple minutes to learn its syntax in your new language of choice and be on your way. I chose that example because it was the first that popped into my head, but in reality it goes for just about anything.

In short, with a good understanding of the fundamentals, you can make the time it takes to learn something new that will invariably be based on them significantly shorter.

[1] http://en.wikipedia.org/wiki/Parametric_polymorphism

epenn··on Where are the “big problem” jobs?
There are corporate exceptions. For example, Google seems to be working on a few big problems, such as the self-driving car and Google Glass.

I'm not entirely sure I would classify Google Glass as a "big problem." Self-driving cars can address driver safety, fuel efficiency and route efficiency, among other things and therefore certainly rank up there. Google Glass, although I like the concept and very well might even purchase a unit when they become widely available, seems to address the same areas already covered by smart phones, just with a new interface. I think there are huge strides that can be made in the area of pervasive computing, but I'm not sure Google Glass is what will propel that.

(I would love to be proved wrong though.)

epenn··on Teaching Distributed Systems in Go
I've heard good things so far. I know a couple groups using it and their impressions pretty much echo what you said. They felt a bit behind during project 1 while they tried to learn the new language, but are starting to feel more comfortable with it now (we're a week into project 2 currently).
← PreviousPage 2 of 5Next →