Hacker Newsnew | past | comments | ask | show | jobs | submit | robee's commentslogin

I'm curious to see how smooth the interaction is with this product. It seems it could be awkward to ask a stranger who doesn't speak your language to look at your iPhone and click buttons to communicate with you.

On the other hand, if they can make it feel "magical", it will be an impressive achievement.


I often got lost in Japan, and ask random strangers to show me where to go on a gps map, or show an address in an email or have them look at instructions etc. It might not work in other countries, but in japan it's very smooth.

Apart form that, I think the presence of the Yes/No buttons is very thoughtful. You don't want a stranger to have to think about the kind of answer you're asking for.


This is how I interpret it too. It's self-deprecating and ironic. It is a complex reference though, so its not surprising that some people misinterpret it.


I used to agree with you, and then I realized that when it comes to offense, there's no such thing as a misinterpretation. If somebody's offended by something, that's not your call to make. Certainly this can be reduced to absurdity (I'm offended you would make this argument about offensiveness!) but I don't think Tess & co are trying to be facetious here.

FWIW, I think brogramming is self-deprecating and ironic too, and not the least bit offensive. But Tess doesn't - and I respect that.

EDIT: You're not obligated to stop doing something simply because somebody thinks it's offensive. But it's kind of the polite thing to do.


The question is, what responsibility does one have in response to another's offense? I don't think in general one has a responsibility to alter their behavior. Certain situations do entail responsibility onto the offender, any professional setting for example. But when it comes to behavior in a private setting (including public places on your private time) then you need more than just "I'm offended" to claim someone should alter their behavior.


I don't think there's a formal obligation except to the extent that one has common goals.

Here, my common goal with the OP is that everybody who wants to program for a living feel welcome to do so. As a well-off white male, there's very little people can say to offend me. (Which reminds me of Louis CK's great take on this: http://www.youtube.com/watch?v=TG4f9zR5yzY ) But that's not true for everybody, and I'd like to make sure that everybody feels welcome and safe in my office and in my field.

So whether or not I'm personally bothered by the brogrammer stuff, I think it's reasonable to honor the suggestion that it not be used in situations, like recruiting, that will make some people feel uncomfortable.


That's a very good point about common goals. That's one thing almost all of us in this field can agree on. Once we can start there, it does follow that one's behavior should be as inclusive as possible.

There's also another dimension here: describing yourself as a brogrammer vs creating a brogrammer atmosphere. I don't think the term brogrammer itself is offensive such that it entails purging it from our lingo. It's when you create exclusionary groups with the term that creates the problem. Describing oneself as a brogrammer shouldn't be seen as offensive, as it's simply describing a mentality you have (perhaps as a joke, or maybe even seriously). So I disagree with the article that we should completely remove the term. It seems to mirror the effort I've seen talked about to make CS less "nerdy" to appeal to a wider audience (as if removing star wars posters from the CS lounge will attract more students). But using the term as a recruiting tool or to create a meetup centered around "brogrammer" themes shouldn't happen, as its needlessly exclusionary.


So I don't actually find brogramming particularly offensive. A little exclusive? Yeah. Inappropriate as a recruiting tool? Definitely.

But there are a large number of women who DO feel that it's offensive. And I cede to them. (Which is what Alexey's getting at.)


This is really awesome. I will use this a ton.


This a little unfinished but I have a python alternative to this that is Open Source. Velocity Bootstrap is the name, here is the location - https://github.com/robee/velocity-boilerplate-public


The HMAC library in Python still uses MD5 (http://docs.python.org/library/hmac.html) which is known to be exploitable with hash collisions. My opinion is that its not too difficult to roll a MAC setup using some SHA based hash.


The constructor for the Python HMAC library just defaults to MD5; you can pass any of the hashlib modules to it via the digestmod parameter. I don't know why it doesn't default to something more secure, but it's no challenge to do.


You guys are killing it! Making Waterloo proud.


Willet payments (http://getwillet.com ) is a similar product but has what I believe a better integration process and lower barriers to entry for both buyers and sellers. Willet supports in-app payments for one time purchases, subscriptions and repeatable purchases.

(Full disclosure: I am a co-founder of Willet )


Except your homepage says subscriptions are coming soon


Thanks for the heads up. Hot-fixing now.


Object Oriented programming exists because it is how humans conceptualize the world around them. Humans think in objects and actions on, in and between objects. OOP is a translation of natural thinking into systems and behaviors. Why is this a bad thing, especially for learning?

I guess my question is, why does OOP and an natural translation between the real world and the code world lead to this discussion and a certain level of condescension around utilizing the concepts of OOP?


The way humans conceptualize the world is miles away from how computers work. We (or at least I) conceptualize the world in terms of relationships between things we encounter, but the focus of OOP is designing individual classes and their hierarchies.

But note that, in everyday life, relationships exist mostly between objects that would have been instances of unrelated classes in OOP. For example, my SCREEN IS ON TOP of the TABLE; I (a human being) AM SITTING on a CHAIR; a CAR IS ON the ROAD; I am TYPING on THE KEYBOARD; the COFFEE MACHINE BOILS WATER.

We think in terms of bivalent (sometimes trivalent, as, for example in, "I gave you flowers") verbs where the verb is the action (relation) that operates on two objects to produce some result/action. Contrast that with OOP where you first have to find one object and tell it to perform some action on another object. The way of thinking is shifted from actions/verbs operating on nouns to nouns operating on nouns, which is highly unnatural for me. It is as if everything is being said in passive voice, e.g., "the keyboard is being typed on by me".


I'm not sure that's true. In OOP, a methods belong to objects. In a natural language, a verbs don't really belong to nouns. To me, the structure of OOP is very different to how people typically think.


Why don't you use Erlang? Its much closer to you definition of OOP.


Exactly.

And I think that Erlang is most closest to Kay's definition of OOP. (If we can drop "Everything is object")

Erlang processes are objects.


Take the example of Waterloo,

There is enough passion and help for startups like Communitech (http://communitech.ca) and Velocity (http://velocity.uwaterloo.ca), there just isn't enough people willing to take the financial risk that an early stage startup needs to expand. Inevitably, once a certain maturity is reached, startups move to the Valley.


The virtuous circle of startups that has occured in the Valley has yet to happen in Canada. The virtuous circle being Startups that make it big or have large exits, helping bring money to more up and coming startups. There are no Kevin Rose's that have startups ( arguably successful ) that are now funding other startups.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: