Locke
In this case, someone made a joke about women not liking to reveal their true age as they get older. It's a boring cliched joke. Something I've heard too many times in my life (and, most often from women). Is it sexist? I can see the argument. Is it professional to make such a joke on a ruby mailing list? I don't know, perhaps not.
Does it warrant responses like "Knock that bullshit off." or "you made an ass of yourself"... I don't know. Seems a little ironic to use unprofessional language in this situation. Maybe even worse than the joke itself? I don't know.
Then, folks take the discussion to github and twitter (and, eventually reddit and hn). Presenting only their verdict: "A newer member made a sexist joke, and was called out on it as being inappropriate." No links to the joke. No evidence that the joke is sexist. This makes it so much easier to imagine something really bad. No, we just get a verdict and we should all rise up against this sexism (which absolutely is bad, of course). Let's get our pitchforks. This amplifies one side of the argument and shuts down any useful conversation. Worse, it's used to rush through a CoC change without allowing any thoughtful discussion.
Is this reaction proportional to the original joke? Is the reaction itself exemplar of how we would like to conduct ourselves?
This may be true in the US, but in Greenland it seems like suicide rates have changed in response to changing ways of life:
http://www.npr.org/sections/goatsandsoda/2016/04/21/47484792...
Thanks for the follow-up. I appreciate it and I'm glad that my feedback might help improve your hiring process.
I don't mind your comment, and I hope you understand that there are no hard feelings at all. I hope you understand that my goal is not to damage Gitlab or yourself in any way.
I would like to say, I've been impressed by the openness and transparency at Gitlab, and I think this goes hand-in-hand with a desire to do the "right thing" in every way.
It is with that in mind that I posted my experience, because I think there are problems with the way our industry approaches hiring (as seen in our poor diversity numbers, age discrimination, etc) and more openness can only help. I wish more people shared their experiences, and I wish more companies were open to refining their hiring processes.
Went through several interviews with them, including their technical interview and had a blast. Met some nice folks and was having a lot of fun interviewing with them.
Was told, "I am confident that you would be a great addition to the team."
Then I hit a wall when Sid (sytse here on HN) was unavailable to perform the next interview for an indeterminate amount of time. Ended up waiting 2 weeks between interviews.
During that time I received an offer from another company and, asked if they could move things along or, perhaps, provide some timeline. At that time they made an informal offer via email.
Then, there were two problems as I see it:
1. The offer was significantly less than the floor I had given during the screening interview when asked about salary expectations. During that interview, the interviewer gave no indication that my expectations were out of line with Gitlab's salaries. [1]
2. When I finally interviewed with Sid, there was no mention or acknowledgement that an offer had been made.
My interview with Sid was tough, and definitely not what I was expecting after my earlier success interviewing with the company. Ultimately, he decided not to continue with my candidacy. I don't want to get into a "he said, she said" thing here, so I'll leave it at that.
I hope this post does not come off as "sour grapes". My objective is not to trash anyone at Gitlab, there are a lot of great folks over there. I think there were some surprises in their process and I would have liked to have known these things upfront before I contacted them.
[1] While I was still interviewing they edited their handbook to indicate that "Many of our team members who have joined have taken a decrease in compensation." https://about.gitlab.com/handbook/people-operations/#compens...
class User < JSON::Base
Where by extending JSON::Base, I now have access to helpful methods like to_json?Instead we have JSON.dump(user). And, if I need to customize the way the User json is written, I can opt in by defining a method. Thanks to Ruby's open classes, I can make the definition of such methods optional, suppose a separate file includes something like:
class User
def as_json
end
end
Requiring this file will bring in the extra json behavior without littering my actual user.rb with the details of how a User is written to json. Whether this is worthwhile or a bad idea is debatable, but I like that it is possible.Now imagine if persisting a model to the database were similarly flexible? What if we could do this?
ActiveRecord.save(user)
Maybe it would be a good thing, maybe not.As it is, I've come to accept the ActiveRecord approach, but when I create a model that extends ActiveRecord::Base, I think of it, not as a User, but an ActiveRecordPersistedUser. Where it makes sense, I separate my BusinessModel's from my ActiveRecordPersistedBusinessModel's for clarity.
class User < ActiveRecord::Base
Why should my `User` extend from `ActiveRecord::Base`? Is a User of my app also an ActiveRecord::Base? What is an ActiveRecord::Base anyway?So, when DataMapper came along and favored composition over inheritance I was sold.
However, my experience with DataMapper was that it didn't have the stability of ActiveRecord, nor did it reach feature parity.
And, then Rails killed Merb. At the time I thought it was a tragedy. The competition Merb provided did improve Rails, it would have been nice if that competition had been longer term, though. On the flipside, I wonder if there would have been enough community to support two large Ruby web frameworks.
In the end I made peace with Rails and ActiveRecord (and, believe it or not, even ActiveSupport!). I don't have great love for Rails, but it is a powerful tool, so I accept it for what it is.
That said, I think the author's criticisms are well stated and hopefully there will be some influence on the future direction of Rails, etc, and the way devs approach Rails.
The trick is no one actually wants a dollar coin.
The fact that these meta discussions predictably offer a wide array of solutions -- many of which are at odds with one another -- leads me to believe there isn't a solution. In fact, it seems like many of these discussions devolve into:
1. I have an idea!
2. Yeah, but that won't work because...
3. Oh, in that case we could just...
4. But, then...
The "quality" of HN and it's community is a function of many variables. It's hard, maybe impossible, to tweak the site and expect predictable results (and, there are always unintended consequences).It doesn't help that the feedback cycle is so long.
Let's have a hypothetical. Suppose, we decided the problem was that HN had become to design-centric. We want fewer designers and more programmers. So, let's make HN ugly. Really ugly. Then all the designers will leave and we'll be left with programmers. How long after making the site ugly will we have to wait to see the results? What if the designers retaliate by making a client-side css hack to make HN look even better? Do we end up with more or fewer designers? Did we do damage to the population of programmers who also happen to be designers? And, how do we account for outside influences? What if a prominent designer linked to HN the week of our changes and our tweak is overwhelmed by the flood of incoming designers?
I hope I'm wrong. I've been here 1467 (!) days, I'd like to stay a long while longer.
Here's an eye opener: You're a mid-level employee at a medium-sized company and you realize you're as wealthy as your spend-thrift CEO who is making >10x as much as you are.
These things are not mutually exclusive. If you take an all or nothing view, you're being naive. You can have some percentage of a solid relationship and career (whether a startup or something else).
Life is messy. You'll have to decide if your relationship allows you enough time to meet your personal goals and if that even matters. Only you can make this determination.
As for me, I've been with my wife for over 10 years (most of it dating), and... honestly? I think this relationship has had an adverse effect on my goals. I, kind of, think I'd be much more rich and successful had I never met my wife. On the other hand, when she's gone for a weekend, I always think, "I'll get so much done when she's gone"... but, I often end up mired in the "blahs" until she returns. And, honestly...
I think I've slowed down a lot as I've gotten older. I think back on things I accomplished in 3 week coding marathons when I was in college and, while I think I'm a better programmer now... well, I don't repeat those accomplishments. I get more done in less time, but I'm not able to sustain a marathon for multiple weeks. You may be different, or that might be part of getting older.
Ultimately, I've been moderately successful (my business represents the bulk of our income), but not wildly successful. I've come to think less is more... and, I'm happy with that. I doubt I'd be happier single with a larger business and more money.
But that's me...
The phrases themselves are often untrue.
For example, if I say "It’s not about the money, but...", what follows is not necessarily a lie. What the article claims is that I'm about to make an argument based on money and that I'm trying to preemptively deflect any counter-argument. Therefore, the phrase "It’s not about the money, but..." may, strictly speaking, become untrue. But that doesn't necessarily have any bearing on what follows.
- Create a programming language
- Restore an old broken down pinball machine
- Build a mame arcade cabinet
- Write some Interactive Fiction
- Learn to make awesome programmatic artwork with something like Processing or Nodebox
- Create a roguelike
I hope this is mainly internet posturing and bravado.
I'm not sure every child has the perspective to recognize hyperbole. There are times when violence may be necessary, but that doesn't make it any less horrible, whether justified or not.
These are children and their judgement is not always the best. Do you really want to risk that your child kills another child by accident while following your advice?
Will your child know how far is far enough? Is there a chance he or she might over-react to a situation that is not truly threatening?
I have chromium occupying an entire page of my virtual desktop with no window decorations. On another I have firefox (mostly for development with firebug). On the others I have 2 xterms side by side running screen.
For every project, I create a new screen config which defaults to opening / launching whatever I need for that project. For example, a rails project might have several zsh's already cd'ed to the models, views, and controllers directories (and probably the public javascripts and stylesheets directories). I'll also have script/console and either mysql or psql running.
In fvwm, I have a menu with an entry for each project that launches xterm and starts / reconnects to the right gnu screen session.
I have a bunch of keyboard shortcuts for navigating my virtual desktops and moving xterms around, etc. I only really use the mouse when I'm working with one of the browsers. Another reason I'd probably be better off switching to a tiling manager.
The nice thing about fvwm is that you can arrive at something that's highly personalized. I'm really efficient / comfortable with fvwm now, but it took a long time to get here. I'm not sure I'd start over with it.
I'm on a 3 or 4 year old thinkpad (love the keyboard!) running gentoo linux. I use fvwm, xterm, gnu screen, chromium, firefox, ruby, rails, postgresql, mysql... Blah, blah, blah depending on the project.
But, please, don't copy me unless you want to be sofour years ago! : )
But, I'm afraid, the only real long-term solution to a security problem is better security. This isn't a people problem, it's a technical problem and will require a technical solution.
If I had a nickel for every time I've done "select all" when I wanted to quickly switch back to the last active tab.
Evaluating Game Mechanics For Depth
Or, how does the picture look for games? Especially now that game developers can embrace a virtual currency / goods business model. They can get all the distribution benefits of being a free app while still making (potentially much more) money over a longer period of time. Or, do these apps not count as apps because they're too close to the web-based games that are doing so well on Facebook?
If you're a developer, looking at industry-wide numbers is good, but it's better to research the apps in the niche you plan on entering.
You can give away your own currency to lure back wayward players. You can use your currency to smooth over customer support problems (lost some of your inventory due to a bug? Sorry, have 1000 gold). You can run contests where the grand prize is $100 of virtual currency. And, so on.
You won't be able to give away or otherwise manipulate Facebook Credits in the same way you can your own currency.
Of course, you keep your own virtual currency and accept Facebook Credits. You just need to ask your players to exchange real money for Facebook Credits, and then exchange Facebook Credits for your currency, and finally exchange your currency for that neat power-up they wanted. That won't confuse anyone.
For example, "#8 seeds often upset higher ranked teams. In the four match-ups against #2 teams, #8 teams won twice. They have also beaten #4 and #5 seeds more often than they lost to them."
For an 8 to play a 2 (or 4, or 5) they'd have to have already beaten a 1. That's a pretty good 8. The typical 8 will have already lost to a 9 or 1.
Personally, I love Ken Pomeroy's rankings / predictive model (kenpom.com). It breaks games down into possessions and then builds a statistical model of each team from that. The predictions seem pretty accurate by the time February rolls around.
Of course, the biggest caveat of this kind of model is that it doesn't take into account extraordinary events. For example, a player gets injured or comes back from a suspension.
In that case, I don't think not sharing is an intentional choice to withhold or hoard information. The individual simply didn't realize there was any demand for that information. Or, perhaps there wasn't enough value in that information because anyone with an interest would make the same discovery on their own easily enough.
It doesn't mean that the same individual wouldn't share that info with someone who asked directly about the subject.
def ex1
a = 5
if a
puts "a: #{a}"
end
end
def ex2
if a = 5
puts "a: #{a}"
end
end
def ex3
puts "a: #{a}" if a = 5
end
If we start with the code in ex1 and decide to shorten it, ex2 is okay (although some people don't care for assignment in a conditional because it could be confused for a typo). But, ex3 will raise an exception that 'a' has not been defined.I've just internalized using the longer form when using assignment in a conditional.
And, here's one that uses svg instead of canvas:
http://www.amberfrog.com/logo/
I think it'd be a lot of fun to do webapp for creating and sharing artwork made in Logo -- with a bunch of github-like social features. Or, maybe Facebook integration?
"13 months and 11k lines of code later, i’ve finished up the choose your own adventure project"
From: http://etc.samizdat.cc/2009/11/the-rules-of-the-game
Yes, this is an impressive effort.
Reverse Geocache Puzzle
Either I didn't express that very well, or it's just not that insightful.