Oculus Rift Exclusives on the HTC Vive – Proof of Concept - <AUTHOR> https://github.com/LibreVR/Revive <comment><USER2> Would pre-Facebook Oculus VR be as obsessed with code signing and attempts at vendor lock-in?

<comment><USER3> The SDK has always been relatively closed even before the Facebook acquisition. They've always touted it as being important for guaranteeing the quality of an experience which I don't necessarily disagree with but its also important for their goal of becoming the biggest VR software platform.

<comment><USER4> Before the facebook acquisition you could download the source code for the SDK and it had cross platform support.

After Facebook: Closed Source, Windows-only.

<comment><USER5> No, the Oculus server process that does the actual webcam analysis and communication with the HMD and graphics hardware has always been closed.

<comment><USER4> Yes, but this server application was only introduced with the DK2 and the 0.4.x SDK which was delivered after the facebook acquisition. Whether they would have hold back the source code without facebook - who the hell knows?

<comment><USER3> Huh, I didn't know that. I never really had a look at any SDK earlier than that. I just had a false memory that the DK2 came out before the fb acquisition. I do remember Oculus intimating that they couldn't open up the tracking code because it was some proprietary stuff they'd bought but that's almost certainly not the case now.

</comment></comment></comment></comment></comment></comment><comment><USER6> Oculus appears to be behind in hardware (room scale), software (fewer real VR games), and shipping date.

I don't think they will disappear because VR is obviously part of the future. But I wonder when they will be able to turn a profit. Vive and Valve have the upper hand and it seems like exclusivity agreements would only hurt Oculus at this point.

What innovations could the Rift make that give it some edge over future versions of the Vive?

<comment><USER7> _> Oculus appears to be behind in hardware (room scale)_

Room scale works well in Rift. Notably, there was a 15×11 room-scale test by Palmer Luckey himself[1], and comments from several prominent game developers including Fantastic Contraption[12].

 _> software (fewer real VR games)_

If the launch lineup of 30 games[7] doesn't convince you, and you're not interested in Minecraft[9] or the full back catalogue of PSP[10] or Wii[8] games, you can play any existing game in VR either in a large cinema display[6] or with full immersion[5].

 _> and shipping date._

The Vive is not immune to shipping controversy and severe miscommunication[2]. Issues have included delays, queue drops, miscommunication, and corrupt/fraudulent shipping costs[11].

 _> I wonder when they will be able to turn a profit_

The headset is being sold at cost. Facebook already turns a profit. Talking of Oculus as an isolated single business unit will become less possible as time passes, but it is already projected to reach profitability in 6 years' time.[3] HTC has recently experienced some financial difficulty.[14]

 _> Vive and Valve have the upper hand_

This is _far_ from as clear as you're making it out to be. There's an significant amount of fanboyism and internet-defense-force allegations in various rift and oculus discussion forums, it's important to not get caught up in rumor and allegations.

 _> What innovations could the Rift make that give it some edge over future versions of the Vive?_

Already, reviews uniformly state that the Rift headset has superior comfort[4]; that Oculus has a simpler out-of-the-box experience; that the integrated headphones significantly decrease complexity and cabling; and that Oculus Touch offers more precise control than the Vive wands, with full support for gesture detection[13] via the Half Moon ring. Plus, the inclusion of ATW directly in the SDK significantly increases comfort.

Of course the Rift isn't perfect either, and VR has a long way to go. It will always be desirable to have higher resolution, better framerate, lighter profile and better optics. But we are very lucky to have multiple companies competing in this space with genuinely viable offerings.

\---

1\. [http://www.roadtovr.com/oculus-rift-touch-room-scale-vr- palm...](http://www.roadtovr.com/oculus-rift-touch-room-scale-vr-palmer- luckey-works-fine/)

2\. [http://blog.htcvive.com/us/2016/04/vive-shipment- updates/](http://blog.htcvive.com/us/2016/04/vive-shipment-updates/)

3\. [http://www.alphr.com/oculus-rift/1001753/oculus-rift-to- sell...](http://www.alphr.com/oculus-rift/1001753/oculus-rift-to-sell-five- million-units-in-2016-but-wont-turn-a-profit-say)

4\. [http://arstechnica.com/gaming/2016/04/the-ars-vr-headset- sho...](http://arstechnica.com/gaming/2016/04/the-ars-vr-headset-showdown- oculus-rift-vs-htc-vive/) "If there's one area where the Rift unquestionably bests the Vive, it's in the design of the physical headset. I was comfortable wearing the Rift for hours at a time without breaks and without any desire to take it off. With the Vive, on the other hand, I found myself needing to take frequent breaks and constantly fiddle with the fit to get comfortable."

5\. [http://www.vorpx.com/vorpx-16-1-oculus-rift-cv1-support- rele...](http://www.vorpx.com/vorpx-16-1-oculus-rift-cv1-support-releases/)

6\. [http://store.steampowered.com/app/382110](http://store.steampowered.com/app/382110)

7\. [https://www.oculus.com/en-us/blog/introducing-30-games- comin...](https://www.oculus.com/en-us/blog/introducing-30-games-coming-to- oculus-on-march-28/)

8\. [https://dolphinvr.wordpress.com/](https://dolphinvr.wordpress.com/)

9\. [https://minecraft-vr.com/](https://minecraft-vr.com/)

10\. [https://forums.oculus.com/community/discussion/26990/ppsspp-...](https://forums.oculus.com/community/discussion/26990/ppsspp- vr-playstation-portable-emulator)

11\. [https://www.reddit.com/r/Vive/comments/4diw2t/money_disappea...](https://www.reddit.com/r/Vive/comments/4diw2t/money_disappears_in_thin_air_htc_claiming_express/)

12\. [https://www.reddit.com/r/oculus/comments/4bt7zj/fantastic_co...](https://www.reddit.com/r/oculus/comments/4bt7zj/fantastic_contraption_developers_confirm_room/)

13\. [http://www.roadtovr.com/hands-on-oculus-touch-is-an- elegant-...](http://www.roadtovr.com/hands-on-oculus-touch-is-an-elegant- extension-of-your-hand-for-touching-virtual-worlds/)

14\. [http://www.extremetech.com/computing/211972-htc-declared- eff...](http://www.extremetech.com/computing/211972-htc-declared-effectively- worthless-lgs-profit-margins-fall-to-a-penny-a-phone)

<comment><USER8> > Room scale works well in Rift. Notably, there was a 15×11 room-scale test by > Palmer Luckey himself[1], and comments from several prominent game > developers including Fantastic Contraption[12].

From your own sources, it's quotes from the Oculus founder, as well as game devs saying it's "almost as good" as the Vive, meaning Oculus DOES lag behind.

> If the launch lineup of 30 games[7] doesn't convince you, and you're not > interested in Minecraft[9] or the full back catalogue of PSP[10] or Wii[8] > games, you can play any existing game in VR either in a large cinema > display[6] or with full immersion[5].

He's saying he was not convinced by the games line-up, yes. What you're listing is three third-party mods, two of which of questionable legality (emulators), when factoring in the access to ROMs. And playing games in cinema mode is equally possible on both, so the original argument stands.

> This is far from as clear as you're making it out to be. There's an > significant amount of fanboyism and internet-defense-force allegations in > various rift and oculus discussion forums, it's important to not get caught > up in rumor and allegations.

Couldn't have said it better myself.

> Already, reviews uniformly state that the Rift headset has superior > comfort[4]; that Oculus has a simpler out-of-the-box experience; that the > integrated headphones significantly decrease complexity and cabling; and > that Oculus Touch offers more precise control than the Vive wands, with full > support for gesture detection[13] via the Half Moon ring.

The comfort does favor Rift on average, but it's not uniformly, as the Vive supposedly is more comfortable with glasses (I don't have glasses).

No citation on the simpler experience and more precise control. Everything I've read and watched has said that the Vive interface is a lot better. And "more control" I'm assuming you are referring to the Rift controllers that are not even released yet.

Your sources are questionable opinion pieces at best. Or reported press releases. Internet-defense-force indeed.

<comment><USER9> This just goes to show the rift vs vive argument is very much a subjective matter. However, objectively, the vives tracking technology is superior in design (and elegance) to the rifts. Though they may effectively produce the same result in 90% of cases, the vive has way more potential (tracking multiple people and objects, as its passive). For this alone IMHO the vive wins.

But of course, as there are many subjective factors to consider, so its going to be different for everyone. Having variety and choice is great for consumers though!

<comment><USER10> First off, I'm a huge fan of the lighthouse tracking system, and I'm looking forward to them opening it so I can use it in other projects. I do think it has some elegance to it.

That being said, it's not necessarily "superior in design". Because it uses a sweeping laser, it can't know where every tracking point is at the same time. It can't even measure each axis at the same time. The laser sweeps top to bottom and then side to side. For each tracking point, it records it's position in one axis at one point in time and the next axis at another point in time. If the tracking point has moved in between sweeps (which is likely), then you have two separate position measurements from two separate times that have to be combined with data from the IMUS to determine exact location. The Rift doesn't have this issue. The Rift records the location of all visible tracking points at the same time using an infrared camera.

It's important to keep in mind that Vive's lighthouse tracking system and Rift's constellation system only use the lasers and cameras to do drift correction. Most of the tracking is done by their IMUs (accelerators and gyroscopes), so the actual results you perceive will be very similar.

<comment><USER9> As you stated its not used for all tracking, but simply drift checking in pose estimation. So needing to update each axis simultaneously is not essential. The pose estimation is just updated with the latest values to correct for drift. At 60Hz this is sufficient, as the average movement speed of humans is likely not fast enough to produce noticeable problems.

The rift on the other hand has to do image processing. This requires significantly more processing power and is only as good as the resolution of the camera. The further you move from the camera, the less accurate it gets. The tracking device must also be tethered to the PC (via usb), limiting potential for adding multiple tracking cameras to improve accuracy. Also the more cameras you add, the more processing is required.

The vive does not have these issue - as long as the laser is in range, it will be as accurate as if you were right next to it. Adding more base units improves the accuracy at no extra processing cost. The design of the vive also allows pose estimation to be distributed. Ignoring occlusion issues in a small space, the lighthouse system could be used for tracking hundreds of devices.

What this essentially means, is that you can walk around a room with the vive and have a great experience [1]. While this might be possible with the rift, the experience is likely not going to be as good as the vive, and may be quite poor at times.

[1] [https://youtu.be/VD4UlShicgY](https://youtu.be/VD4UlShicgY)

<comment><USER10> First off, I want to reiterate that I'm most excited about the lighthouse tracking system, it fits well with projects where I'd like to apply tracking, but my main objection is to your comment that it's an objectively superior design. All designs have pros and cons. Also, I realize I'm nit picking, but there's a couple inaccuracies in what you've said:

I'm not sure where you're getting the significantly more processing power; particularly if you're comparing to lighthouse. General image processing can add latency, but they've constrained the tracking problem, and it currently doesn't heavily utilize the CPU [1] . You can perform similar tracking cheaply with an ASIC like castAR does [2]. Lighthouse still has to perform sensor fusion with different time stamps for the tracker locations as I previously mentioned, which can also be processor intensive. I haven't done or seen any CPU usage comparisons between the two, but I believe they'd be comparable.

You are limited by the resolution of the camera, but you can still get subpixel accuracy when tracking. With lighthouse, you don't exactly get infinite resolution either, but I do think lighthouse takes the cake here. Once again though, it's the IMU that ultimately determines the accuracy.

Lighthouse being untethered is one of the more exciting things to me as it lends itself well to doing tracking in large event spaces.

The limiting factor for lighthouse isn't whether the laser is in range, but whether the LEDs are in range. In between each laser sweep, the IR LEDs flash, so that the tracking points know when to start timing [3]. I believe they've improved the distance of this flash in the consumer Vive, but they will still limit the distance.

Adding base stations does help improve accuracy, just as it does with constellation, but it won't improve precision. It only helps prevent issues with occlusion. However, adding more base stations won't improve the precision of the tracking device's location.

I believe the current lighthouse systems are still technically limited to two base stations, because of how they are time multiplexed. They're planning on frequency multiplexing which should allow this to grow without having to connect the base stations.

Also, lighthouse is susceptible to IR interference in ways that constellation isn't. They both utilize IR for their tracking, but since each tracker in the constellation system flashes a pattern, it's able to eliminate environmental IR. Lighthouse doesn't have a direct way to prevent IR interference that I'm aware of other than accounting for potential errors in their pose estimation.

Lighthouse also has moving parts, so there's a chance for mechanical failure. The motors are manufactured by Nidec [4] who are one of the largest manufacturers of hard drive motors, so they should be very high quality, but it is a potential point of failure.

Lastly, your statement "while this might be possible with the rift, the experience is likely not going to be as good as the Vive, and may be quite poor at times," seems to be entirely speculation. There are several tests with both single and multiple cameras that have performed room scale tracking exceptionally well. [5] [6] [7]

These are both great technologies that have their own strengths and weaknesses. I don't think there's one objective winner here. That being said, I'm looking forward to the updates to lighthouse that they've been talking about to make lighthouse viable for large event spaces, and I could even see a day where other IOT objects utilize lighthouse for tracking in ways that wouldn't be possible with constellation.

[1] [http://uploadvr.com/oculus-cv1-positional-camera- efficient/](http://uploadvr.com/oculus-cv1-positional-camera-efficient/) [2] [http://www.theamphour.com/transcript-of- episode-147-absorpti...](http://www.theamphour.com/transcript-of- episode-147-absorptive-augmented-actuality/) [3] [http://www.pcper.com/reviews/General-Tech/SteamVR-HTC- Vive-d...](http://www.pcper.com/reviews/General-Tech/SteamVR-HTC-Vive-depth- Lighthouse-Tracking-System-Dissected-and-Explored/SteamV) [4] [http://www.nidec.com/en- Global/product/news/2016/news0108-01...](http://www.nidec.com/en- Global/product/news/2016/news0108-01/) [5] [https://www.youtube.com/watch?v=l_HlXzELHgo](https://www.youtube.com/watch?v=l_HlXzELHgo) [6] [https://www.youtube.com/watch?v=cXrJu- zOzm4](https://www.youtube.com/watch?v=cXrJu-zOzm4) [7] [http://uploadvr.com/room-scale-possible-testing-the- standing...](http://uploadvr.com/room-scale-possible-testing-the-standing- tracking-volume-on-the-oculus-rift/)

<comment><USER9> The rift has more steps in the tracking process. It has to track the dots of the currently displayed pattern. Transpose that into 3D space. Then it can perform triangulation.

The vive needs to only convert the time information to position relative to the base station. Then using the base station position, it can localise in 3D via the same/similar triangulation approach as the rift.

Hence, the rift requires significantly more processing power than the vive. This will likely introduce some latency, though its probably negligible to human perception. Furthermore, as the rift shows different patterns, it is possible, if moving fast enough for the patterns to move between frames, warping the dot patterns of the headset. This is a similar problem to the vive's sweeping. The major problem I see with the rift, is that adding more objects to be tracked only increases latency and complexity for tracking from a 2D image (more flashing patterns).

The lighthouse does not need to handle different timestamps for tracking. At each instant in time when new sensor data is received, the pose model is updated with the new sensor info (similar to a kalman filter). The pose model can be designed to update a single axis at a time though. There is only ~17ms between each axis update. You would have to be moving very fast to cause issues with tracking.

So, objectively the vives tracking is a superior design. Its elegant and simple. The vive and rift may perform similarly within the restrictions of their respective domains of use, such that 90% of the time people can't tell the difference. However, I would argue the vives domain is conservative. Start to move outside of those domains, the lighthouse system has much more potential and very few limitations that cant be reasonably/practically mitigated.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> The title is arguably inaccurate, as Oculus have repeatedly stated that these are Oculus _Store_ exclusives, not Rift _hardware_ exclusives, eg [1].

Since the Rift is the only PC headset currently supported by the Oculus Store, that's a bit of a technical distinction. But it does imply that they shouldn't have a big problem with this sort of compatibility layer existing, though they're unlikely to support it directly for obvious QA reasons. After all, you still have to buy the games from them!

[1] [https://www.reddit.com/r/pcmasterrace/comments/40ea0x/i_am_p...](https://www.reddit.com/r/pcmasterrace/comments/40ea0x/i_am_palmer_luckey_founder_of_oculus_and_designer/cytjqi3)

<comment><USER12> According to github, it seems that the VR stuff is codesigned, so to use the compat layer, you have to patch out the verification of code signatures, meaning that it is indeed tied to specific hardware in the code of each application

</comment></comment><comment><USER13> This is exciting work. I guess it makes sense for the fact that Oculus have a parts shortage causing delays, while the vive seems to ship.

It would be a shame if most games would stay exclusive to one or the other.

<comment><USER14> > parts shortage causing delays, while the vive seems to ship

I tried adding a Vive to cart and they gave me a June shipping date, same as my Oculus preorder.

<comment><USER15> Current estimated ship date for a new Vive order is "around June". Current estimated ship date for a new Oculus Rift orders is August.

</comment></comment></comment><comment><USER16> Does OpenVR require runtime? It's pretty confusing: [https://github.com/ValveSoftware/openvr](https://github.com/ValveSoftware/openvr)

        This repository is an SDK that contains the API
        and samples. The runtime is under SteamVR in Tools on Steam.

It sounds tied to Steam. Or it can work without it?

<comment><USER17> It's... slightly complicated. In theory OpenVR is "open" in the same sense as OpenGL in that it is an open API that anyone can implement (but which doesn't have a standardized open-source implementation). However right now that aspect of it is just theoretical since the only runtime implementation of OpenVR is the SteamVR runtime (which is only distributed through Steam) and Valve are solely responsible for defining the API (there's no equivalent to the Khronos Group for OpenVR).

<comment><USER16> I see. So Vive is de facto tied to Steam at present, but if another implementation will show up, it would be usable outside of it. Not a pretty situation, when hardware is tied to a distributor. Oculus situation doesn't look any better.

Will OSVR support it may be? I found only this: [https://github.com/osvr/osvr- vive](https://github.com/osvr/osvr-vive)

But it doesn't implement OpenVR, it only connects to existing one.

<comment><USER15> Are you asking whether the Vive is tied to Steam (the game distribution platform), or tied to OpenVR?

Currently Steam is the only game store that supports the HTC Vive, but as Valve co-founder Gabe Newell has said: [https://reddit.com/491hu4](https://reddit.com/491hu4)

And the leaked HTC Viveport demonstrates: [https://www.vrfocus.com/2016/01/htc-viveport-store-is- option...](https://www.vrfocus.com/2016/01/htc-viveport-store-is-optional- designed-for-people-who-cant-use-steam/)

There is nothing stopping other stores from selling games for the HTC Vive.

As for OpenVR (or SteamVR, Valve's implementation of it), I'm not sure it makes sense to ask whether the Vive is tied to it. Is your graphics card "tied" to your graphics driver or its OpenGL implementation?

The current situation, as MrRadar said, is that games can support OpenVR and headsets can adopt OpenVR without seeking anyone's permission. Compare that to the situation with the other leading VR headset and make of it what you will.

<comment><USER16> _> There is nothing stopping other stores from selling games for the HTC Vive._

How can developers do that, if there is no actual open implementation of OpenVR? Do they need to implement that runtime every time from scratch? Valve's repo only providers headers for the API, but actual runtime is distributed with Steam only.

Or you are saying that OpenVR isn't needed for using Vive, and some alternative SDK / framework exists that everyone can use?

 _> Is your graphics card "tied" to your graphics driver or its OpenGL implementation?_

If the only OpenGL implementation that exists is tied to some distributor, it means that hardware is tied to it as well (at least until some other implementation will show up). Do you expect developers implementing APIs like OpenGL or Vulkan from scratch every time they make games? Same thing here. It's wrong to expect developers to implement OpenVR if they don't want to be tied to some store.

<comment><USER4> The user will have to have steam running and steamvr installed.

The developers only link to the libopenvr_api library found on github and can distribute their game including this library on whatever store they like.

It's certainly not a good situation that the user still needs steam, but the games themselves can really be sold and distributed anywhere.

<comment><USER16> _> It's certainly not a good situation that the user still needs steam, but the games themselves can really be sold and distributed anywhere._

Well, I don't think requiring user to have Steam equals not being tied to it. I.e. you can't release the game let's say on GOG, and require users to have Steam client to play it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> Let's hope that Oculus see this and decide to open up, instead of lock down.

We can hope right?

<comment><USER19> I suspect Oculus Rift is gunning the high end much like the Apple strategy, so quality and exclusivity is going to be important value proposition. From the company point of view, this is the logical decision, since the Gear VR or Google Cardboard strategy probably won't give them much revenue.

<comment><USER20> The code released today is an early alpha, yet people say that the quality of the experience when playing the Oculus Store game on the Vive is excellent. That pretty much invalidates that argument.

</comment></comment></comment><comment><USER21> I'm happy to see an element of fanboy argument here. To me, it indicates that there is real competition and that early adopters are passionate and highly invested - both bode well for the future of the medium.

</comment><comment><USER22> After a week with the Rift, I'm pretty bored honestly. Most of the wow factor of looking around has faded and I want my Vive so I can use my hands.

<comment><USER22> I'm actually about to sell it today and just be VR-less until my vive arrives.

</comment></comment><comment><USER4> Unfortunately it doesn't matter much - The Vive will likely soon get Linux support, but all the Oculus games will remain exclusive to Windows, because that's the only operating system Oculus supports - even though most of the popular game engines used for VR do have a Linux version.

<comment><USER20> It does matter for the very few people who do not run Linux and use Windows instead for their gaming </sarcasm></comment></comment>


Apple Changes App Store Links to be SEO Friendly - <AUTHOR> http://www.michaelapproved.com/articles/apple-changes-app-store-links-to-be-seo-friendly/

<comment><USER2> Uhm. So now if I rename the app URL changes? How very inconvenient. I hope that at least linkshare URLs still work.</comment>


Continuations by example: Exceptions, time-traveling search, threads, and more - <AUTHOR> http://matt.might.net/articles/programming-with-continuations--exceptions-backtracking-search-threads-generators-coroutines/ <comment><USER2> I always start Matt Might articles thinking "Okay, THIS is the one I'm going to understand all the way to the very end without unlearning what I just read, else I die," and alas, I have again died.

<comment><USER3> I'm having an ADHD night and I had the same thought, except I haven't died yet. Felt like giving up three times already, but I did have a click moment after playing around with a scheme repl for a couple of minutes. I understand the first example of call/cc now!

      (display
        (call/cc (lambda (cc)
                  (display "I got here.\n")
                  (cc "This string was passed to the continuation.\n")
                  (display "But not here.\n"))))

Edit: Tried playing around with mit-scheme, but it doesn't work with the ctrl-v'ing the examples. Chezscheme does work.

<comment><USER4> It seems that MIT-Scheme needs the cc function to be a function of 1 argument (the return value for the continuation)[0]

Changing it to the following should work:

      (let ((start #f))
        (if (not start)
          (call/cc (lambda (cc)
                     (set! start cc))))

        (display "Going to invoke (start)\n")

        (start #f))

[0] [https://www.gnu.org/software/mit- scheme/documentation/stable...](https://www.gnu.org/software/mit- scheme/documentation/stable/mit-scheme-ref/Continuations.html#Continuations)

</comment></comment></comment><comment><USER5> I was actually relieved when I found this article [1] which argues against call/cc as a core language feature. Alas, I think the argument does not dismiss _delimited continuations_, so now my burden has shifted from mastering call/cc to mastering shift/reset :-/ [2].

1: [http://okmij.org/ftp/continuations/against- callcc.html](http://okmij.org/ftp/continuations/against-callcc.html)

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

</comment><comment><USER6> I think I've found a good use for continuations in a parser combinator library I'm writing, though I haven't gotten around to working on the corresponding feature yet.

Has anyone used continuations in a serious/non-academic way?

<comment><USER7> I used to implement an equivalent of exit or return statement, like in this example.

      #lang racket

      ; implement sqrt in a very inefficient way
      (let/ec exit
        (for ([i 10])
          (when (= (* i i) 49)
            (exit i)))
        "not found :(")
      ;==> 7

There are more idiomatic and easy ways to write this, but when you have to many nested and not nested for's, sometimes it is useful to have a magical exit-everything-now.

</comment></comment><comment><USER8> Wow, imagine writing in such an unreadable language</comment>


Ask HN: HMH anti-OOP movement - <AUTHOR> For some time I follow handmadehero.org where Casey Muratori teaches how to implement a game from scratch (no libraries).
I have some trouble conciliating what he (and other people that follow him on Twitch) teaches about OOP with what I've learned in school. Basically they claim OOP is bad, that most C++ is horrible (especially OOP), that the new C++11/14 is unnecessary and that we all should use the C++ compiler to code in a more C like style.
It is particularly troubling to hear Casey and his disciples denigrating books like "Effective C++" etc ... that are widely accepted in the C++ community.
I don't want to start a flamewar C vs C++ on HN, but I was wondering what is your opinion about this anti-OOP movement. <comment><USER2> You can read some excellent material on the subject here: [http://250bpm.com/blog:4](http://250bpm.com/blog:4)

I'm far from being a fan of Casey. I find that he makes strong statements based on weak arguments. He's overly hateful of Microsoft and C++, despite him using Visual Studio and a C++ compiler. He tries to be pedantic but makes a fair share of mistakes. Some of his architecture design choices left me with a straight face wtf expression.

C++ has it's flaws, that's widely known and accepted by the community. It's even highlighted in the "Effective C++" books. Unfortunately, the best advice given is "don't do that". I believe a vast majority of C++ users will gladly switch to a new language that offers the same level of abstractions at a comparable speed (maybe Go or Rust). For now, C++ users have to understand the language well enough to avoid its many traps and pitfalls. Moreover, new versions of the standard add to this burden. I know of no project built entirely using C++14. People will always have to deal with legacy code.

OOP is just another programming paradigm C++ supports. You're not required to use it, and you're not even paying for it if you're not using virtual methods. Sure, C++ allows you to do a lot of funky things from overloading operators to implicit conversions but that's another of those things everybody agrees should not be used unless explicitly necessary. OOP facilitates encapsulation and polymorphism which are great tools when designing software systems.

C has its elegance and simplicity. C++ has its abstractions and pitfalls. There are always tradeoffs.

</comment><comment><USER3> There are valid arguments to be made about object-oriented programming not being a hammer fit for every nail, particularly in regards to game programming. It's easy to caught up in a trap of organically forcing too much hierarchy and structure onto a project while still in the planning stages. You can tell the awkward, haphazard results of an OOP library that was built on the principle of "whatever the developer thought was a good idea at the time" versus one that was actually engineered - it's the difference between reading a novel in the latter case and a rambling screed in the former.

Unfortunately, I think Casey tends to take his dislike for OOP a bit far, and rather than arguing against using OOP badly, or using it where it isn't really the best option, he seems to reject it in its entirety. There are situations in which it works, and ways to make it work well.

Watching the handmade hero stream archives on youtube, i find it useful to read the comments (one of the few times you should read the comments on youtube) where clearly intelligent and competent programmers call him out on his curmudgeonly bs time and again.

Of course, he's a much better programmer than I am, and he has shipped a game and I have not, so I will listen to most of what he has to say, but when things like const being useless come up I just have to roll my eyes.

I think that this is less a "movement" and more a "group of people unable to take Casey Muratori's personal opinions with the necessary grain of salt."

<comment><AUTHOR> I didn't followed the Youtube comments, however the comments from the Twitch chat are strongly biased to the no-OOP camp ... It is interesting to see how Casey's followers are more vocal than him. While Casey has technical arguments to reject OOP (more or less justifiable) the _disciples_ seem to have (at least some of them) a visceral hate for OOP which I find hard to understand from such inexperienced people (most of them are students).

</comment></comment><comment><USER4> I haven't followed HMH nor Casey Muratori, but the notion that C++ is horrible has been around for a long time. Linus Torvalds famously smacked down C++ and gave at least two reasonable objections to using C++ for "system-level and portable" programming needs [1].

Now, is this true for every application? Of course not. Does OOP work well in C++ for some applications? I am sure it does. Can C++ lead you to making poor design decisions? Of course it can, so can C or anything else (except for lisp, lisp is perfect ;)).

Of course, it's all a rather subjective argument. You could always port what you are learning from HMH to C++ and see how it works or what changes in an OOP style. I bet that would be really interesting and educational!

[1] [http://harmful.cat-v.org/software/c++/linus](http://harmful.cat-v.org/software/c++/linus)

<comment><USER5> > but the notion that C++ is horrible has been around for a long time

Yeah, "C++ is horrible" is as old as C++.

The exact basis has changed -- early on, it was that C++ did OOP poorly, even compared to other contemporary C-based efforts (notably, Objective-C). Now its more that OOP is the wrong solution.

</comment></comment><comment><USER6> I think pro or anti-oop sentiments as doctrine are both harmful. There are times where implementing OOP simply to do it could be make your code more complex. I think Casey's attitude may be pushback against the promulgation of poor OOP practices. OOP is simply a tool to put in your toolbox, if it suits you, then use it.</comment>


Verizon Cancels Cell Phone Service for 19,000 Rural Americans - <AUTHOR> http://stopthecap.com/2017/09/14/verizon-wireless-great-rural-purge-tens-thousands-losing-cell-service/ <comment><USER2> Utilities have historically had an obligation to serve based upon their monopoly in each service area. For that, they were also supposed to maintain and keep modern the tech used.

Now, Verizon just wants to jump to wireless as they've neglected the physical. They actually are in default with regards to their utility agreement with each municipality

However, greasing local politicians is too easy, and regulatory bodies are filled with Industry insiders so they don't want to jeopardize a nice payday when they rejoin the commercial side of the corrupt utility model

<comment><USER3> The whole dispute is about roaming service. Verizon doesn't appear to be obligated to provide service in the areas discussed in the article, and it isnt profitable to buy wholesale from roaming partners for certain customers in those locations, so they are terminating service. I don't see the issue. Cell service in (many) rural areas is not regulated like a utility.

</comment></comment><comment><USER4> Ridiculous. Local communities should invest in community-owned (public) and/or small locally-owned commercial wireless infrastructure. Verizon, Comcast, AT&T and the rest have stolen our infrastructure and banked the tax credits every time they get the chance. They laugh all the way to the bank and nothing is ever done about it.

People should install lots of Wifi access points and link them up, rather than courting more cellular tower sites.

</comment><comment><USER5> don't worry, it's finally competitive, so everything will be okay!</comment>


Chinese Routing Errors Redirect Russian Traffic - <AUTHOR> http://research.dyn.com/2014/11/chinese-routing-errors-redirect-russian-traffic/ <comment><USER3> Thing is, the network layer of the internet was never intended to be secure. Routing data through unknown hosts controlled by untrusted public organizations, private enterprises and foreign countries, when it makes sense on the technical/business level, is what internet routing protocols are designed to do. Sure, here we are talking about BGP using a less-than-ideal route, but the same effect (traffic going from Russia into China then back into Russia) could very well happen from the intended behavior of the protocols. The network layer is explicitly assumed/designed to be unreliable, insecure and hard to centrally control (for TCP/IP, this is not true of some cell-based/virtual-circuit networking layers). This is why security should be built at the end points (namely encryption and authentication) and not assumed from the network layer.

p.s. A very simple way to make Russian internet more secure against foreign powers would be to have a highly competent government-operated certificate authority which would issue EV TLS certificates for free to Russian businesses and individuals. Then pass two laws, one requiring web browsers sold or distributed in Russia to only allow that certificate authority for .ru domains, and a second one requiring web sites to get those certificates (either for all websites or only those considered 'sensitive'). This doesn't solve the issue of foreign-owned and foreign-located cloud services, and is honestly a worse solution than working at an international level to create a better standard for authentication and data protection than host certificates and certificate authorities. But, from the point of view of a single country's government with (let's face it, reasonable) paranoia about foreign spying on their internal internet communications, this would be about the best 'counter- measure' that I can see being realistically applied.

<comment><USER4> _Routing data through unknown hosts controlled by untrusted public organizations, private enterprises and foreign countries, when it makes sense on the technical /business level, is what internet routing protocols are designed to do._

That's basically what Tor does, and its users are perfectly fine - <USER2> that - their traffic goes through many other hosts before it reaches its destination. The reason this isn't a problem is largely due to...

 _This is why security should be built at the end points (namely encryption and authentication) and not assumed from the network layer._

</comment></comment><comment><USER5> ... meanwhile, US physical internet infrastructure dominance redirects world traffic.

I've often wondered why China and Russia don't collaborate to build a hyper- fast redundant fiber network across from Asia to Europe, and cut the US out of the middle. Surely the long term commercial and geopolitical gains would outweigh the initial investment? I suppose from China's side they're happy mostly disconnected ... and from Russia's, there's no other neighbouring states with cash, perhaps with the exception of Japan and Korea. Anyone know if they do direct links? I know coming out of China they're often faster than the US, but bouncing out through Russia to Europe is an avenue unexplored versus the de-facto US west coast routing.

<comment><USER6> Links are built for economic reasons. There are plenty of good biz reasons to direct traffic from China to Europe and the USA, not much to direct traffic through Siberia and Russia's Far East. Want to send a packet from Harbin to Vladivostok (which is quite nearby), you are probably going to go through SF or at least Japan.

People forget China and Russia were outright hostile in the 70s (one of the reasons China opened up to the US), and Russia is still probably considered a bigger adversary than far away USA.

<comment><USER7> More importantly global traffic is 24/7, but people sleep. The US has strong links to Europe and Asia AND there asleep though most of Asia's work day. So, even if the Asia - India - Europe or Asia - Russia - Europe links where just as strong they would also be in use during most of Asia's work day.

Don't forget Routers care more about congestion than how far they need to send a packet.

</comment></comment></comment><comment><USER8> This is making me want to dive into urbit a bit more.

</comment><comment><USER9> "whoops"

</comment><comment><USER10> Url changed from [http://arstechnica.com/security/2014/11/wtf-russias- domestic...](http://arstechnica.com/security/2014/11/wtf-russias-domestic- internet-traffic-mysteriously-passes-through-china/), which points to this.

<comment><AUTHOR> Personally, I thought the Ars Technica article was a little nicer in summing up the situation, but I can understand why you changed it. Thanks for keeping the site clean!</comment></comment>


Washington Is Killing Silicon Valley - <AUTHOR> http://sec.online.wsj.com/article/SB122990472028925207.html

<comment><USER2> What Sox has done is effectively limit entrepreneurs to non-ambitious projects. That's why you see bright ex-Google guys leaving to do projects which are essentially either copy-cats or mash-ups (hardly any true technology involved, except in few very promising cases).

With M&A as the only exit available, the pay out for any employee other than perhaps the first-five isn't going to be a "home run". Thus there would be nothing for them to justify giving up a higher salary, stability and working longer hours: their options won't be worth much.

Trying to grow the company to post-SOX IPO size would also mean a much greater gamble and much greater time investment. Now the options wouldn't account for _anything_ for possibly as long as ten years (which isn't much shorter than climbing the ladder at a big company).

This means that smart hacker's most economically rational choice is either working for a big company (which issues RSUs or options for publicly tradeable stock) or co-founding or being employee# 1-5 in a less ambitious venture (which usually isn't going to provide very much of a technical challenge).

Not all is bleak, however: it's unlikely that SOX will go (but perhaps I am a pessimist when it comes to govt. getting smaller) but we could see mid-size private companies providing revenue sharing/bonuses (in lieu of options), smarter M&A strategies (e.g. acquirers letting the companies they bought maintain their culture and grow, while offering employees additional upside or even spinning the ventures off for an IPO - but with big co's resources, most notable example of this is EMC + VMWARE acquisition and IPO) and finally markets where smaller players could still have interesting technologies to play with (vs. general database driven websites, which don't really involve much "hard core" tech).

<comment><USER3> I haven't seen this happening directly. I haven't seen founders thinking "We can't go public, so we'd better build something small."

It could be happening via investors, though. It could be that e.g. Google decided to go for the big time partly because there was so much funding available in 1998, which in turn was true because investors were hoping for IPOs.

<comment><USER2> > I haven't seen this happening directly. I haven't seen founders thinking "We > can't go public, so we'd better build something small."

You haven't seen them say it directly, but how many applications do you get that are for fairly ambitious and big projects? What percentage are front-end heavy web-apps/aggregators? What percentage are fairly ambitious and require a serious research, development and have a huge potential for growth? That's a question you may be able to answer better than anyone else (although I'd imagine most YC applicants are a self-selected crowd and those hoping for an exit other than M&A and to hire a great deal of talent may not even apply to YC).

I also didn't think about the investment angle at all. I wonder how much investors are pushing for companies to sell quickly vs. grow.

<comment><USER3> When I said I hadn't seen founders thinking that, I was also implying that I have deep enough conversations with them that if they were thinking that, it would have shown.

I'd say many if not most of the startups YC funds have the potential to go public, if the founders were sufficiently driven. (In saying that I'm relying on the fact that practically no companies that go public look like they will at the start. Apple started out as a company that was going to sell plans for computers.)

<comment><USER2> > In saying that I'm relying on the fact that practically no companies that go > public look like they will at the start. Apple started out as a company that > was going to sell plans for computers

Wow that's something I haven't entirely considered, despite knowing it to be true. Somewhat adds to my argument, however, without the chilling effects of regulation we may have seen a more interesting and diverse market -- but now I am in purely speculative realm.

</comment></comment></comment></comment></comment><comment><USER4> The editorial went off the tracks right here:

 _"FASB's "mark-to-market" accounting rules helped drive AIG and Bear Stearns into bankruptcy, even though they were cash-positive."_

Claiming that mark-to-market accounting killed Bear and AIG is a bit like claiming that seat-belt laws kill people who drive drunk.

AIG and Bear were engaged in a fatal game, regardless of the accounting rules. Mark-to-market accounting may have accelerated the crash (by forcing them to account for bad investments today, instead of hiding them on the balance sheet for some indefinite time), but the fundamentals of their crappy investments didn't change as a result of the rule.

<comment><USER5> There are certainly companies whose cash flows were positive, but were driven into bankruptcy because the value of their assets crashed.

We were trying to raise money for a fixed rate subprime mortgage company in 2007. They had remarkably good underwriting and very low defaults. But the value of their assets kept on plummeting, and they were forced to meet margin calls by their creditors. That firm no longer exists.

However, the cash coming in from their assets could have paid their debt and operating expenses indefinitely. If there was no mark-to-market, then I would know a hundred or so extra people in New York with jobs.

<comment><USER4> One could make a reasonable argument that if their balance sheet was so tied up in sketchy mortgage assets that they were forced to meet margin calls when the market fell, then they _weren't_ as solid as they seemed. Their problems started before they got in the car.

I realize that there's a bit of begging-the-question here, but even so, if you've borrowed a ton of money and secured it with "assets" of questionable value, then you're taking a risky bet. The accounting regulations didn't make the bet better or worse -- they just kicked the losers out of the game before they wanted to quit.

<comment><USER6> The purpose of mark-to-market exceptions are to allow temporary price volatility not to drastically impact a firm's balance sheet. The FASB rule specifies that it's an acceptable practice to suspend mark-to-market in "fire sale" conditions.

But the real issue is the flawed risk ratings on the MBSs. If your asset is AAA then it really shouldn't matter whether you are marking it to market or not, as it's supposed to be quite liquid, by definition, as there is supposed to be extremely little risk that its price will fall.

The reason the MBSs weren't liquid is because the ratings were incorrect and the market knew that -- perverse incentives from ratings agencies had led to this, as had the widespread belief (taken as an assumption by many foolish risk-managers and codified into pricing formulae) that housing prices could not fall.

If the MBSs had been properly rated, then mark-to-market would not have caused the firms holding them on their books to become insolvent, as capital adequacy requirements are based on the riskiness of the assets.

So while mark-to-market may have sped up the failure of those firms, the firms were already weakened due to their treatment (thanks to bad ratings) of risky debt as AAA.

In fact, a few months before things got really bad the SEC sent out a memo advising that the fire-sale provisions of the FASB rule regarding mark-to- market were not to be used, a decision which suggests either that the SEC was OK with some firms failing in the near future (unlikely) or that it believed that the ratings were generally accurate (even more unlikely). I've been told by some Wall Street experts that everybody knew that the ratings were BS. Hence the SEC's decision to send the memo was probably just intended not to telegraph the possibility of a future problem to avoid spooking the market in hopes that the problem would go away.

A few things to note: The regulatory trend is moving toward BASEL II which relies heavily on both mark-to-market accounting and third party ratings agency ratings. So the big regulatory question is, how can the perverse incentives that arose and led to the inaccurate ratings of MBSs be restrained? So far everyone is talking about banning the trading of x, y, and z and of limiting bonus pay, executive salaries, etc., but nobody is talking about the actual concrete perverse incentives (pressure on ratings firms to issue inaccurate ratings) that fed the whole mess.

<comment><USER7> I think a requirement for a random subset to be inspected by a real independent group like the SEC would cut down on a lot of this crap. You would see a lot of stuff get through but it would put a dampener effect on bubbles. You would also need to keep track of how the agency rated vs each company.

</comment></comment></comment></comment></comment><comment><USER8> Pure subterfuge. A thinly veiled attempt to justify tax cuts and deregulation. AIG was killed by accounting? Try again. SOX hasn't killed the IPO, it's just made the hurdle higher and that's ok. IPOs are about consistent revenue generation - most of the firms of Web 1.0 didn't have it and didn't deserve to IPO. The WSJ has truly been compromised by Murdoch. NYTimes editorial on the death of the WSJ: <http://tinyurl.com/6f879h>

<comment><USER9> _SOX hasn't killed the IPO, it's just made the hurdle higher and that's ok. IPOs are about consistent revenue generation - most of the firms of Web 1.0 didn't have it and didn't deserve to IPO._

Wrong, wrong, and wrong.

1\. SOX _has_ killed the IPO; IPOs have plummeted since SOX, due to the ridiculously draconian laws that make compliance expensive and time-consuming. Startups and small companies just can't afford the costs, closing one of the two viable exits for founders and investors.

2\. "Raising the bar" for IPOs makes it sound like we're just going to get higher quality. The reality is that most companies can't afford to IPO, and even if they can, they're now hampered by greater costs and the distractions of compliance. If the bar needs to be raised, let the market raise it.

3\. IPOs are _not_ about consistent revenue generation: they're about raising capital. There's absolutely no reason why a growth business like Facebook that is not profitable shouldn't be able to IPO. If the market likes their odds of succeeding in the long run, their IPO will be a success. If not, it won't. In your model, someone apparently gets to _decide_ who "deserves" to IPO. This kind of thing has never worked and almost always has the opposite effect of that desired.

<comment><USER10> I'm willing to buy the argument that SOX is bad for startups. It's easy to knock things, though, and harder to suggest something better. His only suggestion is to lower capital gains taxes. I think there's also an argument that if you can't trust companies' books at all, that creates problems as well.

Wikipedia has some useful information, as useful, see the 'Criticism' and 'Praise' sections:

<http://en.wikipedia.org/wiki/Sarbanes-Oxley_Act#Criticism>

My guess is that it's one of those technical things where reworking it to keep what's good about it (making the CEO and CFO sign off on stuff sounds sensible), and dumping some of the bad bits is the best course of action.

I also have a suspicion that perhaps lack of regulations wasn't the biggest problem, but lack of regulatory enforcement with some teeth to it.

<comment><USER11> It was conceived at the worst possible time (after Enron, Worldcom, etc); it was bound to be a failure. There's a reason why it's not wise to go shopping hungry. I agree, though, the answer is probably somewhere in the middle.

</comment></comment></comment></comment><comment><USER12> Sarbanes Oxley does hurt the IPO market, but for good reasons. It serves to protect public investors from unscrupulous accounting. Expensing stock options has been part of the International accounting standards for a while now and makes sense. Otherwise, you've hidden a lot of your costs from your financial statements. Also, forcing companies to acknowledge their special purpose entities prevents companies from hiding their debts. The article's point about "made sure that corporate directors would never again have financial privacy" is wrong. Financial transparency is always desired. Investment banks have to worry about the cost of exposing their strategy when buying & selling, why should managers be different considering they have a lot of insider information in their heads.

SOX is bad for statups, but not for those reasons. The cost of compliance for smaller companies is too great in comparison to their income. The entire SOX shouldn't be brought down, it should be made more friendly for smaller corporations and an effort is already being made (see wikipedia under heading SOX 404 and smaller public companies)

</comment><comment><USER13> This article is heavily biased, makes ridiculously exaggerated claims, and bends statistics to its will.

The computer boom came about because of capital gains tax cuts, huh? What a joke.

<comment><USER14> I suspect capital gains cuts did help. Founders are influenced by colleagues who've done startups, and what they see is the after-tax returns. And certainly big investors are influenced by tax rates on each class of investment.

<comment><USER11> This is anecdotal, but I've never heard someone say they would or wouldn't start a company because of the after-tax returns.

Cuban talks about this point here:

[http://blogmaverick.com/2008/10/23/the-cure-to-our- economic-...](http://blogmaverick.com/2008/10/23/the-cure-to-our-economic- problems/)

<comment><USER14> Of course not. After-tax returns influence them indirectly. Fellow grad student goes to work for a startup, ends up with a house vs merely a nice car.

<comment><USER11> Oh I guess I was thinking of the founders, not the employees.

</comment></comment></comment></comment></comment><comment><USER15> I always like international comparisons as a reality check on discussion of policy in the United States. Are countries without regulations like Sarbanes- Oxley enjoying a boom in entrepreneurial start-ups? Where?

<comment><USER14> China

<comment><USER15> Are you planning to invest in a lot of Chinese start-ups?

<comment><USER6> Don't underestimate the entrepreneurial spirit that is going on in China.

It's just political propaganda that China is oppressive and thwarts entrepreneurship. Sure there are some problems, but China's human rights issues are about on par with Gitmo.

</comment></comment></comment></comment><comment><USER16> i think most entrepreneurs in SV do not think of regulations when starting a company. for example, there aren't any tax laws to my knowledge that makes me go, "ah gotta take care of that before i can code."

of course, there will be an impact if a company wants to IPO, but that comes much later on. However, even in that case, it's more about revenue/income generation.

i'm interested in seeing what's going to be the liquidation route for startups now since the M&A market is quiet now.

<comment><USER17> Small burdens are never directly visible. No entrepreneur thinks "If taxes were 5% lower, I'd start a startup." Instead, they think "If I had twice as much savings, I'd start a startup" without stopping to realize they're saving an amount equivalent to 5% of their taxes.

In a similar vein, if my video game character gets -10% to speed (or +10%), I typically shrug it off as nothing, but it all too often is the difference between life and death.

It was actually a comment similar to this one a few weeks ago on HN that made me recognize this as a bias. I wonder if there's any literature on it.

<comment><USER18> In my philosophy class, there was something called the Heap Problem:

"One grain of sand is not a heap. Adding a grain of sand to something that is not a heap will not make it a heap. By induction, then, heaps cannot exist."

The conclusion, of course, is obviously false, because heaps of sand do exist. But you can't state at what point something that's not-a-heap becomes a heap.

AFAIK, this was still an open question when we covered it in class (2001). I don't know of anyone that's provided a convincing argument for why two premises that seem true result in a conclusion that's obviously false.

<comment><USER9> Reminds me of Zeno's paradox about Achilles and the tortoise:

 _Achilles is in a footrace with the tortoise. Achilles allows the tortoise a head start of 100 feet. If we suppose that each racer starts running at some constant speed (one very fast and one very slow), then after some finite time, Achilles will have run 100 feet, bringing him to the tortoise's starting point. During this time, the tortoise has run a much shorter distance, for example 10 feet. It will then take Achilles some further time to run that distance, in which time the tortoise will have advanced farther; and then more time still to reach this third point, while the tortoise moves ahead. Thus, whenever Achilles reaches somewhere the tortoise has been, he still has farther to go. Therefore, because there are an infinite number of points Achilles must reach where the tortoise has already been--he can never overtake the tortoise._

<http://en.wikipedia.org/wiki/Zeno%27s_paradoxes>

</comment></comment></comment></comment><comment><USER19> It's actually the _deregulation_ of Washington that's suffocated entrepreneurship. Because there were/are no checks and balances on the large monoliths' ability to kill or absorb rivals, a lot of little entities have suffered. Washington always says it wants to do what is best for "business," but it rarely distinguishes big business from small. . . it doesn't get the correlation between size and efficiency. The hum-hawing about corporate tax rate is pure whine. Let the little companies live long enough to make a profit upon which they have the ability to pay taxes, eh?

<comment><USER19> Please don't downmod me without telling me why you've done so. Do you disagree with my points? Which ones? Are you pro-deregulation? If so, please provide some example about why you think big companies getting bigger by absorbing their competitors is _good_ for entrepreneurship.

Perhaps you have something against me personally? For that, I have no remedy, but to tweet for help: <http://twitter.com/indiejade/status/1072506322>

<comment><USER14> "Resist complaining about being downmodded. It never does any good, and it makes boring reading."

<http://ycombinator.com/newsguidelines.html>

</comment></comment></comment><comment><USER20> Since SOX has all this overhead, I wonder if there's an opportunity for a startup focused on reducing it.

<comment><USER11> You'd have to go through the government, which is even more overhead/TPS/bureacracy/politicking than SOX.

<comment><USER20> That was my thought too, but then so many good ideas look dumb at first glance. It's possible that someone could make something of this. One trouble is that there can't be very many smart hackers with a passion for regulatory compliance.

</comment></comment></comment><comment><USER15> Voted up because the premise of the article is interesting. But I disagree with the statement that Sarbanes-Oxley is killing entrepreneurship, so I'd like to hear comments about that from the entrepreneurs here. I'm also not sure that it is a sign of failure that many start-ups sell themselves to an existing big company rather than doing an IPO. It seems to me (again I would like to hear from the entrepreneurs here about this) that the whole point of starting a start-up is to have FLEXIBILITY to decide later how to cash out the business. Some like to sell to one company, some like to sell shares to the public at large, and some stay closely held for a long time. To each their own, methinks.

<comment><USER21> I know a CEO of an Internet company that planned on doing an IPO in 2008. Of course the economy tanked so it's not happening.

He told me that SOX required the company to have auditing/traceability and controls for everything. This meant they quit using any software as a service applications, they shut down IM, they have to keep track of everything on every machine, banned a whole list of applications that would interfere with SOX (iTunes, file sharing, and music app), etc.

They had to hire lawyers, more accountants, consulting firms. He told me they were looking at > 10m to comply. And that doesn't count lost productivity of having to act like a draconian big ass company where they had to have design docs for everything they do, detailed project plans, get rid of the tools they use (as listed above), etc.

In other words to go IPO now you give up agility, spend more money, and become less productive.

<comment><USER7> IPO's are for large profitable companies who want to add liquidity. There is a huge pool of companies and people that invest billions in companies without an IPO, but there is a lot of laws setup to protect small investors. Anyway, there is a lot of overhead to going public, but if you want liquidity without selling then you need transparency or some company's are going to do huge scams.

PS: There are IM clients that large companies can use so clearly some of what he said was BS.

<comment><USER11> Well it used to be for raising large amounts of capital (even for unprofitable companies). This is apparently no longer the case.

</comment></comment></comment></comment><comment><USER22> I think companies that are willing to comply with

[http://en.wikipedia.org/wiki/Freedom_of_information_in_the_U...](http://en.wikipedia.org/wiki/Freedom_of_information_in_the_United_States)

should be exempted from SOX so that they can raise funds through IPO.

</comment><comment><USER23> Pabulum for people who have Rand or Heinlein poisoning.

Saying that Bear Stearns and AIG were cash positive is absolutely meaningless, as if I just bought $5 million worth of stuff on my credit card, make $40,000 a year and haven't gotten a bill yet, I'm still cash positive.

It's a little different, and much more complex, but I don't think the article writer really cares to understand any of that -- he just wants to beat the dereg drum, no matter how much sense it makes or doesn't.

</comment><comment><USER24> In a single paragraph, this article claims that options in start-ups aren't worth anything, and then claims that without start-ups being able to hand out options they can't attract the people they need. Are options highly valuable or worthless? It can't have it both ways.

<comment><USER17> Options are worthless because companies can't go public in most cases and therefore options can't be sold. To attract top employees, startups need the ability to give options which can be sold and therefore aren't worthless.

</comment></comment><comment><USER25> does anyone know if it's possible to do an IPO in Canada (instead of the london stock exchange, as the article suggests)?

</comment><comment><USER26> I rarely if ever agree with the WSJ, but here's an example of where I think they've mostly got everything right. Ayn Rand was naive but did have a point: innovation happens when you leave the innovators the hell alone and let them invent. Washington is indeed fooling with that formula.

</comment><comment><USER27> totally the opposite! i can't think of one region that has benefited more from the Fed's policy of moving us to a bubble-based economy. the economic model of silicon valley in the last two decades has been predicated on transferring massive amounts of wealth from speculators to equity holders. normally this is a get-rich-slowly model. the Fed turned it into a get-rich-in-two-years model.

</comment><comment><USER28> Yeah! That's my evergreen state. Watch out, Houston; you're next.

<comment><USER29> This is argues the federal government, not Washington State, is killing Silicon Valley and all tech centers like it.

<comment><USER28> I know. It was a joke. Plus, it irks me that people omit the "D.C.", because it always confuses me for a few seconds.</comment></comment></comment>


Database as Filesystem - <AUTHOR> https://www.youtube.com/watch?v=wN6IwNriwHc <comment><AUTHOR> _> Most network file systems are either a layer over an existing filesystem (NFS, CIFS), or are developed from scratch to have separate, replicated, purpose-designed databases for metadata and object store (GFS, Glusterfs). At the same time, most database engines provide (or can be coerced into providing) replication and all the ACID properties needed for a high- performance filesystem.

Idea: Use a database engine (Postgres, MariaDB) on raw partitions with a fast separate nVME log file; build POSIX file system semantics on top. It's pretty obvious that this could work; I'm just starting to implement it so performance and durability can be measured._

source: [https://2019.linux.conf.au/schedule/presentation/212/](https://2019.linux.conf.au/schedule/presentation/212/)</comment>


Nostalgia for Minecraft - <AUTHOR> https://reallifemag.com/open-worlds/ <comment><USER3> A multiplayer persistent world like Minecraft with physics would be amazing, and probably replicate Minecraft's success.

e.g. If I chop down a tree at the top of a hill it could roll down and potentially wreck your house.

Or causing cave-ins and avalanches from indiscriminate mining. Building dams and rerouting rivers. Building realistic defenses and then siege weapons. Fun

Add in critter breeding and predation for dynamic populations that interact with each other. So if you slay too many Gorgs soon there would be none left. Leave them alone and they'll eat all the Fraggles. Players would form culling expeditions every week. Pretty soon you'll have players giving each other quests. :)

I think the venerable Ultima Online had a few features like that, or was supposed to, not completely sure.

<comment><USER4> > So if you slay too many Gorgs soon there would be none left. Leave them > alone and they'll eat all the Fraggles. Players would form culling > expeditions every week. [...] I think the venerable Ultima Online had a few > features like that, or was supposed to, not completely sure.

Ultima Online tried to have such an ecology, but the players didn't react to it as described despite the game designers giving players minimal rewards for killing herbivores so that they would focus on killing the carnivores. Instead the players indiscriminately killed both the carnivores and the herbivores, because the players were human. The ecology was removed.

[https://youtu.be/KFNxJVTJleE](https://youtu.be/KFNxJVTJleE)

<comment><USER5> >because the players were human

It's a very compelling story, but that wasn't actually the case. The real reason was the flawed design. People just had to kill everything for the materials because of the way equipment was implemented.

<comment><USER6> I think one YouTube comment named another good reason: The animals were too easy to kill.

"The problem is obvious. The animals were too easy to kill. Imagine trying to chase down a real rabbit or deer with a sword. You will never catch either one and if by some chance you corner them the deer would actually stand a chance of beating you."

</comment></comment></comment></comment><comment><USER7> A few commenters are responding on how they think certain features in addition to Minecraft would make a killer game. I don't think Minecraft's success had anything to do with its featureset. To paraphrase notch, he believed in a model of good enough vs perfect and continually released updates that added the minimal needed for the feature he wanted, responding to user feedback in real-time. This was unheard of at the time for how games were developed, in addition his target user was the lowest common denominator in terms of gamers, his mother, whom self described never played games.

"In addition to that, he released updates often, in accordance with the Swedish saying "hellre än bra" (meaning someone who prefers spontaneity over perfection). As soon as a new function or bug-fix was in place, he made it available via his site, asking players for help in testing and improving it." [https://www.wired.com/2013/11/minecraft- book/](https://www.wired.com/2013/11/minecraft-book/)

<comment><USER8> Plenty of boring casual games with little success release early and often.

I don't think there is any 2 thing that made Minecraft a success. It's a combination of a great nu!bet of things but most importantly a combination of a great number of things done right together not just as you'd view them individually.

<comment><USER9> It's a computer version of legos that is actually playable.

Lego tried making some brick building games but they were universally awful. A couple hundred bricks and the computer slows to a crawl. Their later games don't involve building at all.

Minecraft scratches that building itch, with a bucket that never runs out.

</comment></comment></comment><comment><USER10> I find it disturbing that more and more websites, and especially personal blogs, refuse to even show any content without loading scripts from google _and_ cloudflare. It's a bunch of text with images. It's _literally_ what HTML was made for.

<comment><USER11> Mandatory mention of this: [http://motherfuckingwebsite.com/](http://motherfuckingwebsite.com/)

Maybe someday the web will return to its humble roots.

</comment></comment><comment><USER12> Ten years ago, my kinds were all under 12, and I discovered Minecraft from a message on a forum. So different, relaxing and engaging. And such blocky, bad graphics compared to the drive to 3d photo-realism that seemed to be the story in most games. All of my kids have discovered Minecraft on their own. I figured if Dad recommends it, that it is instantly cringy.

Four girls, one boy and all of them love it. Ages 10-22. Roblocks? Not so much.

</comment><comment><USER13> One thing I think this misses is that while Minecraft's graphics are blocky, the terrain generator creates rather spectacular and varied scenery. Just wandering around has an appeal evocative of visiting national parks, and building even a basic hut in a nice setting is more appealing than it would be in a plain sandbox.

Maybe that's part of why it feels "somehow pure"?

<comment><USER14> It's a lot like an atomic simulation. All the items are quantized and can be combined to produce new items.

They follow very simple rules and their interaction with each other can produce amazingly complex machines.

It's the most realistic game we have.

</comment></comment><comment><USER15> I really think Minecraft mods are an underused method for teaching programming. I first got into programming in 7th grade developing mods. Times have changed, but ~5 years ago there were great tutorials, documentation, and good support channels (IRC) for modders.

If regular development is too complicated, there are mods that add programmable computers (Lua, iirc). You can use them to mine, build, automate, or in the spirit of Minecraft, really do whatever you want.

<comment><USER16> Nowadays there is Minecraft education edition; a variant of the Bedrock version which has a code editor to create automations, and a classroom mode. Aimed much more at schools than at individual student-hacker-learners, but a lot more accessible IMO, and has a heap of resources/docs and communities for those teachers.

<comment><USER17> Is there any way to get this version? I would love to use this with my kids.

<comment><USER18> If you just want the code editor part, then [https://minecraft.makecode.com/](https://minecraft.makecode.com/)

<comment><USER17> Thank you! Will definitely check this out.

</comment></comment></comment></comment></comment><comment><USER19> There is also [https://www.minetest.net/](https://www.minetest.net/). It's fully open source and free, and although it is written in C++ it has a Lua modding API with many mods.

Minetest itself is just the engine with basic functionality such as terrain generation and basic physics. Mobs, and other things are added via mods. Mods can be installed manually or in-game from [https://content.minetest.net/](https://content.minetest.net/).

<comment><USER20> The problem I had with Minetest, is that the base sandbox is quite boring and I think you're not supposed to be playing it on its own, but then when it comes to mods there is so much choice and I couldn't find a place to start from (something like: "if you are a beginner, start from these 5 mods"), so I don't know where to start from. Any suggestions?

<comment><USER19> Yeah. That's a common problem and mostly because nobody has time documenting this. The minetest page itself helps a bit (under customizing, but it's not that helpful admittedly).

FWIW, here're my recommended mods:

Basic gameplay: 3d armor, mobs_redo + mobs_monster

Logic: mesecons, more mesecone, digilines

Hard monsters: NSSM (not so simple mobs), dmob (dragons, etc) (both need mobs_redo)

Building more: Homedecor

There're also some read-made games. Mineclone 2 is pretty good.

<comment><USER20> Just replying back to let you know that I'm enjoying Mineclone 2 a lot! Thanks again!

</comment></comment></comment></comment><comment><USER21> It's frustrating how Minecraft's potential hasn't been realized under Microsoft.

The game has such huge potential and tremendous goodwill, and it's been so stagnant since the acquisition.

<comment><USER22> I don't know. They've added a ton of underwater content, new structures, mobs (bees, foxes, llamas, phantoms, drowns, etc), sunken ships and treasure maps.

If anything, they've had a better release cycle since the acquisition.

<comment><USER23> What the game really needs is what was promised ages ago: a mod API on the C++ edition.

<comment><USER24> Yea let's actually make the C++ edition playable first. Have you noticed how the cursor acceleration is actually like a joystick? I play on a computer for a reason, I don't want console nonsense creeping on me. Same goes for the whole UI. Also no linux version.

<comment><USER23> When it takes 30 minutes to load your mod pack and even with a RAM disk and a healthy number of fast cores on a dedicated server you're still dipping below 20 fps on some occasions, it's time for a leaner edition than java. I'm not even saying java is inherently the problem, but the java edition of minecraft is not performant and the bedrock edition is.

<comment><USER25> As I remember from setting up a server way, way back is you want to give that JVM as much memory as you can trow at it.

<comment><USER26> Better hope you pick the right arcane garbage collection strategy!

<comment><USER27> Latency minimal GC is the right choice for game servers. The most available one is G1, though others like Shenandoah and ZGC are on the way

<comment><USER23> I played with a few of them. A server I used to run had a leaky mod that would, when a base was large, leak so much that the GC would hit twice a minute with a 5 second stall. It didn't matter what GC was used. I never found a solution.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> The article is more about Roblox (whatever that is) than Minecraft. Title kinda misleading.

</comment><comment><USER29> Both of these games are excellent intros to game development. ROBLOX more so in my opinion - it's a lot like the old school quake-c modding days and such.

I tried to get my kids to play around with web pages and tutorials, but it wasn't until they wanted to create mini games in ROBLOX that they got busy.

</comment><comment><USER30> Interesting article, the author kind of gripes at the end that open world games like Minecraft and Roblox eventually devolve into a competition among players for points, achievements, and status.

While that is true in many cases, so is society in general, and I think that occurs when people accept rules that limit what they create and discover in the world. 'Mini-games' are all about points and status, servers with economies result in play that is all about selling goods and accumulating wealth.

What the author doesn't mention is the side channel (typically discord) on which players are communicating and socializing.

</comment><comment><USER20> I agree with the article, Roblox certainly doesn't please the Minecraft crowds - or at least, not everyone among them.

I'm curious about Hytale, an RPG game currently under development, made by Hypixel which is the developer behind one of the most successful Minecraft servers.

Another title that I was excited about was Cube World but after reading the reviews, it seems it didn't really hold up to the hype.

</comment><comment><USER31> It annoys me when people call Roblox a game. It's an engine and a platform. It's like calling Unity or Unreal Engine a game.

<comment><USER32> I've also found that people tend to underestimate the development tools Roblox gives. There are games on Roblox that have external web APIs for managing servers, games that circumvent the standard "player model" and instead opt for an entirely different appearance, games that make use of the GUI tools given in meticulous ways...

Roblox does a fantastic job at giving creative young minds an opportunity to expand on their ideas — something very few other "games" accomplish.

<comment><USER33> This is exactly what I love about Roblox. My 11-year-old daughter does "commissions" and designs 3d objects to sell, she's on "Scripting teams" where they help design in-game elements. She's having fun, building / creating, learning and interacting with people. Something I could only dream of when I was 11 (I had BBS's, lots of TW2002).

My 11-year-old knows blender, photoshop, python and javascripting because of Roblox and some Minecraft.

<comment><USER34> Remind me to break out Tw2002 on docker.. And yes, the opportunies these kids have is amazing.

</comment></comment></comment></comment><comment><USER35> I think Minecraft was the first game with a procedurally generated immense world which was also 100% modifiable. Games with virtually infinite procedural worlds have existed and sparked imagination before (my first was Elite 2 on the Amiga), but you couldn't really interact with them in a way that changed them.

Correct me if you know of any earlier examples.

</comment><comment><USER36> Minecraft is the game that made me feel old - and that I was genuinely missing out on something.

I seemingly signed up my €15 in 2011 and had fun. Then forgot about it.

Then I remember when MS bought it for silly money. Full on WTF? headspin.

Then I visited my former-bridesmaid, who shared with me what she'd built on her ipad. I'd no idea what she was talking about, quickly stopped randomly hitting stuff when her upset overcame her politeness and she told me to stop. She _really_ cared about what she'd built.

I can still only wrap my head around it as "infinite lego with a community" \- but that's pretty damn impressive.

<comment><USER37> > Then I remember when MS bought it for silly money. Full on WTF? headspin.

Considering Minecraft has over 176 million copies sold, not to mention the endless amount of merchandise and spin-offs I'm sure MS is getting royalties on, it looks like they got a bargain at $2.5B.

<comment><USER36> Maybe I didn't make my point clearly enough. To me - it was a silly fun game I spent an evening with - and then never touched again. The whole "becoming a thing" completely missed me. I maybe say it was on Android, or Xbox - <USER2> being an old fart completely missed the fact that millions had turned up and were playing it (and PewDiePie was a name of somebody etc etc)

<comment><USER38> I played it overnight nonstop after buying it, also in 2011 I think (infdev anyone?). Then also never touched it again. However I am curious how you missed the hugeness of it for so long, did you not follow gaming sites or anything gaming on YouTube similar at all?

</comment></comment></comment></comment><comment><USER39> This raises some interesting points about social dynamics that emerge in creation-oriented engines like Minecraft/Roblox based on how their different business models work.

Roblox sounds like a place where a sort of creative hustle underlies the whole experience, where everyone's creative experience is about trying to figure out what they can get from others. It's full of in-app purchases, by way of people's creations.

Minecraft, meanwhile, sounds like a more open-ended collaborative experience where people create for the sake of creating, and the worst negative externality is some people do it to gain views on Youtube. There's no in-app purchases, just the upfront fee paid to Microsoft.

One thrust of the piece is that playing Roblox promotes "indoctrination into entrepreneurship for children", by way of many of the 'tycoon' style games.

Author also points out how accruing possessions is a large part of Roblox: "Compared with Minecraft, most Roblox games are highly individualistic and use private property as their main incentive rather than skill-building or a sense of common good."

Author then frames Roblox as operating a kind of multilevel marketing scheme, where everyone's hustling to make game modes to get game currency from others, and it all flows up to Roblox. It may not match an MLM perfectly, but it really made me think about how games are places where a lot of these really negative ideas from the offline world (like MLMs, gambling, etc) can appear in similar form in game worlds.

The author goes into a digression about streamers and creators showing off their work on Youtube, and that being something that sort of sullies the purity of these creative mediums. I don't see that as particularly unique to these games though, as that's part of the broader trend of 'life as performance' which exists everywhere in social media (see also Instagram, etc).

The last paragraph is great: "By enabling self-defined goals and DIY accumulation of skills and resources, Minecraft once seemed to promise fun without fixed form, without ownership, without competition and hierarchy. Roblox has no such pretense. Though its premise of blurring the line between player and creator may seem democratizing, it transforms conventional gameplay into entrepreneurial striving while indoctrinating young children into capitalist society's hierarchical scoreboards, its fantasy of being the best by having the most."

Is this all just a reflection of adding in-app purchases with a % going to creators? Feels like it.

</comment><comment><USER40> The article seems to be saying Roblox is a successor to Minecraft. But Roblox was released under that name in 2005 (I created my Roblox account in 2008). Minecraft was released in 2009.

</comment><comment><USER41> At a higher level of abstraction, git(hub|lab), or even the internet itself are still less structured construction projects.

</comment><comment><USER42> I am a bit surprised at not seeing any reference to Second Life in this article. Is this because it (quickly) turned to more "mature" themes?

I ask because both the exploratory and (more importantly) the build/customize parts were a big element of that - also, it is still active (I believe) even if not exactly "thriving" today.

</comment><comment><USER43> _> Even as Minecraft experiences a nostalgic renaissance, the online open world Roblox has become its spiritual successor._

Too bad Roblox doesn't work on Linux even in Wine, and developers have no interest in doing anything about it. So it's far from being a proper successor.

</comment><comment><USER44> The page is not loading its content for me. Maybe it was hugged to death?</comment>


Efficiency of list comprehensions - <AUTHOR> http://blog.cdleary.com/2010/04/efficiency-of-list-comprehensions/

<comment><USER2> 1\. You should be profiling. If this is your bottleneck, then consider tricks like this, or write that loop in C. This is probably not your bottleneck.

2\. This is very interpreter-dependent. Any JIT worth its salt (like, say, PyPy) would probably decide to inline the append code if we're in this loop long enough for it to matter.

</comment><comment><USER3> Interesting. It seems like he also might have wanted to try a generator expression for the "throw away the list" case. You can always wrap a generator expression with max() or any() or something similar to trigger the iteration. You'd at least be avoiding the "LIST_APPEND" bytecode. With the additional function call I'm not sure the generator expression would be better, but I must admit that in my own code I'm pretty anal about converting all list comps to gen exps that I possibly can.

<comment><USER4> "any" short circuits - you probably are not throwing away the boolean result.

I do agree with the author that using a comprehension for the side-effect is smelly.

<comment><USER5> But "any" short-circuits: that smells the same as a list comprehension for side effects.

The beauty of Python is that the one, obvious way to do something is usually the right way. When you try to force something like this, you either run into silly bugs like "any" short-circuiting, or you waste your limited brainpower trying to avoid them. You're usually better off looking for algorithmic or architectural optimizations for speed, or refactoring for readability.

<comment><USER4> "any" applied to a generator expression with side-effects is smelly because of the generator expression with side-effects, not because of the short-circuit. "any" applied to a pure generator expression expresses the algorithmic optimization known as short circuiting.

Once you are at the point of considering execution time to be a side effect, the purity of any non-trivial expression vanishes.</comment></comment></comment></comment>


The transformer "explained"? - <AUTHOR> https://nostalgebraist.tumblr.com/post/185326092369/the-transformer-explained <comment><USER2> 'I'm excited to see what happens when someone combines BERT's objective with GPT-2′s corpus.'

Speaking of which: [https://arxiv.org/abs/1906.08237](https://arxiv.org/abs/1906.08237) [https://www.reddit.com/r/MachineLearning/comments/c2q5k7/r_x...](https://www.reddit.com/r/MachineLearning/comments/c2q5k7/r_xlnet_a_new_pretraining_method_for_nlp_that/)

</comment><comment><USER3> Can someone explain the title? :)

<comment><USER4> Nostalgebraist is the name of a Tumblr user, whose blog tagline is "Trees are harlequins, words are harlequins" (A quote from a Nabokov novel.)

This gets automatically appended to the page title for anything that gets posted on their Tumblr, hence why it's showing up here.

As for the rest, this is explaining a recently popular neural network architecture known as the Transformer, responsible for advances in natural language processing like GPT-2.</comment></comment>