How to make Selenium tests reliable, scalable, and maintainable - <AUTHOR> https://www.lucidchart.com/techblog/2015/07/21/selenium-7-things-you-need-to-know-2/ <comment><USER2> Selenium tests are inherently slow, unreliable and flappy. They have been the bane of developers for every employer I've had. Do yourself a favor and write React and test your components without a browser driver in good ol' JS with the occasional JSDom shim. It removes almost the entire need for Selenium, which should be reserved for only the faintest of smoke tests. And please, if you have to use Selenium, use headless Firefox, because PhantomJS is very bad software.

<comment><USER3> I had a Rails consultancy (Makandra) recently work on a JS-heavy application that I happen to own, and they got Selenium singing on it, which had been beyond my capabilities for years. One of their tricks, which you can inspect the implementation of in their (public) utilities library [+], is using basically a vendored Firefox per project and VNCing into that Firefox to drive things around. It is thus off-screen and out of the way when you're using it, but apparently is more true-to-reality than headless.

The test suite they wrote has about ~600 tests and while they're slower than I'd like (2~3 minutes) they've been bulletproof since we got my dev environment configured properly. It includes some fairly complicated interactions, most relevantly around our calendar interface.

[+] [https://github.com/makandra/geordi](https://github.com/makandra/geordi)

<comment><USER4> I had been using Firefox driver in Xvfb but wasn't happy with the performance/stability. So I built a Selenium driver out of Java only (using JavaFX's embedded WebKit) and used a headless JRE windowing toolkit (Monocle). My project is still a pre-release but the headless capability, Java-only system requirement, and its ajax handling might make it useful to some people currently: [https://github.com/MachinePublishers/jBrowserDriver](https://github.com/MachinePublishers/jBrowserDriver)

<comment><USER5> This looks very interesting!

1\. How does it compare with phantomJS?

2\. What's the current webkit version?

3\. How often does the javaFX webkit update?

<comment><USER4> 1\. Not quite sure. I've only used PhantomJS via Selenium Ghost Driver. From that usage they're similar. The main difference is that my driver uses only Java so under the hood the JRE is launching WebKit through JNI and everything runs in the same JRE process.

2\. Current WebKit version depends on the JRE used. Oracle Java 1.8.0_45 has WebKit version 537.44.

3\. Java maintainers will update WebKit periodically, including within a major version. E.g., here they update WebKit for the 1.8.0_60 JRE: [http://openjdk.java.net/jeps/239](http://openjdk.java.net/jeps/239) ... Other than that I'm not sure.

</comment></comment></comment></comment></comment><comment><USER6> I currently manage a rather large test suite (around 700 different tests) using Selenium, which is all written in Ruby and Rspec (although I've also used Cucumber), and uses the gems Capybara (an abstraction layer for querying and manipulating the web browser via the Selenium driver) and SitePrism (for managing page objects and organizing re-usable sections).

The entire suite runs in around 10 minutes on CircleCI, using 8 parallel threads (each running an instance of the Firefox Selenium driver), and it is rock solid stable.

It took us a while to get to this point, though.

The hard part is handling timing due to Javascript race conditions on the front-end. I had to write my own helper methods like "wait_for_ajax" that I sprinkle in various page object methods to wait for any jQuery AJAX requests to complete. I also use a "wait_until_true" method that can evaluate a block of code over and over until a time limit has been reached before throwing an exception. Once you figure out ways to solve those types of issues, testing things with Selenium becomes a lot more stable and easy.

I have also used the exact same techniques (page objects, custom waiter methods for race conditions, etc) to test mobile apps on iOS and Android with Selenium.

It can be a challenge, but once you have a system down and you know what you are doing, it's not so bad.

</comment><comment><USER7> The most annoying thing I found with Selenium was that it wouldn't wait for the browser to respond to click events and rerender.

The approach in the blog post (and I think elsewhere ... not sure) is to poll the DOM with a timeout.

Is there a better solution to be add with something like `executeScript`? You could run `requestAnimationFrame`, and then poll for an indicator that the click, etc. handler has indeed finished. That way if it fails, you know about it pretty soon, without the need for long timeouts. This is all just a guess though.

<comment><USER8> >Is there a better solution

Yes. And it's pretty simple:

        WebDriver driver = new FirefoxDriver();
        driver.get("http://somedomain/url_that_delays_loading");
        WebElement myDynamicElement = (new WebDriverWait(driver, 10))
      .until(ExpectedConditions.presenceOfElementLocated(By.id("myDynamicElement")));

From : [http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp](http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp)

<comment><USER9> I'm not sure this satisfies your parent poster's requirement of: "if it fails, you know about it pretty soon, without the need for long timeouts."

<comment><USER8> Well, you need to have _a_ timeout.

You can make the timeout shorter when running the test on a dev environment, though, so you get quicker feedback about errors.

</comment></comment></comment></comment><comment><USER10> Nice rundown, wish I had read this a year ago!

> One developer designed a way to take a screenshot of our main drawing canvas > and store it in Amazon's S3 service. This was then integrated with a > screenshot comparison tool to do image comparison tests.

I would also take a look at Applitools [https://applitools.com/](https://applitools.com/) — they have Selenium webdriver-compatible libraries that do this screenshot taking/upload and offer a nice interface for comparing screenshot differences (and for adding ignore areas). Way fewer false failures than typical pdiff/imagemagick comparisons.

<comment><USER9> If using Selenium's Python bindings, you can take a screenshot from Selenium and convert it to OpenCV format like this:

        cv2.imdecode(
            numpy.asarray(
                bytearray(base64.decodestring(driver.get_screenshot_as_base64())),
                dtype=numpy.uint8),
            cv2.CV_LOAD_IMAGE_UNCHANGED)

(where `driver` is your WebDriver object, e.g. `WebDriver.Chrome()`).

Then to match that frame against a previously-captured "template" image, you can use stb-tester's[1] "match" function[2] which allows you to specify things like the region to ignore and tweak the matching sensitivity.

[1] [http://stb-tester.com](http://stb-tester.com) [2] [http://stb- tester.com/stb-tester-one/rev2015.1/python-api#st...](http://stb- tester.com/stb-tester-one/rev2015.1/python-api#stbt.match)

</comment></comment><comment><USER11> Everyone in the blogosphere (and at my own company) writing non-app-specific layers on top of selenium suggests that there is scope for a higher level framework that can be used on top of selenium. Or that the selenium api is too thin a layer over webdriver.

Does anyone know of such a project?

<comment><USER8> I did the exact opposite. I ripped out some robot framework tests and replaced the code with python using selenium webdriver. Works great.

<comment><USER12> can I ask why you decided to do this? The tests were just flakey while in robot framework world?

<comment><USER8> I absolutely hated the robot framework. The DSL was just horrible to use. It had weird, unnecessary syntax quirks and gave you the minimal amount of information if something failed (wouldn't tell you which line number it failed on, for instance).

The tests were also flaky as hell but that was more to do with poor environment management. That, admittedly, was also easier to fix in python.

</comment></comment></comment></comment><comment><USER13> Here's the presentation the post is based on: [https://www.youtube.com/watch?v=5K6bwikZulI](https://www.youtube.com/watch?v=5K6bwikZulI)

</comment><comment><USER14> The PageObjects tip is a really good one. Previously using Selenium you end up with a complete maintainability nightmare.

I used Geb on a recent project, and I actually felt that the tests I built demonstrated a passable level of engineering discipline. However, Geb was really hard to learn (partly the error messages were really confusing/missing) and you're still on top of Selenium so you still get wacky exceptions and edge cases.

</comment><comment><USER15> Also, by switching from Java to Ruby ecosystem is one way to improve your selenium tests. For start, use watir-webdriver and page-object gems.

<comment><USER16> Improve them how though? Speed? Reliability? If it's just a nicer API, that's all well and good, but until the key problems I face with Selenium are solved (slow and non-deterministic tests) then a nicer API to it is just rearranging deck-chairs on the Titanic.

<comment><USER15> It seems that you try to use selenium 2, or webdriver, in order to run your unit tests. Selenium is for browser test, and by its nature it can not run in milliseconds. Its execution time is in seconds. Even when use phantomjs webdriver. It is integration testing approach because it combines execution of several javascript modules. That run in real browser. Selenium has its purpose, but fast test execution is not one of them.

<comment><USER16> > It seems that you try to use selenium 2, or webdriver, in order to run your > unit tests.

Nope. Integration tests. But integration tests that start a Firefox instance from scratch and have to be rerun multiple times to pass due to non- determinism are slow.

<comment><USER15> Could you please provide one example of non-determinism? I would like to understand what exactly do YOU mean by that term.

</comment></comment></comment></comment></comment><comment><USER17> Some very good information in this article. It is true that Selenium has its quirks, retrying a failed test can sometimes result in a passing test.

Disclaimer: I work for [https://testingbot.com](https://testingbot.com) : at my work we offer our customers automatic retries when a test fails. Writing a Selenium test does take its time, but once you run it in parallel across hundreds of browser and os combinations, it's worth it.

<comment><USER8> >retrying a failed test can sometimes result in a passing test.

This is usually a sign of either a buggy test or buggy code.

</comment></comment><comment><USER18> I wonder if there are stories about running Selenium tests in production. Something in the lines of semantic monitoring ([http://www.thoughtworks.com/radar/techniques/semantic- monito...](http://www.thoughtworks.com/radar/techniques/semantic-monitoring))

</comment><comment><USER12> Great to see a HN post on testing, they seem few and far between to me!

</comment><comment><USER19> BrowserMob, that was a sweet service (based on selenium). Does anyone know what happened to those guys after they sold? I've always wanted to learn more about their story.

<comment><USER20> I don't know about the entire team, but Patrick and Ivan were at Neustar for a while. They're both at NewRelic right now.

</comment></comment><comment><USER21> I do find Selenium a overly complicated so thanks for the post.

<comment><AUTHOR> There is a nice presentation at the bottom with some code examples, too.

</comment></comment><comment><USER22> tldr; have developers help maintain automation tests

<comment><USER23> Summarizing away a technical article makes for a not very useful summary.

</comment></comment><comment><USER24> using it right now for my latest project, it is a nightmare. I have 1100 tests that have to run per night. I'm using PhantomJS. It is such a mess ! ! !

</comment><comment><USER9>
      > getWithRetry takes a function with a return value
      >
      >   def numberOfChildren(implicit user: LucidUser): Int = {
      >    getWithRetry() {
      >      user.driver.getCssElement(visibleCss).children.size
      >    }
      >   }
      >
      > predicateWithRetry takes function that returns a boolean and will retry on any false values
      >
      >   def onPage(implicit user: LucidUser): Boolean = {
      >    predicateWithRetry() {
      >      user.driver.getCurrentUrl.contains(pageUrl)
      >    }
      >   }

At first I didn't get the difference between `getWithRetry` and `predicateWithRetry`, but then I noticed that the former throws an exception whereas the latter returns false. I infer that `getWithRetry` will handle exceptions thrown by the retried function.

In stb-tester[1] (a UI tool/framework targeted more at consumer electronics devices where the only access you have to the system-under-test is an HDMI output) after a few years we've settled on a `wait_until` function, which waits until the retried function returns a "truthy" value. `wait_until` returns whatever the retried function returns:

      def miniguide_is_up():
          return match("miniguide.png")

      press(Key.INFO)
      assert wait_until(miniguide_is_up)
      # or:
      if wait_until(miniguide_is_up): ...

(This is Python code.)

Since we use `assert` instead of throwing exceptions in our retried function, `wait_until` seems to fill both the roles of `getWithRetry` and `predicateWithRetry`. I suppose that you've chosen to go with 2 separate functions because so many of the APIs provided by Selenium throw exceptions instead of returning true/false.

      > doWithRetry takes a function with no return type
      >
      >   def clickFillColorWell(implicit user: LucidUser) {
      >    doWithRetry() {
      >      user.clickElementByCss("#fill-colorwell-color-well-wrapper")
      >    }

Unlike Selenium, when testing the UI of an external device we have no way of noticing whether an action failed, other than by checking the device's video output. For example we have `press` to send an infrared signal ("press a button on the remote control"), but that will never throw unless you've forgotten to plug in your infrared emitter. I haven't come up with a really natural way of specifying the retry of actions. We have `press_until_match`, but that's not very general. The best I have come up with is `do_until`, which takes two functions: The action to do, and the predicate to say whether the action succeeded.

      do_until(
          lambda: press(Key.INFO),
          miniguide_is_up)

It's not ideal, given the limitations around Python's lambdas (anonymous functions). Using Python's normal looping constructs is also not ideal:

      # Could get into an infinite loop if the system-under-test fails
      while not miniguide_is_up():
          press(Key.INFO)

      # This is very verbose, and it uses an obscure Python feature: `for...else`[2]
      for _ in range(10):
          press(Key.INFO)
          if miniguide_is_up():
              break
      else:
          assert False, "Miniguide didn't appear after pressing INFO 10 times"

Thanks for the article, I enjoyed it and it has reminded me to write up more of my experiences with UI testing. I take it that the article's sample code is Scala? I like its syntax for anonymous functions.

[1] [http://stb-tester.com](http://stb-tester.com) [2] [https://docs.python.org/2/reference/compound_stmts.html#the-...](https://docs.python.org/2/reference/compound_stmts.html#the- for-statement)

<comment><USER25> Thanks for the comment. We actually originally had a waitUntil function that was basically used for all three of the cases I mentioned above. In some sections of the code, it was just there to eat errors, other sections get some text, and yet others it was wrapped in an assert and needed to return a boolean. This led to chronic misuse around the code (I found 4-5 tests that simply forgot to wrap it in an assert effectively rendering the test completely worthless). The main benefit we got from splitting the methods out was making it clear to developers what it did. Catching all the exceptions thrown by Selenium instead of returning booleans was just an added benefit.

And you are correct, we are using Scala. There are some really cool things about the language, case classes, pattern matching, first order functions, and traits just to name a few.

<comment><USER9> > This led to chronic misuse around the code (I found 4-5 tests that simply > forgot to wrap it in an assert effectively rendering the test completely > worthless).

Yes, I've been bitten by that too -- it's too easy to forget the "assert". This morning it occurred to me that I could write a pylint (static analysis) checker to catch that, so I've done just that: [https://github.com/stb- tester/stb-tester/commit/5e5bdbb](https://github.com/stb-tester/stb- tester/commit/5e5bdbb)

</comment></comment></comment><comment><USER26> I'm working for a startup that addresses this by means of a simpla wrapper API: [http://heliumhq.com](http://heliumhq.com). Human-readable tests with no more HTML IDs, CSS selectors, XPaths or other implementation details.</comment>


A viable shot at a better NHS has been killed off by privacy paranoia - <AUTHOR> https://www.theguardian.com/commentisfree/2016/jul/07/better-nhs-killed-privacy-paranoia-care-data <comment><USER2> > Personally, I can't work myself into a panic about my own privacy. I assume > it's never safe to commit secrets to email: I might press the wrong key.

I really can't wrap my head around this. How is this person trying to make an argument about data being safely collected for a greater good, when she doesn't even trust our contemporary systems to be safe for private communication ?

<comment><USER3> I think she said right there? She doesn't commit meaningfully to the data pool, so go right ahead and collect it for all the good it will do you.</comment></comment>


Things Unix can do atomically - <AUTHOR> http://rcrowley.org/2010/01/06/things-unix-can-do-atomically.html

<comment><USER2> Some of the things he mention have nothing to do with Unix or Posix. __sync_*, for example, are gcc-specific. Similarly, F_GETLEASE, F_SETLEASE, and F_NOTIFY are Linux-specific fcntl() operations. And as far as I can tell, the -T option isn't included in the Posix spec for mv, either (<http://www.opengroup.org/onlinepubs/000095399/toc.htm>).

<comment><USER3> The "POSIX spec" makes for a completely unusable UNIX, so I'm not sure why anyone would care what it says.

<comment><USER4> Because all the world is not Linux.

<comment><USER3> And even less of the world is POSIX.

</comment></comment></comment></comment><comment><USER5> This was post here about 4 months ago, <http://news.ycombinator.com/item?id=1035100> , lots of good comments.

</comment><comment><USER6> "UNIX-like/POSIX-compliant operating systems"

So what would that _not_ be?

<comment><USER7> Windows. (And don't even mention Windows POSIX.)</comment></comment>


9 Ways to Deal with Toxic People in Workplace - <AUTHOR> https://www.linkedin.com/pulse/9-ways-deal-toxic-people-workplace-anand-damani?trk=mp-reader-card <comment><USER2> i'm sorry but this is not a good article..</comment>


Nonprofit extension removes the gap between users' interactions of any website - <AUTHOR> https://joinvitri.com <comment><USER2> I hope this project gets more users, seems a nice tool but need a user base to work

</comment><comment><USER3> This is nice, great idea for a chrome extension

<comment><AUTHOR> I agree, only bad thing is that this is pretty new and with no users</comment></comment>


Show HN: PerfBeacon – Measure Site Speed via API or Schedule - <AUTHOR> https://perfbeacon.com/ <comment><AUTHOR> Hi HN, I'm Max - I built PerfBeacon as an automated wrapper around Google Lighthouse to automate a repetitive part of my job as a frontend developer. With the API set up to run at the end of CI/CD, it makes it fast to iterate on performance tweaks.

It's build with React and GraphQL, with Google Lighthouse running in isolated containers.

Happy to answer any questions!</comment>


97 people in 16 nations charged with using hijacking software - <AUTHOR> http://www.bostonglobe.com/business/2014/05/19/fbi-says-blackshades-infected-half-million-computers/eFTo6LKyIwj7sCcvxc6e6L/story.html

<comment><USER2> Why where THEY arrested and not the NSA guys? Oh right, the US armed forces.</comment>


How to be a hacker - <AUTHOR> http://www.theguardian.com/technology/2013/dec/27/how-to-be-a-hacker <comment><USER2> I thought this was going to be about bash, vi, SICP, cryptanalysis, emacs, asm, or maybe something about 3d printers, or fpgas, or soldering fine point smd ICs onto home stenciled PCBs.

This isn't about being a hacker at all. It's about doing some entry level penetration testing with a software suite designed for that purpose.

<comment><USER3> That was also my initial takeaway. To me hacking is about understanding how it all works. Using a tool isn't a problem but the guy that wrote the tool is a hacker, and you're only a hacker if you understand what it is you're doing well enough that you can solve unfamiliar problems that the tool doesn't already cover. Otherwise you are going to get stumped, which translates into getting caught.

To look at it another way: installing wordpress with some plugins doesn't make you a web developer.

Edit: I took this article's bait but I realized afterwards that this was all to ride off the recent Target fiasco.

<comment><USER4> Hacking meaning is complex. For me it means something ingenious, a way of creating or using a tool in a round about way. It's not even necessarily about computers. But it involves most of the time _creative uses of technology_. I mean, an passionate girl or boy can be a hacker, you don't even need a computer: electronic, craft, artists, vintage device, bicycles, motorbikes, food, biology, DNA, politics, sextoys, any activity field can be hacked.

If you use the penetration kit out of the box like you are supposed to do, I don't see any hacking here (even if it allows you to penetrate in a prestigious "open system").

In the opposite, if you hack a bit and can prove that you can open a car door with a computer and a network penetration tool, it start to be interesting.

Hacking is a huge field. Restrain it to computer networks rides is not fair, even if historically, it has been much more used by networks and telecoms people.

I think hackers are also people who create inestimable wealth. People who create a compiler, that will make possible for others to create languages, that will allow others to create tools, etc. are very strange. Why do they do that? Not because their boss ask them for.

A programming language is useless as far as you hadn't create something with it. Creation and hacking are very similar things.

<comment><USER3> I agree, it shouldn't be limited to computers.

</comment></comment></comment></comment><comment> vezzy-fnord "How to be a script kiddie" is more apt of a title.

This is embarrassing to actual infosec specialists and penetration testers.

</comment><comment><USER5> You're not a hacker until a hacker calls you a hacker. ([http://www.catb.org/esr/faqs/hacker- howto.html#hacker_alread...](http://www.catb.org/esr/faqs/hacker- howto.html#hacker_already))

<comment><USER6> Then who was the first hacker?

<comment><USER7> Doesn't matter. If there is no hacker you can call yourself a hacker without any other hacker complaining :D

</comment></comment></comment><comment><USER8> 'Eye of the beholder, as always. To my grandmom, I'm an elite weapons-grade hacker because I hit Ctrl-B to bold something in MSWord rather than clicking the button for it.

<comment><USER9> Totally. For all my real life friends I am beyond comparison when it comes to computers. Reading people's comments around here or on SO makes me think I know nothing...

<comment><USER10> The only true wisdom is in knowing you know nothing.

</comment></comment></comment><comment><USER11> Step 1: go on IRC

Step 2: change nick by adding 0x in front of your regular nym

Congrats you're a hacker

<comment> X-Istence Interestingly enough that won't work. IRC nicknames are not allowed to start with a number. My alternative nickname from X-Istence is 0x58, and on IRC I go by x58...

</comment></comment><comment><USER12> Oh my God! The secret is out. We're no longer safe!

</comment><comment><USER13> It's trivially easy to be a hacker, but luckily it's also trivially easy to defeat would-be hackers by keeping your computer up-to-date...

Right.

</comment><comment><USER14> Yes, using nmap, metasploit and meterpreter totally makes you a hacker.

<comment><USER15> Not even Norton can protect you from those tools. I think you need to re- evaluate what you think you know about hacking.

<comment><USER9> Hmmm norton can not, but PF & SNORT can ;)

Seriously 'security' and 'Microsoft' do not play well in the same sentence.

</comment></comment></comment><comment><USER16> People, take note... This article was written for Guardian readers, not the elite HN hacking corps.

<comment><USER17> Since there are a number of links to Guardian articles posted here daily, I'd argue that the 'elite HN hacking corps' and Guardian readers are the same thing.

</comment></comment><comment><USER18> Unfortunately, a poorly thought through article. This article seems to only promote FUD regarding information security. I hope the overall goal of creating robust systems is not lost by calling out certain tools. Security through obscurity is not security.

</comment><comment><USER19> Serious question: how insecure is Mac OS X to this kind of stuff?

<comment><USER20> How up-to-date with patches is that Mac OS X?

Safari doesn't have a great track record.

</comment></comment><comment><USER21> I'm going to put up 7 firewalls and buy a dog.

<comment><USER22> unplug the computer, stick it in a vault and hire armed guards.

<comment><USER23> ... and hope no one bribes the guards.

</comment></comment></comment><comment><USER24> Real hackers know Git. If you don't know Git, you don't know Shit. Am I right fellow hackers???

<comment><USER25> Only if your name is Mel:

[http://foldoc.org/The+Story+of+Mel,+a+Real+Programmer](http://foldoc.org/The+Story+of+Mel,+a+Real+Programmer)

[http://www.wps.com/J/LGP-21/mel-the- programmer.html](http://www.wps.com/J/LGP-21/mel-the-programmer.html)

The man didn't even use patch or diff! Now _git_ off my lawn kid!</comment></comment>


Avi Bryant: MagLev recap - <AUTHOR> http://www.avibryant.com/2008/06/maglev-recap.html

<comment><USER2> All this hype about MagLev, OODBs and Smalltalk that has come out of this Rails presentation has got me wondering about how some of this stuff works.

As I understand it, coding in Smalltalk involves developing code in an 'image' that is persisted to disk when you exit (sort of as if it dumps the entire memory contents to disk in a binary form that can be read back in). What sort of applications is Smalltalk suitable for? I know Seaside is a web framework, but a lot of the examples I can find show off more traditional GUI apps.

Does the image approach mean that Smalltalk is not really suitable for quick and dirty sys admin type scripts that you would use Perl or Ruby for?

I am fairly sure that HN doesn't use a traditional DB - and that if I recall PG said that Viaweb didn't either. With Viaweb, when a user logged into their admin console it loaded their environment into a process (and process memory) and kept it there (I think I read that somewhere).

Does that mean that each user had their own Lisp process fired up and kept around, and that data was just kept in process memory (and important stuff persisted to disk somehow)?

What I was thinking then is that if you had a web-app like Basecamp for instance (ie, an Account with no shared data between accounts), would it be technically feasible to have a different Smalltalk image for every single account that is loaded only when that account is being used, with basically all the account data inside the image? I am thinking memory could be a serious limiting factor here!

Sorry for the long rambling post - just trying to get my head around this stuff - hopefully someone on here knows something about it ...

<comment><USER3> As gnaritas posted below, yes, you could do that, yes, that's what Dabble DB does, and yes, memory is a serious limiting factor. That's where Gemstone comes in: unlike the Squeak VM, which we use, the Gemstone VM does not expect all objects to be in memory at all times, and can lazily load them in as needed.

<comment><USER4> Avi, you guys are seriously going to open up the stuff that's above the VM? I had been thinking about again picking up my own project to put Ruby on top of Smalltalk. I'm envious of your approach with working with the VM hackers to get custom bytecodes. This would be great for getting Ruby to run fast.

What of parallel projects on other Smalltalk VMs? It would be good for the Ruby community to have options. Gemstone might want to keep some sort of competitive advantage, however. (Email this userid at yahoo.com. Linkedin is not letting me send you a message, and so fulfilling their policy of keeping out riff-raf.)

<comment><USER3> I think and hope we seriously will, but it's not up to me. Certainly one side effect would be that, with a little work, you would be able to run Ruby on other Smalltalk VMs as well, and I think this would be a Good Thing. We'll see what happens.

<comment><USER4> Did you bootstrap a Ruby parser in Ruby into the image? Or did you take another approach?

</comment></comment></comment></comment></comment><comment><USER5> As an undercover Java guy at RailsConf and someone who worked with Gemstone/J, I am starting to think that Gemstone has finally found the passionate niche that it's always been looking to find. Rails and Ruby. The only thing Rails codes dislike more than Java is SQL

<comment><USER6> "The only thing Rails codes dislike more than Java is SQL"

Familiarity breeds contempt, doesn't it?</comment></comment>


Religion without belief - <AUTHOR> https://aeon.co/essays/can-religion-be-based-on-ritual-practice-without-belief <comment><USER2> If we broaden our definition of religion, it loses much of its descriptive power, and we'll have to invent a new word to describe the Abrahamic religions with their jealous God, which define clear in-groups and out-groups, that define modes of clothing and ritual that mark out believers and non-believers, that require some kind of sacrifice to belong, and that are fundamentally underpinned by the idea of a Covenant, a contract that rewards people for following the tenets and punishes those who don't.

Personally, I think religion is a fine word for this. I'd rather keep it that way. Ritual without belief and concomitant warm fuzzies of doing the Right Thing is something else.

<comment><USER3> That's a very interesting observation. I'd had to read an eye-opening book called "The Heathen in his Blindness" [1] to understand the cultural grounding I stand on.

As an Indian, whose own mother tongue has been neglected by the neo-colonial state, and thus whose own epistemological roots are muddied up with those from an over-bearing English imposition, it has become very difficult for me to see the difference between Abrahamic traditions and the contemporary Indian ones (in the city atleast). The latter simply don't make sense anymore (which is likely why a lot of people are irreligious).

On the other hand, more than half of the traditional schools in India don't believe in a creator, and it's not clear if any of them actually believe the "devas" (godlings?) exist. Buddhism for instance borrows heavily from the Indian pantheon of devas, but expressedly keeps mum about their existence; those on the "Astika" side like Mimansa, while attesting the grounding of the Vedas, don't believe in the existence or literal use of many of the categories in contemporary Hindu life. Other than these, there was also a school of determinism (slaughtered off by Ashoka), a (much maligned) materialist school, along with who knows how many others - many of them were atheistic (in the Abrahamic sense). I'm not even sure what the semantics of "creator" is in the Sanskrit literature; there is a lot it, but its study is seen with utter contempt (centers of Indic study are now in N.Y, Heidelberg and Kyoto). Likewise, Yoga, meditation... gained mass appeal in India, after they took off in the West.

Edit: Updated for clarity.

<comment><USER3> (continued...)

It's almost a curse to be able to see all this, and be able to do very little to ameliorate it. Considering the poverty of my native tongue, it'd be very difficult for me to express it to the masses. Even if I learn the millennia old language, no one would understand it.

[1] [http://www.cultuurwetenschap.be/pages/the- heathen](http://www.cultuurwetenschap.be/pages/the-heathen)

Edit: Update for clarity.

</comment></comment></comment><comment><USER4> > for the concept of religion to remain a useful cross-cultural category it > must be shorn of its Abrahamic assumptions and understood to refer to a > range of concepts and traditions that not only cluster around supernatural > beliefs, but also practices, like rituals and festivals.

I've been finding it interesting to look even at the Abrahamic traditions - what parts of the ritual / lifestyle / faith are valuable, even if you assume the supernatural claims are bogus?

On this topic I've been enjoying the work of Peter Rollins [1]. One of the points he makes is that often we desire certainty in our beliefs, and feel safe with certainty. And it's interesting to watch someone swing from being certain of the existence of a god, to being certain of the non-existence. What they believe has changed ("A god does exist" / "A god does not exist") but how they believe it is much the same ("I'm sure of this because of _____").

I guess that's the difference between being an (a)theist and an agnostic.

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

<comment><USER5> There are lots of patterns in my own religious tradition that I find valuable, separate from the aspect of faith.

Some examples:

\- setting aside the Sabbath as a day of rest. Different from the rest of the days of the week. A day for analysis of the direction of your life, recommitment to your values, and taking a break from the burden of everyday responsibilities and work and play.

\- ministering to neighbors. Watching out for and serving those around you. Having someone close by who cares and is willing to help.

\- tithing - dedicating a fixed, significant percentage of income to charity.

\- fasting - abstaining from food and drink for a day, and giving the money that would have been spent (and more if able) to help those in need. This has social benefit as well as personal physical and spiritual/emotional benefit.

<comment><USER6> Tithing isn't charity. If it was, you could give your tithe to a street person.

Try going to your temple/etc and telling them that you gave already. You'll quickly learn that it's an in-group fee, not charity.

And yes, many people get a lot from mindfulness. Why do you feel that it's only appropriate on one day of the week?

And how do you get there without faith?

<comment><USER7> > _Try going to your temple /etc and telling them that you gave already. > You'll quickly learn that it's an in-group fee, not charity._

Not sure where you're getting this but that hasn't been my experience at all. From my upbringing in several Catholic churches you're expected to "tithe" as a general principle but no one follows up with you on your accounts. My family always set aside our tithing amounts each year, but we got to distribute it as we saw fit, some to the church, sure, but others to scholarships or charities that we wanted.

<comment><USER8> The practice of tithing comes from a tax that existed to support the church and clergy. Saving ten percent of your income and distributing it as you please isn't tithing in the traditional sense, only the portion given to the church is considered a tithe.

</comment></comment></comment></comment></comment><comment><USER9> If you assume that religion isn't just a club for ideologues, what you get is more of a research-program.

There's a technique, there's a mystery, you do the technique to address the mystery.

Techniques : meditation, fasting, hallucinogens.

Mysteries : God, Tao, Ultimate Reality.

Given the lack of technique in most of what we call religion these days, I think what we're looking at is a degenerate form of something that was pretty cool once upon a time. What we've got is basically fanfic.

<comment><USER3> Very well put :) (although it probably doesn't fit the Abrahamic conception, practice and history).

<comment><USER9> That would be a case of the fanfic becoming the authority. Like a robot turning on its creators.

</comment></comment></comment><comment><USER10> > Are they religious or secular?

Secular, obviously. If you believe the ritual negates this, you're redefining terms to suit your prejudices.

<comment><USER11> But we also have to bring into question Christians that claim they are Christian but do not act like they are. Those people may claim to be religious, but they are clearly not. Does having no belief in your religion but still participating in some things mean you aren't religious at all? Really, most of this is about definition vs. Practice.

Agnostics can be considered atheists in practice but their definitions differ a bit.

<comment><USER12> Surely the only thing necessary to be Christian is belief in Christ and that he is our saviour or whatever?

<comment><USER13> A more clear example would be that in the U.S., most people claim to be either theists or atheists. But in fact very few of them are actually telling the truth, in that most of them are neither theists or atheists, but that's just how they self-identify for whatever reasons.

The point is that whether people self-identify as being religious or not has basically zero correlation with whether or not people are actually religious. E.g. the media often claims that atheism/non-religious/SBNR is the fastest growing religion, but there isn't really any strong evidence to support that.

<comment><USER10> > But in fact very few of them are actually telling the truth, in that most of > them are neither theists or atheists, but that's just how they self-identify > for whatever reasons.

Orly? What's the truth?

<comment><USER13> If you're asking whether there's some other category they fall into, not necessarily.

<comment><USER10> You said "very few of them are actually telling the truth". I'm asking what's the truth.

<comment><USER13> Just that they're neither atheists or theists. I.e. you're not really a theist unless you believe in an anthropomorphic god, just believing in an abstract conception of god isn't enough. And similarly you're not really an atheist unless you wouldn't believe in god even if you saw him, a position which even Richard Dawkins admits is untenable.

<comment><USER10> > you're not really a theist unless you believe in an anthropomorphic god, > just believing in an abstract conception of god isn't enough

This is based on a pretty specific set of jargon that most people probably don't even consider. I have a hard time believing that there's enough evidence either way to say whether more people who claim they're theists are actually deists, but it doesn't serve any purpose to conclude either way. As far as colloquial usage is concerned, there are a lot of people who are honest in their conviction as believers in "god" in some form or another, even if it isn't as specific as you'd like it to be for the purposes of that classification.

> And similarly you're not really an atheist unless you wouldn't believe in > god even if you saw him

That's just... I don't even know how to address that. Your first claim was extremely specific and conforms pretty closely to very well defined criteria, but this one drifts much further from the same set of criteria.

> a position which even Richard Dawkins admits is untenable

I wouldn't be surprised. Literally no one would find it tenable. Not even Richard Dawkins, who is wrong about nearly everything he says outside his professional career.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> alan watts said this best. You can walk into a eastern temple and enjoy it. laugh. do all the "silly" little rituals. Religion is _supposed_ to be fun and NOT serious. The min you make it deadly seriously and tell children THIS IS REAL you defeat the point. i.e. life is one big ride and silly. Life is very very silly and not even a little bit serious. Even when people die. Espeically when people die. Live your life this way and you won't fear death. You'll enjoy your silly number of X years you get on earth and want to live a good life cuz that's the most silly fun you can have. And _that's_ how you get people to be "reglious". NOT BY PREACHING or saying do this "moral" behavior. No no no. Live it up. Go to Burning Man. Enjoy the ride is what religion was trying to tell us but the message is all mixed up now.

<comment><USER15> I think this is completely culturally and moronically ignorant to such an extreme degree. You _wish_ this were true. I wish it were true. But it's complete, utter, bollocks. Life is one big ride and silly? Are you fucking high? You've traveled no where. You've read no history at all whatsoever. Yeah, what's going on in Syria is silly. Being drawn and quartered is one big ride. What the fuck ever. Idiot. You clearly got Alan Watts wrong.

<comment><USER14> oh I get your position. I felt that was true for years. The real question is, is a human death tragic? Even your own? And the answer has to be no. It's not. It's a goof this life. Dying is not the worse thing that can happen. Not living is. How do I think terrible things like torture and kids dying in Syria is silly? Because each human is NOT really a seperate thing that has to survive at all costs. Think of humans like pids or threads. They come and go. When a linux process dies is that tragic?

<comment><USER15> You're even dumber than I thought. No fool, it's not death that's tragic, it's human suffering. Torture for years before dying. Oh yeah, that's just a goof. Asswipe.

<comment><USER14> Well think about who taught you that life was serious. What was their agenda? Well they want to rule the world of course. What's the best way to rule over someone. Tell him to fear death and that their only choice is to do what you say and they will avoid a horrible fate. How can you be "saved"? just stop caring about your fate. Bring it on whatever is is. Torture, hard work situation, any adversity in your life. Laugh at it and you can't be ruled. That makes people very dangerous of course.

</comment></comment></comment></comment></comment><comment><USER16> >Because here's something else that's true. In the day-to-day trenches of adult life, there is actually no such thing as atheism. There is no such thing as not worshipping. Everybody worships. The only choice we get is what to worship. And an outstanding reason for choosing some sort of God or spiritual- type thing to worship-be it J.C. or Allah, be it Yahweh or the Wiccan mother- goddess or the Four Noble Truths or some infrangible set of ethical principles-is that pretty much anything else you worship will eat you alive. If you worship money and things-if they are where you tap real meaning in life-then you will never have enough. Never feel you have enough. It's the truth. Worship your own body and beauty and sexual allure and you will always feel ugly, and when time and age start showing, you will die a million deaths before they finally plant you. On one level, we all know this stuff already- it's been codified as myths, proverbs, clichés, bromides, epigrams, parables: the skeleton of every great story. The trick is keeping the truth up-front in daily consciousness. Worship power-you will feel weak and afraid, and you will need ever more power over others to keep the fear at bay. Worship your intellect, being seen as smart-you will end up feeling stupid, a fraud, always on the verge of being found out. And so on.

Look, the insidious thing about these forms of worship is not that they're evil or sinful; it is that they are unconscious. They are default-settings. They're the kind of worship you just gradually slip into, day after day, getting more and more selective about what you see and how you measure value without ever being fully aware that that's what you're doing. And the world will not discourage you from operating on your default-settings, because the world of men and money and power hums along quite nicely on the fuel of fear and contempt and frustration and craving and the worship of self. Our own present culture has harnessed these forces in ways that have yielded extraordinary wealth and comfort and personal freedom. The freedom to be lords of our own tiny skull-sized kingdoms, alone at the center of all creation. This kind of freedom has much to recommend it. But of course there are all different kinds of freedom, and the kind that is most precious you will not hear much talked about in the great outside world of winning and achieving and displaying. The really important kind of freedom involves attention, and awareness, and discipline, and effort, and being able truly to care about other people and to sacrifice for them, over and over, in myriad petty little unsexy ways, every day. That is real freedom. The alternative is unconsciousness, the default-setting, the "rat race"-the constant gnawing sense of having had and lost some infinite thing.

\--[http://bulletin.kenyon.edu/x4280.html](http://bulletin.kenyon.edu/x4280.html)

<comment><USER17> I think the article is a bit misguided there. The purest form of atheism ( = belief that there is no deity, as opposed to the rejection of belief in deities ) it is just another fundamentally unprovable belief system. If you wind the clock back far enough you always arrive at an undecided point where both assumptions - chaos vs. intelligent creation - become equally valid from our point of view.

I don't see how worshipping is universally linked to the human experience - except if you define following the scientific process itself as 'worshipping'. The whole point of it is that previous knowledge can be overturned by evidence, so there should not be any dogma - and if you find any in your field, there is something deeply wrong with it. There does seem to exist an uncomfortable trend of going down deeply untestable rabbit holes in theoretical physics however - string theory is the best example currently.

Now, when it comes to Computer Science, this field seems to be still full of dogma - for me a sign that it isn't really a scientific field (yet) to begin with. E.g. "X considered harmful" type statements by certain influential people become way too dogmatic way too quickly, without actually requiring evidence outside of a few usage examples.

</comment></comment><comment><USER18> "Earth is flat" \--Religion [https://en.wikipedia.org/wiki/Flat_earth](https://en.wikipedia.org/wiki/Flat_earth)

</comment><comment><USER18> Your Beliefs Doesn't Make You A Better Person; Your Behavior Does;</comment>


Hakyll is a Haskell library for generating static sites - <AUTHOR> http://jaspervdj.be/hakyll/ <comment><USER2> Compared to Jekyll (Hakyll's obvious namesake), it seems to take what is a remarkably simple system (ie. one that puts your focus _mostly_ on the HTML, CSS and JS and does all the hard work for you), and replaces it with something that you need to spend time actually learning to be able to even compile.

While Jekyll offers convention over configuration, this seems to go the other way. For a static website I'd rather focus on the HTML and CSS than a DSL that compiles it in a certain way.

<comment><USER3> While Jekyll offers convention over configuration, it is not that configurable at all. Hakyll is definitely harder to use, but more flexible as well. For example, it is possible to write a tool which mimics Jekyll, built upon Hakyll:

[http://jaspervdj.be/posts/2011-06-22-hakyll-contrib-small- bl...](http://jaspervdj.be/posts/2011-06-22-hakyll-contrib-small-blog.html)

</comment></comment><comment><USER4> Hakyll is an excellent and active project. I used it for the Solarized site and learned a lot about Haskell, though like many Haskell projects (xmonad) you can still get a lot out of it without being a real Haskell pro.

One neat trick I used was to scrub my pages using sed first (there's probably a better way to do this with just Haskell) so that I can use the exact same markdown and links on both github and my own server, and the images and download work on both:

[https://github.com/altercation/ethanschoonover.com/blob/mast...](https://github.com/altercation/ethanschoonover.com/blob/master/bin/site.hs#L112)

</comment><comment><USER5> Very nice.

> Integration with pandoc gives us markdown and TeX, ...

... reStructuredText, textile, and HTML.

PANDOC is, like, the most powerful thing ever made: <http://johnmacfarlane.net/pandoc/>

<comment><USER6> I am using MiddleMan, but I have pandoc parse the markdown first then pass the HTML over to MiddleMan. Pandoc is a godsend for academic writing, although I'm also using MultiMarkDown for some of the files due to the way it handles tables.

The author of Pandoc has his own Haskell static site generator, although to me it lacks the elegance of Pandoc.

<https://github.com/jgm/yst>

</comment></comment><comment><USER7> I really like the ethos of Hakyll, and have tried using it in the past but couldn't wrap my head around it. I feel the tutorials would benefit from something more for someone who is also new to Haskell and Markdown, as well.</comment>


Twitter's Spectacularly Awful 24 Hours - <AUTHOR> http://www.techcrunch.com/2009/05/14/twitters-spectacularly-awful-24-hours/ <comment><USER2> I think it's a pretty pissy thing for al3x (<http://twitter.com/al3x/status/1786897274>) to publicly denounce a controversial feature change like that... at least wait until the backlash is over! He needs to support his company's decisions, instead of being so eager to divert blame from himself.

Although my comment could be completely void if Techcrunch is overplaying the entire situation, which _is_ probably the case...

<comment><USER3> Once upon a time, I would have agreed with you about keeping gripes internal, at least until the dust settles.

But in the rising operating mode of constant deep interaction with a large vocal userbase, authentically sharing internal dissent might better manage customer expectations. It acknowledges and mollifies, a little, without making a commitment.

</comment></comment><comment><USER4> Is there a way I can exclude TechCrunch from my list? It's always puerile gossip or linkbait.

</comment><comment><USER5> It amazes me how _upset_ and _involved_ people are in an obscure option of a microblogging service. People who are so upset really need to get some freakin' perspective.

But what amuses me most is when commentators on the subject say the new system is convoluted. _Both_ systems were convoluted and weird. The new mechanism is just as weird as the old one was. Every website's features are just gentle wrappers around their underlying architecture. When you look at them carefully you can see the system underneath, and that system is complicated no matter what you do.

<comment><USER6> I don't understand why it was deemed confusing. If I follow somebody, I want to read ALL their updates, no matter if they are replying to somebody or not. What is confusing about just seeing everything somebody tweets? I find it very confusing to suddenly not see everything anymore.

Also I don't understand how it could have been a scaling issue, since it was just showing all tweets, no fancy filtering or anything. Removing certain tweets from the timeline seems a lot more complicated ("if tweet is reply and !user follows person_replied_to, remove post").

It makes me upset because it was one of the major ways to discover new people to follow on twitter. A lot of viral marketing schemes are also based on this (and I mean not in a bad way). So it is not just a small thing to change.

<comment><USER7> Obviously, I have no idea how the service was built and it's most likely much more complicated than what it looks like but I, too, was surprised to read that it was a scaling issue. I'd be curious to know why an @reply makes it different from a regular status update.

Also, (even though I don't really care that much honestly) as a new user, I would say that seeing everything was a way to discover other people and to potentially be discovered as well. I feel like it's important to discover people as the very beginning so that you get hooked on Twitter.

If anyone can think of an explanation on the scaling issue, I'd be happy to read it.

<comment><USER8> The best hypothesis on the scaling explanation is that at the point where your tweet is injected into the message bus, they have your full friend-of- followers network available. With that information, they can reduce the number of followers that they send a message to. Otherwise, they blast it to everyone, and then figure out on the receiving end if it's an @reply that that person wants to see.

What doesn't make sense about this is that if they were to store the @reply preference for your followers along with the friend-of-followers graph, they could maintain the original behavior, and avoid unneeded traffic on the message bus.

</comment></comment></comment></comment><comment><USER9> This article is pure gossip rag stuff, but at the same time it gives a nice timeline of events for those of us too busy to follow every little feature- change brouhaha. I wouldn't want to see too many articles in this style, but this particular one is ok, imho.

</comment><comment><USER10> _Problem 8: A server failed, making Twitter unusable for several hours._

Ahem... a single point of failure. Ouch.

<comment><USER11> I sincerely doubt it was _one_ server.

</comment></comment><comment><USER12>
      "Users will pick up on this waffling, smell blood and go in for the kill."

Not everyone is as adversarial as a TechCrunch author. (though I like Siegler's coverage there)

</comment><comment><USER13> Tired of hearing so much about twitter. It's like a reality show with these clowns. It should be an open protocol.

<comment><USER14> Pressure them to support OpenMicroBlogging..

</comment></comment><comment><USER15> I don't get it... I don't even have an option to turn off/on @replies to people I don't follow... I just see them all.

I've NEVER had an option to turn off @replies... is this only a thing for users who've signed up recently?

<comment><USER8> Unless you signed up in the last day or two, you most certainly did have that option.

</comment></comment><comment><USER16> Does something like Twitter really warrant this sort of response? I mean, if my power goes out, or my internet, or anything like that, I'd be reasonably upset with the utility company, but this is a free service. I don't use Twitter so I'm a poor judge of its value.

<comment><USER8> It's not really the users' fault that Twitter hasn't deigned to think of a business model.</comment></comment>


Firefox 29's best feature - <AUTHOR> http://christian.legnitto.com/blog/2014/05/05/firefox-29s-best-feature/

<comment><USER2> Nice feature.

I use firefox on linux/X11. So I often paste the URL with the middle mouse button. But not into the address bar. It's long-winded for what I realy have in mind: clear-adress+paste+go. I normaly paste the url with the middle button into the website-window itself. So I don't need to clear the address in the addressbar and the browser also jumps directly to the address. One feature chrome is missing entirely.

It's funny that your feature with missing "h" or "ht" in url-schemes works clearly in the addressbar of firefox29, but not when pasting the url into the website-window.

</comment><comment><USER3> Hmm..Not such a idea. It makes us sloppy if there is too much automatic correction involve. I am already having problems remembering simple things like my phone number as I can look it up on my smart phone. I would even suggest that my capacity to remember things would have been a lot better if I had lived before the invention of smart gadgets. My spelling has also suffered as a result of this automatic correction.

<comment><USER4> How can it be bad to stop remember everything by thought? It makes total sense for me to have my phone number written down so I don't have to remember it. I value my brainspace more than that.

So stuff that can be automated should be, so you can focus on what matters, the content of your words. Not your spelling of those words.</comment></comment>


The Tripcost estimates your travel budget plan for 3000 cities - <AUTHOR> https://thetripcost.com/?ref=hackernews <comment><AUTHOR> Hey HN, we are a studio of mobile and web developers from Kazakhstan. Here is the website if ur curious what we do [https://sprintsquads.com](https://sprintsquads.com) We have made a tool that would estimate the trip cost to any of the 3000 cities. We have gathered statistics and information about those cities from over 100+ various resources. The resource is free and has no ads in it. We know the price for a cup of coffee, a cinema ticket, a McMeal, a pint of local beer, a bus ticket, hotel night and hundreds of more objects in each of those 3000 cities

Check it out, leave your feedback, would be super appreciated. This website is done by the original nomads for nomads.</comment>


1 in 4 Biostatisticians Surveyed Say They Were Asked to Commit Scientific Fraud - <AUTHOR> http://infoproc.blogspot.com/2018/11/1-in-4-biostatisticians-surveyed-say.html <comment><USER2> 15 days ago:

[https://news.ycombinator.com/item?id=18364518](https://news.ycombinator.com/item?id=18364518)

</comment><comment><USER3> Discussed 15 days ago:

[https://news.ycombinator.com/item?id=18364518](https://news.ycombinator.com/item?id=18364518) (527 points/224 comments)</comment>


Ask HN: What are the foundational books on distributed storage systems? - <AUTHOR> <comment><USER2> GFS paper is a must read, I think: [https://static.googleusercontent.com/media/research.google.c...](https://static.googleusercontent.com/media/research.google.com/en//archive/gfs- sosp2003.pdf)

<comment><USER3> Is there any GFS as service?

</comment></comment><comment><USER4> HA ceph stuff?</comment>


Is genius being misdiagnosed as Asperger's? - <AUTHOR> http://iqpersonalitygenius.blogspot.com/2015/10/the-relationship-between-aspergers.html <comment><AUTHOR> It is likely that almost all significant attainment comes from (crucially depends upon) individuals (not on groups, not on institutions) - but the fact may be disguised because the products of creative genius can so easily be exploited by others: indeed that is their very value.

The breakthroughs made by a matter of some hundreds of men genetically- originating in Western and Central Europe over the past several centuries have affected every person in the whole world.

*

The exploitation may be so rapid that the name and even the existence of the genius has often been lost to history, or never known.

While it may take a one in ten thousand persons to make a breakthrough; the ability to recognize and use the breakthrough may be much commoner - one in a hundred, even one in ten...

</comment><comment><AUTHOR> [http://iqpersonalitygenius.blogspot.co.uk/2012/08/the- potent...](http://iqpersonalitygenius.blogspot.co.uk/2012/08/the-potential- genius-is-intrinsically.html)

Intelligent un-creatives are, I think, those relatively-few all-rounders among high IQ people: those high-IQ individuals with balanced abilities - <USER2> a pro-social (compliant, docile) personality .

Whereas potential geniuses have a significant element of unbalance, such that extreme abilities in one or more domains are not balanced by extreme abilities in other domains.

Therefore, in potential geniuses extreme high abilities are not held in check but are instead given free-rein.

*

This means that potential geniuses are all, more or less, unbalanced - <USER3> least by the standards of most people; and this unbalance can come out in terms of (more or less severe) psychotic symptoms (such as a tendency to hallucination, delusion, loose associations of thought, trance states), or psychopathy (selfishness, emotional coldness), or an impulsive and willful personality, or prone-ness to intoxication (as a cognitive self-manipulation), or extremely narrow interests, or a refusal or an inability to do what is required or expected...

*

There is no single pattern of unbalance - but I think it probable that all genuine P-Gs (and all true recognized geniuses) are qualitatively different from the norm as an intrinsic consequence of being unbalanced (unbalanced abilities being necessary to that creativity which makes them a recognized or potential genius).

They are all significantly oddballs in some way or another - eccentrics, mavericks, irritating, unreasonable, nutters, nasties... not team-players.

Recognized geniuses come from potential geniuses which come from those with specialized high abilities that are significantly un-checked and unbalanced; and such people are troublesome to have around, predict and control.

At any rate, the current ruling elite have implicitly decided to exclude such people from organized power - so while modern society has some potential geniuses, we have no actually recognized geniuses.

</comment><comment><AUTHOR> Dr Bruce Charlton is Professor of Medicine at Newcastle University, and Reader in Evolutionary Psychology. He is the co-author of a forthcoming book on genius, and has many interesting insights in other posts at the blog above.

In particular, many of his observations about the nature of creativity and its treatment by modern society seem to relate quite well to aspects of the hacker archetype.</comment>


5 Phrases You Never Want to Hear in a Presentation - <AUTHOR> http://www.instigatorblog.com/5-phrases-you-never-want-to-hear-in-a-presentation/2007/03/06/ <comment><USER2> Tangentially related:

http://paul.kedrosky.com/archives/2007/03/07/five_questions.html</comment>


Ask HN: Screencast software for demos? - <AUTHOR>

Looking for screencast software for PC. What do people recommend? <comment><USER2> It's not a well-known feature, but you can actually use VLC (<http://www.videolan.org>) for screencasting.

Go to Media > Open Capture Device > Capture Device, and select Desktop. This will open your desktop as a video source.

Then you can either use VLC's streaming feature (Media > Streaming) or record the desktop to a file by enabling recording controls (View > Advanced Controls).

</comment><comment><USER3> <http://www.techsmith.com/camtasia.asp>

</comment><comment><USER4> I did a DVD training series for PHPTR and we used Snapz Pro X. Works really well, and supports a lot of crap that perfeshunnal video people seem to understand (I just did what I was told).

<http://ambrosiasw.com>

</comment><comment><USER5> [http://www.microsoft.com/expression/products/Encoder_Overvie...](http://www.microsoft.com/expression/products/Encoder_Overview.aspx)

Expression Encoder.

Free for BizSpark and DreamSpark users.

</comment><comment><USER6> Anyone has any experience using professional screencast production services ? More specifically, with professional narrators or voice artists.

</comment><comment><USER7> I just made one using Screenium for the video, audacity for audio and iMovie for editing on the mac. Went pretty well, would recommend.

</comment><comment><USER8> <http://www.jingproject.com/> \- Works like a charm.

</comment><comment><USER9> Take a look at <http://www.debugmode.com/wink/>

</comment><comment><USER10> <http://screenr.com/>

</comment><comment><USER11> previous post: good comments <http://news.ycombinator.com/item?id=443542></comment>


How the Future of Storytelling Will Change - <AUTHOR> http://www.buzzfeed.com/storycourt/startup-to-make-storytelling-interactive-immersi-25e79 <comment><USER2> So the future of storytelling native advertisements? pretty grim.</comment>


PICO-8 Fanzine #2 - <AUTHOR> http://pico8fanzine.bigcartel.com/product/pico-8-fanzine-2 <comment><AUTHOR> For those interested, there is also a japanese translation of the first issue: [http://sectordub.itch.io/pico-8-fanzine-1-japanese](http://sectordub.itch.io/pico-8-fanzine-1-japanese) I'm sure the second will be translated in soon as well.</comment>


Raven Software releases source code for Jedi Academy, Jedi Outcast - <AUTHOR> http://www.polygon.com/2013/4/4/4181560/raven-software-releases-source-code-for-jedi-knight-2-jedi-outcast <comment><USER2> There is some interesting code in this release:

      void FuckingWellSetTheDocumentNameAndDontBloodyIgnoreMeYouCunt(LPCSTR psDocName)
      {
              if (gpLastOpenedModViewDoc)
              { // make absolutely fucking sure this bastard does as it's told... //
                      gpLastOpenedModViewDoc->SetPathName(psDocName,false);
                      gpLastOpenedModViewDoc->SetTitle   (psDocName);
              }
      }

My heart goes out to whatever programmer had to meet that deadline.

<comment><USER3> And thank God that Adria Richards didn't work at the company.

<comment><USER4> No reference to "dongle", so it is probably safe.

</comment></comment></comment><comment><USER5> Note that this also includes the second version of GHOUL, the ragdoll system Raven originally developed for Soldier of Fortune. IMHO, Raven was way ahead back then when it came to believable interaction between characters (and light sabres ;) ).

<comment><USER6> I'm not sure how good the ragdoll system was but I loved how the engine could model damage. I don't think I've seen a game since SoF2 that can render effects as good as that.

<comment><USER7> L4D2 is the only other game series that came as close.

SoF2 is still the bloodiest game I can recall playing, and not really in a fun way--kind of disturbing, actually.

</comment></comment></comment><comment><USER8> A bit off-topic, but if anyone remembers Raven Software for games like Hexen, Heretic, Shadowcaster, Black Crypt - the creators of these games have abandoned the developer many years ago. They work together at HumanHead Studios.

<comment><USER9> I still think the Serpent Riders trilogy is one of my top 3 franchises. The atmosphere, puzzles, etc all made my childhood. I hate how there is practically nothing in that geek-fantasy FPS genre with swords and sorcery that takes it seriously (besides Edge of Chaos).

<comment><USER8> Zeno Clash is the closest thing in my opinion. I don't think they take anything seriously, but it's not necessarily a flaw.

By the way, Hexen II initially had a different name. The game was later re- branded to Hexen II. This explains why so few things connect Hexen II and the other games, and why the setting is so generic medieval fantasy complete with Devil as the main opponent.

The 3rd game in the trilogy was meant to be Hecatomb. <http://www.johnromero.com/wiki/index.php/Hecatomb>

Another bit of trivia - Heresiarch from Hexen was initially meant to be the final boss. Check out the ending animation of Heretic. And Korax looks more like D'sparil's mount, not a boss. I read somewhere that was the original plan and they've changed it over the course of development.

Hexen, while a game with deep flaws (extreme switch hunting and "haha, you're stuck!" puzzles, repetitive combat, lack of class diversity, lame instadeath traps with no warning) is a game with charm. I made a gameplay mod for it, but then realized nobody cares about the game anymore and stopped developing it. If you're interested in it, I can send you the latest (unfinished) version. Highlights include:

\- Disc of Repulsion actually pulls enemies closer and down (flyers) if you're a warrior

\- Hammer of Retribution is a huge mana hog, but is reusable because it produces 20(depends on difficulty setting) mana where it hits. This was done to change the playstyle of Warrior class to be more in-your-face while still allowing him to kill enemies at a distance.

\- Quietus, the 4th Warrior weapon, has a railgun-like effect meaning projectiles pierce multiple enemies. This finally gave it a niche and it's a great weapon against swarms up close.

\- spiked gauntlets (fists) only have strong punches (called "critical hit" in the engine) for finishing blows.

\- flechette items work more like grenades and require good timing, they explode 1 second after first bounce

\- sapphire wand of Mage is severely nerfed in range to make room for other weapons.

\- Frost Shards deal 50% more damage

\- Bloodscourge (4th mage weapon) overhauled. Each projectile is guaranteed to home on a different enemy. Second, it deals extreme explosive damage, especially to the user. With Hexen's cramped level design, it makes it THE best weapon in the open and extremely dangerous in corridors. I also modified the homing algorithm, now it has no problem hitting enemies on high ledges. And a cosmetic effect - big clouds of smoke. Tim the Enchanter would LOVE it.

\- Wraithverge (cleric's 4th weapon) no longer attacks inactive enemies through walls, which used to wake half of the level and was obnoxious. Additionally, instead of killing enemies outright, it reduces them to 1 HP. Nice synergy with mace. Ghost AI makes them ignore crippled enemies.

Monsters: \- afrits (fire imps) have short-ranged flamethrower with interesting projectile physics.

\- stalkers (water lurkers) have very mean and currently unbalanced attack where they grab and immobilize you when they emerge. Any hit will break the grab.

\- fixed obnoxious bugs with Dark Bishop and Stalker Leader which caused them to attempt shooting through walls (sent the patch upstream)

The goal of the mod was to make enemies and weapons more varied and interesting, and to challenge a modern FPS player. It utilizes the obscure Vavoom source port, which is technically very advanced, has engine written in a scripting language, but is unfortunately quite buggy and poorly documented. I had some more ideas I wanted to implement, such as alternate effect for Chaos Device (shuffles positions of all monsters on the level using Knuth's algorithm). Overall, I love how the 4th weapons of Cleric, Warrior and Mage turned out, they're now a joy to play with (especially mage).

<comment><USER9> > I made a gameplay mod for it, but then realized nobody cares about the game > anymore and stopped developing it. If you're interested in it, I can send > you the latest (unfinished) version.

I still love the series. Send me it, it sounds interesting! Reminds me of Carnage Galore or Wrath of Cronos and how it modifies all the weapons and mixes them between games.

<comment><USER8> Okay, I've wrapped up the mod. Sorry that it took so long. The last real changes are actually from 2011. The first change common to all clesses, in detail: damage reduction from armor is no longer rounded down, actually based on chance proportional to AC, but the result is the same as with a float integer in the long run. Anyway, classes have innate AC - 1 for mage, 2 for cleric, 3 for fighter. This is very little and rounding errors mean it very rarely kicks in in vanilla Hexen.

<http://www.sendspace.com/file/0hsrgd>

Three main goals: \- improve balance \- improve variety of classes \- make classes play differently and have different pros and cons; the failure of vanilla Hexen is that all classes become plain ranged classes eventually.

Have fun ! I really appreciate feedback, I might even try working on it again. Feel free to tinker, and ask questions. The "progs" directory has more files than needed, I'm afraid there's some boilerplate because I wasn't 100% sure what's necessary.

</comment></comment></comment></comment></comment><comment><USER10> Outcast is still one of the best FPS Melee implementations I have ever played.

Excellent balance between melee and guns, matrix style fights, many hours lost in duel games. You felt like your skill in saber combat mattered.

If someone could only make an Star Wars MMO based on this core engine...

<comment><USER11> Agreed. That game is a gem. Have you seen Open Outcast? <http://www.openoutcast.org/>

</comment></comment><comment><USER12> Direct links: <http://sourceforge.net/projects/jedioutcast/> & <http://sourceforge.net/projects/jediacademy/>

</comment><comment><USER13> Raven did this for Elite Force quite a number of years ago (after much pestering from the RPG-X team and myself).

Our copy of that engine (heavily modified over the years); <https://github.com/UberGames/rpgxEF>

</comment><comment><USER14> If someone doesn't release a version of Jedi Outcast with g_saberRealisticCombat enabled by default, this whole thing will be a complete letdown.

</comment><comment><USER15> So cool! How long do you think it will take 'till we can

      apt-get install jedi-games

from a major repository?

Thank you, Raven! It'll be fun to read the code.

Edit: Not sure I ever expected to have a 'jawa' directory on my computer....

Edit2: Just one more gem.

       // Just give him normal pain for a little while

<comment><USER5> Forever. They only released the source code without assets.

<comment><USER16> I'm not sure, but wouldn't it be possible to get the assets from an original installation of the game ?

<comment><USER5> Sure, but how would apt handle that? Releasing an apt package with the assets would be copyright infringement.

All ID games suffer from the same problems.

<comment><USER17> Separate data and engine packages, engine package distributed by Debian, data left as the responsibility of the user. That way the iD games are in debian too.

eg. <http://packages.debian.org/wheezy/quake>

</comment></comment></comment></comment></comment><comment><USER18> Now how long until someone who know's what they're doing can tell me if it will work on OSX and write some install docs?

<comment><USER19> And how log until someone makes a browser-based version using EMSCRIPTEN, à la BananaBread?

<comment><USER20> It's a msvc++ project, so I guess that depends on how much work a person is willing to put into it.

</comment></comment></comment><comment><USER21> I hope someone starts working on releasing an improved and more modern version of Jedi Academy. It thought it was great for playing in multiplayer.

<comment><USER22> Agreed. It's the only multiplayer game I've found that had really fluid movement.

</comment></comment><comment><USER23> Jedi academy was one of my favorite games. This is very cool.

</comment><comment><USER9> These games were based off idTech3, I wonder if ioquake3 will refactor to support them.

</comment><comment><USER24> Why Sourceforge > Github these days? Sourceforge just feels messy in comparison

</comment><comment><USER25> Haha, 1829 instances of the comment //FIXME:

</comment><comment><USER26> I remember the multiplayer in Jedi OutCast and Academy were amazing. Before their time. It was so much fun playing (without the obnoxious kicks and force powers)

I remember the cheat code to have single player enemies die on "1 hit" with the light saber, you could cut arms and legs and heads off.

</comment><comment><USER27> That's awesome. I really wish this had happened with jedi knight though. It was so much better than academy and outcast, especially for multiplayer.

</comment><comment><USER28> sourceforge...seriously?

<comment><USER29> If you would prefer to grab the code from GitHub, I have uploaded it to a public repo:

<https://github.com/dpiers/Jedi-Outcast>

<https://github.com/dpiers/Jedi-Academy>

<comment><USER30> Hi, maybe you could add a README.md that says where the source comes from and how it is licenced? (it's GPLv2)

<comment><USER29> Done!</comment></comment></comment></comment>


What coders can learn from Rodney Mullen - <AUTHOR> https://www.youtube.com/watch?v=uEm-wjPkegE <comment><AUTHOR> About 11 minutes in the point hits home, but the whole talk is good.</comment>


How to set up an iPad for web development - <AUTHOR> https://www.theverge.com/circuitbreaker/2018/3/27/17152482/ipad-pro-web-development-setup-how-to-terminal-apps <comment><USER2> > Setting up an iPad for coding is my greatest feat as a computer user

What's a computer?</comment>


The tech industry has a problem with "bro culture" - <AUTHOR> https://www.nytimes.com/2017/04/01/opinion/sunday/jerks-and-the-start-ups-they-ruin.html <comment><USER2> Comments moved to [https://news.ycombinator.com/item?id=14014841](https://news.ycombinator.com/item?id=14014841). Both were on the front page, and that one was posted earlier.</comment>


Ridiculous_fish: I Didn't Order That, So Why Is It On My Bill, Episode 2 - <AUTHOR> http://ridiculousfish.com/blog/archives/2009/09/17/i-didnt-order-that-so-why-is-it-on-my-bill-episode-2/

<comment><USER2> 750 vertical pixels of header image is a bit much to scroll. I almost left the site thinking it was broken or contentless.

<comment><USER3> I almost did the same thing.

But then I started resizing my browser, expecting the site to immediately become useless when I did so. I was pleasantly surprised.

I don't necessarily like the design / layout, but it appears that they did it "the right way".

</comment></comment><comment><USER4> Analysis is good, but I disagree with the conclusion. If you don't use operator[], then you don't pay for it, and I'm not sure how often this really matters. If you cared about performance, you'd be using more references and fewer copies.

<comment><USER5> > If you don't use operator[], then you don't pay for it

The feature you pay for without using it is copy on write, not [].

In fact it's very clear in the paragraph before the last chunk of code:

> If you do use these functions, you risk paying for a write that you don't > make

<comment><USER4> I should have made more clear I never really expected COW, so I'm not terribly disappointed when I don't get it. The standard allows but doesn't require it, IIRC. But I don't see how I ever "pay" for COW. It's cheaper than copying when it works.

Or, like I said, if you want copies, it's because you want copies. If you just want cheap references, use references.

</comment></comment></comment><comment><USER6> ridiculous_fish is posting again! (I guess this happened circa June)

He's had some excellent blog posts.

<comment><USER7> He rewrote hexfiend too, which is my most favoritest piece of Mac software.

<comment><USER6> I was writing a plugin system for hexfiend a year or so ago to cover complex data definition overlays, a la 010 editor, but I think I might have mentioned it on here before. I lost the need for it and lost the time needed to put into it.

I had a chunk of c-like struct definition grammar done in lex/yacc that was turned into an AST that consumed some bytes from a hexfiend document and populated an outline view with a description. But it was messy and not what I wanted it to be.

What I'm trying to say is, I love hexfiend also.

</comment></comment></comment><comment><USER8> I love this type of analysis even thought I will probably never need to use it.

</comment><comment><USER9> _Could the C++ standard have fixed this? Sure – the C++ standard goes into great detail about when iterators and references into strings are invalidated, and all it would have taken would be to add the copy constructor and operator=() to the list of reference-invalidating functions (section 23.1.5, for those who are following along in the standard). A second option would have been to declare that operator=() invalidates existing references for writing, but not for reading. But the standards committee preferred simplicity, convenience and safety to performance – uncharacteristically, if you'll forgive a smidgen of editorializing._

Yes, it was uncharacteristic...but good god, imagine the chaos if your references were invalidated by any copy or assignment operation. I don't even want to think about the consequences for complex code. The standard committee was exactly right to choose the (avoidable if you're careful) performance hit over the complex "fix."

I disagree with his fix of casting non-const strings to const for a quick fix. The best way is to use const in the first place for any strings you don't plan to write to.</comment>


Ask HN: Tech Job Boards in US Cities That Are City-Specific? - <AUTHOR> Hey HN, thanks in advance for any help! I'm looking to recruit full-time programming instructors in various cities in the US including Raleigh, NC, Salt Lake City, UT, Seattle, WA, Atlanta, GA, and Austin, TX. Are there any job boards in these cities frequented by developers that I could post to? I don't mind paying for a job posting if it will deliver tremendous value. Thanks for your help! <comment><USER2> For Austin you can try Refresh Austin and Tech404 (Atlanta) slack channels.

[http://slack.refreshaustin.org/](http://slack.refreshaustin.org/)

[http://tech404.io/](http://tech404.io/)

I believe there is one for Atlanta as well.</comment>


Show HN: Philadelphia Toolkit – integrated aspnet core and Bridge.NET - <AUTHOR> https://github.com/todo-it/philadelphia/ <comment><AUTHOR> Hi, I'm d-p-y, one of the authors. Hope you find it interesting. If you have any questions please ask.</comment>


Secrets of the London Library - <AUTHOR> http://londonist.com/2016/06/secrets-of-the-london-library <comment><USER2> > The Football Association was established at a fiery meeting in which the > rules of football were laid down. Blackheath FC were overruled in their wish > to allow "hacking" (kicking an opponent in the leg)

That developed into its own, less popular, sport.

[https://en.wikipedia.org/wiki/Shin- kicking](https://en.wikipedia.org/wiki/Shin-kicking)

> Shin-kicking, also known as hacking[1] or purring, is a combat sport that > involves two contestants attempting to kick each other on the shin in order > to force their opponent to the ground. It has been described as an English > martial art.[1] It originated in England in the early 17th century, and was > one of the most popular events at the Cotswold Olympic Games until the Games > ended in the 1850s.[2]

Here's a short video from GLoucester shin kicking [https://www.youtube.com/watch?v=jN21wCbxjWk](https://www.youtube.com/watch?v=jN21wCbxjWk)

Gloucestershire is also home to the annual Cheese Rolling. (No broken limbs this year.)

<comment><USER3> People might like the novel "Rose" by Martin Cruz Smith (he of Gorky Park fame) who wrote a book set in Wigan which features (naked) clog fighting aka shin kicking.

[https://www.amazon.com/Rose-Martin-Cruz-Smith- ebook/dp/B006Q...](https://www.amazon.com/Rose-Martin-Cruz-Smith- ebook/dp/B006Q1SPUO)

</comment></comment><comment><USER4> Great institution, though a bit expensive. I heard about it through a blog post by Stephen Fry, who is a big fan: [http://www.stephenfry.com/2011/12/londonlibrary/](http://www.stephenfry.com/2011/12/londonlibrary/)

I did not join, but did go on one of their public tours, which was really interesting: [http://www.londonlibrary.co.uk/about-us/public-tours- events](http://www.londonlibrary.co.uk/about-us/public-tours-events)

</comment><comment><USER5> I would love to spend a few days there just taking it all in.

I visited Europe for the first time last year. My favorite part of the holiday was walking through the streets of the old village's in Germany and Switzerland marvelling at the history.

Here in New Zealand a 100 year old building seems ancient. So a 1,000 year old bridge was mind blowing.

We got invited to a mass in the church at the local castle in the village we stayed in, that was an unreal experience. Something I will never forget. I don't think Europeans realise how lucky they're to be so connected to there past.

<comment><USER6> >I don't think Europeans realise how lucky they're to be so connected to there past.

It is a double edged sword. Its great they have that connection but that can lead people to glamorize the past and to focus on trying to hold onto the past while neglecting the future.

When I spend time in the UK I am always surprised how frequently history comes up in conversation, how positively it is spoken about and how gloomy everyone's descriptions of the present and future are. Apparently the past was great and the future is bleak (even years pre-Brexit). There is one notable exception, the Margaret Thatcher years get brought up at least once a week by family/friends/strangers on the bus and described very negatively

In Australia where I am from the past bright/future gloomy logic is reversed. The past rarely comes up and discussions about the present and future tends towards optimism.

</comment></comment><comment><USER7> > Accompanying it is a Victorian version of Google — books are arranged by a > proprietary subject classification system designed by the organising supremo > Charles Hagberg Wright, librarian from 1893 to 1940.

I had up until this point thought everyone just used the Dewey Decimal system, but it turns out library classification algorithms are quite a bit more nuanced than expected.

> Some classification systems are more suitable for aiding subject access, > rather than for shelf location. For example, Universal Decimal > Classification, which uses a complicated notation of pluses and colons, is > more difficult to use for the purpose of shelf arrangement but is more > expressive compared to DDC in terms of showing relationships between > subjects. Similarly faceted classification schemes are more difficult to use > for shelf arrangement, unless the user has knowledge of the citation order.

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

</comment><comment><USER8> The London Library may be wonderful, but it embodies one side of the old "two cultures": disdain for the technical (quantitative) side of science and technology.

From Wikipedia (sorry):

"Pure and natural sciences, technology, medicine and law are not within the library's purview, although it has some books in all of those fields; books on their histories are normally acquired."

</comment><comment><USER7> > The books in the lending collection date from 1700 to the present day — > there are over one million of them, housed on the shelves together — and all > can be borrowed.

I wonder how they bill the cost of a lost book _that_ irreplaceable.

<comment><USER9> Somehow, the "my dog chewed on it" excuse would not cut it. :-)

Seriously, do they have a profile for those who can borrow a book, and under what conditions can the book be lent?

</comment></comment><comment><USER10> And so the net sings of its dying begetters. _Sic transit_.

</comment><comment><USER11> I have been a member for some years now and it's definitely my favourite place in London (and thus, the planet) but that's entirely because I'm somewhat institutionalized and feel quite at home here. Only a few weeks ago I discovered an entire stairwell and section I had no idea about. An absolute treasure and packed with treasure.

<comment><USER12> All your other comments from the last ~3yrs are marked as [dead] (and this one was, too) -- you might be hellbanned, just fyi. Declaring London above all else in the world is certainly controversial, but not downvote-into-oblivion contoversial ;)

</comment></comment><comment><USER13> Wry writing.

<comment><USER14> The field was trampled, but now I see the rye righting.</comment></comment>


Five Ways to Fix America's Schools - <AUTHOR> http://www.nytimes.com/2009/06/08/opinion/08levy.html?pagewanted=all <comment><USER2> This op-ed tells us exactly what we'd expect to hear from a member of the schooling establishment: Force people to attend more school, have the government pay more to encourage school attendance, and have the government rank colleges and universities directly.

The funny thing is, it starts by saying, "American education was once the best in the world."

Gee, I wonder what made it worse?

If there is such a thing as a crime against humanity, what these jokers have done to education ought to qualify.

<comment><USER3> He did make a couple of points that weren't completely self-serving. He recommended a longer school year. There was an article posted here a couple of weeks ago that showed that much of the difference between higher and lower income kids could be explained by the fact that higher income kids got continued education over the summer.

Making the college accreditation reports public sounds good. Having the government rank them, not so good. Having universities sponsor Super Bowls, stupid.

<comment><USER2> A longer school year almost certainly means more dependence on schools and more resources being directed to people like him, so they can be spent on more educational experiments. Even if you agree with this plan, I'd still call it self-serving. (This doesn't mean he's not a sincere believer.)</comment></comment></comment>


Why Is It So Hard to Study Marijuana? - happy-go-lucky https://medium.com/ucsf-magazine/why-is-it-so-hard-to-study-marijuana-d7a17c206fe1 <comment><AUTHOR> I recall that NIDA had some rather nasty quality control issues (you'd think you'd be able to do better with a budget of 69 million dollars)[0]. To be honest, I could imagine at least some studies being rejected for lack of adequate supplies. Not much point in trying to do science if your samples are heavily contaminated.

[0]: [http://www.pbs.org/newshour/updates/scientists-say- governmen...](http://www.pbs.org/newshour/updates/scientists-say-governments- pot-farm-moldy-samples-no-guidelines/)

<comment><USER2> Moldy samples from the only approved source? What a waste of taxpayer money. They should be held accountable.

<comment><USER3> They who? The farm? The scientists?

<comment><USER4> I'm guessing the farm.

</comment></comment></comment></comment><comment><USER5> Quick first point, the proper term to be used should be cannabis.

Back about 10 years ago I looked into this, the main problem was that the University of Mississippi was using very questionable methods to produce what they call "research-grade" cannabis. They were growing and then doing "thc extracts" (focused on just the thc content, not the other cannabinoids), and then spraying the concentrated THC onto what everyone who interacted with it called questionable "plant-matter", supposedly so they could more carefully control the THC percentages.

In essence, for a long time, all the studies that were using UoM cannabis were actually not using natural cannabis, so it's no wonder many of the studies failed in general.

Personally, after working in genetics for a while (just as a sysadmin), I came to the conclusion that the big guys like Monsanto just wanted to get all the IP/patents on the genomics so they could then do modified versions it would be illegal to grow on your own, and as soon as they get all that sorted, they will use their corruption of congress to get it legalized under their control.

On a more constitutional note, I personally have come to the conclusion that the government primarily has abused the commerce clause (as it has in many other instances) in order to get to this level of control in the "drug war". On top that, as a general principle, under natural rights, I don't think either the federal or state government has any rightful power to restrict what I do or do not do with my body, whether that be drink coke, smoke cannabis, or eat lettuce. Therefore on princple as a constitutionalist, I have to admit the real proper move is to legalize drugs and treat them as medical issue.

One of my primary criticisms of the recent recreational/legalization movement is that often in those states it is still illegal to grow your own. I think this is also unconstitutional, because there is no reason to require people to buy from someone else when they can easily grow it on their own.

What's next, you may not grow your own tomatoes or jalapeno peppers? A overly dramatic rhetoric for sure, but you get my point.

The other problem is that the drug war has essentially enabled pre-crime to become commonplace because that is what it is on it's face. We arrested that drug user because he is doing drugs and therefore will eventually commit a crime...

One more thing, I get really tired of people who pop adderall all week, get drunk all weekend, and smoke cigars of acting all high and mighty about people smoking cannabis.

<comment><USER6> Not everyone is a well adjusted fully mature individual though. As an extreme example, imagine a child shooting a classmate without understanding what death actually is. From the child's perspective, the "bad" that that classmate done may have been the worst thing he or she has ever experienced, having no other experience to calibrate.

Drug use similarly requires an established life, otherwise it consumes the life in a cycle of addiction. Simple curiosity can lead down a one way path.

Ideally parents will be responsible for the maturity of a child but that is far from the case.

Preventing people from falling through a floor is what society is supposed to do. Families that can insulate themselves can afford to not care about most aspects of society which are basically services for the "unwashed masses". In fact, these floors are often limiting to these families as the presence of a floor also correspondingly creates a ceiling.

To let the majority of society suffer from the consequences of "stupid actions" can only be said from a position of privilege. In an increasingly complex world with real one way switch reoercussions, society and culture has to be programmed to prevent people from falling through the cracks.

Chinese kids end up fairly well off for example because theie culture prizes education. The kids hate it growing up but it prevents them from falling through the "disdain for education" crack. The ceiling here is that you end up not having to think for yourself a lot and may never truly find what you really enjoy.

Creating a society is often about creating floors for safety while leaving enough leeway so that ceilings can be navigated. Often though this purpose is lost as the US has done with cannabis. The whole system literally pushes people downwards and never lets them rise.

</comment></comment><comment><USER7> Have we forgotten what the problem of secondhand smoke actually is?

Multiple pack a day indoor smokers keeping a space filled with carcinogens.

Sitting next to someone with a joint of Certified Organic Top Shelf California cannabis at an outdoor Paul McCartney concert is an absurd comparison.

</comment><comment><USER8> I would have bet money Obama would have moved it to Schedule III before leaving office.

<comment><USER9> I would have gladly taken that bet. He had 8 years to do so if he wanted to.

<comment><USER10> At the end of the day, he was just the same old establishment president. Didn't move the needle on mass incarceration, furthered crony capitalism.

<comment><USER11> Was he really though? In this presidential burger, he is a far cry from both Bush and Trump.

<comment><USER12> Perhaps. However looking at why people expected and hoped for and what they got from his presidency I can see how he gp's point stands.

It kinda makes me sad the best we have to say about him after 8 years is well he is not Bush. I had really bought into the whole hope and change rhetoric. But maybe it was my fault for being so gullible...

<comment><USER13> He had one Congress that wasn't controlled by Tea Party fanatics. With that Congress, he was able to pass universal healthcare (a feat that eluded even Bill Clinton) and Dodd-Frank while simultaneously battling a financial crisis that would have gotten much worse otherwise. The things that armchair politicians think presidents should squander political capital on (remember, marijuana legalization still isn't popular in most of America) astound me. With the number of ACA repeal attempts he had to fight, that Obama finished his presidency with only a single government shutdown is a wonder in itself.

<comment><USER9> * Even with the ACA, the country's uninsured is about 11% [0]

* Universal health insurance != universal health care

[0] [http://www.cnbc.com/2017/04/11/the-number-of-americans- witho...](http://www.cnbc.com/2017/04/11/the-number-of-americans-without- health-insurance-rose-in-first-quarter-2017.html)

<comment><USER13> The only reason it isn't universal is due to Tea Party controlled states denying free (to them) federal funds. The law as written was designed for universal coverage.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Anybody who believes that inhaling any smoke is harmless is fooling themselves.

<comment><USER15> When did anyone ever say inhaling smoke is harmless?

<comment><USER13> Read the first paragraph of the article.

</comment></comment></comment><comment><USER16> Pretty simple: cui bono?

</comment><comment><USER17> Interesting question which is then used to spread a lot of unsupported FUD about "second hand smoke" and imply that marijuana is as dangerous as Tobacco and state without any support whatsoever that the marijuana market will become dominated by mega-corporations the same as tobacco was.

<comment><USER18> Second hand smoke is dangerous, no matter what the source is. You're burning a fuel into carcinogens. Just because Marijuana might combust into something slightly less, doesn't mean anyone wants to breathe it.

<comment><USER19> Probably not as bad as diesel fumes, but no one gives a shit about those.

<comment><USER15> I don't know where you get the idea that "no one gives a shit about inhaling diesel fumes". That's an odd assertion to make.

<comment><USER19> In comparison to "ban smoking from parks", "ban electronic cigarettes", no one seems to give a shit. In fact I haven't seen any move to limit the fumes in any way.</comment></comment></comment></comment></comment>