RubyMotion - Ruby for iOS - <AUTHOR> http://www.rubymotion.com/ <comment><USER2> I love writing Ruby code, but today I'm finally at a point where I also feel happy and productive with Objective-C. What made my eyes bulge is this:

[http://www.rubymotion.com/developer-center/guides/project- ma...](http://www.rubymotion.com/developer-center/guides/project- management/#_configuration)

No XCode. Instead of obscure and impenetrable project files, a convention over configuration Rakefile. Clean and Ruby-like workflows and repositories.

 _While you can certainly configure an Xcode workspace to program in RubyMotion, we do not provide any support for Xcode out-of-the-box. We do not believe that Xcode makes a good environment for Ruby development (or development in general). Ruby also makes it very easy to write great Domain- Specific Languages that can be used as elegant alternatives to graphical user interface or data modeling tools._ [1]

Laurent Sansonetti gets it. I've been writing iOS code for three years and have never been able to figure out how to have a frictionless workflow around XCode, everything about it is convoluted. The idea of automating frequent development tasks with Ruby generators and DSLs sounds exciting and promising.

[1] <http://www.rubymotion.com/support/#faq>

<comment><USER3> Which makes me wonder.. is it possible to rig up such an environment for standard Objective C iOS app development? It could be huge.

<comment><USER4> It's entirely possible to use Make (or whatever you want) to build a project. There's no magic to Xcode. You just need to invoke to correct compiler and linker (Apple's GCC, usually), include the right flags and frameworks for them, and probably invoke some Apple tools for things like code-signing.

</comment></comment></comment><comment><USER5> This is from Laurent Sansonetti, the original author and long time maintainer of MacRuby. It doesn't say that anywhere until _after_ you buy it, which they should really change since that made me go from "Uh, did some random guys just take MacRuby's code and hack in some extra stuff to sell it?" to "Holy crap so THIS is what he's been working on!"

<comment><USER6> Actually they say that this is based on MacRuby:

<http://www.rubymotion.com/features/>

at the bottom of the page:

 _RubyMotion is based on MacRuby, a widely-used implementation of Ruby created and maintained by Apple for over 4 years. Starting from a solid and stable code base, the guys who originally created MacRuby now work on RubyMotion. You're in good hands._

<comment><USER5> Ah, now I see! I suppose I glossed over that. It should be bigger. ;)

<comment><USER7> I agree, I looked at pretty much every page on the site wondering what the connection was to MacRuby, until I found it in the FAQ.

</comment></comment></comment></comment><comment><USER6> A suggestion for Laurent Sansonetti will be to release this similarly with the way Xamarin has released Mono for iOS. Basically you should be able to download and use the library for free in the iPhone/iPad simulator and you will need to buy a license if you want to be able to export the app to the actual device. This licensing model has the advantage that is similar with what Apple does for developing apps for iOS.

This will let you, as a developer, try and learn to use RubyMotion before you actually buy a license.

<comment> grey-area I'd second this suggestion. I love the idea of using ruby on ios, this looks like a womderful solution, and it looks far more rubyish in syntax than Mobiruby (which isn't there yet anyway), but I would really like to try it out for myself in the simulator and develop a few simple apps before deciding whether I would want to use it professionally. If they could limit it to simulator only for free it would be much easier to tell if it is going to be really useful or more painful than just putting up with obj c. Having a demo might even boost adoption.

A question for the developers - did you consider this option and reject it for some reason?

</comment></comment><comment><USER8> I don't see the point of this. Objective-C is not hard to learn, and with ARC, blocks, the new literals for NSArray and NSDictionary, etc, Objective-C has actually become pleasant to write IMO. The example RubyMotion code also doesn't look very nice either.

The problem with Rubyists (being one for the past 6 years I feel qualified to say this) is _in general_ they want to use Ruby for everything. It's not always the best tool for the job.

<comment><USER9> Forgive my ignorance of iOS, but do the current Objective-C based tools deliver "An interactive shell [...] for introspection, live coding and debugging" ? If RubyMotion can actually deliver a real first-class REPL that works, that would be a pretty huge deal. Lack of a REPL is the biggest reason why I dislike mobile (Android) development.

<comment><USER10> Yes, it's called GDB or LLDB, depending on your compiler. Not live coding though, but I don't know if that's a big deal.

<comment><USER11> Yes, it's a big deal. Being able to live code completely changes (and dare I say, improves) one's ability to construct rather complicated structures that work because the small building blocks are live-tested. It's fantastic.

<comment><USER10> And now I'm left wondering how Apple ships anything without a REPL.

It's not a big deal*

* former smalltalker

</comment></comment></comment></comment></comment><comment><USER12> This is really awesome, but I found some bad news in the FAQ:

> Because RubyMotion implements a dialect of Ruby that is statically compiled, > regular Ruby gems will not work in RubyMotion. We provide documentation > which describes how to architect gems to work with RubyMotion.

<comment><USER13> Anyone who has done any serious MacRuby development would already tell you that normal Ruby gems aren't usually the best way to go (slow, don't use Objective-C frameworks).

I can see where this could be a problem if you typically just glue gems together to make products, but if you're used to rolling your own solutions it isn't a big deal.

Sucks, but not a show stopper.

</comment></comment><comment><USER14> Part of me is happy. Apple pushed MacRuby before Lion and effectively killed it internally going forward after the ARC announcement. MacRuby relies on the GC capability of Objective-C which is incompatible with their new ARC baby. Just a few days ago I wanted to take a backend framework we wrote and build a command line tool to call some of it's methods in MacRuby (lots of command line parsing and Ruby has good facilities for that) but forgot we converted that framework to ARC. No dice.

This looks promising but at the same time I really wish the backend compiler was open sourced and worked on Mac and not just iOS.

<comment><USER15> Since Laurent Sansonetti is the author of MacRuby AND RubyMotion, he already said feature from RM will be backported (and hence open-sourced) to MacRuby

<comment><USER16> I'll simply point you at Laurent's email to the MacRuby-devel mailing list about a month ago. I think re-reading it in light of today's announcement could be...informative ;-)

[http://lists.macosforge.org/pipermail/macruby- devel/2012-Apr...](http://lists.macosforge.org/pipermail/macruby- devel/2012-April/008702.html)

</comment></comment></comment><comment><USER17> I've played around with what seems like ever alternative framework under the sun (Titanium, Rhodes, PhoneGap, MonoTouch, Corona) and have been pretty frustrated with how clunky they usually feel. However with everything its claiming and the decent price point I'm toying with purchasing site unseen...just wish I could try it for a few hours first.

<comment><AUTHOR> Two suggestions:

1) [http://arstechnica.com/business/news/2012/05/exclusive- build...](http://arstechnica.com/business/news/2012/05/exclusive-building- ruby-ios-applications-with-rubymotion.ars) (Review with code)

2) <http://pragmaticstudio.com/screencasts/rubymotion> (Screencast)

</comment></comment><comment><USER18> This looks really cool -- would be nice if there was some way to try it out before buying.

</comment><comment><USER19> Cool free 50 min video on RubyMotion -

<http://pragmaticstudio.com/screencasts/rubymotion>

</comment><comment><USER20> Just a note, not sure if this is intentional, but the audio on the video is in stereo, but with no right channel.

edit: also, please stop the heavy breathing into the mic. Driving me crazy!! :)

<comment><USER21> I could not watch the video (on headphones) because it is physically painful to do so. That's a _HUGE_ problem.

<comment><USER20> Exactly.

</comment></comment></comment><comment><USER16> Be sure not to miss all the sample code: <https://github.com/HipByte/RubyMotionSamples>

In particular, for those looking for a side-by-side comparison of what it means to use Ruby instead of Obj-C, be sure to check out the GestureTable sample: [https://github.com/HipByte/RubyMotionSamples/tree/master/Ges...](https://github.com/HipByte/RubyMotionSamples/tree/master/GestureTable) which was based on the JTGestureBasdeTableView: <https://github.com/mystcolor/JTGestureBasedTableViewDemo>

</comment><comment><USER22> "At the end, a RubyMotion app looks _pretty much_ the same as an Objective-C app." ( from bottom of: <http://www.rubymotion.com/features/> ).

pretty much the same as an Objective-C app? Anyone have any clue as to why they didn't state apps in the two languages would look identical?

<comment><USER23> Different compilers will generate different compiled code, even on identical input (ie, clang vs. GCC). So the binary will be different.

<comment><USER24> I think he's commenting on why they wouldn't LOOK identical, as in UI.

UI is a finicky thing, but assuming this allows you to use all Apple APIs, there is no reason you couldn't get an identical-looking UI using this.

<comment><USER25> I'm fairly sure that section is talking about compiled code, structure of the app, the archive, etc, considering it says "compiled ahead-of-time, never interpreted, and you access the entire set of iOS public APIs." the previous paragraph.

You're right though, there's no reason the UI wouldn't look identical as well.

</comment></comment></comment></comment><comment><USER26> nice, but where is the advantage over just using objc? the hard part of coding for iOS isn't objc, it's learning how to use all the API's.

<comment><USER15> Having been part of the private beta I can tell you that it's a huge time saver. Objective-C is nice be ruby is much more expressive, you can use the same API with much less code, you can skip XCode altogether and use your favorite editor, ...

I can't express properly how awesome it is, really.

<comment><USER27> In the Ars article, I noticed the author mentions you can't use XCode's layout tools.

In practice, how big a problem is that?

<comment><USER28> Some people hate interface builder and don't use it at all. I really like it and would have a really hard time getting rid of it. The amount of code you would need to write to make all of your views would be terrible.

I would liken it to not using HTML when you're making a web app and you can only use javascript to generate (by hand) all of the UI.

<comment><USER24> Except that I feel the control you lost by using IB is smaller compared to the control you lose by using an HTML builder. But then again, it's been forever since I last used an HTML builder.

In both cases, there are border cases that need to be handled in code (or markup).

</comment></comment></comment></comment></comment><comment><USER29> I don't understand all the hate for Objective-C, and at the same time love for Ruby. Objective-C is far easier to read, with named parameters and types everywhere. Ruby is often so minimal that you need to interpret the whole program yourself to understand what's going on...

</comment><comment><USER30> The most exciting part of this for me is the automation and integration with Apple's tools.

For instance, built-in TestFlight rake task, or build and run on device/simulator. I'd love to borrow some of that for a CI build system (which for me is currently a large shell script that could be improved on).

I'm also very interested by the interactive REPL that can run code inside my application. LLDB is good, but falls short for me occasionally.

</comment><comment><USER31> Will apps created using this have any problems getting approved with App Store?

<comment><AUTHOR> No. From the FAQ (<http://www.rubymotion.com/support/#faq>):

"Applications submitted to the App Store must conform to the Review Guidelines dictated by Apple. RubyMotion implements a dialect of Ruby that conforms to those rules. RubyMotion apps are fully compiled, do not download or interpret code and are using public iOS APIs through the exact same machinery as regular Objective-C apps."

<comment><USER32> I would rather see confirmation from Apple (doubtful) or developers who have successfully submitted apps to the App Store.

</comment></comment></comment><comment><USER33> Looks very promising. I love Ruby and I initially hated Objective-C but I have to admit now I find it very powerful. The biggest missing link here seems to be the Storyboard. Its a really nice option in xCode. Have I missed something, how are layouts defined separately from code?

</comment><comment><USER34> I love this. It looks like exactly what I've been looking for since the iPhone SDK was first announced. I've been a web/RoR developer since high school but could never find the motivation to get used to all of Objective C/XCode's quirks. I've tried everything from PhoneGap to Appcelerator to mimicking native feel in a browser, but it was never enough. This is perfect.

But quite frankly, I can't afford it. I'm a college student living on $25/week for food - I can't justify spending 6 weeks of food on an experiment.

If I could try it out? If I could build my killer app first and know that it works? It wouldn't hurt as much, but $150 is still a lot of money.

<comment><USER35> But you could justify spending 4 weeks food on an experiment? Because you'll need that $100 to put an app on your device, as well.

<comment><USER34> Ahh yes, that's not particularly fun either.

</comment></comment></comment><comment><USER36> I am not criticizing. This is a perfectly neutral question:

Isn't the issue with a lot of these "look Ma, no Objective-C" approaches in that there are always little nagging issues here and there?

I mean, Apple is constantly moving Objective-C/Xcode/iOS (notice I didn't say "forward"). Isn't it somewhat dangerous to adopt peripheral approaches for development rather than staying (suffering?) with the Apple-provided tools?

Now, if someone has an alternative IDE that truly allows me to record Xcode to a DVD and perform a ritual burning ceremony of said DVD...that would be something.

<comment><USER37> I said this in another reply, but I'll reiterate here. It's not the lack of Objective-C that is the big deal here. Afterall you are still interfacing with cocoa, and are stuck with a lot of the verbosity in doing that.

The _real key_ to this is the REPL and interactivity between coding and the _running_ app. Being able to edit bits of functionality and structure in the running app, and immediately see the results is AWESOME!

<comment><USER36> I don't know Ruby. Therefore, by my own admission, this comes out of complete ignorance.

I am currently working on a project that uses a genetic solver and some fairly complex state machines driven by fairly involved databases. I can't possibly see how something like this could be made to be interactive in terms of the development process. Generally speaking you are writing a lot of code before you get to compile and see the results. And, personally, I don't have any issues with the compilation process.

What do you mean by "interactive"?

<comment><USER38> Your application is something that doesn't lend itself to the problem that this solves. With UI related things, it is often very helpful to be able to tweak UI elements while the program runs, instead of the tweak, compile, run cyle.

</comment></comment></comment></comment><comment><USER6> This is huge from a programmer productivity perspective.

</comment><comment><USER39> Now there is an alternative to Objective-C in iOS development(for Rubyists). This is similar to development of Coffescript. There is nothing wrong with Objective-C, it is just that folks who prefer the elegance and beauty of Ruby have an option. I think this will be great combination - beautiful & elegant language for creating apps on a beautiful platform.

</comment><comment><USER40> Are there any example apps in the wild that were made using RubyMotion?

<comment><USER41> There's a few example rubymotion apps at: <https://github.com/HipByte/RubyMotionSamples>

I find them really easy to follow.

</comment></comment><comment><USER42> From the screencast it looks like they altered Ruby syntax by adding named parameters to conform with Obj-C's way of specifying prototypes. I guess this is a trade-off for the fact that Obj-C has some unusual syntax that has no real analog in Ruby -- if you've ever tried developing with PyObjC you'll be familiar with how odd it looks.

</comment><comment><USER43> Problem in search for a solution? Apple is walled garden - provides the best integrated IDE for iphone development that is a pleasure to use. Language is just a small part of the puzzle. For each task, the best suited environment and language. There is no panacea.

</comment><comment><USER44> How does memory management work with ruby and iOS? I did not find the information on the website.

<comment><AUTHOR> From the Features:

"It's Ruby, you don't need to think about managing memory. Ever. RubyMotion will by itself release the objects you create when they are no longer needed. Our memory model, similar to Objective-C ARC in design, does not require any extra memory or processor footprint to allocate and reclaim unused objects."

<comment><USER45> I still wonder how they did that. The classic problem with reference counting is correctly releasing cycles, which ARC handles by allowing "weak" references. How does MacRuby know when to insert a weak reference as opposed to the usual "strong" reference? If that could be automatically detected, why does Obj-C ARC not automatically do it for you?

<comment><USER46> "Object cycles, when two or more objects refer to each other, are currently not handled by the runtime, but will be in future releases."

So, basically, you're stuck with retain cycles right now. My bet is that they implement a way of marking weak references rather than becoming more intelligent than ARC.

<comment><USER47> I wonder how big a deal this will be. Relying on GC feels like it goes hand in hand with dynamic languages. I'm used to not having to worry about cycles.

Of course, I guess I'm use to not having to worry too much about memory, either ...

Weak references aren't a panacea. It's not that uncommon to have cycles where all edges are equally strong. Any social graph ...

I use use counts to collect those cycles. ARC doesn't let you use use counts, but you don't have to use ARC everywhere. You do have to access to the underlying use counts ... MacRuby should allow access to that (it's just a standard Cocoa call) as long as it doesn't keep stray retains around that screw up my count balances ...

<comment><USER46> You can still use counts — you just can't use Foundation's retain count.

And I think CoreData is the answer to problems like a social graph. It does its own specialized memory management. But you're right, it's awkward to have to think about it.

</comment></comment></comment></comment></comment></comment><comment><USER48> Ruby :

"The limits of my language define the limits of my world" if string =~ /foobar(\d _\w)/#

Objective-C :

      NSError *error = NULL;
      NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"foobar(\\d*\\w)"
      options:NSRegularExpressionCaseInsensitive error:&error];
      NSTextCheckingResult *match = [regex firstMatchInString:string
                                                    options:0
                                                       range:NSMakeRange(0, [string length])];
      if (match) {
        NSLog(@"The limits of my language define the limits of my world - Wittgenstein")
      }

Enough said?

</comment><comment><USER49> What's with the price difference between Canada and US orders? It's CAD$152.82 versus US$149.99.

With the Canadian dollar currently worth about 1 cent more than the US, I'm surprised to see that there is a price difference at all.

<comment><USER50> The nominal exchange rate you see has only a passing resemblance to exchange rates charged by CC processors.

</comment></comment><comment><USER51> I'll say this again: No programming language is fundamentally bad.

Bad programmers have a tendency to move from language to language, blaming their tools for their lack of skill.

This stuff is exciting.

<comment><USER52> I wholeheartedly disagree. There are bad programming languages. Brainfuck is a good example. I don't mean that as a joke, but only as proof that programming languages can be objectively bad. As an extension of that I'd say that languages can be bad because of their constituent parts (syntax, semantics, constructs, features or lack of, etc..).

Some languages have constituent parts that I'd say are objectively bad. I'll argue all day that Objective-C's handling of nil is stupid beyond belief. Nil/Null itself is bad enough...

</comment></comment><comment><USER53> At the very beginning of the presentation he underlines the importance of the static compiler RubyMotion is based on, yet at 7:30 when he compiles a file with a name error in it the compiler doesn't even file a warning. Such non- existent methods and other similar errors should be caught at compile time if we're talking about solid AOT compilation.

</comment><comment><USER54> I thought Flash got in trouble for targeting iOS with something not _originally_ written in JS or ObjC, is that still true?

</comment><comment><USER55> I don't remember the last time I was excited about some new technology, but rubymotion is a thing I was looking for since the release of iOS SDK. I was doing ruby for 5 years, and switched to iOS/ObjC half a year ago, and I still can't stand the Objective-C syntax.

</comment><comment><USER56> missing trial period so i'd rather wait for mobiruby

<comment><USER16> The difference is that, as far as I can see, mobiruby is a Ruby interpreter/VM embedded in an Obj-C application. This is in contrast to MacRuby which is implemented directly on top of the Obj-C runtime. So, MobiRuby still has to go through the work of converting Ruby objects into Obj-C objects, whereas in MacRuby a Ruby object _is_ an Obj-C object.

For a practical example of what this means, see the most recent sample code that was released for mobiruby: <https://gist.github.com/2577620>

</comment></comment><comment><USER57> No interface builder? Depending on what type of apps you make it can be a big issue I think

<comment><USER58> The problem with interface builder is that it only exposes some properties and others you have to set in your class anyway. Why can't I set the background image of a view in interface builder, for instance?

With RubyMotion you get to roughly lay out your controls, and then you get to use the interactive interpreter for fine-grained adjustments. See around the 5:30 mark in the getting started video for an example.

</comment></comment><comment><USER59> It's nice, I'm new to using ruby (I've been an iOS dev for a while now), I'd give it ago.

But I assume it uses storyboards in the same way as ObjC, set it in the target and in the Info.plist, and it figures it out... it'd be nice to see it working though.

<comment><USER60> I second this.

</comment></comment><comment><USER61> > _RubyMotion is built on top of iOS. You have access to the entire set of > public iOS APIs and can also use 3rd-party Objective-C libraries or Gems_

So this should be compatible with cocos2d right?

<comment><USER6> cocos2d is writen in Objective-C so in principle it should be compatible with RubyMotion. Not so sure about the ARC integration (last time I've checked cocos2d was only "ARC compatible"). I've seen some work arounds using a cocos2d as a static library (no ARC enabled) linked with a main Objective-C application that uses ARC. It should work ... but I can't give you a final answer.

</comment></comment><comment><USER62> I could see this really taking off.

My worry is that it would take off so well that the ruby gem community could get fragmented into libraries for RubyMotion and libraries for regular ruby projects.

<comment><USER63> There are already exclusive libraries for MRI/JRuby, so adding a third platform doesn't seem like it would break the world. Tools like Bundler do a great job of keeping things moving smoothly.

<comment><USER62> Didn't realize bundler kept track of what ruby you were using.

<comment><USER63> Yeah, check the "platforms" directive.

</comment></comment></comment></comment><comment><USER64> I am wondering is anybody asked for a debugger/stepper. Will a dev survive without those? Also, are you ready to write all the code behind xibs?

</comment><comment><USER65> Purchased. Good job, @lrz. Glad to know your departure from Apple and (apparent) distancing from MacRuby were in a good cause.

<comment><USER66> He did not distance himself from MacRuby, though: [http://lists.macosforge.org/pipermail/macruby- devel/2012-Apr...](http://lists.macosforge.org/pipermail/macruby- devel/2012-April/008702.html)

</comment></comment><comment><USER67> What annoys the crap out of me isn't objective C, it's XCode.

This looks worth it just to have an XCode-free toolchain.

</comment><comment><USER68> Should make for some good bridge FU on hypercritical this week...

</comment><comment><USER69> Sounds awesome - gives me another reason to buy a Mac.

</comment><comment><USER70> Anyone know if this comes with the ruby stdlib?

<comment><USER71> It doesn't look like it. You need to use the iOS alternatives (in this case, NSDate).

      (main)>> require 'date'
      => #<RuntimeError: #require is not supported in RubyMotion>
      (main)>> Date
      => #<NameError: uninitialized constant Date>

</comment></comment><comment><USER72> anybody understood what rubymotion offers over the standard macruby? edit: got it, static compile and no gc

</comment><comment><USER73> so, we need a mac for this. right?

<comment><USER74> Yes... "You will need a Mac running OSX 10.6 or higher."

\- <http://www.rubymotion.com/support/#faq>

</comment></comment><comment><USER75> My thoughts: "Hey! This looks pretty neat. Oh it's $150 on sale, forget this. Oh it's only for macs, glad I never bought this piece of garbage."

That being said, it could be great, I have no idea.

<comment><USER76> Maybe that's because Macs don't generally deal with pieces of garbage. Whether that's tools, or users.

<comment><USER75> If you really think one platform is so superior to another, you're missing the point entirely.

</comment></comment></comment><comment><USER77> There's a reasonably new language called HTML that is a good development platform too. Works on all devices.

<comment><USER78> "Good" and "Works" being relative terms, of course. YMMV, especially amongst devices in the installed base where web views aren't GPU-backed (e.g, on one common platform, that being the vast majority).</comment></comment>


Are We Really Dumb Zucks? - <AUTHOR> http://tweetagewasteland.com/2010/05/are-we-really-dumb-zucks/

<comment><USER2> The author is presuming that the IMs that an anonymous person on the internet claims they have access to are real. The article that this came from won't even state _where_ they came from. Was it the person in the chat themselves? Was it someone who "discovered" Zuck's hard drive?

[http://www.businessinsider.com/well-these-new-zuckerberg- ims...](http://www.businessinsider.com/well-these-new-zuckerberg-ims-wont- help-facebooks-privacy-problems-2010-5)

<comment><USER3> I can't believe how many people subscribe to the "guilty is as guilty does" mantra. Because FB tried to profit to forcefully from user data these adolescent comments _has_ to be Zuck's. Or he has to be a sociopath, or worse.

Assuming these IMs indeed are his, I find it amusing how people who complain about FB making their info public have _no_ qualms about totally jumping on private comments made by another.

<comment><USER4> I don't complain about FB making my info public, as I have never chosen to share any with them. However, I've been told on this site more than once that over-30's "don't get" Facebook and should ask young people to explain it to them, and should refrain from even making comments about FB.

So I find it a little amusing that one of the reasons I may not get it is because I am not a "dumb fuck". Regardless of the comment's provenance, I smiled when I heard it.

<comment><USER3> Speaking of the "under 30" cool crowd behaving in "dumb fuck"-y ways, check out Formspring. Endless hours of morbid entertainment.

</comment></comment></comment></comment><comment><USER5> FWIW, facebook actually responded to this article. They did not suggest that the IM conversation was fake. Only that it was unrelated to the goals of the company and their commitment to privacy.

<comment><USER6> Nor did they suggest it was real.

<comment><USER7> If it weren't real, they would be denying it like very strongly, almost as if their future depended on it.

<comment><USER8> If Obama weren't born in Kenya, he would be denying it very strongly, almost as if his future depended on it.

No, wait, things do not work that way.

</comment></comment></comment></comment><comment><USER9> I keep hearing this 'don't post it if you'd never want it public' mantra; but surely there should be a way for us to post thoughts/content to friends with an expectation that only they will ever be able to see it?

The need to trust the person on the other side will always be there (people have always been able to pass on letters and repeat conversations) - but that doesn't change Facebook's role.

<comment><USER10> The very first of Email Policy that our General Counsel communicated to us:

"Only put in email what you are prepared to see in the front page of the New York Times"

You may suggest that was an overblown policy, but in 1997, Eric Bradley (who worked about 3' away from me in Building 4 on Middlefield) sent an Email to _a lawyer_ at Netscape - venting about how much "I really do hate that company " when Lawrence Lessig had asked about his application preferences being switched over to IE.

His email (and venting) appeared soon thereafter in the New York Times.

Around here - if you have even the _slightest_ doubt about whether something should appear on the front page of the NYT you either:

o Communicate in person, audibly. o Print it out and hand deliver/email/fax (with the expectation that it will be shredded)

<comment><USER11> This last suggestion is illegal. Lawyers generally counsel to not say much in email because email is subject to discovery in legal proceedings. Many laws also require retention policies that are subject to audit, which makes shredding problematic.

<comment><USER10> You clearly don't work in Silicon Valley. Every building has dozens of Garbage Cans marked "Shred" - The default for anything on your desk is to toss it into one of those.

Nobody (except for HR, Finance and legal) keeps paper files anymore, so if you don't want a permanent record - just deliver it on paper and it will disappear. I've been through several discovery procedures, and all that anybody has ever been interested in was email. Nobody even _thought_ to ask for paper files.

</comment></comment></comment></comment><comment><USER12> While I don't like the direction Facebook has been going in regarding privacy, I am one of the folks of the position that it is not wise to put stuff on the Internet you don't want being made public. It's not like it takes even super- uber-hacker levels of skill to get somebody else's "private" data on the web. All it takes is for somebody who is granted access to your "private" data to look at your web page or email, and then copy-and-paste, or take a screenshot, take a photograph, screenshare, or have someone else be looking over their shoulder at the time. And once that initial copy/fork is made, the copied data can live forever and is infinitely sharable/viral.

When I first learned of MySpace and Facebook, and what people were doing on them and uploading to them I thought, "This will not end well." Turns out, I was right.

<comment><USER13> _While I don't like the direction Facebook has been going in regarding privacy, I am one of the folks of the position that it is not wise to put stuff on the Internet you don't want being made public._

The whole problem is that Facebook takes your Internet visibility out of your hands, and puts it in the hands of your "friends." Meaning, people who don't realize that you might not want photos of underage drinking or that summer camp in Pakistan posted in public and tagged with your name.

</comment></comment><comment><USER14> "Don't post it if you don't want it to be public" surely implies that email is a public broadcasting medium. Technically this is true, but that's not how most people think of email, including businesses and legal entities.

<comment><USER15> This is the crux of the issue. Where's the line between email and Facebook? "If you don't want it public, don't put it on the web," they say. But that's way too simplistic. Webmail's on the web, and we (and the law) certainly have different expectations of _it_. So where's the line? And how evil is it to pull a Facebook-style privacy bait-and-switch? There's a privacy spectrum between email and Twitter, and FB is somewhere in between.

Don't get me wrong -- I haven't taken sides, and can't be arsed to care, having never gotten involved with FB.

</comment></comment><comment><USER16> I think the inclusion of that IM chat is about the metaphor. Anything you say can eventually be public.

</comment><comment><USER17> So we should all run our own email servers, then?

<comment><USER18> I can't speak for ya'all, but my email stays stored on my IMAP server on my personal box. If somebody wants my email, they'll have to get it from me. All of my mail filtering rules work on the server side, and I get a consistent view of my inbox and folders from all of my IMAP clients.

The thought that software is groveling my email in order to send targeted advertisements to me I find repugnant. Perhaps it's because I formed my ideas about how the Internet should work before it was commercialized.

<comment><USER19> Ding ding ding! I do the exact same thing, though my mail filtering server side was more of a side effect of Android's mail clients not being able to do filtering and me being tired of my phone buzzing every 30 seconds alerting me of new spam.

</comment></comment></comment><comment><USER20> 19 years old and millions of dollars before. People change. I know I have over time and money - especially money, more money makes you more tame.

</comment><comment><USER21> does any one cares for privacy as much as media would presume?

</comment><comment><USER19> I'm tired of the implications that users are dumb and are the only people to blame for this debacle. My privacy settings were altered to be more public after this latest round of changes. Instant Personalization added half a dozen apps (some of them literally compromising personal information based on various websites I visited that automatically got access to my data) without my consent.

There are tons of stupid users that don't bother to check their privacy settings but I swear to God, I've edited and locked down mine 4-5 times in the last six months and I have to be vigilant about it because THEY SILENTLY CHANGE THE PRIVACY POLICY & TOS AND RESET MY PRIVACY SETTINGS.

Let's all go against the flow and defend Facebook. Right.

<comment><USER22> His point is that the expectation of privacy on the internet is not wise. Despite the privacy settings on your account, you've already handed data over to a (in this case) for-profit company.

If you wouldn't want to share it with the clerk at the grocery store, don't put it on the internet. Period.

<comment><USER23> How often do you email confidential business data? Or log into a company intranet or VPN? How often do you send love letters or personal notes to a (potential) significant other? etc.

There are lots of uses for the internet where privacy is expected. Perhaps a better thing to say is "If you don't want it shared, don't put it on a social networking website".

It's true that once digitized, content can be very difficult to contain, but there _are_ ways to communicate over the internet and maintain a reasonable expectation of privacy.

The thing with Facebook is that they've promised certain things, like that you'd have to authorize anyone before they had access to any of your data, or that certain things would remain friends-only, or whatever, and then they've renegged on these promises. They betrayed and jeopardized their users for their own immediate profit. Do you think that's something we should just write off as "well, don't put things on the internet"?

It's not like a bunch of nude photos that someone uploaded to a server in a public directory and hoped no one would ever stumble across them. For that, you can say "well, be careful what you put on the internet, because it's just as accessible to everyone else as it is to you", but when a company makes a covenant not to share certain data and then breaks it, I don't think it's really fair to expect users to expect that behavior.

<comment><USER24> The IM conversation that started this whole topic was not a social service, yet it, too, is public.

If you don't want it shared, don't put on the internet.

(Well, at least, not until my startup is shipping its product. Then you'll be fine.)

</comment></comment></comment></comment><comment><USER25> Facebook is just another place where I have 'contacts'. I rarely comment on anyone's picture, status etc., I never post anything, never initiate conversation unless the person I know is only available via Facebook.

I do not need any graph to see how FB screwed up its privacy policies over the years. I have been there and seen all that. Call me a security freak, but doing all of the above has saved me so far.

And above all, my wife has already deleted the account. :)</comment>


Cattle have stopped breeding, koalas die of thirst: Vet on climate change - <AUTHOR> https://www.smh.com.au/environment/climate-change/cattle-have-stopped-breeding-koalas-die-of-thirst-a-vet-s-hellish-diary-of-climate-change-20191220-p53m03.html <comment><USER2> It's just going to keep getting worse until climate denialists and fossil fuel fetishists are pushed aside.</comment>


NGINX Goes Open Core - <AUTHOR> http://www.serverwatch.com/server-news/nginx-goes-open-core.html

<comment><USER2> now, that I moved all future projects on nginx, open core makes me afraid. I hope none of the current features get crippled.

<comment><AUTHOR> probably not.. that would mean instant fork..

 _"We're not going to close functionally in the open source project, but rather we will address the items that small companies don't need but the bigger companies do need."_

versus

 _"Today NGINX powers [..] over 20% of the top 1000 busiest websites around the world, including Facebook, Zappos, Groupon .._ " <http://nginx.com/nginx- venture-funding.html></comment></comment>


Sup: Super simple deployment tool – 'make' for a network of servers - <AUTHOR> https://github.com/pressly/sup <comment><USER2> It is unclear to me what advantages this tool has over existing tools.

Why should one use Stack Up over Ansible or Puppet?</comment>


Helping you select a JS MV* framework - <AUTHOR> http://www.todomvc.com/ <comment><USER2> This is a very useful resource, and it really is great to see it being done in such a professional manner, but I can't help but wish for the end of these Todo<blah> examples.

A todo app simply isn't complex enough to give users any sort of insight into which framework to choose. There are _so_ many other areas that are important yet completely uncovered in the code - things like authentication, ACL, mobile support, and plenty more examples that I just can't think of off the top of my head right now.

The idea behind this is fantastic, the execution is incredible, but the project choice is too limited in my eyes.

<comment><USER3> The difficulty is that anything more complex is TOO complex as an example. This is meant to demonstrate the MVC of a thing. With this example, I can quickly examine the structure and feel of a given tool, an hold the entire example in my head. When you start stacking all of the other bits on too, this starts to become more difficult. What TodoMVC allows is a quick survey to narrow down contenders. At that point I can examine the other crucial aspects and understand if they work for my project.

<comment><USER4> >The difficulty is that anything more complex is TOO complex as an example.

This sums it up. "Todo" examples are intended as a web/js-framework equivalent to the traditional "Hello World" example used to introduce a programming language. "Todo" defines a basic unit of usefulness that can be easily implemented to give the target audience an idea of what a given framework "looks like". It isn't perfect, but it is a starting point for framework comparison.

</comment></comment></comment><comment><USER5> Maintainer here. We are fully aware that todo apps are not enough to get a deep insight into frameworks. Think of it more as getting a little taste of each framework which will help you narrow down the choices. We're planning more fully featured apps in the future with the most popular frameworks. Stay tuned.

<comment><USER6> Thanks a lot for doing this.

I'm trying to choose a framework right now and TodoMVC is really helping in doing so.

I have one question though: Would you mind if I ported your apps over to CoffeeScript? I prefer CoffeeScript over JavaScript, but haven't done that much work in CoffeeScript. I think porting the apps would be a great learning experience and would help others too. Of course I would put it up on Github.

<comment><USER5> Sure of course. Feel free to!

Be sure to add it to our wiki when it's done: [https://github.com/addyosmani/todomvc/wiki/Other- implementat...](https://github.com/addyosmani/todomvc/wiki/Other- implementations)

</comment></comment></comment><comment><USER7> Most of these MVC frameworks seem to add a lot of extra structure, which I don't like. Compare e.g. Backbone ([https://github.com/addyosmani/todomvc/tree/gh- pages/architec...](https://github.com/addyosmani/todomvc/tree/gh- pages/architecture-examples/backbone)) or AngularJs ([https://github.com/addyosmani/todomvc/tree/gh- pages/architec...](https://github.com/addyosmani/todomvc/tree/gh- pages/architecture-examples/angularjs)) implementations to the simple jQuery implementation ([https://github.com/addyosmani/todomvc/tree/gh- pages/architec...](https://github.com/addyosmani/todomvc/tree/gh- pages/architecture-examples/jquery)).

Are there any good JS libraries that take more Unix-like approach, i.e. they do one thing and they do it well? For example a library that would implement just the Model part: syncing data between server and client. Or another one that would implement for example a better abstractions for event handling (event-firing states, futures, etc.), but nothing more.

<comment><USER8> I think the problem is mostly that a todo list is too simple an example for these frameworks and that's why it seems like they're just adding extra structure. That extra structure is (hopefully) going to save you a lot of code once your app gets more complex.

</comment></comment><comment><USER9> Wow, the Angular version is so small. Very impressed with the clean, readable, and terse code. Thanks guys.

<comment><USER10> We recently had to make a choice between frameworks and my colleague and I came from a jquery/rails background, virtually no practical experience with js frameworks. We started with backbone.js, but I was immediately frustrated. We then switched to angular.js after going through the tutorial ~2hrs.

Four months and a lot of learning later, I am very happy with our choice. If I ever get some spare time I want to write some posts on angular from a rails perspective. I found the rails nomenclature I was used to didn't directly translate to angular.

One other reason we chose angular, it is backed by Google. The meetups I have attended in Seattle keep growing steadily and the mailing list is great.

<comment><USER11> > One other reason we chose angular, it is backed by Google.

I like Google for many things - there is no doubt they have some solid developers and have released great products - but they have a poor track record with frontend framework adoption. For example:

\- GWT (not a lot of adoption and waning)

\- Closure Tools (except for the great Google products that are built with this library and closure compiler it hasn't had a lot of adoption)

\- Dart (verdict is still out on this one but it doesn't look good)

</comment></comment></comment><comment><USER12> Most obvious telltale that todo is too simplistic is that the jquery version is shorter than many of the framework versions.

<comment><USER13> It's also the most obvious telltale that most of these frameworks are completely unnecessary for many front-end scenarios. I find a good portion of the front-end work I do does not benefit even from the more lightweight ones like Backbone in the least.

<comment><USER5> I used to feel like that too, but Backbone is really lightweight and unopinionated. Check out this step-by-step guide on how to convert a jQuery app to Backbone: [https://github.com/kjbekkelund/writings/blob/master/publishe...](https://github.com/kjbekkelund/writings/blob/master/published/understanding- backbone.md/)

<comment><USER13> I've used Backbone extensively before. It was actually the other way around where I didn't need 90% of what backbone did for what I was doing and just switched back to jQuery.

For situations where I actually do want some kind of client-to-server data- binding, I generally prefer it to provide two-way view<->model binding so I've been leaning towards Angular (as heavy as it is) and Knockout.

</comment></comment></comment></comment><comment><USER14> TodoMVC is great for getting a rough idea, but as discussed in these comments, it's not terribly helpful for selecting a library. What _is_ helpful? Looking at the diversity of different sorts of apps and projects that the library has been used to build. For example:

<http://backbonejs.org/#examples>

<http://builtwith.angularjs.org/>

<http://developer.yahoo.com/yui/poweredby/>

</comment><comment><USER15> No doubt this is a great resource for getting to know very basics of all these frameworks.

The thing is that the TODO application is way too simple and does not require solving any meaningful problems. A much better and more realistic sample app would include at least handling basic relations between objects like users commenting under articles or voting on submissions. Say simple HN in JS MV* implementation would be a lot better resource.

</comment><comment><USER16> I asked about this on twitter recently but no responses.

Can anyone list their absolute favourite open source client side web based todo lists? It seems like there would be a lot as its everyones favourite personal project (I do have my own). however most seem to be extremely basic.

I am mostly judging by UX features and polish, something that works really well webbased + tablet + mobile would be a plus.

If anyone is interested in why, I am an author of pouchdb, a javascript library that aims to make syncing offline apps incredibly easy, I plan to take a standalone todo app and modify it to sync the data to see how easy it is / make a tutorial.

</comment><comment><USER17> What I would find more important than a comparison of technical features is a comparison of their active communities.

How many people are using each project, how active is development, that sort of thing.

<comment><USER9> At good metric for an indirect peg on number of people using something is the "star" count on Github. It's not an ideal metric but it is a reasonable proxy. The other thing I'd look at which requires more effort is to look at the number of subscribers to the mailing list (if you can get it.)

</comment></comment><comment><USER18> Went to a session at Silicon Valley Code Camp, where this was mentioned. It seems like a good intermediary between code inspection and anecdotal recommendations.

</comment><comment><USER19> To those more well versed in JS than I: Which of these frameworks have the best support for client side persistence? I'm thinking something like active record for indexeddb/websql.</comment>


Ask HN: How do you stay in touch with friends who are dying? - <AUTHOR> Not exactly HN question...
I would like to know, what channels do you use to communicate with your friends or family who have a terminal diagnosis? How often do speak with them - do you find that enough and would they like more contact?
What about after someone passes away? Would you like more support from the people around you?
Have you ever felt bad for not beeing supportive enough when the loved one of a close friend passed away? <comment><USER2> Years ago I read a short piece called "Lessons for the Living". It was written by a hospice nurse, and said that people dying is like drops in a funnel: everyone starts somewhere, everyone ends up at the same place. Dying people go through stages which are recognizable...

Hmm, looks like it's a film now (kickstarted?). Look for the writeup, which might be a couple pages into the search results.</comment>


GPU Docks Could Bring Gaming and VR to MacBooks - <AUTHOR> http://www.tomshardware.com/news/wolfe-gpu-dock-macbooks,32572.html <comment><USER2> They might make it technically possible but I think Apple have really dismal chances because they didn't do their own GPU dock when they started using Thunderbolt.

It will take a few years for external GPUs become cheap and simple, game and tool developers won't start prioritizing the first adopters when they don't prioritize Apple much if at all.

The only way I think they can fix this is if everything they release from now on just supports VR to make it an immediately attractive sized market.

I think it's more likely they'll ignore VR on x86 and focus on VR on iOS instead.</comment>


Xanax for what.cd lovers - <AUTHOR> https://xanax.rip/register.php <comment><USER2> Though it's far behind the legacy of what.cd. They are propagating among good music loving community.</comment>


How To Quit Being A Quitter - <AUTHOR> http://www.dragosroua.com/how-to-quit-being-a-quitter-2/ <comment> sid- If you quit being a quitter, you are still a quitter ? :)

<comment><AUTHOR> nope, because you only have to quit once and then you're set :-) but I liked the twist :-)</comment></comment>


I program for a living and I'm addicted to the internet. Help - <AUTHOR> Over the past few years I've grown to see my internet use as an addiction. It's compulsive, it's not just social media, it's just the act of shoveling information into my brain. Novelty. Click. Read. Click. Read.
I've also discovered that it's having a negative effect on my ability to focus. I used to read a book a week. I haven't read a book since I got a smartphone. I can't.
Anytime I've done a full computer detox I feel better within a week. My sleep schedule normalizes. My focus lengthens. My brain gets quieter and less compulsive. Time with friends and loved ones becomes deeper.
But I love coding. And I love programming for a living. And I love programming side projects. Programming isn't really the problem. It's a productiv focused creative act that also provides me a good living.
But programming takes place on the internet pretty much. It's ever present.
I'm thinking about going internet free at home. No wifi. No smartphone. Just access to the internet while programming at work.
Any tried something similar? <comment><USER2> I had the same problem, suddenly I had 2 kids, one followed the other, the Internet use becomes better, I am consuming just the necessary which is filtered organically by the amount of free time available. I am the developer as well and the time pressure is making me pragmatic. Not sure if this is 100% related to your problem but there is a point: there is something between the stimulus and the response, you are free to do what you decide to do in between, apply your real-time filter and go on. no need to shut down the connectivity, proof yourself you can.

</comment><comment><USER3> Since I got my new job I realised I no longer want to spend my free time on side projects - I get all the enjoyment of programming at work which means when the day is over I spend the rest of the time on other stuff - friends, family, etc.

Maybe the issue with your programming "addiction" is just that you don't enjoy it enough at work, and in that case you might want to look into switching to a job where you will enjoy it.

</comment><comment><USER4> I'll expand this later but there are four categories of approaches to use in parallel

1) [https://getcoldturkey.com/](https://getcoldturkey.com/) [https://freedom.to/](https://freedom.to/) and [http://selfcontrolapp.com/](http://selfcontrolapp.com/). You wouldn't tell a dieter to keep cookies on their desk. Don't keep braincandy on yours.

2) Better sleep, diet, exercise

3) Build tolerance to discomfort by taking a cold shower every morning and by reading Stoic philosophy

4) Make better plans for yourself so that the answer to "what should I do next" is less ambiguous. Before starting any coding project, start by asking and answering "why is this worth doing?"

</comment><comment><USER5> Don't try to cut off social media or junk internet completely because it has its uses. Don't schedule breaks from it, schedule time where you can fully engage in it. Maybe only nights or weekends.

Train yourself to enjoy boredom. Boredom is not unproductive. Boredom trains you to focus. Force yourself to be bored for periods of time, even if it's just closing your phone before bed.

You might want to replace your bad internet habits with better ones. It can still be 'unhealthy', as long as it's enjoyable. I've replaced it with Netflix and HN. Netflix at least trains me to focus on something for 20 minutes without getting distracted.

The book Deep Work also covers this quite a bit.

</comment><comment><USER6> I do several things. Pomodoro technique with the timer visible to see the clock run down (www.tomato-timer.com). Stay focused Chrome plugin to blacklist sites and only have a set duration e.g. 10 minutes to look at them during the day ([https://chrome.google.com/webstore/detail/stayfocusd/laankej...](https://chrome.google.com/webstore/detail/stayfocusd/laankejkbhbdhmipfmgcngdelahlfoji?hl=en)). Finally put your phone at least 20 feet away to not compulsively look at it (with airplane or moonlight mode on). Also check out the book Deep Work by Cal Newport for more strategies.

</comment><comment><USER7> > _I 've also discovered that it's having a negative effect on my ability to > focus. I used to read a book a week. I haven't read a book since I got a > smartphone. I can't._

I got a smartphone recently. I put a lot of ebooks that I read in my commute with inverted colors (white text on black background).

I charge the phone every 3 or 4 days: I don't listen to music on it, I don't take pictures, I rarely if _ever_ go online using it. The home screen is black (took a picture with finger on the lens because I was too lazy to download a "black" image).

</comment><comment><USER8> I think cold turkey is good idea. If you are not able to do that, I have free beta app for Android and iOS that will force phone to use specific DNS server. If you have someone who can control time and sites DNS will respond, it might help keep you on track using tech like opendns or dnsjack on GitHub. I also have anti internet addiction solution, but it's mainly for younger children since adult could easily bypass DNS settings (dnslearning.org). In order to prevent bypassing system, we tell parents to pay attention to timeline activity.

</comment><comment><USER9> \- You can try something like Pomodoro, which is like a timer running forcing you to focus for 25 mins, followed by a 5 minute rest. \- You can install web plugins, which will allow you to measure where you are spending time online, this will sort of show you how bad it has been \- If a complete computer detox helps, you need to follow it up \- You need to fill your day with more enriching activities

Remember, every habit takes ~21 days to get complete hold of. So, need to consistently do it for a while.

<comment><USER5> Pomodoro's downside is that concentration takes more than 25 minutes and the breaks should be longer. But adjust as fits as long as you can stick to it. I go with 1 hr work/30 min break.

The brain processes creative thoughts while 'inactive'. But it's vital not to think of other things - especially social media. Breaks like walks, lunch, shower, naps will keep your brain processing.

</comment></comment><comment><USER10> Absolutely, try your idea of only internet at work. If that impairs your social life too much, maybe allow yourself messaging applications but not sites.

I've generally found there are a couple of main culprits for me -- Reddit, HN, Twitter -- and banning myself from them during work hours fixes things. YMMV.

</comment><comment><USER11> There are a number of browser plugins where you can prevent yourself from viewing sites. It can be a big help to ban social media and news sites. That said I do think it's a good idea to remove internet from your home

</comment><comment><USER12> selfcontrol (the aptly named app) helps with self control.

I only use it on desktop to limit myself to productive online resources. I have an aversion to using my phone for browsing anyway, so don't need it there too.

</comment><comment><USER13> So first of all, I completely sympathize with you. I have been working from home for years and it's been a continual struggle. Some thoughts for you:

The biggest internet timesinks for me have always been those with near infinite novelty and also very occasional strong benefits.

For example, Reddit has clued me in on the Paleo diet and using a tongue scraper for better breath. Those have actively improved my life. I've also spent thousands of hours looking at stupid pictures. Hacker News has been more useful than Reddit, but still has been a large timesink. But we all have our own set of sites.

For me, blocking apps did not work at all, because I can just disable them. Unless I give up root access to my own computer, but that isn't really going to work. Having an "accountability partner" didn't work. I even did money challenges where I had to pay $500 to someone if I browsed Reddit. I did one time pay some money, and after that the group stopped really believing we'd hold each other to it.

Guilting myself has stopped working. But I don't think that's really a solution anyway.

Cold turkey seems to not really help. I'll go for a while without doing the addicting thing, and then get really angsty and then binge. Food can sometimes be this way this too. Yo-yo dieting and yo-yo internet binging both seem harmful.

Some things that have helped me:

First, just becoming aware of what is happening. I've been reading a lot about human psychology lately and came across the idea of "Supernormal Stimuli," the idea that some modern things are incredibly addictive because our brain did not evolve in an environment where it had to deal with things like the internet, Doritos, and internet pornography. This comic sums it up really well: [http://www.sparringmind.com/supernormal- stimuli/](http://www.sparringmind.com/supernormal-stimuli/)

If you can in any way limit the sources of infinite novelty, or get rid of the worst offenders that can help. And I think all the sources contribute to make addiction harder to break.

And honestly not having internet at home did solve the problem - I've tried it twice. But I work only from home and kind of need it to do work. If I lived in a place that has better coffee shops, I might stick with that.

Speaking of which, leaving the house helps me. I find I am not as willing to just slack off completely if there are other people around, so I am quite productive in Starbuckses.

No electronics in bed has helped a lot. That alone has helped me not find myself staring at a device at 2am for no real reason.

Humans are creatures of habit and also lazy, and so one advice I've heard is to make the things you want to do as easy as possible and the things you don't want to do as hard as possible. If you can get away with not having internet at home, that might just be a way to solve the problem.

I don't think there is a silver bullet, but continuing to try things has helped me find a few things that have helped me. Also some of the above statements may not be completely accurate and I'm open to correction and further nuance.

Slowly over time I've seen myself become more and more self-controlled, though I'm of course not perfect. I'm convinced that the default today is for people to be addicted and ineffective since humans did not at all evolve in this sort of environment, and so anyone who makes an effort to better themselves can become very effective in life.

Best of luck, and email me if you want to talk more.

</comment><comment><USER14> Linux, C/C++, apropos, and man. It's the only kind of development I do where I don't have to google every 10 minutes.

edit: fwiw, you can also host godoc locally...</comment>


Brutalist redesigns - <AUTHOR> http://www.pierrebuttin.com/work/brutalist-redesigns/ <comment><USER2> I'm no designer, but here's my layman opinion.

Some of these are not "brutalist", just badly designed.

For example, there was no need to have the google logo half covered in the Chrome example.

About the Instagram one, you could have replaced circles with squares. In other examples you also replaced icons with text, so why not on the Instagram one?

The Gmail one is really nice.

On the Twitter one, Comic Sans was really uncalled for :P</comment>


Browser First-Run: iOS Edition - <AUTHOR> https://brave.com/ios-browser-first-run/ <comment><AUTHOR> I am both the author as well as an engineer on the Brave team.</comment>


Rebuilding the Credit Crisis with Online Ads (and it's gross) - <AUTHOR> http://blog.tartanlabs.com/post/21452347548/rebuilding-the-credit-crisis-online

<comment><USER2> Is "cookie pool" a widely known term in the ad targeting industry? Article would benefit from an explanation of what that is. Guessing it's the people who have a tracking cookie set, but how can those be subdivided like subprime CDOs?

Also, "Internet Explorer [is an] amazing execution of creativity that people actually want to view" is not a comparison that is going to win anyone in the web industry over to your argument...

</comment><comment><USER3> > _As a former analyst at an investment bank, I can say with 100% confidence > that we have way too many people from the finance industry working in > advertising right now. The flow of quants who were once seeking positive > alphas that are now building agency trading desks..._

Very interesting that quants moved from finance to advertising, but not surprising to me after I heard the term "click arbitrage" a while ago.</comment>


Announcing Alchitect - <AUTHOR>

In the spirit of Ship It! (http://blog.socialmedian.com/2009/05/ship_it_now_is_the_best_time_e.html) today I am announcing a project called Alchitect which helps you build web applications with unprecedented ease. Check it out! http://alchitect.com <comment><USER2> Maybe put up a video on the front page or screenshots to make it a little clearer what it does or how it works?

In 45 seconds, I couldn't tell if it was a coding framework or a content management system, or what. It sounded interesting, and by skimming documentation I could tell that it was closer to a content management system perhaps, helping people create pages that store info in a database.

An admin demo site somewhere would help a lot, too.

<comment><AUTHOR> Great suggestions, thank you! I'll definitely implement them as soon as I can.

</comment></comment><comment><USER3> What is it? What language does it use? What OS is it for?

<comment><AUTHOR> You can think of it as a CMS to a degree as well as a framework. It's written in PHP. Any OS that supports PHP should work. I've only fully tested it on Linux and some preliminary testing on Windows. I would love to have other contribute to the project.

<comment><USER3> That would be good to put on the site.</comment></comment></comment>


Understanding Parser Combinators (2015) - <AUTHOR> https://fsharpforfunandprofit.com/posts/understanding-parser-combinators/ <comment><USER2> This is a pretty in-depth look into parser combinators in F#. If you'd like something higher level/easier, I wrote an intro to using them in TypeScript/JavaScript: [https://medium.com/mercury-bank/a-magic-date-input- using-par...](https://medium.com/mercury-bank/a-magic-date-input-using-parser- combinators-in-typescript-3c779741bf4c)

</comment><comment><USER3> I'm curious about the performance of parser combinator approaches to other parsing methods. It seems that generally they are slower, but is this an innate problem, or could clever techniques improve on this? Anyone done work/research in this area?

<comment><USER4> So the main performance penalty is that you want to parse

        foobar | foobaz

As

        fooba(r|z)

But this requires you to analyse your parsers. Virtually all parser combinator libraries in haskell are monadic and most others follow suit. This means you can parse turing complete languages and parsers are very pleasant to write but also all predicates are undecidable and therefore you can't optimize well.

There are a couple ways around this:

\- rewrite into non-turing-complete parsers when possible using heuristics. Ghc supports this, the original motivation was implicit parallelism for facebooks anti-abuse infrastructure

\- use a non-monadic dsl. This either makes coding more awkward or forces you to reimplement a bunch of things like if statements

\- if you really need performance and error messages use a parser generator instead of an embedded dsl

Ghc inlines functions incredibly aggressively so the higher order combinators don't have a huge cost. Doing this in a jit compiled language will be more expensive. There are also tradeoffs in the primitives you use - you could only have a primitive to check a single char and then use it in a loop to check strings. But even when inlined you won't beat a fine tuned string comparison function this way.

<comment><USER5> Right, I think you only need monadic bind for semantic predicates. Ordinary semantic actions (i.e. ones that don't feed back into deciding how to parse the rest of the input) can fit smoothly into a parser combinator design without monads, but AFAIK that's not how it's usually done.

</comment></comment></comment><comment><USER6> Shameless repost of a parser combinator I wrote for a JSON lab back when I was a TA at Northeastern.

If you like parsers and Racket this may interest you. I've been wanting to write up a post kinda like this myself, but haven't found the time.

[https://github.com/nixpulvis/parser- combinator](https://github.com/nixpulvis/parser-combinator)

<comment><USER6> The beauty of parser combinators is how closely they can follow the description of languages like JSON. Just compare [https://json.org](https://json.org) to [https://github.com/nixpulvis/parser- combinator/blob/master/j...](https://github.com/nixpulvis/parser- combinator/blob/master/json.rkt) for example.

</comment></comment><comment><USER7> Anyone interested in that matter might enjoy these two blog posts by a colleague of mine:

1\. [https://firstname.lastname@example.com/using-parser-combinators- in...](https://email@example.com/using-parser-combinators-in- go-e63b3ad69c94) 2\. [https://email@example.com/parser-combinator- gotchas-2...](https://firstname.lastname@example.com/parser-combinator- gotchas-2792deac4531)

They highlight the typical pitfalls of implementing your own parser combinators and I found them very helpful for my understanding of parser combinators.

</comment><comment><USER8> I would really recommend anyone who want's to get a taste of "real" function programming to develop some parser with parser combinators (I developed a java-parser). I started to understand a great deal of functional-programming concepts by using them...and they are so awesome! They are, in my optinion, a prime example where functional programming shines. I think they really had an impact on my journy through programming languages.

I am just not sure about f#, but that's probably because I am so used to haskell.

</comment><comment><USER9> it's a long time since I read it, but I remember the treatment in Burge's 1975 "Recursive Programming Techniques" being clear, along with other techniques, if you can find a library copy. As far as I know, combinator parsing was introduced there, and I find it's normally worth reading the original literature on a topic. Burge is a classic generally as a follow-on to "The Next 700 Programming Languages".

</comment><comment><USER10> Very good tutorial. Could easily follow, although I don't know F#, just some Haskell.</comment>


Air Force Performing Falcon flies away during bowl game - USAFA Community - <AUTHOR> http://www.usafacommunity.com/forum/general-afa-discussion/9256-falcon-flies-away-into-wild-blue-yonder.html <comment><AUTHOR> Found video footage of what the bird was up to while gallivanting around Shreveport.

<http://www.youtube.com/watch?v=GsbO_LM8Y9A>

</comment><comment><AUTHOR> I actually know these Birds and Cadet handlers well, they stay in my home in Utah when Air Force plays Utah, Or BYU. It is cool to here the stories of how they are trained and the traditions.</comment>


Everest Climber: Sherpas Tried to Kill Me - <AUTHOR> http://news.nationalgeographic.com/news/2013/13/130502-mount-everest-fight-simone-moro-interview-sherpas

<comment><USER2> Here is a rather different account from American mountaineer Garrett Madison. Some of the details directly contradict Simone Moro's version. I wonder where the truth lies?

[http://www.bergadventures.com/v3_cyber/2013/2013-03-22-evere...](http://www.bergadventures.com/v3_cyber/2013/2013-03-22-everest- climb/dispatch-36.php)

<comment><USER3> Interesting, thanks for bringing some balance to the story. Incidentally, I've been good friends with a group of Sherpas in Boulder, Colorado for years. I can't even fathom people such as them behaving badly. I'm inclined to take Mr. Moro's story with a grain of salt because of this.

<comment><USER4> A good friend of mine is Sherpa too, and used to do assist Everest mountaineers, he now lives in California. Kindest man you'll ever meet. He said he would carry gear all day long, and without shoes. I asked him once why no shoes? He said the mounters wouldn't buy them for him, so he didn't have any. Not sure how common that is, or all of the circumstances, but it did not sound like the mountaineers regarded him as more than a donkey in human form.

<comment><USER5> >> _He said the mounters wouldn't buy them for him, so he didn't have any._

Somewhat tangent, but don't they get paid?

 _Not sure how common that is, or all of the circumstances, but it did not sound like the mountaineers regarded him as more than a donkey in human form._

Looks like helping climbers and carrying stuff is their job.

However, this sherpa thing seems like cheating, you have others carry stuff for you, lay ropes and what not. Maybe since everyone uses them, all climbers are in the same position but still.

<comment><USER4> He was not paid enough to afford shoes. This is Nepal remember, not Palo Alto.

The Sherpa are an ethnic group known for being skilled mountaineers, and it is also a way some of them make a living. It's not like they're a climber helping cast.

<comment><USER5> _It's not like they're a climber helping cast._

So why do they carry bags and act as "helping cast" for what you say are low wages? Is someone forcing them?

<comment><USER4> Yes, the economics of the region. It's a 3rd world country, not to be trite, but if you've never been to a 3rd world country before or read anything about those places, the realities are very different than in the 1st world.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I imagine this is going to be dealt with harshly. The government is very protective of tourists.

Immediately after the 2011 earthquake, a member of my party was crossing a bridge. This annoyed some soldiers who began pelting him with rocks. One of our guides demanded that the soldiers stop trying to kill his client and got punched out.

When the situation cooled down, the soldiers explained that they weren't sure if the bridge was stable after the quake. Go figure.

The solider who threw a punch was fined at least a month's wages. I wouldn't be at all surprised if these guys didn't see employment on Everest again.</comment>


AT&T, other U.S. advertisers quit Google, YouTube over extremist videos - <AUTHOR> http://www.usatoday.com/story/tech/news/2017/03/22/att-pulls-google-youtube-ads-over-offensive-content/99497194/ <comment><USER2> I suspect the recent blocking of ads on LGBT video creators is part of Googles response to this.

It's rather hard to pick a subset of videos which no advertisers consider offensive. Social norms in one country might vary widely from another country or culture.

It looks like Google is getting criticized from both sides here, and there is no middle ground.

<comment><USER3> Google should give censorship the middle finger, while also giving advertisers more control over where their ads play. Categorization is good, censorship isn't.

<comment><USER4> What does this actually mean, though? Advertisers are always free to spend or not spend their dollars as they see fit.

<comment><USER5> If an advertiser doesn't want to reach viewers on the largest and most concentrated video market on Earth then that's their own internal problem they need to deal with.

This is the brave new world. The free-market of information is beginning to show its teeth for better or worse and those who shy away from it will lose market share.

<comment><USER6> Exactly. Google doesn't realize that it wields an incredible amount of power in this situation. If these guys don't advertise than someone else will. They will win, these idiots will lose.

<comment><USER7> Advertising is a surprisingly concentrated market, with five or six conglomerates making most of ads you see (WPP, Publicis, Mccain, etc.)

In fact this whole brewhaha was started because the current head of the WPP said he wanted Google to do something about his ads showing up next to extremist videos. It's not inconceivable the article on The Times that started it all was made as part of WPP's strategy to make Google kowtow to them on this subject.

Basically don't underestimate the power of advertising agencies. They can produce news cycles at will.

</comment></comment></comment></comment></comment></comment><comment><USER8> Have any other these same brands bailed on Facebook because of live rape, murder, or suicide streams?

[http://nypost.com/2016/06/17/gangbanger-facebook-lives- his-o...](http://nypost.com/2016/06/17/gangbanger-facebook-lives-his-own- murder/) [http://www.cnn.com/2017/03/21/us/facebook-live-gang-rape- chi...](http://www.cnn.com/2017/03/21/us/facebook-live-gang-rape-chicago/)

Consumers create the content they consume now. Big brands that decide they need to opt out of Youtube also need to opt out of Facebook, Instagram, and Snapchat. Upon doing so, they will be forgotten.

Ben Thompson at Stratechery has had a lot of thoughtful things to say about brands and their relationship to television. It was a virtuous cycle not just for mega brands and content producers but also retail. Internet advertising disrupted that. ( Good read: [https://stratechery.com/2016/dollar-shave-club- and-the-disru...](https://stratechery.com/2016/dollar-shave-club-and-the- disruption-of-everything/) )

On another note, I've been wondering for years how long it would be until advertisers would decide maybe they don't want their brands pre-rolling in front of snuff films on Daily Mail and other curated news platforms.

</comment><comment><USER2> The "extremist" videos in question here aren't exactly niche. Some have 30 million views. Thats fairly mainstream.

I watched a few (with english translations), and while they are religious in nature, the few I sampled didn't seem anything out of the ordinary for youtube.

<comment><USER9> What was the video about?

</comment></comment><comment><USER10> Curiously, a decidedly tech-unsavvy publication from where I live, described this event as "companies are boycotting YouTube because extremist videos are displayed alongside their ads."

Which unintentionally describes YouTube as what it actually is.

<comment><USER11> If it's correct, why do you say it's unintentional?

<comment><USER12> Presumably, YouTube at least wants you to think the videos are the main feature and the ads are just a small add-on, so you would expect the article to say "companies are boycotting YouTube because their ads are displayed along side extremist videos." The wording the author quoted makes it sound like the ads are the main featured content.

</comment></comment></comment><comment><USER13> To be fair, it can't possibly be easy for Google work out what ads are appropriate for what content. I mean some will be easy like a crap music video and Beats, but there are some videos that just aren't ad material.

"Ok we've got a large topless woman covered in slogans, holding a sign, and screaming at a crowd. Maybe.... Nescafe?"

<comment> FLUX-YOU Context is difficult but maybe if you can't establish an easy context, you don't run ads from major buyers.

Another option is separating classes of customers into major buyers like AT&T and everyone else -- AT&T's ads only go onto curated and high reputation channels.

AT&T and other advertisers frankly seem to have not understood the risk of a site which plays their ads on videos that anyone in the world can upload. Or, they have tolerated or controlled the risk up until now and ads + terrorist videos have become a big enough news story that Google has been made into the fall guy.

</comment></comment><comment><USER9> If 98% of flagged videos are reviewed with 24 hours, it raises the question of why these videos are not getting deleted. Are they not getting flagged? Is google not reviewing them quickly enough? Are they not really as objectionable as the advertisers claim (as londons_explore's comment alludes to)?

<comment><AUTHOR> I suspect there's a vast grey area between what's actually against the terms of service and what some companies want their ads shown next to. For example, a video calling for Muslims to return to the middle East to fight in the jihad, with no actual graphic content, might not violate the TOS, but British Airways probably doesn't want their ad in the same zip code as that.

<comment><USER14> Sure but then that just shifts the question to why aren't t ads simply manually disabled on those videos if they are being reviewed already?

<comment><USER9> But why disable ads on a video that doesn't violate ToS? What they need is a "religious content" category, so people can choose not to have their videos there.

<comment><USER14> I mean, I think that disabling those ads is the entire point here. Ads are showing up on videos that don't violate the TOS but that advertisers don't want to be associated with. If 98% of the videos in question are getting reviewed anyway Google has a simple meatspace solution.

</comment></comment></comment></comment></comment><comment><USER15> Google seems to think algorithms can solve everything

As in the case of maps, it is clearly not the case. They actually need humans, with critical sense (those are more expensive) to check case by case

Videos can also get input from the users but a) this is prone for abuse and b) they need better inputs than like/not like and bad cases are harder to report

<comment><USER16> Google has a tracking record of not giving support and relying on the community for Q&A. Which means there is no real answers to different concerns. Some solutions exist but Tom from Minnesota or John from New York give bad responses and someone else trust them because these answers are in the Google support site.

</comment></comment><comment><USER17> I think this will pass. Google's audience will pull back the advertisers. Google holds the keys to the castle here.

</comment><comment><USER18> Surely companies enter into these agreements knowing what service Google will provide for them, right? On top of that, I don't think many people believe even Google has the technology and resources to scan every bit of content they show and determine if it's "extreme"\--according to a particular company.

This is a case of companies catching flak from potential customers for being associated with something offensive to those vocal customers, and wanting to distance themselves from it. So they try to shoot the messenger: Google/Youtube.

They either knew what they were getting into when they signed the contract (because "We'll give you money. Just shove our company down the gullet of the public."), or they're inept.

<comment><USER19> I don't think that the response is entirely unreasonable; Google doesn't have to comply if they don't want to, and it will just be a game of who flinches first after that.

It's not really unprecedented to request a change in policy or to try to influence a service you're using. I agree with you that this should just be an accepted cost of algorithm based advertising, but I don't see the response as particularly unreasonable. The companies want a change in how it works, and they're trying to throw their financial weight behind it.

I mean, it's not like they're suing to break contract, they're just not continuing to use the product because it no longer is serving their needs.

I'm really not trying to be a corporate apologist here - whether their ads are there or not I won't see them so I frankly don't care. But I'm not sure why there is a condescending attitude towards the corporations for trying to make a change, and then stopping use of a product they deem to no longer meet their needs.

<comment><USER18> Totally understood, and agreed: companies are allowed to use (or not) whatever services they want, and they will ask for whatever they want. My original comment was made to point out: they got what they (should have) expected, and now they're dealing with damage control. Which I would fully expect them to do.

</comment></comment></comment><comment><USER20> I rather thought that Google advertised to the person using YouTube, and the video is just the vehicle.

Thus, you'd expect ads targeted at you to appear on any video you watch, even extremist ones.

This may be quite difficult for Google to 'fix'.

</comment><comment><USER2> Note that many of the companies say they have withdrawn "non-search" ads. For many advertizers, that could be a tiny fraction of their budget.

<comment><USER21> It's important to remember that non-search advertising is a small business for Google compared to search ads.

</comment></comment><comment><USER22> Conspiracy theory, this is related to the changing dynamics of popular media. These advertisers are actually concerned about money going to non-approved media sources. The extremists videos are a happy coincidence / excuse for them to act on.

</comment><comment><USER23> With all the ad profiling and targeting going on, is it really a coincidence that certain ads appear next to somewhat extreme content? Maybe some brands and extremist groups do share the same audience?

That fact can be hard to swallow for the marketing department of a company: 'Apparently 80 percent of our customers are white supremacists or hate gays.' Or something like: 'It seems that 1 in 3 of our shampoo buyers like beheading videos.'

Consequently those companies pulling advertising on Google and YouTube should stop selling their products and services to extremist or similar inappropriate customers. Or put a disclaimer on their products or in their TOS: 'This product can not be sold to, or used by, viewers of beheading videos, Muslim extremists, Paul Ryan voters or Breitbart readers.'

<comment><USER24> I don't think it's about 'stop selling to extremists', but rather about 'having my image associated to extremist-contents'.

</comment></comment><comment><USER25> The internet is a medium of communication like air and should not be subject to advertiser brand management. Advertising really shouldnt even be the primary method of financing; it should all be paid for with some sort of tax.

<comment><USER26> > it should all be paid for with some sort of tax.

Which in practice works out as the state deciding what things should and should not be funded and, therefore, seen. Even if the current global political climate was not so awful I would still think this is a terrible idea.

</comment></comment><comment><USER27> That's great - the less ads the better ;)

Looks like extremist videos make internet great again.

</comment><comment><USER28> If only companies would do the same thing with Twitter

They'd sooner delete controversial republican personalities accounts before the confirmed ISIS recruiting accounts

Not that I agree with either, you'd just think the latter would take significantly more precedent

</comment><comment><USER29> I'd be curious of the ramifications if Google were to retaliate by delisting their sites from the search index or direct to competitor sites.

<comment><USER30> I'd imagine it would be something serious involving the DOJ.

<comment><USER31> They could definitely lower the search results and could definitely show the competitors if you searched for them without reprimand I believe. I remember when Google put google flights over competitors there was some legal action by the FTC but it was dropped [0].

[0] [https://www.engadget.com/2015/03/20/ftc-report-google- search...](https://www.engadget.com/2015/03/20/ftc-report-google-search-bias/)</comment></comment></comment>


The Ride-Hail Strike Got Just Enough Attention to Terrify Uber - <AUTHOR> https://slate.com/technology/2019/05/uber-strike-impact-gig-worker-protest.html <comment><USER2> No business model. No proprietary _anything._ Billions in investor cash down the drain with more to come. Workers who sleep in their cars... But Kalanick and friends will sure get rich.</comment>


Why Climbers Die on Mount Everest - <AUTHOR> https://www.sciencedaily.com/releases/2008/12/081209221709.htm <comment> 1e-9 Strenuous activity at altitudes above 8,000 m often leads to fatal brain swelling, even among those who are physically fit and have spent time acclimating.

There have been several studies indicating that mountain climbing leads to brain damage, even among world-class climbers. Similarly, there is evidence that scuba diving to depths below 40 m or so damages the brain.

We didn't evolve at extreme altitudes or depths. It's probably best to stay away from them if you value your mental fitness or life.

</comment><comment> village-idiot Everything about Everest sounds too intense to be comfortable. Even as someone who has an affinity for alpine environments, I'll leave Everest be.

Edit: looks like 11 people died this season, all from altitude related causes. To my knowledge this is unusual both in number and cause, and is probably why Everest related stuff is getting posted.

</comment><comment><USER2> 2008</comment>


Racket Language – New website design - <AUTHOR> http://racket-lang.org/ <comment><USER2> I don't want to be that guy, but I think the design needs work. Especially since the title is saying "has a new design". I wonder what it used to look like. It looks like a nice piece of technology, but like the other guy said, the website is too busy and I don't know where to look at. It took me a minute to find the github link. It's almost like it's hidden purposely.

Also the "Books" section is kind of misleading and made me think they're taking credit for something that they didn't do. After taking a look at the page for a while finally realized it's like scheme/lisp, and the books section kind of makes sense, but still it's still very confusing.

This may be too harsh but the design almost reminds me of those parking websites that make money off of adsense. Hope they put some more effort into the design so the website can actually do the language more justice.

<comment><USER3> You __are__ that guy. The design is cool and this is the best looking lisp site IMHO.

<comment><USER4> Not that this design is bad, I think Guile's site is fantastic. [https://www.gnu.org/software/guile/](https://www.gnu.org/software/guile/)

<comment><USER5> Wow! It truly is. I wanted to make a snarky comment about ivory tower Lisps but the Guile site is awesome: down to Earth, practical _and_ relatable.

</comment></comment></comment></comment><comment><USER6> IMO, the "only show text + links on hover" thing needs to go. If you absolutely _must_ do something like this, please use faded-but-visible text instead of completely hiding it.

(It's also really annoying on mobile where you have to actively tap to show the links.)

EDIT: Reasoning: Does this page contain the information I need? I can't tell without apparently hovering over everything. (Plus, if I hover away from one of the 'graphs' it's easy to forget what was on there.)

<comment><USER7> Right, I nearly missed the fact that there were links - if my mouse pointer hadn't passed over one of the fields while going to the "close tab" button.

</comment></comment><comment><USER8> Feel like I'm the only one here who likes the site. I really like it. Just hope it works on mobile too where you can't hover.

</comment><comment><USER9> "Solve problems. Make languages."

That basically sums up my problem learning Racket. "What is Racket the language? What language am I supposed to learn? What language am I supposed to use in production code? Will one language be compatible with another?

I got lost reading Racket document. One section talk about a class syntax of a language. Another talk about some other stuff that never utilize a class. What am I supposed to do with this?

I don't want to learn languages, I want to solve my problem.

<comment><USER10> I had exactly the same experience a few years ago. Now a few years later, more of the Racket documentation makes sense, but many parts are still outside of my background understanding. I still have to trade-off the frustration of not understanding for convenient access to all the documentation. Because Racket's documentation is so good, it's easy to navigate to a subject that's over my head.

I agree there is a problem with 'Racket'.

'Racket' can mean an ecosystem distributed with batteries included. It can mean the language referred to by #lang racket at the top of a source file. And 'Racket' can mean any one of several other languages shipped in the distribution.

Racket the language (aka #lang racket) is a useful general purpose programming language. When #lang racket programs address complex problems they tend to become more complex. When #lang racket programs implement sophisticated procedures, they tend to become more sophisticated. Python, Ruby, C, etc. are similar in that respect. The Racket documentation reflects this. There are parts that are simple and self contained. There are parts that are at the edge of programming language design. And they're all in one place.

<comment><USER11> I've had the same issues navigating their documentation. About 10 months ago I attempted to write a reddit scraper using Racket. I started out reading their "net/http-client" library and had to turn to the /r/racket subreddit to find out that the "net/url" library was what I wanted. I'd love to see some simple directory that relates development intention with a library: "Web Scraping, JSON parsing => net/url".

</comment></comment></comment><comment><USER12> The docs are the only part I go to, and they look the same (not a bad thing, because they were always beautiful).

Felleisen and and his group have been working on Racket for a long time, and it shows. I think PG's Arc even runs on top of it.

Only gripe I can register is that they have gone full-speed-ahead on the DSL/metaprogramming aspect which kind of works against the language. See Tarver's "The Bipolar Lisp Programmer," or Alan Kay's quote: " _Lisp isn 't a language, it's a building material._"

<comment><USER13> > I think PG's Arc even runs on top of it.

That so? Then what's the actual use-case for Arc again? It's a Lisp, Racket is a Lisp, hence a Lisp running on another Lisp? "Lisps all the way up"? ---well that's not unconsistent with the target audience I'm sure ;)

<comment><USER10> The case for and against Arc is the same as for any other programming language: Does the syntactic sugar over the Turing Tarpit make the task at hand easier or harder. None of which is to suggest that I typically see anyone making a strong case for Arc these days.

I mean if anyone really was actually making any kind of case for Arc, they'd probably start with organizing it and promoting it in ways that would facilitate its inclusion as just another language in the batteries included distributions of Racket.

</comment></comment></comment><comment><USER14> That's great, but it doesn't really seem to tell me anything at all about what it is.

From what I saw, it looks like a site that helps you make a variety of line drawings. Next time I need to make some line graphs, I'll check it out.

<comment><USER15> Worth a read, or at the very least a look: [https://en.wikipedia.org/wiki/Racket_(programming_language)](https://en.wikipedia.org/wiki/Racket_\(programming_language\))

<comment><USER14> Thanks.

To the creator of this site:

Take into consideration the commonality between all of these:

[https://www.python.org/](https://www.python.org/)

[https://golang.org/](https://golang.org/)

[https://www.rust-lang.org/](https://www.rust-lang.org/)

[https://dlang.org/](https://dlang.org/)

[http://elm-lang.org/](http://elm-lang.org/)

[http://plt-scheme.org/](http://plt-scheme.org/)

Each of these language homepages clearly explains that they are introducing a programming language. This new racket-lang.org page doesn't. It has a huge impact on what users will think when they load the page.

The PLT Scheme homepage is leagues better than the new Racket one because it tells me exactly what it is for. Don't let yourselves go backwards.

<comment><USER16> [https://www.rust-lang.org/](https://www.rust-lang.org/) is the best example. There is a code example, clear links to documentation and source, a concise description, easy to see links to most common places. Very, very good.

</comment></comment></comment></comment><comment><USER17> The re-design was done by Matthew Butterick [0].

IMHO it looks nice and modern, and quite readable thanks to the great typography, but there are some fair issues raised here. So I opened an issue to let them know about it [1].

[0]: [https://github.com/racket/racket-lang- org/pull/28](https://github.com/racket/racket-lang-org/pull/28)

[1]: [https://github.com/racket/racket-lang- org/issues/31](https://github.com/racket/racket-lang-org/issues/31)

<comment><USER4> Matthew Butterick is an obvious choice for the Racket website. He did a great job.

</comment></comment><comment><USER18> I personally love it, it's light, just enough graphics, linear enough but not too long. Action button nicely placed.

</comment><comment><USER3> Wow. This is the best looking lisp site so far. It is even responsive! Keep up the good work!

</comment><comment><USER19> Good design, but I think there should be bit more info about the project upfront at the top. It took me significant time to figure what Racket is.

</comment><comment><USER20> The design is ok. The interactions need some tweaks. The cursor should change to finger pointer on mouseover on code snippet. Probably it's better to highlight code snippet on mouseover before expanding it on click.

The other issue is all the links lead to pages with really old design. Hope this will get fixed too eventually.

</comment><comment><USER21> I feel really uncomfortable with this site. I got lost and just after some time I realized where each thing is placed.

</comment><comment><USER22> the redesign seems to have impacted the PLT Redex site at:

[https://redex.racket-lang.org/](https://redex.racket-lang.org/)

I am trying to read the model part of the set of scopes paper and running it in PLT Redex, but it seems to be unavailable currently.

</comment><comment><USER23> I have no idea what's going on on this website.

</comment><comment><USER24> The website is fine I guess. What's more distracting is the lisp-like language. The parentheses are just too much. I guess I'm not one naturally inclined to functional languages.

<comment><USER25> It's racket, you can change the syntax at runtime if you so desire. (But if you learn to use the IDE the parens don't matter.)

<comment><USER26> is DrRacket the IDE? If so, is there more to it than the REPL with the simple text editor above it?

<comment><USER27> A lot more.</comment></comment></comment></comment>