1. 5

    Advent of Code is happening, and I need to learn F# for a new job. So I’m having a lot of fun with that.

    adventofcode.com

    1. 5

      I use Visual Studio for C# development, finding all references of a variable is as simple as placing the cursor on the variable and pressing shift+f12. The language itself does not facilitate easy grepping, though Omnisharp does give similar functionality to other editors (including vim).

      1. 3

        The refactoring and find-all-references is what makes C# development for me. It’s something that becomes so second-nature after a while that it hurts when I have to use something else.

        1. 2

          Same here, but I do wish I could easily see all places where an identifier is on the left hand side of an assignment.

        1. 1

          I just finished Salman Rushdie’s Haroun and the Sea of Stories, and it was lovely. Read it out loud to your kids and lovers.

          1. 30

            My workplace acquired/hired a product and the sole developer a while back. His title is now Head of Development. He has worked on this product for some 15+ years. I was assigned to work on the same product. I quickly sold him on the idea of using the version control software we are using internally (he wasn’t using any).

            I tried my luck on selling CI while I was at it, but I didn’t have the same success. I deployed CI anyway. 2-3 days per week, the builds are red because he checks in something that doesn’t even compile. He doesn’t notice. The C# code base is a mess with home-grown crypto instead of HTTPS. User passwords are essentially stored in plain text. We have no automated tests. Up until last week we didn’t have a release plan. He just released whenever he deemed appropriate.

            We’re now working on mobile apps as well that will work alongside our webapp. Someone told him about JSON, which he liked over XML. I suggested we opt for a restful API, showing off various examples like api.github.com but he prefers inventing his own API (which we already know will be consumed by others at some point).

            Just today he asked me if I knew of a best practice around formatting dates. I pointed to ISO 8601. He didn’t want to deal with that sort of complex formatting.

            I’ve turned to meditating.

            1. 10
              1. 2

                This is a good idea for internal corporate remediation too.

              2. 7

                o7

                Godspeed.

                EDIT: You might point out RFC3339 as simpler than 8601, which it is–it leaves out the interval stuff.

                1. 4

                  RFC3339 FTW! Due to it’s regularity, it also happens to be the best fallback date format for all countries using the latin script.

                2. 2

                  I’m in a similar stressful situation, and I can’t stop recommending going to a non-gym like yoga class. Go to a real Yoga class, meditation will help your mind, but yoga does a full body-mind work.

                  1. 2

                    I was recently in a similar situation. I came to a behemoth, 12 separate, identical web applications that should have shared code but instead each one was kept separate and changes were diffed and merged by hand. No release plan. No best practices. Ugly code being spat out by WebForms. jQuery plugins and front-end frameworks littered all over the place. I just quit and found a better company to work for.

                  1. 3

                    I’ve been looking at the source code for Brogue, an excellent roguelike written in C. It’s all wacky bitwise comparisons and scattered case statements, which is fun to make sense of.

                    I’ve made some minor adjustments to make the game suit me more, and remembered an awful lot about C.

                    1. 14

                      I support the right of individuals to organize and do collective negotiation, bargaining, etc., but I completely oppose any kind of regulation or restriction of labor that involves the backing of government force/violence.

                      If I can’t provide more value than a guy who read half a book and now claims to know how to “build websites”, then I need to change careers anyway.

                      1. 8

                        If I can’t provide more value than a guy who read half a book and now claims to know how to “build websites”, then I need to change careers anyway.

                        Obviously, you can. The question is: can you out-compete him in a world where most of us work for people who have no ability to evaluate the quality of the work?

                        There’s a medical profession because most patients have no idea how the human body works. Doctors tend to get sued or not sued based on whether their patients like them, more than their expertise. Without a profession existing, the field would be full of quacks, because as a patient, most of us have no idea if our doctors know what they’re doing. Software is much the same. We do a job for people who are incapable of evaluating our work. Historically, that has worked against our advantage (politics, accrual of power to “scrum master” types who claim to be able to tame the beast) but we could change that.

                        This industry has salesmen with no qualifications inventing hare-brained methodologies (“Agile Scrum”) and making millions of dollars while ruining tech companies. This field is full of charlatans, and we need to find a way to drive them out.

                        1. 9

                          This field is full of charlatans, and we need to find a way to drive them out.

                          Fair enough. I’m not opposed to trying to get rid of outright charlatans; although we might differ in terms of who we consider to be charlatans. Having a real “profession” of software engineers would be fine, but, again, I won’t support anything that is government mandated. I’m also not a fan of arbitrary restrictions to entry to a field. Software development might not be the pure meritocracy that some claim, but I believe it is more meritocratic than many (most?) fields, and I’d hate to lose that. The poor kid growing up in rural, southeast NC, who taught himself to code from Herbert Schildt’s Teach Yourself C and who doesn’t have a college degree, should still be able to program if he has the chops to do it. Otherwise, we’re penalizing the poor.

                          1. 5

                            The poor kid growing up in rural, southeast NC, who taught himself to code from Herbert Schildt’s Teach Yourself C and who doesn’t have a college degree, should still be able to program if he has the chops to do it.

                            Absolutely. That’s why I want an exam system rather than mandatory educational degrees (which I’m adamantly against).

                            1. 5

                              An exam does not prove anything other than the fact that person who took it gained a particular mark.

                              Exam systems are part of the problem in my view of the current educational system. Where are the double blind trials to prove that an exam actually works?

                              1. 2

                                Excluding cheating, you can design an exam that verifies that a person has attained some body of knowledge. You can make false positives uncommon enough that unqualified people don’t progress in the career (unless they cheat).

                                Now, there’s the problem of false negatives: people who have the knowledge and deserve credit, but who don’t test well. That’s not common but it definitely exists. And this is something I take very seriously. (Although I’m great at tests, I’m sympathetic to people with disabilities because I have one myself.) I’d really want a project-based alternative to exist: if you can submit a software project that shows that you’ve mastered the field, you get full credit. It might be more expensive than the written exam, but I want it to be available.

                                1. 5

                                  Excluding cheating, you can design an exam that verifies that a person has attained some body of knowledge. You can make false positives uncommon enough that unqualified people don’t progress in the career (unless they cheat).

                                  Citation needed. Talk to e.g. the Stockfighter guy, or just anyone who has metrics for how effective people have been within a company. See if you can find any example of an exam that have a significant correlation with effectiveness in the position, in the software industry or even outside it.

                                  1. 1

                                    See if you can find any example of an exam that have a significant correlation with effectiveness in the position, in the software industry or even outside it.

                                    I agree that this is worth looking into, but this is a tall order, because the current configuration of the software industry is such that value and effectiveness don’t always correlate. I’ve been in companies where high-value people get to contribute a lot, and I’ve been in others where they’re sabotaged. Social factors (namely, the cultural and organizational failures that I’d like to put an end to) make it hard to get a clear read, if that makes any sense.

                                    1. 3

                                      If your definition of “value” does not translate into effectiveness, how can you possibly expect organizations to be willing to pay extra for it?

                                      1. 2

                                        If you’re willing to work with government, you can leave them without a choice.

                                        Of course, our industry is full of people who grew up after 1980, have only been exposed to aggressively pro-business politics even on the supposed left, and have accepted the “government is bad” ideology wholesale. (I consider myself moderately pro-business, but I reject the claim that government is usually bad.)

                                        More seriously, though, I think that there are lot of progressive businesspeople out there who understand that competent delivery is worth money. I mean, someone is getting those $300/hour consulting contracts that exist when getting the job done right is more important than getting it done cheaply. Those jobs might not be common, but they exist. The problem is that, right now, it’s done based on closed networks and reputations. An exam system could make that market fairer and more efficient.

                                        1. 3

                                          If you’re willing to work with government, you can leave them without a choice.

                                          Well sure, we could create a meaningless certification and then lobby the government to ensure that people with that certification get paid more. But that’s not something I would want to be part of. If I’m going to be arguing I should be paid more based on some qualification, I want that to be because the qualification demonstrates that I’m going to make more money for an employer.

                                          1. 1

                                            Isn’t his argument that the certification wouldn’t be meaningless? If you accept that premise, then what do you think?

                                            1. 3

                                              Well my original point was that I don’t think anyone’s ever come up with a meaningful exam for software development and I don’t think michaelochurch can just assert that it’s possible to do so.

                                          2. 3

                                            I don’t think that rent-seeking is the answer here.

                                      2. 1

                                        Being effective within a given company is not the same as having attained some body of knowledge.

                          1. [Comment removed by author]

                            1. 3

                              Does anyone have experience using org-mode in Spacemacs? I tried out org-mode yesterday after reading this comment, but it seems that many of the standard key bindings are in conflict.

                              Is there a good Spacemacs-specific introduction to org-mode? How about a reasonable way to navigate keybinding conflicts?

                              1. 2

                                I do, but as you said - be prepared to relearn things. I usually get by by using SPC : and typing the command I want, which also shows the key binding. For example it took a while to realise that just t toggles to do status.

                                1. 1

                                  I’m gonna be of no help here - I disagree with the Spacemacs philosophy. I think emacs keybindings are great and not hard at all if you invest just a little time in learning them.

                                  Good luck!

                              2. 1

                                I’ve been thinking a lot about a good mobile workflow for org-mode. Right now I’m writing in Markdown because a bunch of IOS apps support that, and using pandoc to convert to org-mode, but that’s not ideal.

                                1. 3

                                  I use WebDAV with the MobileOrg app on android, and the normal org-mobile-pull and org-mobile-push. I get webdav through my email provider, not sure how easily it is to get a webdav account though.

                                  I do know that most of the org-mobile stuff works with Dropbox if you’re ok with that.

                              1. 1

                                It seems a shame that the author didn’t include a simulation #4, with no mobile app, 1 order-taker, and 2 drink-makers.

                                It seems obvious that adding a drink maker would increase throughput, and the mobile app could well be spurious.

                                1. 7

                                  I wonder if shooting for the mythical five 9’s of availability is a poor proxy for “try to make the service available enough to piss the fewest amount of people off”, and far too many people try for the former and end up wasting time/effort.

                                  Techno-wankery around metrics seems to happen depressingly often. A coworker once hung his hat on a ~90% average reduction in time for an API call - sounds amazing at first! But then we asked:

                                  What were the average times before/after your work?

                                  ~80 ms, ~13 ms (not too shabby after all!)

                                  What level of work was involved?

                                  n weeks, introduction of a new technology to the stack (redis), …

                                  How often is the API hit?

                                  tens of times an hour

                                  What is the maximum acceptable response time for that service?

                                  (sheepishly) 150 ms.

                                  The problem came up, it turns out, after we introduced monitoring to make it easy to see times for API calls. Just measuring this meant everyone immediately tried to reduce the numbers… and in this case, it meant spending a significant amount of time and complexity solving a problem that just didn’t exist.

                                  I don’t know what a good solution is. We experimented with alternative monitoring techniques - at first we hid the raw times and just exposed the top five slowest calls, but that didn’t give enough actionable information. We also tried to come up with an “api score” that heavily penalized calls that were close to their max timeout or had significant response time variance, but getting the numbers to work out were tricky.

                                  I guess what I saw is just another manifestation of the same issue - throwing cycles at a problem without actually understanding what you’re trying to solve.

                                  So has anyone measured “availability” in a way that is actually meaningful/actionable?

                                  1. 4

                                    Rather than looking at the 5 slowest calls, why not sort your calls by usage, and then work through the list until you find something that is worth devoting energy to?

                                    1. 3

                                      Newrelic colours your response times green/yellow/red which I found was pretty psychologically effective even without hiding the raw numbers - a call may be taking 80ms, but as long as it’s in the soothing green I don’t worry about it, even when I know that there’s no way that task should be taking 80ms.

                                    1. 5

                                      I’m still working on devising a good user interface to version control software, with an eye towards answering the question “what the hell happened here?” I’d like a user to be able to focus on one or a few methods in a file, and step back and forward through time, seeing only changes relevant to those methods.

                                      Progress on Saturday was good, but then I found adventofcode.com, and played with that instead.

                                      1. 2

                                        Unrelated to programming, I’m reading “The Anatomy of Fascism,” by Robert O. Paxton.

                                        It’s a very readable study of fascist movements in Germany and Italy, and also touching on less successful movements elsewhere. The stated goal is to arrive at a meaningful definition of “Fascism,” which is apparently a hotly contested word in academia.

                                        I’m about 2/3 of the way through, and I recommend it.

                                        1. 6

                                          Could we add the “culture” tag to this?

                                          Also, are we sure we want to post outrage articles like this?

                                          This is currently #1, has 34 points (next highest is the “Python Wats” thread), is arguably just somebody airing out their dirty laundry (however rightfully), and probably affects very few people on this site.

                                          Instead, though, it’s getting a bunch of sympathetic upvotes. It’s the kind of article that tends to clutter up and drown out other, more useful content.

                                          1. 20

                                            The upvotes are a mechanism for people to convey what content they want to see. Talking about upvotes as if your fellow lobste.rs users aren’t the ones who made them is absurd.

                                            1. 6

                                              Fair enough–I’ll amend my statement as follows:

                                              I suspect that the majority of the upvotes are sympathetic in nature.

                                              I believe that any users of lobste.rs who are upvoting such material are being short-sighted in signalling their acceptance of articles of limited utility, are lessening of the signal/noise ratio on the site, and are exhibiting what I consider poor taste.

                                              Better?

                                              1. 13

                                                Out of curiosity, what would be your qualifications for something being upvoted?

                                                The way I see it, there are three main reasons that I upvote (in no particular order):

                                                1. I find something to be “neat” or interesting, and wish to convey that.
                                                2. I find something useful, and wish to convey that.
                                                3. I wish to bring attention to a certain topic so as to further discussions/opinions on that topic.

                                                The way I read your comment, you wish to axe 1, only upvoting 2 and 3. Is that so?

                                                1. 7

                                                  “I have learned something” seems a bit weak, so perhaps “I can apply something from this post” is better, maybe with an exception for curiosity.

                                                  There’s not much I can apply from this post. No “take away”. Not “actionable”. I’m not much curious about department squabbles at a uni I don’t attend.

                                                  A post which explores how to best teach math would be much better. I’m at least 10x more interested in what he was doing to teach math than whether hiding performance reviews is a violation of departmental bylaws.

                                                  1. 2

                                                    Interesting. I now seem to be in agreement with most of what you say.

                                                    While a post that explores how to best teach math may be more useful to the entirety lobste.rs, those interested in the politics of the firing of math teachers would most definitely be interested in this post and would likely upvote it not because they can “take away” something, but because they are intrigued by the post itself.

                                                    In your opinion, should this post should only have gotten upvotes from people who have acquired something actionable from the post, or that it should not have gotten “sympathy” upvotes (if that’s what they are), but only upvotes from those truly interested in the topic?

                                                    1. 4

                                                      “sympathy” up votes are pretty shallow. I look at votes as a recommendation or endorsement. This post currently has 5x or even 10x the votes as nearly every other link. Is reading this post more important than reading ten other articles? That seems unlikely, but that’s the signal lobsters is sending.

                                                      Imagine you have a limited budget of points (say 100) to spend on articles. High point articles cost more points to read. Are you happy with the value of this 50 point article?

                                                      1. 3

                                                        It may just be me, but I upvoted this article more because of the interesting discussion on academia than because of the article itself. Which IMHO is a perfectly valid reason to upvote.

                                                        1. 2

                                                          Is reading this post more important than reading ten other articles?

                                                          I don’t think that’s the appropriate interpretation. If we take each upvote as a recommendation, then while this article is much more heavily recommended than anything else on the front page right now, we can’t from that conclude that it’s many times more valuable/interesting/informative/important/etc than any other article—just that if we were going to take a selection of articles to read, this one would certainly be among them. The disproportionately high ranking does mean that if we disagree with its position on the front page, it’s very difficult to displace.

                                                          In retrospect, I probably should have tagged it “culture"—I didn’t only because the tag description specifies technical communities and culture, which I don’t think this fits. Perhaps we should update the description to be broader.

                                                          Incidentally, I’m actually very surprised by how many upvotes this article got. There’s a half dozen other things on the front page right now that I think are more interesting. I hit an unexpected nerve with a bunch of people, I guess. =/

                                                          1. 2

                                                            You should’ve tagged it with culture, because academia (especially in math!) is a technical community.

                                                            I hit an unexpected nerve with a bunch of people, I guess. =/

                                                            You hit a topic where people feel outraged, and likely the best they can do is upvote in hopes that somebody, somewhere, somehow will read the post and do something.

                                                            This is why outrage porn posting is such an effective karma strategy (and hence why it should be discouraged).

                                                          2. 1

                                                            I believe that your idea should be modified, slightly, so as to not cost “points” to read an article, but to upvote an article. In addition to that, one should have a hard and soft limit, to pull random numbers out of a hat how about 5 and 3 respectively. These limits would work per day (or maybe different limits per week, or something per month, etc) where you would aim to keep it within the soft limit, however, if necessary (because maybe awesome things have happened!) go up to the hard limit, but no further (because anything further than that seems a bit much, and one should wait at most 24 hours to re-assess that extra upvote). And one can unvote as well, which won’t count (which means I’m giving myself an infinite window to correct my judgement(s), which more realistically is about 48 hours, probably).

                                                            I shall, from now on, try to adhere to this system (because I, for one, like it) unless anybody comes along with one I like more.

                                                      2. 6

                                                        I think that lots of articles are great, really important, and I want to share them, but they aren’t necessarily relevant to lobsters. As an example, I’m very interested in transportation planning, so I find NYC’s Department of Transportation’s releases on their future plans, and the studies that they’ve run really fascinating, but transportation is totally disjoint from what lobsters should be focusing on.

                                                        I’d say that this article falls in the same bucket. It’s definitely interesting, and I hope that Berkeley ends up treating this lecturer fairly, and it might even be useful to disseminate this information.

                                                        With that said, I flagged this as off-topic because it’s not relevant to engineering. So I’d guess that most people on the site are down with all of 1, 2, and 3, with the caveat that it’s related to software or hardware engineering.

                                                        1. 6

                                                          Personally, I don’t think lobste.rs is strictly for technology topics—the related fringe of stuff, including related fields in academia, is also relevant. (After all, quite aside from those of us actually working in academia, a large fraction of us have or are pursuing an undergraduate degree, and the quality of undergraduate education directly impacts us and many of our coworkers.) Being too tightly focused weakens the site due to a lack of diversity of content. Obviously, figuring out where to draw the line between too restricted and too broad is very subjective. I think academic mathematics is within our purview (we have the “math” tag, after all), but I’m certainly not going to claim people are wrong for thinking otherwise. Establishing this sort of subjective line across a community is actually something voting systems are relatively good for, so thank you for flagging it! It’s helpful for people submitting articles to have an idea of which topics are starting to stray from what the community wants to focus on.

                                                          1. 5

                                                            Software engineering touches pretty much everything in the world, so we could make the argument that a huge number of articles are relevant. For example, we could say that HBR articles about branding are on topic, because many of us work in companies, and for companies that sell things, it’s useful to make sure we’re on brand, especially if we make software that’s customer-facing.

                                                            The tools that we have right now for establishing what posts we should add are:

                                                            A. tags
                                                            B. voting

                                                            In theory, the tags should help prevent the site from being taken over by something like eternal september, where a totally different group (say, tech recruiters) come and start upvoting techcrunch articles about the latest snapchat for cats. I’d argue that although this post is definitely interesting, we might want to structure the way tagging works to exclude posts like it. I’m not sure that math is in and of itself, is of interest to lobsters. For example, a distributed systems paper (like Calvin) might be posted to lobsters, and if it has math, it might make sense to tag it with math, but the reason for it being relevant might be because it’s it’s about distributed systems, not about math.

                                                            Would we say that it’s appropriate to add a mathematics paper? I’d argue it’s probably not, unless the applications in software are clear.

                                                            1. 3

                                                              Thanks - I wanted to say a lot of that, but couldn’t find the words. I agree with all of that. I personally am interested in mathematics, but, then, I’m also interested in online advertising… I wouldn’t post either here unless they were otherwise relevant.

                                                            2. 2

                                                              Being too tightly focused weakens the site due to a lack of diversity of content.

                                                              [citation needed]

                                                              I come to lobsters for coherent technological discussion and for polite discourse. We have an entire internet for other topics that’re not tightly focused or curated. This “diversity in topics is important and belongs everywhere” makes a lot less sense given the ease of going to somewhere else.

                                                              As you add extra things to the core of subjects of a board like this, you tend to dilute the quality of discussion as things get mislabeled or as people who are interested in those non-core things begin to migrate in.

                                                              The only places where I’ve seen this work well are places like Something Awful or 4chan (and that should tell you how good it is) where you have boards dedicated solely to certain types of topic and grumpy mods to enforce on-topic stuff.

                                                              1. 4

                                                                I think the case of Hacker News shows that phenomenon off quite well. At one time the community enforced a relatively strict standard in terms of avoiding politics and general news, and was really focused on tech+business+science discussion. Over time the scope has grown broader and broader to where now it’s basically “anything goes” and you can see the corresponding drop in quality overall. Yeah, I know that’s subjective and hard to quantify, but I’m pretty sure a lot (most?) of the “old timers” would agree with me.

                                                                At some point a community has to decide what it is and what it’s about. And if you start going away from that, you have to accept that it will soon no longer be the same community.

                                                          2. 3

                                                            The Angersock Lobsters Upvote Algorithm version 1, or ALUA v1 (available under the WTFPL):

                                                            # meta posts  
                                                            if post.tags.contains? :meta
                                                                throw flag('spam', 'Meta question not well formed') if post.content.nonsensical?( angersock.sense_eval_visitor )
                                                                post.upvote! and return
                                                            end
                                                            
                                                            # satire and rants need to be held to a standard
                                                            if post.tags.contains? :satire
                                                                throw flag('spam', 'Not good satire.') if post.content.unfunny?( angersock.satire_eval_visitor )
                                                                throw flag('spam', 'Satire is too short') if post.content.length < 5.paragraphs or post.content.length < 1000.words
                                                            end
                                                            if post.tags.contains? :rant
                                                                throw flag('spam', 'Not good rant.') if post.content.unfunny?( angersock.rant_eval_visitor )
                                                                throw flag('spam', 'Rant is too short') if post.content.length < 5.paragraphs or post.content.length < 1000.words
                                                            end
                                                            
                                                            # immediate itch scratching
                                                            if post.content.solves_problem( angersock.get_current_rage_inducing_problems )
                                                                post.upvote! and return
                                                            end
                                                            if post.content.has_specific_technical_advice?
                                                                post.upvote! and return
                                                            end
                                                            
                                                            # basic quality control
                                                            if post.url.known_linkbait_source?
                                                                throw flag('spam', 'Post is from a garbage source')
                                                            end
                                                            if !post.content.still_relevant_within?( 2.years )
                                                                # important! post musn't be news...that'll be elsewhere anyways
                                                                throw flag('off-topic', 'Post is from a garbage source')
                                                            end
                                                            if post.content.contains_viral_marketing? or post.content.ends_with_company_plug?
                                                                throw flag('spam', 'WTF marketing pls go')
                                                            end
                                                            if post.content.length < 5.paragraphs or post.content.length < 1000.words
                                                                post.downvote! and return
                                                            end
                                                            
                                                            # special-case commenting/upvoting
                                                            if post.tags.contains? :culture do:     
                                                                post.upvote! if post.content.involves( [ 'burnout', 'stock', 'equity', 'teaching', 'leadership', 'post-mortem'])
                                                            
                                                                if post.content.about( :diversity )
                                                                    # BETA CODE STILL UNDERGOING TESTING
                                                                    post.downvote! if post.content.hand_wringing? # done to prevent posts that don't offer paths forward
                                                                    post.downvote! if post.content.call_for_witchhunt? # done to prevent posts that are just bullying
                                                                    post.comment( angersock.ask_for_tag( :diversity) ) if Random.rand(10) < 3
                                                                else    
                                                            end
                                                            
                                                            if post.content.matches_tags post.tags
                                                                post.comment( suggest_missing_tags( post.content, post.tags) )
                                                            end
                                                            
                                                            post.upvote!
                                                            

                                                            Note that curating is more what is left out or flagged than what is supported.

                                                          3. 9

                                                            I believe that any users of lobste.rs who are upvoting such material are being short-sighted in signalling their acceptance of articles of limited utility

                                                            relax, it’s just a link site on the internet

                                                            1. 9

                                                              It’s not a totally unreasonable concern. I definitely get where angersock is coming from—the endpoint of failing to address submission quality concerns is Reddit, and none of us want that. Obviously I don’t think this submission is of poor quality, or I wouldn’t have submitted it, but the concern is legitimate.

                                                              1. 8

                                                                Sorry to post twice in the same subthread, but I thought about it more…

                                                                I think a lot of Reddit’s real problems have to do with the disrespectful behavior that’s fostered there. Isolated pockets are much better, but since that stuff has always been viewed as a feature from the top, those will always be the exceptions.

                                                                But it’s also not clear whether there is any medium anywhere which scales to include that many people and doesn’t have that result. If we really view Reddit as an undesirable endpoint, the solution may be to choose to stay small.

                                                                1. 4

                                                                  I happen to like Reddit. I find the constant badmouthing of other fora to be the worst aspect of lobste.rs.

                                                                  1. 14

                                                                    I believe it happens because some of us view lobste.rs as a refuge from the poor quality content submitted to other sites.

                                                                    One of the reasons I like this site is that I find I do not need to do much filtering to reach articles of interest to me because nearly all of them are high quality, interesting submissions. I would guess @angersock feels similarly and is attempting to protect the quality bar as they see it.

                                                                    Of course, we won’t all agree… For example, I upvoted this particular post. Still, I do personally feel it’s worth protecting the overall quality of the site, assuming that can even be done at all.

                                                                    1. 3

                                                                      I believe it happens because some of us view lobste.rs as a refuge from the poor quality content submitted to other sites.

                                                                      Poor quality, obviously, being entirely subjective. The post in question here isn’t really poor quality by many standards. It is detailed, elaborate and rather clear in its intentions.

                                                                      People disagree with that kind of content they don’t like by downvotes and I don’t really like that. Either you are on a user-curated platform, which means you have to follow the masses somewhat or you are not. There are many publications that curate things for you.

                                                                      Downvotes should be strictly kept for poor quality content.

                                                                      1. 2

                                                                        You are failing to account for the fact that a lot of articles without quality issues are quite off-topic (say, outrage porn like this, or a really great academic writeup on the history of a particular stamp).

                                                                        The problem with your approach is that it tends to lead to incoherence, and incoherence inevitably leads to a regression to the mean.

                                                                    2. 4

                                                                      I have to admit, I enjoy some subreddits. I don’t disclose nearly as much personal stuff there as I do here, but I think that has a lot to do with it being a larger audience - thousands of people likely to skim past, rather than hundreds.

                                                                  2. 4

                                                                    Link sites on the internet develop cultures, and Lobsters is young enough that it’s culture is yet unformed. I think it’s a good idea to consider the kind of content we collectively encourage.

                                                                    I agree with GP’s assessment, and while I have sympathy for the author of the article, I don’t need another place to find outrage porn. I need a source of interesting links.

                                                                    1. 8

                                                                      I’m not sure we don’t have a culture yet. I think we have a very strong tradition of talking about what sort of culture we want. :)

                                                                      (And I think that’s important and good, btw.)

                                                                      1. 1

                                                                        Maybe “unformed” was the wrong word. How about “unfixed?”

                                                                        1. 1

                                                                          That descriptor makes sense to me, yes.

                                                              2. 9

                                                                I would have tagged it with “academia” if we had such a tag (which, incidentally, I think we should). “Culture” is described as “technical communities and culture”, which I don’t think fits this; and while it’s not Lobste.rs typical fare, I thought people might find it relevant (and evidently a significant number do). If “culture” should cover articles like this, we should probably broaden its description.

                                                                1. 8

                                                                  “Academia” is definitely the right specific tag if we want to have one, yeah. Do we have a lot of past articles that would reasonably fall in that category? If so, it’s clear-cut that we should.

                                                                  This particular article could also reasonably be tagged “rant”. :)

                                                                2. 8

                                                                  Hi @angersock. I’m totally with you but I think this may be a losing battle in a democratic setting. I saw this happen on HN and now I see it happening on lobste.rs Right now the “noise” is still low compared to the “signal” but probably not for long.

                                                                  @jcs I’ve wondered if we could try out personally weighted votes. This means that the votes I see when when I log in depend on who has upvoted/downvoted an article and could be totally different from those seen by other folks. So my lobste.rs first page could be very different from some one elses' depending on interests and tastes.

                                                                  I would initially default to the raw vote (i.e. what is happening now) but as I added people whose tastes I like (or perhaps we could have a learning algorithm match me with others) the front page would (hopefully) contain articles I’m more likely to be interested in and I have less of the noise problem than I had with, say, slashdot and hackernews.

                                                                  Thanks!

                                                                  1. 2

                                                                    I like your idea of a weighted vote, that could be interesting

                                                                  2. 4

                                                                    Upvoted for germaneness to the faults of the U.S. educational system. I hadn’t seen the educators’ side of this issue.

                                                                    1. 2

                                                                      That’s interesting to hear. What’s the other side of it? What is the larger issue, precisely?

                                                                  1. 10

                                                                    I’m trying to build a good UI into version control software to answer the question, “what the hell happened here?”

                                                                    The idea is that you’ll be able to open up a code file, mark some portion(s) of it as interesting to you, and step backwards and forwards through its revision history, seeing only those changes that affect the interesting portions of the file.

                                                                    It’s been a long time coming because I’m stubbornly trying to write it in Haskell, but after a long, internet-free Labor Day weekend at my in-laws', I’m making good progress.

                                                                    1. 4

                                                                      Sounds interesting, I’ve often been frustrated by how much work it takes to do this with existing tools. What VCS are you targeting?

                                                                      I’m looking forward to seeing a link here when you’re ready to share it!

                                                                      1. 3

                                                                        I’m starting out targeting git, because I quickly found the diff-parse library on Hackage, so it was easy to approach. However, I’m mostly interested in the problem because my day job involves a project with a 6-year-old svn history, so that is my ultimate goal.

                                                                        I’ll surely brag here when I have something to brag about.

                                                                      2. 3

                                                                        I just stumbled upon the blog post Tracking method history in git, which shows that Git already has a limited form of this built-in. For supported languages, you can give Git a regex to be matched against a function name, and Git will show the history of that function definition within a specific file.

                                                                        The post also links to the method_log Ruby gem, which can analyze the history of any single method in a Git-tracked Ruby codebase, even if the method moves files, or has the same name as another, differently-scoped method. It finds the method by parsing the code at each point in history with the parser gem.

                                                                        1. 2

                                                                          I’ve been thinking about this problem as well to improve my daily workflow at Mozilla, which typically involves a fair amount of code archaeology. Please do post here as you work on it!

                                                                          1. 2

                                                                            No idea if this would help you at all, but I worked on a research project for school, with the main goal of being able to see and share how code has evolved over time. A somewhat out of date website with some basic information is https://storytellersoftware.github.io/storytellersoftware.com/, and the source is https://github.com/storytellersoftware/storyteller

                                                                            The main reason I mention it is because it has pretty much the exact feature you mentioned already, provided you’ve been using Storyteller to track your project the whole way through.

                                                                            If you’re interested in playing around with it, I can try to help you get it setup.

                                                                          1. 4

                                                                            Would love software archaeology courses.

                                                                            1. 4

                                                                              You should check out the Architecture of Open Source Applications series. There’s a lot of great stuff in there, but I particularly liked the chapter on Warp from volume 3.

                                                                            1. 7

                                                                              Dennis Nedry is the kind of guy to write 2 million lines of code to control an electric fence.

                                                                              1. 18

                                                                                I worked for a company that was developing this technology with an eye towards online classrooms, to prevent a user from giving their credentials to a brainier friend on exam day. We also relied heavily on dwell time and gap time in our statistical analysis.

                                                                                We ran into two problems that were very difficult to get around. One was that when a user bought a new keyboard, or a new laptop, or visited their parents for the weekend, or got drunk, their typing profile was completely unrecognizable. From our perspective, there was no difference between sometimes doing your homework from your girlfriend’s house, and sometimes having your girlfriend do your homework.

                                                                                Secondly is the base rate fallacy. We had similar accuracy to that described in the article–after a surprisingly brief training period, we could confirm or reject users some 95% of the time. However, since we monitored thousands of students, and the overwhelming majority of them were honest, we had to choose between issuing dozens of false accusations for every actual cheater, or letting all but the sloppiest cheaters get away with it.

                                                                                I am not sure how I would get around such difficulties, especially if the goal is to get a fully automated yes/no judgment.