Skit – I built another JavaScript framework - <AUTHOR> https://medium.com/on-coding/oh-god-i-built-another-javascript-framework-fb32f0f8ec12 <comment><USER2> Skit author here. We've been using skit internally to build LaunchKit ([https://launchkit.io/](https://launchkit.io/)) for the past 4-6 months.

We have skit sitting on launchkit.io, with a REST API in Django sitting behind it (serving prelaunch native mobile clients from api.launchkit.io).

Logged-in requests that load data hit the API first from node, using the same JS API client that runs in the browser. The logged-in user cookie is actually an encrypted OAuth token from the backend API, so our website is actually a first-class API client just like our mobile apps. No separate session logic, etc.

I prerender the first results in the "reviews" list using a template on the server, then when you scroll down the list the additional items are loaded and rendered with the same template in the browser. It seems weird/foreign but in practice it's not that weird.

So far it's been fun, and honestly it's worked far better than I expected it to when I started tinkering.

Would love any feedback / etc., here or on twitter @taylorhughes

<comment><USER3> Haven't played with the framework at all yet, but I have to say that was the best _announcement_ for a framework I think I've ever read. Totally subverted my knee-jerk oh no not ANOTHER one reaction I've come to expect...

<comment><USER4> Agree. It was great subversive announcement and marketing. All of our objections were encapsulated (horrible, terrible, oh no) and lightly dispatched. It was very skill full writing. Also the comments on this thread really work.

</comment></comment></comment><comment><USER5> First impression is this is way more straightforward than other frameworks.

First criticism, this:

events.listen(dom.get('.thing'), 'click', function() {

That is a longer way of saying

$('.thing').on('click', function(){

Which could really just be:

on.click('.thing', function(){

As in, make the most common things more concise. Your current way isn't bad at all; it's just longer than it needs to be. Could be reorganized, I think.

<comment><USER2> Yeah, all this stuff in skit is my personal preference .. as you can tell from the post, I am not big on brevity. Agree that this stuff could be more elegant, though.

<comment><USER6> I prefer the more verbose, approach. Less magic = less errors. Don't let people show you some snippet that is "less characters = must be better"mentality

<comment><USER7> I don't think that's the argument. In English, the words "yes" and "no" are very short. Why? Because they're used often. They're not particularly hard to screw up. They're quick to say and quick to write. Similarly, it's good if a framework can use, sure, brevity, in its more common function calls.

Similarly, in jQuery, the most common function call is one character that's obvious if you mess up. You don't have to go to such extremes as `$`, but you should think about that sort of thing when you're designing APIs, imo.

</comment></comment></comment></comment><comment><USER8> Skit literally means "Shit" in swedish.

<comment><USER2> +1000

<comment><USER9> It does :)

</comment></comment></comment><comment><USER10> I definitely get where this is coming from - I've been using gulp+browserify+watchify+react+express+mongoose lately, and even though I really do like all of the tools individually just wiring all of the different bits and pieces together feels like a chore and is very error-prone.

I think there's a lot of space in the frontend arena for a convention-over- configuration frontend framework that ties in ES6 & jsx transforms, jshint, css bundling, sourcemap generation, and production bundling & minification in a nice way with sane defaults and strong conventions.

That way I don't end up using [http://octo- labs.github.io/snowflake/](http://octo-labs.github.io/snowflake/) for every JS project.

<comment><USER11> Is the absolutely horrific scrolling experience (retina MBP, Chrome) I get on the Snowflake page part of the joke?

</comment></comment><comment><USER12> Seems like an interesting medium between Meteor/Derby.js and just a front-end framework; however it doesn't provide the same tracking of models. So it's more of a hand-off, but at least it prevents having to duplicate logic.

At the same time, I feel like this could have been done with just a plugin to some existing framework instead of creating just another. But that's just because I am losing track of everything that is out there.

<comment><USER13> There's still space for something like Meteor that instead of templates uses virtual-dom.

<comment><USER14> You can use virtual-dom diffing in Meteor. [https://github.com/reactjs/react- meteor](https://github.com/reactjs/react-meteor)

</comment></comment></comment><comment><USER15> I was hoping for an actual skit, parodying the Yet Another JavaScript Framework phenomenon.

</comment><comment><USER16> Just want to chime in as another dev who's tinkered in the isomorphic area: great work, and I completely agree this area is still way too complicated. A modern framework should support this out-of-the-box IMHO.

FWIW your framework makes me think of a modern backbone.js. I'll try and find some time to take it for a spin sometime soon. Good luck with it!

</comment><comment><USER17> Great simple concept. This + react is how all frameworks need to think.

</comment><comment><USER18> I wonder what the first two letters of YACC stand for.

</comment><comment><USER19> I am so sorry to not to be the last one to say this; Skit == "Poop" in Swedish.

I bet it's awesome though.

</comment><comment><USER20> "Eventually, this webpage got so complicated and unwieldy that I started avoiding making changes to it."

Skipped unit testing didn't you? Uncle Bob Martin would be upset with you.

Without tests, someday you'll be afraid to change Skit as well.

</comment><comment><USER21> Hi, are there any tests for Skit? How have you been testing it?

<comment><USER2> I haven't automated my testing process enough yet, and I feel terrible about it. Going to prioritize this now that the project is public. For shame, I know.

</comment></comment><comment><USER22> I'm skit developer #1. And it's awesome.

</comment><comment><USER23> this framework just looks like so much fun!</comment>


Google hired microworkers to train its controversial Project Maven AI - <AUTHOR> https://www.theverge.com/2019/2/4/18211155/google-microworkers-maven-ai-train-pentagon-pay-salary <comment><USER2> This is standard practice in AI training. There are countless workers in Asia (typically) who are perfectly willing to help train your algo for less pay than Western workers, and the location where the work is performed doesn't matter at all.

What _would_ be news is if Google were paying $11/hr + social security, etc. just to have people tell an algo which pictures have a dog in them. That would put them at a competitive disadvantage.

<comment><USER3> > What would be news is if Google were paying $11/hr + social security, etc. > just to have people tell an algo which pictures have a dog in them. That > would put them at a competitive disadvantage.

Yes. Sometimes maximizing profits and having a functional society where everyone has a meal and home is incompatible. I would prefer to see that the long term viability of countries is put higher up than the short term profits of companies. And that is why it is so important to set all countries to the same standards of living (on the high-end preferably).

<comment><USER4> The companies are not going to do that sort of thing out of kindness. It's up to society to set up the appropriate tax regime.

</comment></comment></comment><comment><USER5> It's worrisome to me that a U.S. company helping the U.S. military is viewed as so controversial that it would cease to finish that work. I'm glad Amazon and Microsoft, among big tech cos, haven't caved in like Google has.

And yet Google has the gall to spend $5m on a Super Bowl ad touting how it helps veterans. Ridiculous.

<comment><USER6> I see a huge difference between "not helping the military" and "not helping create autonomous weapons". And our drone program is hardly military, it's a mostly CIA-led project to assassinate people without due process in areas we are not at war.

<comment><USER7> You have no idea what you are talking about. The vast majority of drone use is for military surveillance that have no strike capabilities, and are used to determine whether to put soldiers on the ground. Good drone surveillance is literally the best resource we have for preventing bad military outcomes. It saves lives, both American and other.

<comment><USER8> The problem is that technology developed for "good" drone surveillance can be transferred quite easily to drones with strike capabilities.

<comment><USER7> And by extension be able to make better and more accurate decisions leaving more people alive. I fail to see the issue here.

<comment><USER8> We seem to have an issue where we we end up targeting the wrong people, and this will make it possible to do so more accurately and easily.

</comment></comment></comment></comment></comment></comment><comment><USER9> > he workers were hired through a crowdsourcing gig company outfit called > Figure Eight, which pays as little at $1 an hour for people to perform > short, seemingly mindless tasks.

Wow. Shouldn't there be a 'minimum gig fee' for this type of work? I mean many tasks may take a few seconds for a few cents, but if you work a solid hour and only earn $1 gross income, that seems extremely exploitative (even if the recipients are in Burundi).

<comment><USER10> I've picked up a few gigs on Mechanical Turk. You pick up the tasks that are worth your time (that you are qualified for). If you don't like the microtask for the price offered move onto the next one.

If the entity offering the microtasks (gig) don't see enough interest in their tasks, they can raise the bid.

I think that's extremely fair. Let the market dictate the price per task. How do you know what the right price should be?

<comment><USER11> Is the market really dictating anything at that price or is it desperate.

I don't think anyone with the power to dictate would accept a dollar an hour.

The right word for this is exploitation. Google and Figure Eight directly contributing to income inequality.

<comment><USER12> Except you have captured the essence of the market, a 'fair' price (in market terms) is one that leaves the seller thinking they got too little and the buyer thinking they paid too much. They were both right at the equilibrium point.

Exploitation occurs when you prevent the buyers or sellers in the market any ability to move. So if these buyers have no other opportunities or ways to change they can be exploited, if the sellers don't have any other buyers they can be exploited.

Neither Crowd Flower (Figure 8) nor Mechanical Turk "exploit" workers because the workers have a choice of tasks, and the option to add skills to open up other tasks. Nor can the workers "exploit" the people offering jobs because they cannot prevent another worker from taking a job at an offered price, even if they personally wouldn't take the job at that price.

What it does do though is allow workers who have a lower cost of living and expense rate to bid lower (or take jobs that pay less) and still cover there costs.

<comment><USER13> There is a time limit on securing food and shelter. If you spend 20 hours on being a Turk, that's time lost doing something that may never sustain you or provide a road to sustaining yourself. But you don't know that until you spend the time engaging with the system. And you may find yourself stuck, chasing short term prices, having lost your ability to move in the marketplace.

<comment><USER12> I don't disagree, that is one of the interesting concepts in the book on scarcity[1]. If you're operating at the limits of your demand for a resource it affects the way to reason about that resource and can lead to counter productive choices.

That said, if you aren't constrained to _only_ doing mechanical turk or figure 8 things, then you have the option of doing something different, or adding in other resource streams. You you trade off the time vs money aspects of different work situations to achieve longer term stability. That doesn't apply of course to people who have extenuating circumstances that cut them off from any other revenue stream and that makes them vulnerable to exploitation.

[1] "Scarcity: Why having so little means so much", Sendhil Mullainathan

</comment></comment></comment></comment></comment></comment><comment><USER14> Because the only thing better than building an AI to help identify people to kill with impunity, is building an AI to help identify peopl to kill with impunity using slave labor.

</comment><comment><USER15> [https://joeyh.name/blog/pics/recaptcha.png](https://joeyh.name/blog/pics/recaptcha.png)

</comment><comment><USER16> That's how you label your data. Nothing newsworthy here.

</comment><comment><USER17> They need better terminology. "microworkers" sounds bad, like they're under- payed (they are).

Try "organic AI" or "incentivized crowdsourcing".

</comment><comment><USER18> mTurk, Crowd Flower, Spare 5, etc. are all popular platforms for gathering labeled training data. It's a race to the bottom for lowest price per label while maintaining reasonably consistent quality.</comment>


Ask HN: What is the best way to distribute an iOS app to Kickstarter Backers? - <AUTHOR>

I'm looking at launching a Kickstarter campaign in the near future partially for some extra funds to push the project through completion and partially for marketing purposes. The product we are developing is an App that will be available on both iOS and Android. My first concern is distributing the iOS app on the iTunes App Store. I don't have a problem with Apple taking their 30% commission on my Kickstarter orders, in fact, I fully understand it and would expect the same if I provided a storefront for someone to host and distribute their apps. The problem is, I don't think there is any mechanism for doing this currently. One possibility that I've considered is buying a $10.00 gift card for every backer and mailing it to them and then hoping that they use it on the app when it releases. The only major problem with this solution is I'm not sure if I can find a supplier that can sell me that many $10.00 gift cards in short order. I'm definitely looking into it though. If anyone else has any ideas of how best to accomplish this task, I would be very grateful for your thoughts! <comment><USER2> Solutions I've seen in the past before are:

* Buying copies of your app as gifts (you get 70% back eventually), getting the codes, and sending those. However, gifts are per national App Store, so you have to know the store their Apple ID is associated with in advance. Additionally, you'd probably need a method of payment with a billing address in the countries you wanted to buy gift codes in ...

* Setting the cost of the app to free for 24-48 hours, with advance notification of the app being on the store / when it will be released, plus an email on the day of release with a direct app link for the store. The problem here is dissatisfaction if they "missed it" for some reason (thus the really really really early notification to the backers).

There's obviously an automated gift mechanism of some sort. IGN, Sephora, Starbucks - they all have mechanisms for generating gift codes for non-free apps when they do a giveaway. But I don't know if that mechanism is "pre- purchase a ton of codes" or an on-demand private API Apple has available.

</comment><comment><USER3> What about the easiest way?

1\. Add a low price for the first days, ie: 0,99.

2\. Then tell a bunch of your backers that you want to give them 1$ via paypal or similar.

3\. As you get responses and the application has been bought jump to the next bunch of packers.

4\. Repeat.

5\. When finish, raise the price you consider fair.

It will cost you around 30 cents * N. of backers and you will get a bit of traction from some early users thanks to the low price.

<comment><AUTHOR> Thats a great idea. I'm looking into the overall implications of this. So far its the best idea I haven't thought of already! I guess the only potential concern is if some backers don't have/use Paypal. I could look into sending via Amazon Payments as well, since thats the payment system that Kickstarter uses.

<comment><USER3> Be my guest =)

</comment></comment></comment><comment><USER4> How about distributing the app for free on the app store.

When the app is opened, prompt the user to enter a secret code that you've distributed only to Kickstarter backers.

And for non-backers, set up an in-app purchase as an alternative method of unlocking the app.

It's possible though that an app that isn't functional without an unlock code or without making an in-app purchase might violate Apples' rules in some way.

</comment><comment><USER5> See [http://journal.darkskyapp.com/2012/kickstarting- part-1/](http://journal.darkskyapp.com/2012/kickstarting-part-1/). Essentially, it might be easiest to just buy copies of the app as gifts for each backer, but there are some caveats to consider.

</comment><comment><USER6> [http://testflightapp.com/](http://testflightapp.com/)

<comment><AUTHOR> We use Test Flight internally and with clients but unfortunately its not viable for extensive distribution like this. From what I understand an Enterprise Developer Account with Apple would allow us to distribute to more than 100 devices, but distributing an app like this to what are essentially paying customers would be against Apple's terms and they'd most likely shut our enterprise developer account down pretty quickly.</comment></comment>


The myth of shareholder capitalism (2010) - <AUTHOR> http://hbr.org/2010/04/the-myth-of-shareholder-capitalism/ar/1 <comment><AUTHOR> The main takeaway, as I read it, is that the widespread belief that CEOs are legally obligated to maximize shareholder value is not really borne out by legal precedent or the current understanding of legal scholars (though it's widely taught by management scholars). The current law appears to be that, while CEOs can be _fired_ by shareholders, as long as the shareholders choose to retain them, the CEOs have a wide range of leeway for what values they can legally take into account when making decisions. Those values don't have to be solely focused on maximizing shareholder returns, and courts will generally not second-guess them except in really extreme cases (though shareholders are welcome to second-guess them by voting in a new board that fires the CEO).

<comment><USER2> Isn't this pretty much the same as any employee-employer/owner relationship? The employee can do what they want a lot of the time but at some point they'll have to answer for their decisions and if it's found they weren't acting in their employer's interest they can expect to get fired.

<comment><USER3> I think as the employee gets a larger and larger influence over decisions about their own compensation, the line between 'failure to do your job correctly in the best interests of your employer' and 'embezzling funds' becomes more and more blurry. And the latter of course is more than just a firing issue. So perhaps not quite the same, although where exactly you draw the line I guess is subjective.

</comment></comment></comment><comment><USER4> "31 of 34 directors surveyed (each of whom served on an average of six Fortune 200 boards) said they'd cut down a mature forest or release a dangerous, unregulated toxin into the environment in order to increase profits. Whatever they could legally do to maximize shareholder wealth, they believed it was their duty to do"

The article points out that this isn't the case. What's interesting to me is the idea that this activity maximizes shareholder wealth anyway. It might maximize the value of entities holding shares in a short-term outlook, but on a long-term outlook (10 year horizon) this is foolish not just because it weakens the brand of the company, but risks future contracts (boycotts from public pressure), and opens settlement possibilities (even a legally released toxin can result in settlements if they were aware it was dangerous at the time).

<comment><USER5> The long-term outlook only matters to long-term investors. If you can carry out such activities discreetly such that those investors are oblivious, you can reap the profits by selling up before the shit hits the fan. There are enough sociopaths [0] in business that this situation must have occurred several times over.

[0] [http://www.forbes.com/sites/jeffbercovici/2011/06/14/why- som...](http://www.forbes.com/sites/jeffbercovici/2011/06/14/why-some- psychopaths-make-great-ceos/)

</comment></comment><comment><USER6> Here is a much clearer article on the same issue.

<http://www.directorship.com/stout-shareholders-as-owners/>

One excerpt: _Under the doctrine known as the business judgment rule, a shareholder can't successfully sue a board for failing to maximize shareholder value. To the contrary, directors enjoy wide legal discretion to sacrifice "shareholder value" in order to protect employees, customers, creditors and the community._

</comment><comment><USER7> Never ever treat a blog post on legal issues as definitive when written by non-lawyers, especially when it cites no sources.

I'm not a lawyer, but the statement "we conducted a systematic analysis of a century's worth of legal theory and precedent" is utter twaddle. There are disciplines of law on which people build _careers_ attempting to sort out these issues.

Worse yet, a post that discusses conflict between shareholders' interests and directors' actions in the context of an acquisition but that doesn't even mention Revlon duties, which arose from the seminal case in this area ([http://en.wikipedia.org/wiki/Revlon,_Inc._v._MacAndrews_%26_...](http://en.wikipedia.org/wiki/Revlon,_Inc._v._MacAndrews_%26_Forbes_Holdings,_Inc.)), is seriously suspect. The case law has evolved significantly since then and it is difficult for those without legal training to fully grasp (not to mention that US corporate law has its quirks, which two academics from other countries may not be fully familiar).

Point being, this is a complex area on which there are hundreds of publishing corporate law professors and practitioners. The "myth" is a strawman.

</comment><comment><USER8> This is a simple matter of people doing what they are incentivized to do. The vast majority of directors have incentives tied to short term gains (short term in the sense of a company - quarterly or yearly), and so their actions are to seek short term gains. They might _say_ they are required to act in the best interest of the stock holder... but it just so happens that they have compensation which is tied to short term gains in the stock price.

<comment><USER9> I don't believe the conventional wisdom that the stockholder only cares about short term gains. I see, over and over, share prices punished because the stockholders do not see the company doing well long term, and vice versa.

<comment><USER10> Really? What do you think would happen to a stock that missed it's quarterly earnings estimate?

</comment></comment></comment><comment><USER11> I think we're mixing up a bit of stuff, mainly the training and legal structure of corporations and the actions their directors might or might not take.

Let's be very clear: directors who release a toxin into the environment, if done purposely, will end up in jail. Corporations who do it accidentally will end up paying for damages. If they don't, that's a failure of our criminal justice system, not the way corporations are formed. most directors may be very amoral sorts only caring for the bottom line. That's fine. Our system is full of folks only looking for short term gain, yet the greater good is still served. That's the beauty of our system. No matter how hard we try and how much we want it, nobody has ever created a complex system of people that worked solely on altruism.

What it looks like to me is that directors have evolved corporations into sort of a representative republic. Shareholders elect them to be autonomous and free to manage as they see fit -- not move hither and fro based on the opinion-of-the-day. Just like with Congress, there's probably a very good reason corps have evolved like this. It'd be interesting to see a study of more participatory shareholders and how things shook out. I'm willing to bet there are a lot of problems with direct shareholder rule and that what we're seeing is at least a local maximum.

<comment><USER12> Representative republic, really? I'm not advocating to burn the whole system to the ground or anything but I'd say you're overstating the not-brokenness of it in 2011.

As far as going to jail for being sociopathic burdens on society, well this one's hot off the presses, nobody goes to jail from Citibank or Goldman for committing fraud: [http://www.usatoday.com/money/industries/banking/story/2011-...](http://www.usatoday.com/money/industries/banking/story/2011-10-19/sec- citigroup-mortgage-securities-fraud/50825740/1)

I don't have access to their books but it's likely they made more money on the fraud than they paid in the fine. Goes doubly for Goldman.

And that's just externality-brokenness. I don't think the corporations even function as a representative republic. How do you explain HP's board? Or any of the nepotism that seems to happen across many similar boads so regularly? How many non-board-member-shareholders exercise any influence whatsoever?

<comment><USER13> _...nobody goes to jail from Citibank or Goldman for [allegedly] committing [civil, not criminal] fraud..._

Fixed that for you.

Note that neither Citi nor Goldman were convicted of fraud, they merely settled with no admission of wrongdoing to make it go away. Further, even if convicted, you don't go to jail for civil offenses.

 _I don't have access to their books but it's likely they made more money on the fraud than they paid in the fine._

From the article: "The payment includes the fees and profit Citigroup earned, plus $30 million in interest and a $95 million penalty."

In Goldman's case, the settlement money does not subtract the money Goldman _lost_ on ABACUS.

<comment><USER12> Hey, I know you work in finance on your own, and that's fine, good luck to you, but "too big to fail" should include things like "don't make a bunch of terrible bets and then hoodwink your customers into taking the fall on those bets for you".

Sounds like they did great on the deal to me, considering the alternative was to be the last one holding those CDOs when they exploded. If I were them, I'd call that fine the cost of doing business for a great business decision.

<comment><USER13> _... "too big to fail" should include things like "don't make a bunch of terrible bets and then hoodwink your customers into taking the fall on those bets for you"._

I don't understand the mechanics of this. It should be illegal for "too big to fail" banks to sell a security when they believe it's price will go down? Should it also be illegal to buy when one believes a security is going up?

 _...the alternative was to be the last one holding those CDOs when they exploded..._

Goldman was the last one holding (some tranches of) ABACUS when the housing market collapsed. That's why they lost money.

Incidentally, I no longer work in finance.

<comment><USER12> So, the mechanic that did happen is that those banks were holding a ton of CDOs, and unloaded as many as they could before they exploded by calling their customers and saying "Hey, check this out, these bonds are super-hot right now, great deal, you should buy it".

As far as the mechanics of my perfect system, "too big to fail" should be done away with, along with proper enforcement of our existing fraud laws. We'll have eliminated the means (smaller banks) and motive (deterred by steep penalties) for this happening again. As of now, I don't see what's changed since 2008.

That settlement's ridiculous. A few hundred million for each bank? How many of these things did they take off their balance sheet in 2007-2008 while selling them to their customers as perfectly good bonds?

<comment><USER13> _We'll have eliminated the means (smaller banks)..._

Smaller banks wouldn't be able to sell securities they believe will go down? I didn't realize that buying low and selling at the peak required scale.

 _As of now, I don't see what's changed since 2008._

That's because you aren't paying attention. The I-Banks are now bank holding companies, the regulators have laid claim to several floors of their buildings and are imposing massive new programs, the banks have figured out that they need more stringent underwriting standards for homeowners and have drastically cut back on loans [1].

[1] The market for home loans is now over 90% Fannie/Freddie - strangely, the agencies haven't figured out that home loans should be reduced.

<comment><USER12> More, smaller banks means more diversity and less chance that a few of them can endanger the whole system.

As far as the I-Banks being bank holding companies now, I'm seeing more stuff under fewer roofs than there was before.. that seems less stable to me.

I don't actually have an answer for how to fix the problem, I'm just worried that we haven't had the kind of systemic change that we need. A little more auditing doesn't change anything, the banks pay a lot more than the regulatory agencies so they'll be able to capture them.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> What about Dodge v. Ford Motor Company?

<http://en.wikipedia.org/wiki/Dodge_v._Ford_Motor_Company>

This is the case which is often cited to establish that the corporation's primary duty is to its shareholders, and that this duty overrides all others.

EDIT: never mind, this is already discussed in the article. Sorry.

<comment><USER6> Fans of shareholder primacy almost always cite the nearly century old case of Dodge v. Ford as their primary legal support for the idea of shareholder primacy. But Dodge v. Ford was really a shareholder-versus-shareholder dispute in a close corporation.

Similarly, the second case typically cited—Revlon v. Mac- Andrews & Forbes Holdings, Inc., is also legally irrelevent. In Revlon, the Delaware Supreme Court held that an end-game situation where the directors of a publicly traded firm had decided to sell the company with a controlling shareholder—in effect, terminating the corporation's existence as a public firm—the board had a duty to maximize shareholder wealth.

But subsequent Delaware cases have made it clear that if the directors of the firm decide not to sell at all, or prefer to do a stock-for-stock exchange with another public company, the infamous Revlon doctrine no longer applies.

For example, in Paramount Communications, Inc. v. Time, Inc., the Delaware Supreme Court upheld directors' right to "just say no" to a hostile offer, even though the offer was at a premium over the market price for the company's stock.

Source <http://www.directorship.com/stout-shareholders-as-owners/>

<comment><USER14> California just created a whole new class of corporation for people who wanted a different standard of behavior, which could include social and environmental concerns.

[http://venturebeat.com/2011/10/11/benefit-corporations- calif...](http://venturebeat.com/2011/10/11/benefit-corporations-californi/)

So was that unnecessary? Could such behavior be compatible with the standard corporate model?

<comment><USER15> I think it was unnecessary; California should have just made a statutory affirmation that _any_ corporation may choose whatever goals its owners decide.

There's a reasonable argument to be made that's already the case, and the opposing idea – that 'maximizing profits' or 'maximizing shareholder value' is a legal requirement – is just a persistent misunderstanding.

I think such a misunderstanding is fed by some on both the right and left. On the right, some want to celebrate a singular, elegant rule for moving all decisions into an economic model. On the left, some want to smear the very idea of corporations as amoral at the core.

Neither view respects the idea of a corporation as a voluntarist coordination mechanism. A corporation is its shareholders' property, and just like any other property, may be deployed in any legal manner the owners see fit.

</comment></comment></comment></comment><comment><USER16> The article seems to be confusing fiduciary duty with accountability. As a director, if you make your shareholders unhappy enough, they will fire you. If you breach your fiduciary duty, they will sue you. The article is only addressing breach of fiduciary duty. So I don't agree with conclusion that "In short, directors are to a great extent autonomous.".

</comment><comment><USER17> In 2005, Reason magazine had an excellent discussion with Milton Friedman, John Mackey (Whole Foods), and T.J. Rodgers (Cypress Semiconductors) that is relevant to this discussion ([http://reason.com/archives/2005/10/01/rethinking-the- social-...](http://reason.com/archives/2005/10/01/rethinking-the-social- responsi/print)).</comment>


PDFs in Pure Ruby - <AUTHOR> http://prawn.majesticseacreature.com/ <comment><USER2> Without Prawn I probably wouldn't have been able to do the web version of my software in an acceptable amount of time. It is amazing software -- far superior to every other way I have found to render PDFs, and I come from Enterprise Java where that is practically a religious calling.

Incidentally, although this use is quite off-label: Prawn exposes a very nice API for drawing arbitrary geometrical objects. ImageMagick/GraphicsMagick can convert PDF files to image files in your favorite format. This means you can use prawn to draw, e.g., an org chart for about a fiftieth of the pain it would take to draw it using graphics primitives in ImageMagick or what have you.

That reminds me -- I tried to throw money at the developers and they requested I send it to Heifer International. Somebody is getting a cow because I didn't have one writing my print jobs.

<comment><USER3> I think that our users might appreciate a magick-prawn extension that allows Prawn::Document#to_svg (or other formats).

And also, thanks for donating!

<comment><USER2> I'd be happy to make you one, but it is literally one line of code after you generate the PDF. I think my commit message for that feature was "PDF -> GIF. I get paid for this!?"

<comment><USER3> Yeah, I guess it's easy enough to do on your own if you have RMagick handy. Good point.

<comment><USER2> RMagick leaks memory like a sieve. I do this in a pair of worker threads that just fire off system calls to the GraphicsMagick command. (Hat tip to HN: I learned about it here and saved 50% on conversion time versus doing it with ImageMagick.)

<comment><USER3> Ah, interesting. Yeah, I'm certainly aware of RMagick's memory issues, fortunately, haven't had a need for it.

</comment></comment></comment></comment></comment></comment><comment><USER4> We use Prawn to generate GitHub's PDF receipts and FI invoices, it's a great library.

<comment><USER5> Sweet. We're working on a rewrite of the table layout engine (github: bradediger/prawn-layout@refactor -- whoa, that is meta) so chime in if there's anything that seems missing from the current API. cheers.

[edit: fix github project reference]

</comment></comment><comment><USER6> <http://pdf-render.heroku.com/> \- here's hello world in Sinatra with prawn, to give you a sense of how fun it is to use :)

require 'rubygems' require 'sinatra' require 'prawn'

get '/' do "
This is a simple pdf rendering webservice. GET /hello%20world.pdf to get a pdf back!
" end

get '/*' do content_type('application/pdf') headers['Cache-Control'] = "public, max-age=6000000000000000000"

      pdf = Prawn::Document.new
      pdf.text(params[:splat][0].gsub(/.pdf\z/,''))
      pdf.render

end

<comment><USER6> Sorry about that - <http://pastie.org/789318>

</comment></comment><comment><USER7> Prawn is pretty neat, but what I'd really like to see is HTML to PDF in pure Ruby. I had to use a Java library wrapped in a Ruby module to do this. Complicates my server configuration (needs the JVM) more than I'd like.

<comment><USER8> Try Princely (blog post: [http://jimneath.org/2009/02/16/creating-pdf- documents-in-rub...](http://jimneath.org/2009/02/16/creating-pdf-documents-in- ruby-on-rails/)) <http://github.com/mbleigh/princely>

<comment><USER7> That's just a wrapper over Prince XML, I ended up writing my own wrapper over Flying Saucer: <https://xhtmlrenderer.dev.java.net/>

</comment></comment></comment><comment><USER9> I am not a Ruby programmer so this might be a dumb question, but how does Prawn compare to Itext(Java)?

<comment><USER2> wc -l Print(ASTERIX_BORKS_HN).java #6 files, 1,800 lines

wc -l print_job.rb #1 file, 125 lines

This is not, strictly speaking, a fair comparison. In addition to being a superior version of everything the Java version does, the Ruby version also does GIF export, caching on the web server, and basic feature-wide analytics. The Java just barely staggers its way to generating a NxM grid and putting pleasingly aligned text in it. It is also littered with comments like:

// DO NOT EDIT. WILL NOT BE ABLE TO FIX. See r47 for what happened last time. (See r53.) (See r128.)

Do it in Prawn. I seriously have attempted to get my company to run a one- controller Rails app just to do PDF generation, because it would be cheaper going forward than the _prodigious_ amount of effort we spend on report generation in Java. (This was, sadly, not approved.)

<comment><USER3> Prawn should run perfectly in JRuby, and will be officially supported by its 1.0 release. Sneak it in a .jar :)

<comment><USER2> I actually considered doing just that, for weeks. As much as I would have _loved_ to do it, the Java application is a desktop app, and putting in JRuby would have added something like 15 MB to the installer.

I did propose that to work, though (we do generation on the server so the size doesn't matter), and we have done it if we had an acceptable supply of Ruby- speaking engineers. Bad news for them, good news for me: I would hate to have their business hobbled when I leave.

</comment></comment></comment></comment><comment><USER10> While you're at it, check out this PDF creator in pure javascript:

<http://code.google.com/p/jspdf/>

<comment><USER3> Whoa! Awesome. Prawn is "fast for Ruby" but still not fast when compared to lower level implementations. How is performance here? (If it's decent, I'll definitely need to steal some ideas :)

</comment></comment><comment><USER11> I've been using prawn recently on a project, the only feature I'm missing is the ability to read its own output so I can compose operations independently.

It looks like it would be pretty difficult to add -- prawn is implemented as a clever DSL for writing postscript.

<comment><USER3> Prawn does not write postscript, it writes PDF. Though possibly similar in appearance, two different beasts, for sure.

And actually, we have support for reading arbitrary PDF on edge, expect a release in a few weeks :)

<http://github.com/yob/prawn/tree/templates_2010>

<comment><USER12> I use the soon-to-be integrated yob-templates_2010 fork to fill in existing PDF forms. All you have to do is add a ":template => filename" in "pdf = Prawn::Document.new()". You can also supply the template name to the prawn document instance after creating it: "pdf(:template => filename)". (see the prawn forum for details I posted there)

</comment></comment></comment><comment><USER3> Some additional relevant links:

# source, wikis, bug tracker <http://github.com/sandal/prawn>

# mailing list <http://groups.google.com/group/prawn-ruby>

# my twitter account (I announce all Prawn releases and other stuff there -- mixed in with personal stuff)

<http://twitter.com/seacreature>

<comment><USER13> Please please please switch to Librelist :(

<comment><USER14> At least Google Groups doesn't expose your email address to the world, while it appears Librelist does (check out the archives here: <http://librelist.com/browser/>). If you're on a librelist list, you're asking to be spammed.

<comment><USER15> Get a proper spam filter. Your mail address probably is out there already.

</comment></comment></comment></comment><comment><USER9> Ok so another question for sandal. How do you begin to work on a pdf gen library in your favorite language? read the pdf standard?

<comment><USER3> This would be a good discussion for the Prawn mailing list. Post there and I'll reply with some details (and the other devs will likely chime in as well).

Just let us know what sort of feature set you want to implement, and we can point you to the relevant spec sections and supporting materials.

Prawn's source is pretty readable, and will be even more so as we refactor. A trip through the source might help, too:

<http://github.com/sandal/prawn>

</comment></comment><comment><USER16> There's also - _require 'spreadsheet'_ \- for generating .xls files on the fly:

<http://spreadsheet.rubyforge.org/Spreadsheet.html>

</comment><comment><USER8> For generating PDFs with Ruby, Prince sure does look great, but it's a little high for my tastes!

</comment><comment><USER17> So... am I old fashioned for using ERb and LaTex?

<comment><USER18> Don't worry, I do it too. I'll wait for the day when Prawn can compete with LaTeX's layouting :)

<comment><USER3> It never will. LaTeX is the right tool for layout, for now, at least. If someone wants to implement something like that on top of Prawn, awesome. But our goal isn't to be a layout tool, it's to provide all the low level tools necessary to implement PDF features to specification.

The difference is the toolchain. All you need to do to run Prawn is dump the files into your project.</comment></comment></comment>


Ask PG: Implementing checkboxes to improve comment quality - <AUTHOR>

I'm curious about how the overall quality of comments would be affected if you put 3 checkboxes, laid horizontally under the comment box, that must all be checked before submitting a comment. They'd be something like "My comment is: -civil -well thought-out -sincere". In addition to the psychology at play, maybe just having to check 3 boxes would curb some of the more trollish and emotional comments. Laying them out horizontally would also require a bit more focus than having them stacked vertically.<p>Of course, this might not work at all. <comment><USER2> I think someone would develop a browser plugin to auto-check those boxes.

You could classify the text using a machine learning algorithm using a training set of downvoted comments, and if the comment is classified as likely impolite- then you could ask the user to make sure their comment is appropriate.

You could have a line of text which said "Thanks for being civil and courteous"

</comment><comment><USER3> Some users would fill them in believing their comments to be civil, well thought out and sincere, regardless of their actual content. Trolls would be perfectly happy to fill them out and then troll anyway. Then a few will just have a script bind to the select button that auto-ticks the checkboxes before submitting.

I don't think this is a problem that can be engineered away so easily.

</comment><comment><USER4> It'd make it even _worse_ to use HackerNews and comment from a mobile device at that stage, so it might curb some of the trolling but at the risk of annoying a subset of users.

Plus the community is fairly good at downvoting and flagging bad and unhelpful comments.

</comment><comment><USER5> I can think of sites that need such a feature more.

Reminding _new_ users that "I agree", memes and other comments are frowned on each time they comment might be a good idea though.</comment>


Install all of the Google Web Fonts on OS X via command line - <AUTHOR> http://webfontload.com

<comment><USER2> Or alternately you could do a

       hg clone https://code.google.com/p/googlefontdirectory/

... and skip the part where you have to run a random shell script curl'ed off the Web.

(At least in this case the random shell script isn't demanding you run it with elevated privileges, though. +1 for that.)</comment>


Maybe Money Does Buy Happiness After All - <AUTHOR> http://www.nytimes.com/2008/04/16/business/16leonhardt.html?ex=1365998400&en=bdbfd2384c50f811&ei=5090&partner=rssuserland&emc=rss&pagewanted=all

<comment><USER2> Easterlin's classica paper asserts that happiness is not related to the total amount of money you own, but rather to the amount of money you own compared to those around you. The new rebuttal of the theory that this article is about claims that new polling methods have made it easier to get correct answers - and that these do not match the classical theory. The accompanying map shows a clear correlation between a country's GDP per capita and average life satisfaction.

The study, however, is flawed.

What they fail to take into account is that the Easterlin study was made in the 70's when poor countries weren't exposed to the lifestyles of richer countries through media such as television and the Internet. Today even the poorest countries have lots of communication with the outside world. According the CIA world fact book around 20% of Albanias population was online in 2006. And almost everyone had access to television. What this means is that the population in poor countries can see what life is like in Beverly Hills, and see the western lifestyle as their "peers"

So the paradox holds - information technology has just made it obvious to the poor countries how poor they really are.

Correlation does not equal causation....

<comment><USER3> Hey, I actually am from Albania. I was born in 1980, so my first 10 years were under comunism. People were poor, but there was more equality. So, when you saw around you how everybody was doing about the same, then you didn't feel that bad. The lack of general resources, made people and families to be much more connected, as you had to rely more on your family (not just the inner circile, but everybody, from uncles, aunts, third cousins, etc).

When comunism fell, some people started making more money, getting new cars, houses on the beach, while some were left with less, which obviously made them unhapier. They might be slightly better off than in comunism, but they were much worse than their peers.

Well, accoding to Kant's principles, is the extra hapinness gained by those that made it well, worth equal or more than the happiness lost by those that are faring less well? It is a very hard thing to quantify.

But even in the 80s, we could watch Italian TV, so we kinda new that the rest of the world was doing much better, (and eventually overthru our comunist goverment), BUT everybody around us was doing about the same.

My mom told me a while ago; well we are doing much better economically (as a family), and have a lot more now, BUT we seemed to be a lot happier back than.

</comment></comment><comment><USER4> An old girlfriend of mine used to say: "People who say money doesn't buy happiness don't know where to shop".

<comment><USER5> i hate vapid little sayings like this. people use these as mental shortcuts.

x? respond with y, problem solved.

</comment></comment><comment><USER6> As the great poet-rapper Kanye West once said, "Having money's not everything; not having it is."

</comment><comment><USER7> I suspect that it mostly matters for what you use it. Simple accumulation of goods isn't really all that satisfying, but freedom from basic necessities and the the ability to do things and make changes that you otherwise would be incapable of, are very nice.

</comment><comment><USER8> Having money lets you trade one set of problems for a different set of problems. That second set generally consists of "nice problems to have" but they are problems nonetheless. Whether or not you're happier depends on which set of problems you prefer.

<comment><USER9> What is that different set of problems?

(Since people tend to be sarcastic about this, maybe I should add that I don't mean it that way. Just curious.)

<comment><USER10> -can't trust people (are they nice because they like you or because they're trying to cash in)

-security (you're a more attractive target)

-pressure to continue performing (fear of being a one-hit wonder)

-more to lose, higher expected standard of living (think Mike Tyson)

-not knowing how to manage luxury (live big without blowing it all)

-decisions are more complicated because you have more options

PS These are all speculation because I definitely have the "no money" problems

<comment><USER9> Then it's impressive that you can imagine them. Maybe you have a novelist's mind. :)

<comment><USER10> Nah, I just read a lot. Thank you though!

<comment><USER8> Actually, you're not far off the mark. I would add:

\- pressure from friends and family to spend the way they want you to ("Why don't you help your little sister more?")

\- can be hard on long-standing friendships because they can't afford to do the things you can afford, and paying for them creates awkward feelings of obligation.

But the fundamental problem with having money you have to decide what to do with it, which is not nearly as easy as you might imagine.

<comment><USER9> You remind me of a statement I read attributed to Andrew Carnegie, something like (I'm paraphrasing): "I made several hundred million dollars and gave it away, and the giving was incomparably harder than the making."

Also, I suppose that a psychological advantage of not having money is that you can imagine how much better off you'd be if you had it.

<comment><USER8> I'd put that slightly differently: if you bought heavily into the idea that money will make you happy and then find that it doesn't, then you can be truly lost. As long as you don't have money, it makes it that much easier to figure out what you ought to be doing day to day, which for many people is no small thing.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Of course money can buy happiness.

It buys one kind: what results from the relief of not having to worry about money anymore. ("Worrying" about losing your millions does not count; we poorer folks have to worry about that, too.)

Financial freedom does not automatically make you happy, but the universe isn't binary, and so being relieved of the biggest worry in modern life does buy you a good amount of happiness -- or at least, the opportunity for happiness.

<comment><USER10> My favorite relevant quote is "For problems that can be solved by money, there's nothing better than money." For instance, commuting time. I drive 30 min to work in traffic because houses are 60-80% more expensive by my office. If I had double the money, I'd move closer and get more time with my family. My options are 1) drive more or 2) have a smaller house. More money would solve either of those.

<comment><USER12> There are no problems that are better solved with less money.

<comment><USER13> What about depression caused by exceed of money?</comment></comment></comment></comment>


How can we thank Google for their commitment to free expression? - <AUTHOR>

It seems to me that Google has been taking a lot of heat lately with denying the request to remove the Mohammed video and their Brazil chief being detained for refusing to remove a user-uploaded video attacking and "slandering" a mayoral candidate in the country. If Google were to censor something, we'd be all over it. Maybe we can figure out a way to let them know how much we appreciate their stance? <comment><USER2> Google doesn't censor things because of the money, do you really think they do it because they're good people? In that case why are they always tracking us and spying all our data? why do they own all the rights over the info I upload to Google Drive?

Google IS evil

</comment><comment><USER3> Google aren't idiots. They won't censor something that is already popular. It would achieve nothing and put them in bad publicity.

</comment><comment><USER4> The same way we damn them for their poor customer support - impotent blog posts.

</comment><comment><USER5> The Brazil chief was not detained over the Mohmed video.</comment>


Consent of the Surveiled - <AUTHOR> http://www.ribbonfarm.com/2014/01/10/consent-of-the-surveiled/

<comment><USER2> In Technologies of Consent section author makes interesting point. Modern surveillance is enabled by technology, we've never dealt with something like that before[1]. Technology is not going away, our digital fingerprints will only get larger. Essentially that means that we would need to restructure[2] social/political system in order to address that problem.

[1] - Interesting side thought about that - technology allows you to survey people who are doing the surveillance and maintaining the system with relatively low overhead. In theory this could allow for 1984 like totalitarian state, although I believe probability of such severe scenario happening is pretty low.

[2] - issue with just ending government surveillance is that private companies already have gigantic amount of data on individual people too. Consider this - how much money would it be worth to Google to subtly run A/B tests on individual users in order to present them with ad layout/content they are most likely to click on?

</comment><comment><USER3> Now that was an interesting read. The article does not discuss the implications of surveillance from a potential of abuse. In the article there is a comparison of food ration consent (india), car driving consent (america), land owning consent (most places). Do people care about the government knowing where you live? Apparently most don't despite how invasive that would seem if that wasn't the case to begin with. The real question is, how much would a government with this new order of consent, really need to know about you? Would they need an online ID assigned to a GPS location, or everything that Google has on you to perform their function?

</comment><comment><USER4> Reading, then skimming, then skipping the article I note that the difference of views on the subject comes largely down to the willingness of supporters (to whatever degree) to expend a great deal of verbiage, time, resources, and readership on the prospects of establishing such governance, vs the opposing view of "leave me alone".</comment>


Ask HN: hacker day jobs in NYC? - <AUTHOR>

I am trying to write a fiction book about my past 12 years working for startups in silicon valley and NYC. I am looking for a job that is more like a day job than it is the ultimate startup experience. I.e. I don't want to work more than 40 hours a week, and could even do part time.
I've worked on all sorts of stuff: iPhone app with 200K users, websites with 2M users, scaling, data warehousing, systems automation, e-commerce, "media", scientific research, java, ruby, python, perl, etc.
I'm going to have a meeting with my current CTO next week to see if I can arrange something at my current company. However,  we go way back and I'm almost certain he won't go for it. (he's one of those "hobbies and outside interests are for the weak" types... but I love him anyway)
Anyway... any suggestions would be appreciated. <comment><USER2> good luck with the novel. I was gutted bubble city was never finished. <http://www.aaronsw.com/weblog/bubblecity1></comment>


Moderate-Fat Diet Decreases the Oxidation of Small, Dense LDL in Adults - <AUTHOR> https://academic.oup.com/jn/advance-article/doi/10.1093/jn/nxz231/5588100 <comment><USER2> "Supported by a grant from the Hass Avocado Board."

</comment><comment><USER3> LDL == Low Density Lipid

So, how can LDL be "dense"?

</comment><comment><USER4> Are we really still here?</comment>


"I fly 747s for a living. Here are the amazing things I see every day." - <AUTHOR> http://www.vox.com/2016/5/2/11520288/pilot-airplane-photos <comment><USER2> _Then, less than an hour after the long-stilled wheels of the 747 were spun back to life by the sun-beaten surface of an African runway, I 'll be on a bus heading into Cape Town, sitting in rush hour traffic, on an ordinary morning in which, glancing down through the windshield of a nearby car, I'll see a hand lift a cup of coffee or reach forward to tune the radio. And I'll think: All this would still be going on if I hadn't flown here._

I finally made an account to comment on this. This is one of those realizations which, to me, still has its full effect every time I think about it. I think it really hit me the first time when I was on a road trip, passing city after city, neighborhood after neighborhood, house after house, and then thinking about the population of the area I just passed compared to that of my state, my country, and outward. Thinking about the challenges and experiences I've had among my friends and family, inside each of those houses, etc. It's a very powerful source of empathy.

<comment><USER3> I believe this is called "sonder".

[https://www.youtube.com/watch?v=AkoML0_FiV4](https://www.youtube.com/watch?v=AkoML0_FiV4)

</comment></comment><comment><USER4> He seems to maintain a sense of wonder that I find surprising for a pilot. For me, I think the daily routine would become droll and familiar after working it for a year or so. And I can't imagine how hard it would be to sit in a cockpit doing nothing for 12 hours while the plane flies in a straight line over the ocean, and then do it again the next day, and the next. It seems so _boring_.

<comment><USER5> If you do what you love for a living, you'll never have to work again. Of course what one person loves another can find boring :-)</comment></comment>


The Dirty Dishes Theory – Your Home, Your Life - <AUTHOR> http://www.unfinishedman.com/the-dirty-dishes-theory-your-home-your-life/

<comment><USER2> Agreed. It's sort of like cleaning as you go, but that implies you're cleaning all the time, but you really aren't. A tidy place helps you think better, act better and live better.

<comment><AUTHOR> Exactly. Honestly, for me a bit part of it is just having this inherent dislike of mess and clutter. It bothers me, and in that respect, cleaning it up does help me think better.</comment></comment>


Comparative Advantage in economics confirmed by evidence - <AUTHOR> http://web.mit.edu/newsoffice/2012/confirming-ricardo-0620.html

<comment><AUTHOR> Paper can be found here: <http://ideas.repec.org/p/nbr/nberwo/17969.html></comment>


Complete YouTube videos of select Stanford classes - <AUTHOR> http://www.youtube.com/user/stanforduniversity

<comment><USER2> Wow, it's like they've skipped Open Courseware all together-- way to kick some MIT ass. Sadly, don't think this is going to match YouTube edutainment favorite: Drunk History (<http://www.youtube.com/watch?v=6V_DsL1x1uY>)

</comment><comment><USER3> These videos are great - with one caveat: in the programming and math related videos, it is nearly impossible to see the code on the projector or the math on the chalkboard. The downloadable iTunes versions of the videos share the same problem.

<comment><AUTHOR> Low res can be a problem. I wonder if they've considered seeding a torrent with higher resolution videos.

Better than stealing movies for sure.</comment></comment>


Roblox is a MUD: The history of MUDs, virtual worlds and MMORPGs - <AUTHOR> https://medium.com/@felipepepe/roblox-is-a-mud-the-history-of-virtual-worlds-muds-mmorpgs-12e41c4cb9b <comment><USER2> MUDs are what got me into programming. I was obsessed with them as a kid, although they were associated with DnD which was considered satanic so I had to hide them from my parents and teachers, who both forbid me from associating with DnD or MUDs.

Besides playing them, I actually spent more time as a "builder" than a "coder", which was an intermediate step in the hierarchy. As a builder, I would write hundreds of room descriptions, which most people never read. I desperately wanted to be a coder, the highest level of coolness in the MUD hierarchy, thus the journey began.

However, to me, MUDs always had an underground sensibility to them that something like WoW or Roblox will never replicate. The lack of polish is part of the fun, in the same way an underground punk rock show might be more fun than Coachella. I'm not sure if there's any experience like it left on the internet, I've never played Minecraft, but based on what I've read, that may come the closest.

<comment><USER3> I wouldn't say Roblox games have polish either. There's also a lot of weirdness that only adolescents and tweens would fully understand because in many cases it's made by those same kids. I wouldn't consider it a MUD either. None of the games I've seen so far even have RPG traits. It's more of a powerful sandbox than even Minecraft imo

<comment><USER4> Some are quite polished. Take a look at Phantom Forces, an FPS that plays as well as Call of Duty.

<comment><USER3> That's the exception and far from the norm.

</comment></comment></comment></comment><comment><USER5> I have a company. Our first employee (twenty years ago) had a serious MUD addiction. While a decent and hard-working fellow, he couldn't resist playing his MUD on the job. That was easy enough for him: one of his many terminals was dedicated to it and he would enter a command every few minutes or so. He got a couple of formal warnings before refraining from that behaviour (or he got better at hiding it). Before he came to work for us he had flunked university, and I am pretty sure MUD had to do with that. People who knew him before said he always hung out at the college computer club instead of attending courses.

<comment><USER6> Yeah, MUDs were very much the spiritual precursors to the modern MMORPG. Both have the same extremely addictive property.

<comment><USER7> Everquest was basically a Diku/ROM/Circle/Smaug MUD in 3D.

</comment></comment></comment><comment><USER8> Roboblox could not be farther from MUDs and only people who played MUDs can appreciate the difference.

Lets start with the obvious - MUDs use text and "text is the highest bandwidth medium for our imagination" (quote by Bartle, co-creator of first MUD).

I recommend everyone watching this video to understand why is text so superior to any other medium:

[https://www.youtube.com/watch?v=Zctp972y_Eg](https://www.youtube.com/watch?v=Zctp972y_Eg)

Incidentally the lockdown inspired me to spend the last five months rebuilding and relaunching the MUD I built in 90s. It is properly hard and properly text and if you want to check it out: telnet playlom.com 4000 (and if you are less hardcore [http://playlom.com:4001/](http://playlom.com:4001/) )

<comment><USER9> Text is absolutely not the highest bandwidth medium for imagination. Think about what a textured polygon can convey about a character in just one glance: color, clothing, dimensions, facial expression, posture. It'd take paragraphs to convey all this information in text, but with graphics it takes but a glance.

If what this quote is referring to is the fact that text based mediums force us to use our own imaginations, it's actually because of the opposite: text is exceeding low bandwidth for communicating imagination, and because of that low bandwidth users need to fill in the gaps with their own.

<comment><USER10> Isn't "fill in the gaps" the point? What exactly does a polygon character make a person imagine? Text like "He was a nefarious looking character dressed all in red" takes a very small amount of bytes but the resulting payload in someone's mind can be huge. I guess you could argue that images might be a better mechanism to transmit someone else's imagination but text is better to activate your own and I think that is what the quote was about.

<comment><USER9> There's undoubtedly an appeal to exercising one's own imagination. But any text based interface locks off a huge amount of options for interaction. You'll never have a racing Game, a shooter, a flight simulator, any kind of visual puzzles, etc. in a text based game. The constraints are enormous and there's little question as to why there are so few text based games today. And those few that do exist and are popular like Dwarf Fortress, Tales of Maj'Eyal, Cataclysm: Dark Days Ahead, etc. all support graphical tiles.

<comment><USER11> > You'll never have a racing game, a shooter

We had a variant of each genre in uni, designed for checkered paper.

<comment><USER9> And how did you aim the reticule against your opponents in this checkered paper game? Gameplay ran in realtime? I'm sure you mean to say that you created a pen and paper game that had shooting as an element, but backed by some kind of dice roll. This is conforms to what I said were the constraints of text based games: graph or grid based worlds with turn based or pseudo turn based simulation. Shooters in these kinds of games do exist: [https://store.steampowered.com/app/722730/Cogmind/](https://store.steampowered.com/app/722730/Cogmind/) but they exhibit the same constraints I mentioned

<comment><USER11> Of course it was not real time. You just picked a shooting direction along one of the two axis.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> This Twitter thread about Roblox really enlightened me about it, had no idea how it was more of a game engine and how much money people were making with it.

[https://twitter.com/molleindustria/status/128376418142720000...](https://twitter.com/molleindustria/status/1283764181427200000)

<comment><USER13> It's crazy how people still consider Roblox a single game. The platform has so many games that it went through distinct cycles of popular genres. Back when I played (2009ish) the dominating genres were "zombie defense" [1] and "build to survive X" [2]. Only a few years later, those games became completely empty. It's also interesting to note that these games held the top spots at Roblox for years, but have a small number of the total visits compared to the most popular games today due to Roblox's exploding playerbase.

1\. [https://www.roblox.com/games/2557808/Shaakras-Zombie- Defence...](https://www.roblox.com/games/2557808/Shaakras-Zombie- Defence-v3-0-8) 2.[https://www.roblox.com/games/2899609/Build-To-Survive- Drakob...](https://www.roblox.com/games/2899609/Build-To-Survive- Drakobloxxers)

</comment></comment><comment><USER14> MUDs are still thriving to this day. I work on Mudlet ([https://mudlet.org](https://mudlet.org)) which is a popular FOSS client to play them with.

<comment><USER15> Mudlet is great, thanks for your work. It's a pity though that it took nearly until MUDs are dead to such good client appear. I'm rather sure that if comparable clients existed 20 or maybe even 10 years ago, MUDs wouldn't be in this state.

<comment><USER14> One can always dream to bring the genre back.

</comment></comment></comment><comment><USER16> Roblox is more like LambdaMOO than a MUD. LambdaMOO and its succesors were 100% programmed in a prototype based object-oriented programming language with only minimal world-support in the C portion of the server itself. The entire world was composed using the programming language and most users ended up being at least builders if not programmers in it. The focus was authoring, not RPG. Some people (including myself) wrote up some RPGs in MOO but they never really caught on.

<comment><USER17> I've played a LambdaMOO based MUD off and on for about 10 years now. Players would inevitably quit or transition to working on the game core, such an awesome community to be a part of.

<comment><USER16> I was young but it was heady days back then in the early 90s playing with that stuff. The most disappointing thing for me at the time was how the Internet went the direction of the web browser / HTTP instead of the direction we were trying to go with stuff like LambdaMOO. The web in those days was all about a non-persistent connection and a fairly non-interactive experience. It wasn't until the mid-2000s that "web 2.0" took off and the web got some of the interactivity and dynamic programmability we had in mind with what we were playing with in the early 90s -- but it got it in this awful bolted-on way.

That idea of a massive shared authoring environment, I still think that's the future of computing. But for me it isn't about the 3d VR-ish immersion stuff, I actually fear the isolating box that that puts people in. Which is why I haven't played with Roblox or let my kids use it either. I don't want them in another world. I want these kinds of tools to enrich the world we already have, instead.

</comment></comment></comment><comment><USER18> Now it makes sense.

I used to be a wizard in a MUD. I enjoyed coding there, as I can interact in realtime with others on the server while they play around with my code.

Now I just released my first Roblox game. I enjoyed coding there, as I can interact in realtime with others on the server while they play around with my code.

<comment><USER19> > I used to be a wizard in a MUD.

Not Discworld MUD[1], by any chance?

[1] [http://discworld.starturtle.net/lpc/](http://discworld.starturtle.net/lpc/)

<comment><USER20> I don't know about bemmu, but I was. Ended up being a creator there.

<comment><USER21> Hey, what a coincidence - same here!

</comment></comment></comment></comment><comment><USER22> I was Richard's tester, in as much as I was one of the first to reach Wizardhood and thus able to use FOD (Finger of Death) on annoying and misbehaving newbies. I guess that was a precursor of today's Facebook bans but without its unfortunate PC connotations.

We were always being pursued by the "evil" Computing Centre Director who thought that we were wasting his precious computer time instead of doing something serious. The funny thing is that Essex is now better remembered for this triviality than for that supposedly serious work.

</comment><comment><USER23> It is a pity the article dismisses the whole eco system around LPMuds that much by basically only including them in that screenshot from Bartle's book. They were an interesting middle ground between the Diku-likes (think: precursors to Diablo) and the MOOs, being online programmable in an object- oriented C dialect called LPC which today lives on in e.g. the Pike programming language.

<comment> em-bee lpc/pike is a runtime compiled language much closer to python and java than to c. it is as much of a c dialect as javascript is a java dialect. other than c-style syntax they don't have much in common.

the best part of lpc/pike is that it compiles code in units of classes. that is, each file is a class, the filename being the classname. the compiled class would then be used to instantiate objects, and here comes the kicker:

in order to add or update objects in the mud world it was necessary to compile classes at runtime without restarting the game. so when a coder made a change to an object, the game would recompile the class, replace what it had stored, and new instances of that object were created from the new class. old objects lived on until they were destroyed.

lpmuds were the ultimate example of making and testing changes to a live server in production

<comment><USER23> You are right of course, just tried to be concise with the description - it's basically how we always explained it to the players back then. A Java or Python comparison was not possible at that time - both did not even exist at the time while I was programming on an LPMud driver.

It is a pity LPC4/µlpc/Pike did not gain more mainstream acceptance after its early success with Roxen, even installing it was a pain last I tried.

<comment> em-bee _A Java or Python comparison was not possible at that time - both did not even exist at the time_

hah, good point.

yeah, roxen the company missed a window of opportunity there to promote pike when they hired the wrong type of management and fired hubbe, pikes creator. but i don't want to get into politics.

what's your trouble with installing pike? i have pike running on most of my machines and don't remember any serious issues. i do install from source usually though.

i am not using roxen but a different platform also written in pike called sTeam or open-steam, which incidently is a web development and object storage platform designed like a MUD.

<comment><USER23> It was already a while ago, stumbled across the hand coded i386 assembler in, if I recall correctly, nettle at that time. On a later attempt, getting the mysql driver into the thing was a pain on my Mac. It's not that it did not work with some debugging experience, just that each and every time I install it, something else is broken on first attempt.

And now, recently, SWIG removed Pike support, bringing future trouble to the one project we have running internally at our company based on Pike, as that used SWIG for bindings to some other third-party C software, so we can never update that again to a newer SWIG version without rewriting that stuff.

<comment> em-bee oh bummer. writing native c bindings for pike is not to hard though. maybe that is an option.

</comment></comment></comment></comment></comment></comment><comment><USER24> Context for people considering whether it's worth reading this whole article: Roblox is a wildly successful online game popular with kids where they can create and share their own content, including video games they created themselves. Some Roblox game content (created by kids or adults) has 100k+ concurrent players. The origins of this title are pretty interesting and it's especially interesting given that you generally don't see people talking about Roblox inside or outside of the video games-focused press.

<comment><USER25> My daughter loves Roblox and plays all the time on Xbox (we restrict it to Xbox because of the lack of in-game chat). When you refer to the dearth of media attention, I guess that doesn't include YT right? Roblox is absolutely huge on YouTube.

</comment></comment><comment><USER26> MUD2, the next incarnation of the MUD by Bartle and Trubshaw mentioned in the article is still running and free to play (I believe), [http://mud2.com/](http://mud2.com/). I played it on and off from 1994 to 1999 or so. If your character was killed in combat you died dead dead and had to start all over again which made it feel very high stakes when you could spend months building a character only to have to start again.

I decided the only way I'd get it out of my system was to make Wizard which I did eventually (that was quite the phone bill) and I stopped playing a little while later. I've never really got into another online game since.

I seem to remember some gaming service in the UK trying to make a client for MUD2 with some graphics to try and give it more mainstream appeal. It didn't really work. I do remember the conversation of "I wonder if it's possible to make a MUD but with graphics?" came up in the teamroom chatter from time to time.

Now my kids play Roblox, which is also kind of amazing in its own very different way. It has the social element of a MUD (although my kids mostly know the people they play with in real life first), and its a gateway to programming, but all the experiences are far more lightweight and short lasting whereas I think the land of MUD2 has left some kind of lasting impression with me.

</comment><comment><USER27> Enjoyable read! I just wish the brief tangent about BBSes had also mentioned dial-up BBS MUDs, but I understand the omission considering the article's length, as well as BBS MUDs' lack of geographic ubiquity. The most compelling aspect of dial-up BBS MUDs was community locality: all of the players generally lived in your metro area.

In the 90s, the only popular BBS MUDs ran on the MajorBBS/WorldGroup BBS software, which was technologically impressive for its time -- it could handle dozens of modems and concurrent users on a single PC running DOS, and supported pluggable games/modules using an event-loop callback architecture. However, it was also incredibly expensive for the SysOp to purchase, as were its games. This meant that any given metro area typically only had a few MBBS/WG BBSes, and they tended to be pay-for-access systems.

By far the most popular MBBS/WG MUD was MajorMUD, although there were also some fairly successful predecessors (e.g. TeleArena, Mutants, Swords of Chaos) and successors (e.g. The Rose: Council of Guardians). These games were typically "stock" \-- they had sprawling game worlds but were identical on each BBS, with little or no built-in ability for the SysOp to edit the world. Despite that, each game's "feel" still naturally differed between each BBS just based on the local community.

As a teen MajorMUD addict, I always wanted to run my own board one day, but the cost was prohibitive. This eventually inspired me to write my own BBS MUD as an affordable doorgame for hobbyist/lower-end systems, which at ~20K LOC was the first large program I ever wrote. It did relatively well for its time period (BBSes were dying out by that point) but rarely achieved large concurrent user counts on many boards, which was an inherent downside to aiming for the smaller boards.

</comment><comment><USER28> I spent an embarrassing amount of time playing MUDs beginning in high school all the way throughout and after college.

Perhaps all MUDs did this, but my MUD of choice (Revenge of the Jedi RotJ) tallied your total playing time in your player stats.

The way I got started was that a few friends from school were playing and talking about it. It sounded dumb at the time (no pictures + typing) and I decided I would start playing just to kill them in the game.

Little did I know that I would need to spend a lot of time to improve my level, acquire skills, and get better equipment. In addition I didn't know that PKs were mostly frowned upon.

</comment><comment><USER29> Wow, it even includes Scepter of Goth!

I maintained Scepter of Goth, but because it's no longer available it's now often forgotten. I'm very happy to see it included.

I think one of the key tricks and Scepter of Goth was the follow command. As a text adventure, you could say "follow X" and from then on, whenever X moved then you would move with X. That was a key trick to making it easy to create parties so they could go adventuring.

<comment><USER30> [https://github.com/shelches/scepter](https://github.com/shelches/scepter)

<comment><USER29> Excellent, thanks for the pointer. I've added that to my document on the history of the Scepter of Goth. It looks like I'll be able to (eventually) post other things, too!!

</comment></comment></comment><comment><USER31> Surprised to not see the Iron Realms MUDs mentioned in the article. I've seen the CEO around here in the past, but can't remember his username or if he still posts.

<comment><USER32> As a former coder for Achaea, I was surprised as well. You mean Matt Mihály.

<comment><USER33> I basically only learned how to touch type by playing Achaea. Gotta type fast if you haven't figured out how to make single-character aliases for 'sip health' and 'jab goblin'!

</comment></comment></comment><comment><USER34> I somewhat fail to see the connection between Roblox and MUDs but FWIW one of the most well known MUDs of the 90's is still up and running, M.U.M.E (Multi- Users in Middle Earth). It was a Diku derivative but with its own online language for the wizards to code in, designed by a compiler PhD, at the time it was state of the art.

MUMEs attraction was that it was difficult and run with attention to details and RPG.

<comment><USER35> I still play MUME from time to time, and have been playing it since it started: [https://mume.org/](https://mume.org/)

Can not recommend it enough. It's like interacting with the living world inside of Tolkien's books. It's really good.

</comment></comment><comment><USER6> I'll throw another hat in the "MUDs got me into tech" ring. I spent significant time on Swords of Chaos, a sort of proto-MUD, then on various God Wars incarnations.

They were the first time that I realized, and truly appreciated, the fact that technology can give a kid the ability to bring something from imagination to fruition with little more than determination, some manuals, a computer, and some lost sleep. That's a very empowering thing for a young person, and is still at the core of what I love about technology.

My niece and nephew play Roblox. I think the creative element of it is a little less accessible, since it seems like a lot of kids consume it via tablets or phones, and there's an element of handling graphics. I got them a laptop specifically in hopes that they would make the jump though.

<comment><USER36> My kids (11 and 9) love roblox, but it's too hard to create stuff with it. There is a lot of coding involved and the learning curve is significant, I tried it myself and got overwhelmed (although to be fair, my interest was pretty low to start with). They are much more creative with Minecraft.

</comment></comment><comment><USER37> I was an "official" builder on the Steve Jackson Games[0] Metaverse MOO in the 90's. My "job" was to create interesting spaces, places and objects. My "pay" was a free shell account. I was a blue gelatinous cube that had escaped a crashed NetHack game and was followed about by a pink gelatinous pyramidal puppet. I did this for several years until the game finally folded[1]...

[0] [http://www.sjgames.com/](http://www.sjgames.com/)

[1] [https://web.archive.org/web/19961226202638/http://www.io.com...](https://web.archive.org/web/19961226202638/http://www.io.com/io/metaverse/)

</comment><comment><USER38> CarrionFields(CF) is an active MUD to this day, focusing on PVP and guild combat. I haven't found a replacement for CF in terms of PVP combat and roleplaying. Great lore too!

[https://www.carrionfields.net/](https://www.carrionfields.net/)

</comment><comment><USER39> Any current or former Gemstone players out there? It used to be on AOL but switched to the regular internet at some point. I still drop in from time to time, brings me back to my childhood.

<comment><USER40> Yep, made my way through most of the Simutronics games. Recently tried Dragonrealms again but struggled to get into it. I also think their subscription pricing is way too high.

But I have fond memories of farming gold rings from Harpies in GS3, and popping boxes in the thieves guild in DR. Cyberstrike was also ahead of its time and was surprisingly enjoyable despite the horrendous lag.

</comment></comment><comment><USER41> I wouldn't be the person I was today without MUDs. They brought me to my first foray into coding and gave me a sense of community that I never really was able to find anywhere else during my high school years (2009 - 2013). The magic has since long worn off for me and have since found other interests but those years spent obsessively playing were just so formative and fun.

</comment><comment><USER42> Is it easy to create Roblox games? I know my kids love it but not sure if its possible to try to do somthing yourself.

<comment><USER43> I wouldn't call it easy, but it is possible. The tools are not very polished, but they exist and are free... (start with Roblox Studio)

</comment></comment><comment><USER44> Played so much on BatMud in the early nineties. Bat Mud is still running at [https://www.bat.org](https://www.bat.org)

Became a "wiz", and wrote my first code used by other people in 1992. That code is still running, 28 years later!

</comment><comment><USER45> I got into a MUD around 2003. Lensmoor. Our high school laptops didn't block Telnet, so it was something to do.

I was obsessed with the game until I gradually realized that the best players were there for thousands of hours, and I didn't have that kind of time for it.

</comment><comment><USER46> The article is an impressive historical treatment of the topic. More than 40 pages, almost a diploma thesis. I personally would have been more interested in the technical aspects, but that would probably multiply the text length.

</comment><comment><USER47> I used to maintain Solace MUD in early 00s, what a time. Still have the source code for it, I think, and the forum is still somewhat active despite the fact that the server's been down for a long time now.

</comment><comment><USER48> Running home from school in the 90's to get on and play my turns on DikuMUD...

</comment><comment><USER49> Great read.

</comment><comment><USER50> I used to play on anguish.org in the 90s. What a wild time that was.</comment>