Probability of acceptance of pull requests - <AUTHOR> http://paulmillr.com/posts/github-pull-request-stats/ <comment><USER2> The title is a much more cynical take on the data than I have looking at it. I have some familiarity and experience with Django, one of the projects that has a pretty low pull request acceptance rate from his sample. At 29% I was impressed that many pull requests were accepted, frankly! I think the signal to noise is pretty high on pulls to high profile projects.

It's easy, and common I think, to throw a small change into a pull request and fire it off without confirming it's desired or within the objectives of the maintainers. I've done this at least once w/ Django personally. My thought process was "This may be undesired, but if it _is_ desirable the chances of it making it in without bikeshedding in a mailing list is way higher if I just lead with a pull request."

In my case it wasn't desired (I think it was a settings.py var that allowed users to configure auto-import of models in the shell, dropped cause it's implicit over explicit and adds to settings.py).

Add to that all of the pull requests that are effectively proof of concepts because the implementation fails to take some major stuff into account, and an acceptance rate of almost a third starts to sounds pretty good to me.

<comment><USER3> It's so much better to send these sorts of proposal via e-mail. It's much easier to review the patches via e-mail, and everyone on the development community can make suggestions. Even so, it's not uncommon for patches to require three or four versions, and not just by first-time contributors. There are patches written by folks who have been working on ext4 for many years which still require three or four or more revisions after being subjected to multiple rounds of peer review.

If you show me a git project where most of the pull requests are accepted, I'll show you a git project whose quality assurance is probably completely out of control.

<comment><USER4> I think that depends a lot on the project. Projects that heavily use github tend to prefer a github pull request.

It makes it easy to comment on the diff and integrates with Travis CI (integration tool) and other tools.

It is easy to make multiple changes to the pull request before it is accepted so nothing about this system implies that pull request are always accepted without changes.

<comment><USER5> It's easy for the _original author_ to make changes to the PR, but not easy for the maintainer or a third party to make changes. The micro-pedantry associated with spelling errors, tweaking commit messages, and trivial spacing/formatting issues can be more work for everyone when communicated through comments on PRs with the original author expected to apply and re- roll.

<comment><USER6> That's only partially true.

Pull requests on GitHub have to have an associated branch or fork in another repo. Even if you're not the original author, if you have access to it, you can do "git checkout" or "git clone", then you make the required changes and then on push the commits are automatically included in the pull request.

The only problem is that the maintainers do not have write access to the forked repositories of new or casual contributors. So if you're in a rush to change something, you have to fork that branch, make changes and then merge it, while ignoring the original pull request (although if you place the issue number in the commit messages you push, they'll get referenced on the associated page).

However, the commits logs made by the wannabe contributor are still in the history, so proper credit/blame is given where it is due, unless you rebase of course. And this isn't something you can say about diffs sent by email.

Also, GitHub sends you emails on pull requests. And you can reply by email too.

What I like about GitHub Pull requests is that you have a link you can give to people for review or that you can post wherever, a link that gives you a descriptive diff of what happened. Plus, the discussions around that pull request are left there, included in that link, left for everybody to see, instead of turning into a private conversation that nobody else will know about (incidentally, it's also the reason why I think native apps will never beat web apps, as long as native apps don't have URLs for referring to content or state within the app). This to me is useful enough to prefer it over diffs by email.

EDIT: there is one thing about GitHub I don't like - you cannot give write- access to people, while preventing them from pushing to master. If this where possible, you could give everybody access to push, except for master, in which case the above mentioned issue with pull requests would be a non-issue!

<comment><USER3> The problems with keeping the original commit and then putting the fixes on top are, (a) it makes the history harder to follow, (b) it makes it easy for someone to screw up a cherry-pick of a bug fix to a maintenance brance, since now you have to cherry-pick the bug fix plus the fix(es) to the bug fix, and (c) if the original patch had a potential bug that might cause the system to crash or otherwise malfunction, even if you fix it in the subsequent commit, it makes "git bisects" more likely to yield false positives, or at least make things more confusing and more difficult than it has to be.

</comment></comment></comment></comment></comment></comment><comment><USER7> I can't speak for the other projects, but the data is completely wrong and misleading for jQuery. It looks like this code only counts a pull request as merged if it's landed with a merge commit. It's much more common for us to touch up the pull request (for example, fixing small style or commit message issues), then rebase, possibly squash some commits, and land via a fast- forward commit.

So this is "accepted": <https://github.com/scalatra/scalatra/pull/267>

But this is not: <https://github.com/jquery/jquery/pull/1255>

<comment><USER5> The hosting sites need to start providing a way for a maintainer to update or supersede a PR, as well as a way to track prior versions of commits in a PR after the PR has been updated post-review.

</comment></comment><comment><USER8> Vaguely related anecdote:

I had a really bad experience trying to use node.js for a project. Eventually I figured out that the module I needed was just broken, so I decided to at least update the documentation. As it turned out, not only was it not documented how to update the documentation (...) but I had to go back and forth on undocumented style guide rules (for documentation that gets displayed in the browser anyway!) and then sign the CLA, all to update a single line of text in the docs to say 'don't use this module, it's broken'. It literally would have taken less time for them to make the change themselves.

This soured me even more on node.js than actually using it had. It's bizarre that project maintainers would actively put so many walls between themselves and valuable (or not-valuable, for that matter) code contributions.

I can only assume that the legal downside to not having a CLA signed for every single-line commit is enormous. Are there previous court cases in the US where not having a CLA got someone destroyed?

<comment><USER9> > I can only assume that the legal downside to not having a CLA signed for > every single-line commit is enormous. Are there previous court cases in the > US where not having a CLA got someone destroyed?

I don't know of any court cases, but I do know of several projects that were not able to change their license because they didn't have a CLA and couldn't contact all previous contributors. Thats the right that section 1 of the nodejs CLA gives them.

Fun fact: nodejs reserves the right to use your contribution under "(b) binary, proprietary, or commercial licenses".

</comment></comment><comment><USER10> The vertical labels on the charts reduce readability greatly! Perhaps angle them a bit and sort from highest to lowest so you can just scan down the labels and know where they stand without having to look back up at the bar height. Or simply flip the axis.

</comment><comment><USER11> I'm surprised the acceptance rate is so high.

<comment><USER12> thats what I was thinking! I suspected many more of them to be junk

</comment></comment><comment><USER13> Dear Mods: This time you've edited the title to something other than the post title. Can you clarify what the rule is? Should the title be informative, or the title of the post?

</comment><comment><USER14> What is a CLA and why would a project want one / not want one? They seem like another hurdle for contributors?

<comment><USER15> <http://lmgtfy.com/?q=code+CLA>

<comment><USER16> That is such a lazy and non-helpful answer, especially considering that the poster didn't just ask what it was.

</comment></comment></comment><comment><USER17> The curious question is why certain projects have significantly lower pull- rates; I doubt the quality of the pull requests vary that widely across projects.

Is it that project leadership has a clear vision for a product and feel pull requests are a distraction? If so, share the vision and enlist willing developers to help achieve that vision.

Is it that project leadership has a high-standard for the codebase? If so, explicitly state the standard and provide constructive feedback to pulls that don't quite measure up.

I guess my point is: project leadership has the ability to leverage a tremendous pool of talent that is interested in their project using the pull request mechanism. It does take effort and planning but the net result is so worth it to all parties involved.

<comment><USER18> This is a complicated problem, and one that I'm excited to think could be improved in the coming years as Github et al have the time and resources to invest in it.

I have a few thoughts on the topic and on your comments:

1\. I actually DO think that the quality of pull requests varies widely from project to project. You dismiss this in your first sentence but I don't think you should. I think there are a lot of reasons for this, but many can be reduced to: Some projects attract more inexperienced developers than others.

2\. I don't think you can simply indict the project maintainers for not optimally leveraging the talent pool of volunteer contributors. While Open Source has been validated a million times over as a truly successful movement/concept/etc, nobody has ever accused it of being efficient. Specifically, most pull request submitters act on their own, without coordination between submitters or with project maintainers. It's not just an issue of coding standards, it's also things like the maintainers having a roadmap that includes bug fixes, refactoring, new features, etc, and that may conflict with Joe in Idaho and his pull request that he did to scratch his own specific itch.

In many ways community submitted pull requests are a "million monkeys at a million typewriters."

3\. The most successful way of getting a pull request accepted, I think, is to first raise a discussion on the issue on the projects mailing list or issues forum. Link to your in-progress patch, say "I have this fix here for problem X, can anybody take a look and tell me if I'm on the wrong track with this?" So many of us are code-first, conversation-later types and that constantly conflicts with the social nature of our job.

I guess my takeaway here is that there is a lot of room for interesting technology solutions to this problem, in the areas of:

1\. Tools that help maintainers cultivate the submitters talent pool on their project.

2\. Tools and workflows that help submitters through coordination. Totally a half baked idea but suppose if I'm fixing a bug in a function somewhere, Github can help me discover what is happening to that function elsewhere. Maybe it's been radically changed in a feature branch owned by the project maintainers, maybe it's already been fixed nearly the same way by another submitter who has an open pull request, maybe it was already submitted by somebody and rejected.

3\. Static analysis that can power those tools and more. Would love a meaningful quantative quality score on the pull request submission page. Like an additional tab beside the "Commits" and "Diff" tabs. Maybe it could run various analysis on the code and show formatting issues, known vulnerabilities, known bugs, etc. Obviously the abilities here vary from language to language.

<comment><USER17> > Some projects attract more inexperienced developers than others.

Fair.

> In many ways community submitted pull requests are a "million monkeys at a > million typewriters."

I strongly disagree with this assertion. To argue that community cannot be lead or directed toward a common goal is very pessimistic. Sure, Joe in Idaho has a specific itch, but there's a good chance there is an opportunity to capture Joe's enthusiasm and willingness to do work on the project by working with him instead of treating him like a code-monkey at a keyboard. Community relations is hard because dealing with people is hard.

> 1\. Tools that help maintainers cultivate the submitters talent pool on > their project.

Yes, I agree that this is someplace where some tools would help tremendously.

> Github can help me discover what is happening to that function elsewhere.

Great idea. I'd love to see a "related diffs" tool for a given piece of code.

> So many of us are code-first, conversation-later types and that constantly > conflicts with the social nature of our job.

I totally agree. Ultimately, tools will only get us so far; people skills must fill in the rest. Making "Joe" feel welcome and a part of the creative process requires measures of patience, kindness, gentleness and mentorship.

</comment></comment></comment><comment><USER19> Is it possible to switch the axis and set the maxima at 100%? I have to re- calibrate for each graph, or 30% almost looks like 50%. And it's hard to read the rotated labels, but the percent on the horizontal axis would not need to be rotated.

<comment><AUTHOR> As for maxima — yeah, definitely. Done.

<comment><USER19> Great.

Just to expand on the switching of axis. It's harder to compare data between graphs, but upon second inspection, it appears the colors from the first graph are not used in the secondary graphs.

Second, trying to get to the projects in the first graph, it's easier to exit the graph from the bottom. Otherwise, short bars (eg. node) are hard to "select" for the "Current" line, and in that case, I have to make a longer trip around the graph to get to the link. Maybe link the labels? Move the "Current" line underneath?

I enjoyed it nonetheless. If you're considering expanding or having a follow- up piece, I'd enjoy combining the three graphs with the format / filtering at <http://www.techempower.com/benchmarks/>.

</comment></comment></comment><comment><USER20> The conclusions don't seem reasonable to me. Higher acceptance rate is _not_ necessarily better; it can also be that the quality of pull requests is too low: that the developers are instead discriminating in what they let into their project, and that the project benefits as a result of this.

Using it as a project quality metric is in this way similar to lines of code: higher doesn't necessarily mean better.

</comment><comment><USER21> What would be interesting to see would be merged vs. open vs. closed (as in rejected), and also the typical delay between the opening of the PR and the merging/closing.

Some projects are fast to close PRs if they don't fit their goals, some don't attend to the PRs at all and you have PRs lingering in the queue forever.

Two projects could have a similar acceptance rate with very different attitude: one could be on top of things but picky about what they merge in, while another is just not attending to the list except for the odd PR now and then. It seems that a project like the former would still be more interesting to participate in just because you could expect more feedback on what is wrong.

Regarding the presented data, I'm also surprised that it's that high for some project. With the way GitHub works, it's easy to create a pull-request without consulting anybody in the original project, so it's surprising that so many would match the projects' intentions.

</comment><comment><USER22> What would increase the accept rate greatly would be if there was a function to accept-pull-into-new-branch, which creates a new branch and applies. The maintainer can then apply the necessary changes/corrections/documentation updates, get the branch tested, then merge it back if all goes OK.

<comment><USER5>
        $ git fetch url-or-remote their-branch-name:my/better-branch-name
        $ git checkout my/better-branch-name
        $ hack, commit, etc

<comment><USER22> I'm aware you can do that with native git, of course - but that leaves the original pull request on github appearing "unapplied", doesn't it?

I meant that it would be useful to add a function for that workflow in the github UI.

<comment><USER5> If you edit commits in the branch, then yes, it appears as declined in the UI, which looks hostile when they are notified. I write a friendly message every time I do this, but it sucks to have to give that explanation and the UI metadata is still wrong. I asked for this on bitbucket, though it's currently on hold [1].

If you don't edit the existing commits, then it will show up in the github/bitbucket UI as merged when you eventually merge, regardless of what games you play with branches.

[1] [https://bitbucket.org/site/master/issue/6704/supersede- pull-...](https://bitbucket.org/site/master/issue/6704/supersede-pull-request)

<comment><USER23> One way I've worked around this is to merge the original pull request, then immediately force-push the fixed version. Still doesn't fix all of the UI metadata, but at least the pull request gets marked as merged.

<comment><USER5> Only works when _you_ have push access to the repository that is the source of the PR. Normally maintainers don't have access to the repositories for all contributors.

<comment><USER23> Er, no? You merge the unfixed version via the web UI (to get the PR marked as merged), then immediately force-push the fixed version to your _own_ repo, not their's.

<comment><USER5> Oh, I thought you meant updating the pull request by force-pushing on their branch. Your solution is racy, thus only acceptable for projects small enough that the likelihood of someone pulling during that window is sufficiently low.

<comment><USER23> It's definitely not an option for very large projects, but projects small enough to have a very low chance of someone pulling in a several second window describes the vast majority of projects (and in general by the time it gets unsafe I'd expect fixing up incoming pull requests to be impractical time-wise anyway).

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> Very great analysis! I remember reading an article about an experiment someone took in bringing up the contribution in his project - And that was to add users as collaborators any time someone made a successful contribution.

I've been doing this with all of my projects so far (Granted, I do not lead any interesting projects) but a small one I re-did recently has already gotten additional activity from one contributor since I added him on.

</comment><comment><USER25> The question this raises for me is what the acceptance rate is as a function of the number of pull requests, or of the number of stars. A scatter chart would be cool here. I strongly suspect the acceptance rate goes down as the project gets bigger. That's some combination of the developers having less time to field all the requests and the more popular repos getting a lot of junk of PRs (anecdotal observation).

</comment><comment><USER26> There's nothing bad about about a high rejection rate. Most likely there is a strong correlation between the quality of code and a high rejection rate.

</comment><comment><USER27> Great analysis. Just a couple of data visualisation niggles:

1\. Please sort the bars in your barplots by descending y-value. This makes it much easier to see ranking and to compare any two bars. In plots where bars are coloured by group, it also gives an intuitive impression of group performance.

2\. Please include error bars (sem) on the plots where bars represent the mean, so we can understand how representative the mean is of the group.

</comment><comment><USER28> It would also be interesting to track the distribution of those pull-requests, with respect to user who submitted it. With the current setup, projects that are only willing to accept pull-requests from known committers, and those who are more open to new comers look identical.

</comment><comment><USER29> great analysis. I thought big projects have a lower acceptance rate than smaller ones in general, but when you take a look at django vs flask to rails vs sinatra, it doesn't seem to be the case.

one nitpick: next time rotate the diagrams +90' please :)

<comment><USER15> > one nitpick: next time rotate the diagrams +90' please :)

What? No. The x-axis is the independent variable and the y-axis is the dependent variable.

<comment><USER29> tell that to my neck.

<comment><USER15> Now you can tilt the other way --> :)

</comment></comment></comment></comment><comment><USER30> switch X and Y? I can't read this without turning my head 90 degrees

</comment><comment><USER31> that's a fantastic write up, thanks!</comment>


20 SaaS Solutions you should try to boost your business - <AUTHOR> http://www.getapp.com/evaluation-center/getapp-com-top-20-business-apps-march-2011

<comment><USER2> The pace of adoption of SaaS solutions from SMBs is accelerating. These are good recommendations for businesses looking at affordable and easy to use apps for CRM, project management or email marketing.</comment>


Imposing a proprietary Operating System to the students - <AUTHOR>

Recently my girlfriend was accepted in one of the universities with economical profile from Montreal (HEC Montreal). Everyting seems perfect until she was obliged to buy a laptop (you must have a laptop at all courses) selled by the university.
If you want to use your own laptop you must respect certains standars:
http://web.hec.ca/virtuose/index.cfm?page=374
1.Minimum Windows Xp Professional (the university recommands Vista !!! ). This is an interesting choice give the fact that the norm for a laptop selled two years ago was Windows Xp Media Center edition. 2.Office 2007. 3.An antivirus.
In order to be able to use your own computer you have to give your machine to the university for tests, the software will be checked if it has a legal and regiestered copy of the above three items.
If you want to use a Mac the university simply saids it won't work. No word about Linux.
What do you think about this ? <comment><USER2> My niece had the same experience in Biz School. Turns out that the lecturers and tech support are so limited in their understanding that they run screaming from anything that they don't understand / take the time to understand. File compatability with Excel was also a major issue with macros and add-ons. Interestingly at the same Uni if you do CS or IT course, you can use whatever you damn well please because tech support is more broadly skilled. BTW, most CS majors use Macbooks.

</comment><comment><AUTHOR> My University provides free access to computers with Windows and Office, even they offer me Windows XP. Also they let me to use Linux on my laptop.

What is unfair at my girlfriend University is that you MUST use Windows. You are simply not allowed to use other OS on your computer.

</comment><comment><USER3> If the university offers to give you licenses for this software then fair enough - this is one way to rule out compatibility issues for the IT department.

Surprised that they check if the software is legal however, what happens in the case that you've put cracked software on? Also do they not allow the laptop on campus if it hasn't been checked, or do they just not provide support if it hasn't been tested by them? This would go with my first point.

I assume they're not imposing something silly like "you must only use Windows on your laptop" (ruling out dual-booting or something).

</comment><comment><AUTHOR> My girlfriend's University won't let you use your laptop unless it has been "checked" by their technical staff.

If they say OK you will have the right to use your laptop in the University network.

The University offer technical expertize only for Windows (as a minimum you must have XP Professional).

Check this link for further informations:

<http://web.hec.ca/virtuose/index.cfm?page=374>

The page has an English version too.

</comment><comment><USER4> There are a lot of interesting tools that run as plug-ins within Excel. Of course, all functionality could be obtained with other tools, but that's not the point: they are not studying Windows - they study Economics and use Windows as a teaching tool. My suggestion? Get your own laptop and run Windows under a virtual machine.

</comment><comment><AUTHOR> I have nothing personal against using Windows if this is what you want. However I don't like to be forced to use an OS (any OS), and also I don't like to be practically forced to buy a laptop from the University.

</comment><comment><USER5> I would be surprised if they actually enforce this -- I bet you are smart enough to figure out a way to get a Mac on the network. Ask existing students.

</comment><comment><USER6> Flagged because Windows-bashing is dull.

<comment><USER7> Didn't strike me as Windows-bashing. I'd object too - if the university wants to use only certain tools, they can provide them (and have the responsibility for being able to load & export Excel data with OpenOffice). If the student wants to use other but equally powerful tools, it's not the university's business. I suspect this was dreamed up by accountants rather than faculty.

<comment><USER8> _if the university wants to use only certain tools, they can provide them_

If you don't want to buy the tools needed to take the class, then don't take the class. Universities don't provide free textbooks, for example.

Of course, it would be _better_ if the university provided the required tools or offered more flexibility, but I agree with the parent poster that this is not an interesting subject.

<comment><USER7> What I meant to say (but did so poorly) was that requiring a certain software platform is like requiring certain brands of paper and pencils to be used for note taking. I draw a distinction between course materials and the tools used to study them.

Using Excel spreadsheets as teaching/submission materials is fine by me, but it's not their business how the student deals with that, eg by using alternative software. I don't see why students should be required to only use Windows, any more than why they would be required to only use Dell laptops. FWIW I'm happily using windows right now...by choice.

<comment><USER6> Until you get to the point at which students work needs to be assessed. In most CS courses if it doesn't run first time on the prof's machine, that's an automatic fail.

</comment></comment></comment></comment></comment><comment><USER9> Most universities provide XP and Vista to their students via the university's software download repository.</comment>


What a "Windows Mobile" pc should look like - <AUTHOR> https://i.imgur.com/x5SFkLn.png <comment><USER2> Could you provide some details about how you achieved this?

</comment><comment><AUTHOR> All of this windows always connected bullshit and S mode bullshit and Store bullshit... Ships from factory with essentially constant telemetry and no privacy at all.

Took 3 days. Had to hunt down the drivers through windows update and more drivers from the sysprep stage of the oem media because they encrypted their files. Combination of uupdump.ml scripts and ntlite. What's more, drivers don't work with 1809 or 1903. After install, had to tweak services and devices to get them to behave properly. Unexpected dependencies and requirements ensued. A lot of using powercfg /sleepstudy and comparing results.

That said- Instant on from sleep 20 second reboot 90mW/hour standby Virtually no phone home telemetry.

I am proud of my results, and I just wanted to share what a clean feeling this is. Lenovo Yoga C630 btw.</comment>


Diversity in Open Source Is Even Worse Than in Tech Overall - <AUTHOR> https://www.wired.com/2017/06/diversity-open-source-even-worse-tech-overall/ <comment><USER2> That's outrageous. It's time to force some diversity and ban straight white men from contributing.</comment>


Show HN: Generate gitignore files for almost all languages - <AUTHOR> https://github.com/zuck007/GiG <comment><USER2> there is a problem with your TEMPLATE_DIR variable inside your script. I sended you a pull request.

<comment><AUTHOR> Thanks, I really appreciate the effort

</comment></comment><comment><USER3> As good as this project seems. I would never clone any project with emojis in the commit messages.

<comment><USER4> Why not?</comment></comment>


Bytecode interpreters for tiny computers (2007) - <AUTHOR> http://www.bentwookie.org/blog/kragen-tol/2007-September/000871.html <comment><USER2> It's nice to see that people are interested in this stuff, but it's disappointing to see that both of the top-level comments are attacking me for bothering to point out that cons structures are not as good a way to represent code as some other approaches. I knew this piece was kind of disorganized, but I didn't realize it was _that_ bad.

So I'll try to summarize here, a bit.

Question: How compact can you make a full-featured interactive programming environment? And what techniques would you use to do so?

Methods: Quantitative comparison of some sample code written for 17 different virtual machines, quantitative analysis of the code in a Squeak image to see what operations need to be most compact, and an implementation of a simple dictionary.

Tentative answer: A stack-based bytecode with local variables and special bytecodes for common operations, like Squeak's, provides the best density for high-level code. Polymorphic method dispatch improves code density. You can implement the virtual machine for the Squeak-style bytecode more compactly in Forth-style threaded code than directly in machine code. So you should be able to get an entire working interactive interpreter for a flexible, convenient language into 2000 to 6000 bytes.

Does that help?

I'm sorry my logic appeared to be so "lame", but I think the fault is more in the comprehensibility of the article than in its logic.

</comment><comment><USER3> What? There are zero lisp compilers that store COMPILED lisp code as cons structures. He might as well reference GCC's abstract syntax tree, notice that it's huge, and quickly dismiss C as appropriate for embedded work.

Most lisp compilers go to machine code. If you want an interesting comparison, you would have to look at something like CLISP, which has a byte code representation.

<comment><AUTHOR> How does one represent Lisp as byte code anyway? I had a look at <http://clisp.cons.org/impnotes/instr-set.html> and this is my idea:

(1 2 3 4) => Push 4; Push 3; Push 2; Push 1 In other words: Lists are simply pushed onto the stack, probably in reverse order or car would be difficult.

(+ 1 2) => Push 2; Push 1; Call _n_ 2 (where n is the number of the '+'-function)

Looking at my understanding of the problem, it's directly translatable from list-based to stack-based and hence equivalent to Forth, isn't it? Please correct me, if I'm wrong.

Edit: Thinking about it, I have no clue how to represent a nested list on a stack. How would you represent ((1 2) (3 4))?

<comment><USER2> > Thinking about it, I have no clue how to represent a nested list on a stack. > How would you represent ((1 2) (3 4))?

In PostScript, it looks like this:

        GS>[[1 2] [3 4
        GS<5>pstack
        4
        3
        -mark-
        [1 2]
        -mark-

The [ pushes a mark onto the stack, and ] allocates an array of the appropriate size, sticks stuff into the array from the stack, and leaves the array on the stack. (A pointer to it, if you want to get nitty-gritty.) Two more ]'s would pack the above up into a single nested array. Perl uses a similar strategy.

On the other hand, if you're representing (car '((1 2) (3 4))) in Lisp bytecode (e.g. elisp), it looks more like this:

        pushconst 83258023
        car

That's the approach my Ur-Scheme takes in machine code, too; I just posted the assembly it generates for that expression at <http://gist.github.com/427828>. (Ur-Scheme is a very dumb, naïve compiler, like something you might write for an exercise in a compilers class, and it uses the x86 as a stack machine.)

Finally, if you are representing (list (list 1 2) (list 3 4)) in stack bytecode, you end up with something like this:

        pushconst 1
        pushconst 2
        pushconst #list
        call 2
        pushconst 3
        pushconst 4
        pushconst #list
        call 2
        pushconst #list
        call 2

You can also use a PostScript-style stack mark instead of an argument count, and sometimes (e.g. commonly in Smalltalk) the function and argument count are all packed up in a single bytecode. If the argument count is implicit in the function (e.g. it's checked at compile-time) you don't need the argument count at all, but that doesn't allow you to write variadic functions like "list".

</comment></comment></comment><comment><USER4> Yes, this blog entry is old (ca. '07), but the reasoning is pretty lame. In particular, the paragraph where he uses a LISP syntax tree as the runtime representation is a hoot.

I'd suggest he sit down with a copy of LISP IN SMALL PIECES to see how a Lisp (or any bytecoded vm for that matter) interpreter can be implemented efficiently.

<comment><USER2> Thanks for the suggestion! I still haven't read Queinnec's book after all these years. Are you suggesting that I might come to different conclusions after reading his book?

My conclusion was:

> With this approach, it should be possible to get a very slow language,

> with flexibility something like Python's, into maybe 2000-6000 bytes

> of a microcontroller's ROM. This should allow you to interactively

> get out-of-memory errors with great convenience and flexibility.</comment></comment>


Ask HN: Why are there so many people with the title 'VP' in financial firms? - <AUTHOR> Is it the same as how 'engineer' or 'data scientist' is thrown around in tech nowadays? <comment><USER2> In the US a VP is a corporate officer. Third parties may rely on corporate officers having authority to contractually bind the corporation.

<comment><USER3> A VP _may_ be a corporate officer, but probably isn't. You really think a bank has 1,000+ corporate officers? Even low level employees can bind a corporation is they are authorized.

VP means they are a middle manager, nothing more. It also might impress clients.

<comment><USER2> > A VP may be a corporate officer, but probably isn't.

I'm going to need a cite for this, it's not the majority rule. If it's limited to banks then it's not clear why I've served numerous VPs at bank branches and it would be a cinch to knock them out under FRCP 4 if they weren't officers yet it doesn't happen.

<comment><USER3> From [https://en.wikipedia.org/wiki/Vice_president](https://en.wikipedia.org/wiki/Vice_president)

"Not all vice presidents in a company in the modern business environment are named as an official corporate officer."

Unfortunately there is no citation there, either...

</comment></comment></comment></comment><comment><USER4> to look good for clients</comment>


Facebook is trying to register BOOK as trademark in Europe - <AUTHOR> https://euipo.europa.eu/eSearch/#details/trademarks/018075708 <comment><USER2> As a cycling fan we've had a few of these sorts of shady cases where people try to take a pre-existing term, trademark it and then threaten to sue people legitimately using it.

Recent examples that have amused me include when Specialized Bicycle Components released a bike named after the French town of Roubaix and its famous bike race on cobbled roads... then proceeded to start threatening other businesses also named after the town.

Or the company Peloton Interactive Inc which named its indoor spinning product after the commonly used name for a group of cyclists "peloton"... and then proceeded to start threatening bloggers for using the term to describe groups of cyclists.

What's particularly funny about the peloton case is that some other outfit in California is claiming a trademark on the term "spinning" to describe people indoors using static spin bikes... and has proceeded to start threatening small gyms for using that term.

Not sure if this is known as trademark trolling or not but I'm going to quietly trademark that term and start sending out threatening letters just in case.

<comment><USER3> I think a 'business process patent' to protect your trademark trolling is the way to go :)

<comment><USER4> [https://yogainternational.com/article/view/yogaglo-patent- dr...](https://yogainternational.com/article/view/yogaglo-patent-dropped)

> Just over a year ago, Yoga International broke the news that YogaGlo had > filed a patent application for their method of filming yoga classes. YI > (among others) had recently received legal letters claiming that some of our > early video content fell under the vague description given in the > application. Though YI removed the content, we were troubled by the broader > implications of the patent request, and the precedent that it set for > contemporary yoga culture as a whole.

<comment><USER5> Hello,

Your comment infringes on my patent regarding commenting style.

Please cease and desist.

</comment></comment></comment></comment><comment><USER6> Ten years ago I developed a local rock climbing database called Climbook. Small website (~1000 users), no ads, no money involved. Facebook has spent the last 3 years suing the owner, saying it's a trademark violation. The first two rounds at court rejected facebook claims, now they're up for a third. Horrible people.

<comment><USER7> I Hope the court will dissmiss the case and condemn FB to pay the legal bills (which is usual in my country for frivolous lawsuits).

<comment><USER8> We need something more akin to gun laws.

Using the court is an extreme level of threat against the average person. So someone who grossly misuses it should face similar penalties to someone misusing a gun; losing the right to access the weapon. Facebook being given a 20 year ban on going after anyone in court would be a good start.

<comment><USER9> So, 20 years of no contracts, property rights, or anything else that would require a court to enforce?

<comment><USER8> When a person loses access to a gun because they abuse it, do we concern ourselves with how their diminished ability to protect themself?

<comment><USER9> This isn't like taking a gun, this is like locking someone in a metal box without food or water for 20 years.

<comment><USER8> No one is being locked inside a box. The punishment doesn't even directly impact a person, much less lock someone in a box.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Whenever these trademark stories come up, everyone seems to get angry without trying to bother to understand how trademarks work. They think that they're like copyrights, that trademarks require originality or disallow all forms of copying or something like that. I'm generally in favour of trademarks and I don't think trademarking common words is as problematic as most people think.

When some word is trademarked, it doesn't mean nobody else is allowed to say that word. I can write all day and all night about windows, apples, and lifts without having to get lawyers in my face about it. And if the lawyers do come, they might just request that I acknowledge the trademarks that I was using in a way that could confuse consumers.

You don't need to defend everyone else's trademarks on your own. If you want to generically say to "google" as a verb for any kind of search, go right ahead. It's Google's job to defend that trademark, not yours, and I think they may well lose that fight some day.

Trademarks allow common, dictionary words. There's no requirement for a trademark to be original or creative. All it has to be is distinctive. I can call software "Windows" and I can call a music producer "Apple". Generic words are usually only disallowed as trademarks when they are used to generically describe the thing under commerce. Facebook couldn't become a bookseller with the trademark "book", for example. (Little known fact, though, "facebook" itself _was_ a common word, referring to college-provided printed books with fellow classmates' photos on them. I assume since no one is making those anymore, or because Facebook never produced printed facebooks, they now can elude any accusations of genericism.)

The test for trademark infringement is, are you using the trademark in a way that a reasonable consumer could be confused that you're selling the same thing as what someone else has under the same trademark? I don't think anyone has been referring to all social networking sites as "books", thereby invalidating the claim that Facebook has a valid trademark on "book".

Please, try to understand trademarks. One of my pet peeves with people who lump them under "intellectual property" is that they think that trademarks are somewhat similar to copyright or patents, but these are all very different laws with different purposes, histories, and ways of being defended and infringed. It doesn't all just mean "reproduction is disallowed".

<comment><USER11> This is a type of HN comment that I see often and don't appreciate. Format: "Your disapproval of [thing] can only be rooted in misunderstanding of [technicalities]. [Flex re: said technicalities.]"

People who are familiar with how trademarks work can still be dubious of Facebook's attempt to register BOOK. Is there a context in which I would accept it as distinctive? Yes, of course: the name of a social networking service. Is Facebook applying under such narrow terms? Not as far as I can tell. And do I trust Facebook to be tasteful and show restraint in defending this trademark, if it's granted? Not in a million years.

P.S. This is almost beside the point, but remember when Monster Cable sued a bunch of small businesses—most famously a mom-and-pop mini-golf course—over trademark infringement?[0] At the time, there was no shortage of pedants chiming in to say that Monster didn't _need_ to be such a bully, that it wasn't an issue of the trademark system per se. As if that were some consolation!

[0] [https://www.techdirt.com/articles/20080515/1940111131/](https://www.techdirt.com/articles/20080515/1940111131/)

<comment><USER12> That may be technically correct. But Facebook trademarking "BOOK" is just stupid, on its face.

Also, I note that "facebook" itself was a term that had been used by universities for years to describe books of students' faces. As by Harvard, which Facebook was riffing on.

Maybe it's OK to allow such trademarks. But there ought to be restrictions on holders suing over currently typical usage.

<comment><USER12> I mean, Amazon has far stronger standing to trademark "BOOK". And they'd be foolish to not contest this.

</comment></comment></comment></comment><comment><USER13> I suppose its worth noting that the company is trying to trademark them in Class 9:

Class 9

Scientific, nautical, surveying, photographic, cinematographic, optical, weighing, measuring, signalling, checking (supervision), life-saving and teaching apparatus and instruments; apparatus and instruments for conducting, switching, transforming, accumulating, regulating or controlling electricity; apparatus for recording, transmission or reproduction of sound or images; magnetic data carriers, recording discs; automatic vending machines and mechanisms for coin-operated apparatus; cash registers, calculating machines, data processing equipment and computers; fire-extinguishing apparatus.

Explanatory Note

This Class includes, in particular: – apparatus and instruments for scientific research in laboratories; – apparatus and instruments for controlling ships, such as apparatus and instruments, for measuring and for transmitting orders; – the following electrical apparatus and instruments: (a) certain electrothermic tools and apparatus, such as electric soldering irons, electric flat irons which, if they were not electric, would belong to Class 8; (b) apparatus and devices which, if not electrical, would be listed in various classes, i.e., electrically heated clothing, cigar-lighters for automobiles; – protractors; – punched card office machines; – amusement apparatus adapted for use with television receivers only; – all computer programs and software regardless of recording media or means of dissemination, that is, software recorded on magnetic media or downloaded from a remote computer network. This Class does not include, in particular: – the following electrical apparatus and instruments: (a) electromechanical apparatus for the kitchen (grinders and mixers for foodstuffs, fruit presses, electrical coffee mills, etc.), and certain other apparatus and instruments driven by an electrical motor, all coming under Class 7; (b) electric razors and clippers (hand instruments) (Cl. 8); (c) electric toothbrushes and combs (Cl. 21); (d) electrical apparatus for space heating or for the heating of liquids, for cooking, ventilating, etc. (Cl. 11); – clocks and watches and other chronometric instruments (Cl. 14); – control clocks (Cl. 14).

<comment><USER14> they are going for the libra black book? liber = book?

<comment><USER15> libra = balance/scales (for weighing). Also, it was a unit of weight in ancient Rome.

"liber" is a masculine noun of the 2nd declension and thus has no grammatically sensible connection to "libra" which is a feminine noun of the 1st declension.

</comment></comment></comment><comment><AUTHOR> Facebook is trying to register BOOK as a word mark at the EUIPO (EU Intellectual Property Office). The application is "under examination".

This means that EUIPO decided this application meets the minimum requirements and has actually assigned an examiner to this instead of refusing the application as it is IMHO too generic.

<comment><USER16> An examiner would refuse the application as too generic... They don't really have pre-examiner-examiners.

</comment></comment><comment><USER17> Hmm. Johannes Gutenberg is a little ahead of them, 580 years ahead of them to be exact.

[https://en.wikipedia.org/wiki/Johannes_Gutenberg](https://en.wikipedia.org/wiki/Johannes_Gutenberg)

They were called codices (plural of codex) back then, though.

I hope EU uses this application for a few laffs, then denies it.

What's next? Will they tried to register FRIEND and LIKE as wordmarks? How about "FAKE NEWS"?

<comment><USER10> Trademarks allow dictionary words. Windows, Apple, Uber... These are dictionary words. Usually trademarks only disallow dictionary words if the business being trademarked is too generically described by that word. For example, a window cleaner called Windows or a produce seller called Apple; that's not allowed.

The point of a trademark is to be distinctive. Unlike copyright, there's no requirement for a trademark to be creative or original. I don't care to find the details of what Facebook is trying to trademark, but it may well be the case that "book" is a valid trademark.

<comment><USER18> There are already 2 LIVE trademarks on book at TESS at (uspto.gov). One bothers me at the company wants to ("Digital on-demand printing services of books and other documents.") use it for a business involving book printing.

</comment></comment></comment><comment><USER19> Ohio State University recently tried to trademark the word "The". Thankfully they were denied.

<comment><USER20> Sometimes a denial is success, though. It means nobody else can swoop in, trademark it and prevent you from using it.

<comment><USER19> Good point. Someone on r/cfb made the same point, but the idea of marketing "The" caps and shirts was still widely mocked, even by OSU diehards.

</comment></comment></comment><comment><USER21> Everybody here is dismissing the idea that business could be affected because _book stores_ are in some kind of other category - what about tech and software like

book2: language learning platform

Galaxy Book2: Samsung Product

book.com: Barnes & Nobles URL

duelingbook.com: Yu-Gi-Oh! Simulator

books24.in: Online Billing

book24.ru: Web book store

bookweb: American bestseller association

...

I understand the idea of trademarks and would not call it a bad one - it makes sense that companies want to protect their name from direct copycats in the same sector. It is fair that some companies protect deviations from their actual name, too (Twitter, tweets. Microsoft Windows 10, Win10). But nobody calls "Facebook" "book" and it's not like they have a palette of products with the word in it, like iPhone/iPad/iOS or something. If somebody can explain how they're possibly acting in good faith here please elaborate, but I hope they get shut down, especially since it is well established that megacorps can just keep bullying regarding trademarks and the like, even if they are clearly wrong [0].

[0] [https://nissan.com/](https://nissan.com/)

</comment><comment><USER22> Trademark is evil same is with patent and copyright. It's just a corporate tool to gain free money from work of people who passed away long time ago. Those tools have one purpose - stop innovation and progress for years.

<comment><USER23> One can imagine a world without patents or copyright still thriving. How can a consumer marketplace exist where its impossible to discover which of 100 products are made by whom and which are likely to fall apart or kill you?

Trademark has a purpose.

<comment><USER22> What purpose exactly ? Only corporate products are good and other are trying to kill me ? That's your point ? McDonald sandwich will kill me or Apple iPhone ? Maybe facebook can kill me ? Qualcomm processor ?

Or maybe you think sole people doesn't build cars/planes and don't use them in public ?

Anyone can read about anything anywhere and yeah older people also talk about products they use and how good they are. They actually talk about it more than younger people.

I recommend you a great book by Cory Doctorow "Information doesn't want to be free" you can buy or download it.

</comment></comment></comment><comment><USER24> I recently registered 'twitbook.uk' when the .uk TLD opened for general registrations, with the intention of running a satirical social network that would blatantly ask for personal information, allow open bidding to access the data, and provide features such as 'make me angry' or 'validate my opinions'. Just for fun of course, no real information would be solicited or sold.

I wonder if such a site would be considered a violation of this trademark, were it to be granted.

<comment><USER25> When do you think you will get it running? Right now I just see an apache welcome page. A parody social media site is something I want to see

<comment><USER24> It's hard to say, since this is really just scratching an itch. It'll be on GitHub as soon as the first meaningful version is available, contributions will be welcome.

</comment></comment></comment><comment><USER26> Nothing beats the $6 Million "We" trademark.

<comment><USER27> Intel has copyright on the lower-case letter 'i'. I claim victory.

<comment><USER28> Deutsche Telekom has trademarked the use of the color Maganta (RAL-4010) for telecommunications products.

<comment><USER29> Trademarking colors is very common and to be honest, kinda reasonable given a domain. "McDonald's Yellow" or "Coca Cola Red" are good examples.

[https://www.atlasobscura.com/articles/cheerios-color- tradema...](https://www.atlasobscura.com/articles/cheerios-color-trademark- brands)

[https://www.businessinsider.com/colors-that-are- trademarked-...](https://www.businessinsider.com/colors-that-are- trademarked-2012-9)

[https://assets.atlasobscura.com/article_images/45509/image.j...](https://assets.atlasobscura.com/article_images/45509/image.jpg)

</comment></comment></comment></comment><comment><USER30> Given the umpteen categories they have this application applying to, what would their purpose for doing this be? To register "FACE" and "BOOK" together?

<comment><USER31> They already own the trademark for "FACE" [0] in the context of "Operating of chat rooms, none primarily featuring or relating to motoring or to cars".

[0]: [https://euipo.europa.eu/eSearch/#details/trademarks/00385277...](https://euipo.europa.eu/eSearch/#details/trademarks/003852779)

<comment><USER32> Sooo would FaceTime run afoul of this?

<comment> kube-system Would a reasonable person believe FaceTime is associated with Facebook?

<comment><USER33> I suppose I'm not a reasonable person, then. I was under the impression FaceTime _was_ a Facebook product, or at least bought from them.

</comment></comment></comment></comment></comment><comment><USER34> Amazon might take issue with that.

<comment> martin-adams And Apple

</comment></comment><comment><USER35> Can someone explain to me what the implications of this trademark could be? Would that mean that a store that sells books and would have the word Book in their logo or brand could expect a lawsuit?

I'm not that familiar with trademarks and such.

<comment><USER36> trademarks are market specific. You could be a bookstore called "whatever book" and be fine. You could not be a social network and call yourself "whatever book". The general idea is to prevent things from being associated with a brand in the consumers mind when that thing has no right to the association.

<comment><USER37> Some of the markets they're applying for seem a little questionable. Looks like they're trying to claim far more than just social network.

* Downloadable e-commerce computer software to allow users to perform electronic business transactions via a global computer and communication networks

* Magnetically encoded gift cards;

* Software for accessing and viewing text, images and electronic data relating to conferences in the field of software development;

* Software for making reservations and bookings;

* Software for ordering and/or purchasing goods and services

* Software to enable accessing, displaying, editing, linking, sharing and otherwise providing electronic media and information via the internet and communications networks

<comment><USER38> > * Software for making reservations and bookings;

The word BOOKing should be a giant flag that they're trying to trademark the generic name there. Reservation book, order book, etc all come from physical books. It would be a giant stretch to try to trademark book for software covering those things.

</comment></comment></comment></comment><comment><USER12> Context: [https://www.dictionary.com/e/facebooktrademark/](https://www.dictionary.com/e/facebooktrademark/)

</comment><comment><USER39> How does this pass the straight face test. The proposition is insane, I hope I wake up and this is all a fever dream.

<comment><USER40> I think this is pretty much for occupying legal departments with benign work. At least in some European countries with strong legal lobbies, they are very welcome to do that. It is also sometimes used to advance shady trademarks that can only succeed in contrast to applications like this.

</comment></comment><comment><USER41> Shout out to Barnes and Noble, owners of book.com :D I hope Zuck doesn't try to harass them next.

</comment><comment><USER42> Seems just like lawyers doing lawyer things. People always read headlines like this and imagine Zuck sitting around a conference table with a bunch of his underlings cackling about their next big evil plot, but I bet he doesn't even know about this it's just their legal team doing what they've been paid to do - protect their trademark as much as possible.

<comment><USER43> Just because someone is paid to do evil things doesn't mean it's suddenly okay. In fact, getting paid is one of the most common reasons people do evil things.

Capitalism doesn't work as a moral compass.

</comment></comment><comment><USER44> This is too close to home! My company is being sued by a company claiming the suffix KEY.

</comment><comment><USER18> Noobs should become familiar with ICANN, WIPO, the US trademark database (TESS) at (uspto.gov), GDPR (European Union), and the European Union's trademark database ( [https://euipo.europa.eu/eSearch/#details/trademarks/01807570...](https://euipo.europa.eu/eSearch/#details/trademarks/018075708) ). As well as the rules for obtaining a trademark or patent. I hope Facebook isn't obtaining a work mark trademark. Hopefully, only a design mark. Along with the words "NO CLAIM IS MADE TO THE EXCLUSIVE RIGHT TO USE "GAME" APART FROM THE MARK AS SHOWN". Book is a generic word and doesn't show source. The EU shouldn't give Facebook an exclusive right to use book. Steve Feibish (book.us)

<comment><USER18> "NO CLAIM IS MADE TO THE EXCLUSIVE RIGHT TO USE "BOOK" APART FROM THE MARK AS SHOWN". Sorry about that.

</comment></comment><comment><USER45> Can't they just fuck off?

</comment><comment><USER46> "It's cleaner"

</comment><comment><USER47> sueBook.com :-)

<comment><USER48> We are in desperate need of a startup like that - a social media mechanism that organizes classes (as in class action) and goes after companies. Let lawfirms bid on the cases (percentage/prestige + vote on the best lawfirm to take the go)</comment></comment>


A Letter to Apple - <AUTHOR> http://joegoesghana.blogspot.com/2008/06/letter-to-apple.html

<comment><USER2> This is really lame, and sadly, it is already on the front page of HN.

</comment><comment><USER3> Uh, what?</comment>


The Reason Silicon Valley Hasn't Built a Good Health App - <AUTHOR> http://www.theatlantic.com/technology/archive/2012/03/the-reason-silicon-valley-hasnt-built-a-good-health-app/254229/ <comment><USER2> From my experience with a couple health related start-ups, I would suggest that the lack of good health apps has much more to do with the current state of the health care system, and less with entrepreneurs familiarity with healthcare. The main problems that make innovation difficult are:

1) Government regulations - healthcare is and has been an important political issue, and because of this there is a mountain of legislation that must be accounted for when operating in the field.

2) Healthcare bureaucracy - The interlocking relationships and ecosystem of healthcare from Patients to Doctors to Hospitals to Insurance Companies to Government is even difficult for insiders to navigate.

3) Fear of liability/litigation - Healthcare is a scary place for "bleeding" edge technology, and few institutions are willing to be operating there.

</comment><comment><USER3> there needs to be distinction made between health apps and healthcare apps. FitBit, Jawbone, etc are health apps but are NOT healthcare apps. Health apps are great for optimizing health for those who are already into fitness. Healthcare apps have a better chance of reaching people who actually need it because they are used clinically, by those in the medical industry. Therefore, "normal" people have no choice but to use them if the doctor says they have to. And by healthcare apps, don't think about iphone apps, think about stuff like SMS, or automated monitoring, or remote monitoring through phones.

The fact is most normal ppl don't care about their health until they get a heart attack.

</comment><comment><USER4> Yeap, it's really hard to create a succesfull startup when you're not your own client ;)</comment>


Clojure on Heroku - <AUTHOR> http://blog.heroku.com/archives/2011/7/5/clojure_on_heroku/ <comment><USER2> Remarkable. Congratulations, clojure folk, for a fairly mainstream Lisp coup.

[Edit: Also, props to the Heroku folk for doing something a bit off the beaten path. I'm sure clojure is lovely, but it wasn't the "obvious" next thing to work on.]

</comment><comment><USER3> This also means that technically there is no reason why Heroku Cedar couldn't support other JVM languages, such as Scala. It would be fun to watch Scala and Clojure fight it out on an even playing field.

<comment><USER4> Agreed - assuming they do plan to "officially" support other JVM languages in the future, that would be a pretty big deal:

* If JRuby got all the nice operational support that Heroku currently gives CRuby, it would be an awesome way to add power to an existing Ruby codebase (run the same code in JRuby, give or take a few gems, start taking advantage of Java libraries or using threads for better throughput).

* Heroku supporting Scala and Clojure could really boost their popularity - AFAIK there's no service for those languages that makes deploying a production-ready, public-facing web app as easy as Heroku does for Ruby.

 _Update_ \- I guess this quote from the article is relevant, and could indicate a reluctance to support other JVM languages:

 _Though growing quickly, the Clojure community is small enough to be approachable and accepting of new ideas. This is crucial for a platform like Heroku, which offers a deployment workflow that is a radical departure from that used for server-based deployments. Language communities with heavy investment in traditional deployment methods will be harder to adapt to the Heroku way._

<comment><USER5> Scala and Clojure can both be deployed to Google AppEngine.

<comment><USER6> See <https://github.com/gcv/appengine-magic> to help get Clojure working on App Engine. It's quite nice and the docs are pretty complete.

</comment></comment></comment></comment><comment><USER3> sweet but surprising. This would probably never have happened if the author of Ring didn't work for Heroku.

Anyway, definitely a major milestone for the most elegant language of the last 5 years.

<comment><USER7> I'm pretty sure you're talking about Brat or Ioke, although I'm not sure. :D

<comment><USER8> <https://github.com/mmcgrana/ring>

<comment><USER9> GrooveStomp is referring to the "most elegant language" part of the post -- not the part about the author of Ring.

</comment></comment></comment></comment><comment><USER10> Excellent news!

Heroku is the only reason I gave Ruby/Sinatra a try for a while. I love the idea of having Heroku-style deployment without giving up Clojure.

</comment><comment><USER11> Very interesting. Seems rather niche, though after the recent sale of Phenona (which I believe was on Hacker News a couple weeks ago), I can see why everybody would be rushing to become the cloud-deployment solution for any language vertical.

<comment><USER12> Maybe they're targeting the kind of people who stayed awake when PG talked about LISP.</comment></comment>


Scheme in Haskell: write a parser, learn two fascinating languages - <AUTHOR> http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutorial/overview.html <comment><USER2> This is a good tutorial. It's the first I found that showed how to do some basic but useful stuff, such as compile, include external files, and have code write to STDOUT. The other Haskell articles I'd seen jumped right into type theory and such; I prefer hands-on.

With Scheme in 48 Hours you get running code you can hack around with to see what does what.

</comment><comment><AUTHOR> I'm going through this over the weekend. The really trippy part, to me, is where he switches from using haskell to define the scheme parser, to using scheme to define the standard library (of course, run through the parser that was just written)</comment>


Predicting, Decrypting, and Abusing WPA2/802.11 Group Keys [pdf] - <AUTHOR> https://lirias.kuleuven.be/bitstream/123456789/547640/1/usenix2016-wifi.pdf <comment><USER2> the original link is not responding...

Here is a copy of the paper hosted on usenix,

[https://www.usenix.org/system/files/conference/usenixsecurit...](https://www.usenix.org/system/files/conference/usenixsecurity16/sec16_paper_vanhoef.pdf)

</comment><comment><USER3> [2016]</comment>


Xkcd - Linux, a cautionary tale - <AUTHOR> http://xkcd.com/456/ <comment><USER2> Ubuntu surprised the heck out of me. I was fiddling with the Wifi to try to get it to work when I decided I needed to download something. I connected the machine to the router using CAT5, and Ubuntu _connected to the internet and figured out what to do for me_. All I had to do was to tell it to proceed. Of course, in reality, it just probed the hardware configuration and downloaded a script someone else had figured out, but still, that was way impressive!

<comment><USER3> Nice to know it does that for somebody. I'm using the x64 version of Ubuntu on a desktop with a USB wireless peripheral. Since I installed in March I've spent months without a functioning wireless connection and several weeks without a functioning wired connection. Currently I have a length of cat5 cable strung out under my door, across a hallway, and into my roommate's bedroom where the router is kept.

My Ubuntu laptop also no longer has a working wireless connection. It's slightly older hardware (3 to 4 years) and I've given it up for dead.

I love using Ubuntu, but unless you luck out in the hardware compatibility lottery, it is a second job to get a system up and running. I actually did not have a functioning Ubuntu system until I quit my job and had the hours to devote to configuring everything over a period of 3 to 4 days, and then another 3 to 4 days when I updated to 8.04.

<comment><USER4> > unless you luck out in the hardware compatibility lottery

Try this site: <http://www.leenooks.com>

It'll show you what to avoid, with the idea being that pissed off people have more incentive to go say "the damn thing doesn't work with Linux!" than happy people have to go fill in some information about how everything works smoothly.

And incidentally, if anyone wants to help hack on the Rails-based wiki that runs it, or otherwise give me a hand with the site, I'd love the help:-)

<comment><USER3> I suppose the website you link to isn't entirely useless. If I were contemplating buying a new computer (and I am), I could check every component of a potential computer against the list. If one component were red-listed, then I would know that Linux would not run on that computer. I could then go to my next choice and check every component again.

However, while lists such as these might help me weed out potential computers that won't work, it cannot help me find one that will work. I cannot avoid the compatibility lottery for two reasons: 1) the list is incomplete and 2) hardware compatibility varies from distro to distro and release to release.

I suppose you could make a similar website for the last two versions of every popular distro. Then, I could take each potential computer I was considering purchasing and check each component's compatibility in each distro I want to use (if one system won't work in Ubuntu 8.04, then maybe it will work in 7.10). Please note that this consumer nirvana would only work if the lists were reasonably complete.

What I would love is a website that links to computers from major manufacturers where the current version of a given distro works 100% after install. Perhaps Ubuntu could link to a set of major brand desktops and laptops that work with 7.10 and 8.04. That would be much more useful than a list such as this: <http://tuxmobil.org/ibm.html> which isn't exactly an easy- to-use Linux shopping guide.

<comment><USER4> I bought one of these and it works quite well:

[http://www.dell.com/content/topics/segtopic.aspx/linux_3x?c=...](http://www.dell.com/content/topics/segtopic.aspx/linux_3x?c=us&cs=19&l=en&s=dhs)

<comment><USER2> A coworker of mine bought one and has high praise for it. I believe he has the 1420N.

</comment></comment></comment></comment></comment></comment><comment><USER5> My progression was thusly:

Day One: "Oh boy, Mandrake Linux sure is easy to install!" Day Two: "What the hell is this 'make' bullshit?" Day Three: "I think I'll try another distro..." Day Four: "Fuck it, I'm getting a Mac."

<comment><USER6> It's ironic this post is downmodded but the comic itself is upmodded.

Goes to show a valuable lesson for all aspects of life: Presentation matters.

<comment><USER4> The comic is sort of funny, but a comment about someone being scared off by make and Linux on a site for hackers is like someone on a cooking site saying "what's this blender bullshit, ah fuck it, I'm going out to eat".

<comment><USER7> Wait, I thought all real hackers use Macs.

(-1, flamebait)

</comment></comment></comment></comment><comment><USER8> I love the extra commentary when hovering over the image. It's quite often the funniest/most intriguing part of the comic.

<comment><USER9> Awesome. Thanks for pointing that out. I hadn't noticed it before your comment.

<comment><USER10> It seems to be a convention with several webcomics. I know Dinosaur Comics (<http://chewbac.ca>) and Achewood (<http://achewood.com>) do it, too.

</comment></comment></comment><comment><USER11> Back in late '99 early '00 I was given a retail boxed copy of SuSE Linux 6.2. Between that and Slashdot (believe it or not) I ended up on a path that took me to working with Unix professionally and programming on Free Software stacks. I learned C and compilation and kept going on up the chain.

The personal growth and achievement which was spurred by my introduction to Linux has just been phenomenal.

</comment><comment><USER12> Hm... I look at this as a history lesson. I jumped on Linux wagon fairly late, in 2006. Since then I had to install it on 4 laptops and 3 desktops, with minor hiccups related to wireless and video: nothing that Google couldn't solve.

And I never had to recompile the kernel. In fact, the only software I _ever_ had to compile on Linux was mine (I did compile my own builds of a few apps, but only because I wanted to enable some "experimental" features not available in standard repositories).

An isomorphic Windows comic would be about computer virus eating your cat or a pop-ups window bumping your grandma in the forehead.

</comment><comment><USER13> Reminds me of <http://xkcd.com/349/>

<comment><USER14> That one is just way too close to reality for comfort.

</comment></comment><comment><USER15> I am beginning to think the creation of xkcd cartoons could be automated. Just place some random stick figures, and use any one of the million computer poetry generators to fill the bubbles.

<comment><USER16> <http://www.dougshaw.com/garfield.html>

<comment><USER10> Closer still: <http://www.joshmillard.com/garkov/>

<comment><USER17> one more for this thread:

<http://garfieldminusgarfield.net/>

<comment><USER18> The concept is even funnier than the actual result: _Who would have guessed that when you remove Garfield from the Garfield comic strips, the result is an even better comic about schizophrenia, bipolar disorder, and the empty desperation of modern life? Friends, meet Jon Arbuckle. Let's laugh and learn with him on a journey deep into the tortured mind of an isolated young everyman as he fights a losing battle against loneliness in a quiet American suburb._

</comment></comment></comment></comment></comment><comment><USER19> Getting a high karma score is an addictive game. We might need to commit nickb in a rehabilitation program some day.

<comment><AUTHOR> I don't even care what my score is, biohacker42. I add few links each day and stuff accumulates.

<comment><USER19> I don't really care to get a high Tetris score, I just play it some times, occasionally I play for way too long. But it's not a subtle obsession or anything. I can quit any time.

</comment></comment></comment><comment><USER20> OK then <http://www.isxkcdshittytoday.com/>

</comment><comment><USER21> From my own experience as a GNU/Linux NOOB, I believe that if you research the hardware and the distro you want to run in relation to that hardware BEFORE you purchase, you will be fine. Sticking to the Intel chipsets (as I believe Linus himself recommended) will go a long way toward a smooth experience. And that's coming from a noob. I am on my first Ubuntu install on my soon to be old machine. I just built a new machine, and Hardy installed without a problem. Ran my 24 hour burn in test, no problems. So a diligent noob can indeed have a smooth experience provided he/she does his/her homework.

<comment><USER22> No problem with AMD here. (But that does not mean it's save.)

<comment><USER21> Oh absolutely, the machine I am on now (soon to be old machine) runs an AMD CPU, with an SIS chipset (not the greatest for GNU/Linux) yet I was diligent, and . . . it works! Have been running Feisty Fawn for almost a year, no major problems. I suppose there was a "luck" factor there, as I bought this hardware without researching into whether or not it was suitable for GNU/Linux.

The new machine however I carefully researched the hardware for and, no problems there either.

Now, I am not like evangelizing for Intel products, as you can indeed run GNU/Linux on hardware from other manufacturers yet I do find that Linus' statement regarding their chipsets is accurate, based on my own rather smooth experience with the 945GC Express.

</comment></comment></comment><comment><USER23> story of my life.

<comment><USER24> that's fine, but does xkcd really belong here?

<comment><USER16> please not this again

<comment><USER25> Agreed. Although there has been a considerable amount of "unsuitable" material make it to the front page of HN, there has also been a lot of pointless citation of this unsuitable material - to the degree that it dominates constructive dialog taking place.

HN is changing, no doubt, but as has been pointed out time and time again on HN, if it is of interest to the community at large, it belongs. The community is changing (undeniable) but, maybe it is that sometimes posts other than an amazing O(N) bubble sort are also of interest...

I, for one, enjoy chuckling at XKCD - typically I just go there myself (without the aid of a social bookmark site!), but perhaps this one is just relevant enough to make it on HN... Or maybe I am wrong.

<comment><USER26> It seems to me though that posting something like XKCD is simply for getting Karma. It's not like the people who read it don't already check every monday,wednesday and friday morning... or is that just me?

<comment><USER27> Not just you, but I belong in the camp that never checks xkcd on my own. Not a fan, probably never will be, but if the community thinks its interesting, might as well. This one was indeed interesting.

<comment><USER10> Anything updated periodically probably works better with RSS (subscription model), while sites like Hacker News seem better at aggregating interesting scattered content (and hosting the resulting discussion). There's certainly room for overlap (e.g. "look at the interesting post on this blog, subscribe if you like it"), but people submitting every single update as they occur will probably detract from the signal here.</comment></comment></comment></comment></comment></comment></comment>


Increasing transparency through advertiser identity verification - <AUTHOR> https://www.blog.google/products/ads/advertiser-identity-verification-for-transparency/ <comment><USER2> Prepare yourself for ads from amorphous organizations with names like _The Committee to Re-Establish Democracy_ or _The Project for a New American Freedom._ (No idea if these are real, I just made them up.) I suppose it helps to see precisely who is paying for an advertisement, but I don't think this is actually useful in a real sense.

The only long-term solution is education: foster a sense of skepticism towards all advertising and encourage reading information from a variety of viewpoints. Of course, Google's entire existence (and having destroyed traditional media's business model, the media itself) is predicated on ads, so don't expect anything this lucid soon.

<comment><USER3> > I suppose it helps to see precisely who is paying for an advertisement, but > I don't think this is actually useful in a real sense.

Think from the perspective of an advertiser. Earlier, an advertiser could pay for any ad anonymously. Now any ad you want to show can be traced back to you. This is a meaningful difference. Even if you as a viewer can't pinpoint the specific person behind an ad, they are not completely anonymous anymore (to Google, to law enforcement that may have a warrant, etc). Of course, this change comes at the cost of a reduction in freedom from the lack of anonymity.

<comment><USER4> Unless there is a government identification with photo of a real person associated with the ad, there is no transparency. Shell corporations and complex ownership structures will obscure any attempt at tracking the source otherwise.

<comment><USER5> Corporate structure should be public data and involve real people with verified identities, yes?

Anything that reduces the difficulty of tracing should be seen as an improvement. It's a long road from here to perfection, but that's no reason not to take a step.

<comment><USER6> Until that ownership takes an offshore detour.

<comment><USER7> Compliance rules could be extended to include due diligence on partners, and block contracts and payments to and from entities that have no clear ownership.

<comment><USER6> It could but realistically it's unlikely to happen. Nobody would ever accept taking responsibility for dozens, hundreds, or thousands of partners, and the expenses involved in validating every last one of them. Not to mention the lost business on either side. Even the IRS or banks can't keep up with long ownership chains or properly identifying customers and they have a more vested interest.

Laws and rules are far slower to adapt than the workarounds that bend them. And clear ownership says little. Everything can simply point to a more or less real identity that nobody will ever find.

Don't get me wrong, I'm not against such rules. I'm just saying that the likelihood of them achieving the results we imagine are slim.

<comment><USER8> How hard is a policy stating _maximum of n-levels depth of nested ownership allowed and any kind of cyclical ownership causes loss of control in both ways_?

<comment><USER6> I'm just talking about the expectations. Writing the rule is not the difficult part. Enforcing them is because it's extra effort and expense and it leads to losing some business. Shareholders are more than happy to support a company's ethics until they stand in the way of profit.

Finding an appropriate _n_ might be a delicate, many big (legitimate) businesses have really complicated ownership structures. Then you have to task someone with validating all of this. Whose expense is it to do the due diligence and check everything? WHo takes responsibility for failures in this regard? And finally it will mean some business is lost on both sides and it might be a lot of money.

Banks have anti money laundering policies yet still find ways to go around them all the time because they want the business. Banking secrecy wasn't there to protect privacy but to obscure shady activities. As I said, it's good to have the rule and I'm not against it but I have the feeling people have some unrealistic expectations from this. They just raise the bar a bit and filter out the "chaff" while still allowing larger interests to prevail.

<comment><USER8> > Finding an appropriate n might be a delicate, many big (legitimate) > businesses have really complicated ownership structures

It is something between 10 and 13, if you accept that governance structure of an organisation must match its social communication structure. It is something between 14 and 16, if you accept that governance structure of an organisation must match its business divisions. Any n>16 is prone to communication shortcutting.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> >This change will make it easier for people to understand who the advertiser is behind the ads they see

Call me skeptical, but won't it just lead to shell companies?

<comment><USER10> Sure, but this puts the spotlight back on the countries which allow shady crap.

Take the United Kingdom. Google says Foo Ltd. are the advertiser, who are Foo Ltd? Well the UK legally requires Foo Ltd. to register with Companies House, a government agency, and this registration legally must identify Persons with Significant Control, actual humans who make decisions for Foo Ltd.

But when you look closer you discover that Foo Ltd has a company secretary who lives in a run down area of an ex-industrial city, and who is listed as secretary for 1800 other companies, and its offices are registered as that person's flat. The PSC section is filled out with the name Offshore Holdings Inc. offering the address of a law firm in the British Virgin Islands, even though the law is clear that Persons means very specifically human individuals.

The UK could clean this up, but of course the people hidden behind this sort of thing are actually wealthy and powerful and are doing all they can to ensure nothing changes. Similar things happen in the US, and in several other developed nations you probably think of as law-abiding and straight dealing. Google can't fix any of that, so this is all you get.

<comment><USER11> >But when you look closer you discover

What percentage of people who view the ad are going to do this?

<comment><USER12> More than the number of people who were able to do so before. And hopefully if they find something shady they will let others know. This is why we require certain political ads to be attributed.

</comment></comment></comment></comment><comment><USER13> With verification, will Google be culpable the next time one of my users is redirected to a tech support scam from a Google ad?

At least twice a year at my business users are redirected to tech support scams from Google Search ads. Its always a similar story, "I searched for Amazon and clicked the first link".

<comment><USER14> If somebody with a blue check mark on Twitter commits a crime, is Twitter responsible?

<comment><USER15> No, because apparently it's in the public interest that it be seen. See [https://www.thedailybeast.com/twitter-we-cant-block-trump- be...](https://www.thedailybeast.com/twitter-we-cant-block-trump-because-hes- a-world-leader)

</comment></comment></comment><comment><USER16> For those interested, Facebook already does something similar, and also has an "Ad Library" [0] where you can monitor ads related to "social issues, elections or politics." It's pretty interesting, worth checking it out.

[0] [https://www.facebook.com/ads/library](https://www.facebook.com/ads/library)

<comment><USER17> Google also has a website similar to Facebook's Ad Library: [https://transparencyreport.google.com/political- ads/region/U...](https://transparencyreport.google.com/political- ads/region/US?hl=en)

</comment></comment><comment><USER18> This has big implications when advertisers get banned due to bad behaviors. Previously a bad actor who gets banned could easily just quickly reopen a new account. If they need to get verified, there are a few steps which increase expenses and turn around time. If they need to create a new shell entity every time they get banned, it adds significantly to amount of time and money required to get their shady advertising out.

This is particularly important right now as the cost of advertising on Google (and in general) is going down right now because of the pandemic.

<comment><USER19> It's a good time to be running shell company services. I wonder what kind of turn around time you could achieve...

The hard part will probably be finding an agent to represent the company. Assuming they validate bans based on company representatives.

</comment></comment><comment><USER20> Interesting. That's what I've been doing with SiteTruth for a decade. Unlike Google, I can't make advertisers give me documents, so I have to dig into public records.

I look forward to seeing what info Google provides to users. The demo is useless. Name and "Location: United States" isn't much. I doubt Google will really provide much info about their advertisers; they're paying customers. Search users are the product.

I'd want to see the actual name and address of the business (as required in CA and the EU), business license info (required in the UK), incorporation state and serial number (required for an EV certificate), and have an option to buy a business credit report from D&B. At various times I've put all of those on SiteTruth.com.

It's become harder to get the data needed. A decade ago, an online-only business with no clear ownership or street address was almost always a scam. Now, it's not uncommon, although the scam percentage is still high. Businesses are also allowed more anonymity now, this being considered "privacy". There are "low-doc" states, such as Nevada. Owners of postal mail boxes used to be public record; now they're anonymous. D&B used to encourage companies to publicize DUNS numbers; now they consider that proprietary. It's a great time to be an online scammer.

</comment><comment><USER21> Would be nice if the information was not two clicks away but rather front and center, especially for political ads, but a really good step nonetheless

<comment><USER22> This is the plan. Once google have verified the advertisers, they can 'help users understand the source of the advert' by replacing the mini _Ad_ icon with the advertisers' favicon, to increase transparency..

<comment><USER23> > _...with the advertisers' favicon, to increase transparency._

My mom thinks any URL with a _padlock_ next to it is über secure [0][1] and that she can give her bank details without worry.

[0] [https://zeltser.com/padlock-and-favicon-confusion-in- browser...](https://zeltser.com/padlock-and-favicon-confusion-in-browsers/)

[1] [https://support.cloudflare.com/hc/en- us/articles/200170416-W...](https://support.cloudflare.com/hc/en- us/articles/200170416-What-do-the-SSL-options- mean-#h_4e0d1a7c-eb71-4204-9e22-9d3ef9ef7fef)

<comment><USER24> This is why Chrome and Firefox changed it to a grey padlock instead of a green one

[https://blog.chromium.org/2018/05/evolving-chromes- security-...](https://blog.chromium.org/2018/05/evolving-chromes-security- indicators.html)

</comment></comment></comment></comment><comment><USER25> This is interesting timing given the general decline of ad revenue due to the COVID economic slowdown. I'm surprised and impressed that they are making things harder for advertisers when then are probably fighting harder for every ad dollar.

<comment><USER26> It doesn't hurt that GOOG has an incredible amount of capital on hand.

</comment></comment><comment><USER27> It is meaningless, because they accept corporate identities, and it is trivial to create shell corporations with meaningless names, like Americans For Good Stuff And Against Bad Stuff.

</comment><comment><USER28> There is a conference going on with Ernst & Young right now about identity verification, an Italian publication is posting verification data on the Ethereum blockchain, for each article. It is mostly for the publisher to protect themselves when people ask about whether they were actually the source, doesn't protect people from sharing fake sources or making it look similar with their own "verification" entries on a blockchain.

Steps!

<comment><USER29> If you haven't, check out Decentralized Identifiers [1] and Sovrin blockchain [2].

[1] [https://w3c.github.io/did-core/](https://w3c.github.io/did-core/)

[2] [https://sovrin.org](https://sovrin.org)

</comment></comment><comment><USER30> I'd settle for more transparency around the consumers of the ad. I've heard a few folks wonder aloud if huge percentages of their paid search volume is fraudulent. Transparency on the consumer side is good, but there should be more work to prevent bot traffic from eating ad spend.

</comment><comment><USER31> Interesting timing right before a U.S. election. Likely trying to avoid Russian disinformation like in 2016.

<comment><USER32> You realize they only spent 100k in Facebook ads in 2016?

<comment><USER33> At least someone gets a good ROI from Facebook ads.

</comment></comment></comment><comment><USER34> Would it possible for me to turn off all the ads from all the advertises?

Hypothetically, of course!

<comment><USER35> They have/had this, but it hasn't proven terribly popular: [https://contributor.google.com/](https://contributor.google.com/)

edit: I say "had" because I think it has changed forms over its lifetime. I think originally you could simply load up credits and it would cover ads across the web with blank images.

<comment><USER36> It would still track you though which is a bigger problem than the ads being visible.

</comment></comment></comment><comment><USER37> i think this is a great step. also we as a company dont have nothing against that, at least it would be more visible that some of our competition is faking a local presence.

</comment><comment><USER38> Interesting development — Will be fun to see who all the freelance superstar adsense pros are.

</comment><comment> cypherpunk-inst Very bad, anti-privacy, anti-anonymity development.

As governments around the world get increasingly totalitarian and everything gets regulated to death or outright illegal, the timing for Google to ban necessarily anonymous individuals, organizations and businesses couldn't be worse!</comment>


Our chance to live on, or slowly recede into history as a community. - <AUTHOR> http://dfischer.svbtle.com/our-chance-to-live-on-or-slowly-recede-into-history-as-a-community

<comment><USER2> I, for one, welcome the new hotness.</comment>


Ask HN: Open Problems in server infrastructure? - <AUTHOR> Bonus points if they can be worked on by a single person. <comment><USER2> There are a ton. There's been a lot of work on cloud-native applications, but little on applying those same principles to infrastructure. Everything about networking is unnecessarily crufty. We've probably only scratched the surface of what can be done with smart NICs.</comment>


Show HN: Lofi – A Minimalist Spotify Client with Better UX - <AUTHOR> http://www.lofi.rocks/ <comment><AUTHOR> Hi HN, a few weeks ago I made a "replacement" for the Spotify desktop app because I wanted a tiny player instead of a whole window I need to bring up to skip songs/etc. It's free & open source, works on Windows and MacOS and even has visualizations (remember those?). Anyway, I thought I'd share it here. Any feedback is welcome.

Download it by going here: [http://www.lofi.rocks/](http://www.lofi.rocks/)

MIT-licensed source code here: [https://github.com/dvx/lofi](https://github.com/dvx/lofi)

</comment><comment><USER2> Spotify has revenue in the billions each year. And while this is a nice bit of code and obviously scratches your itch, don't you feel maybe a bit silly doing their work for free?

</comment><comment><USER3> > "Lofi is light-weight and runs on less than 100MB of RAM."

Ah, when I first started programming this would have been tongue in cheek. But times change!</comment>