2017 Rust Roadmap - <AUTHOR> https://github.com/aturon/rfcs/blob/roadmap-2017/text/0000-roadmap-2017.md <comment><USER2> I read through the Rust book, and the problem I was having with it and the other docs is that it was hard to map the Rust concepts with what actually runs when it is compiled. For a language that touts "uncompromising performance", it was difficult for me to find performance characteristics of the underlying abstractions and std library (for example, are algebraic data structures just tagged unions or does the compiler do more fancy things with them? What about iterators?). I'd really like to see a "Rust for C/C++ devs" guide that helps you figure out if you were using [some C++ feature] the way to get that behavior/performance with idiomatic Rust.

Another thing that is still tricky for me is figuring out when I should use 'unsafe' blocks in my code. Is it to be avoided if at all possible, or should I go there any time the 'safe' part of the language is making it difficult to express what I want? The meme that Rust is C++ without SegFaults and or race conditions is a bit misleading since the actual guarantee is that you don't get SegFaults or Race conditions outside of Unsafe blocks, and any nontrivial project will make use of unsafe blocks.

<comment><USER3> > for example, are algebraic data structures just tagged unions

They're tagged unions with no implicit heap allocations. I guess we should at least document that in the reference (though we don't want to overspecify, because we do some tricks in the compiler to try to avoid leaving space for the tag if we can). But I don't think it'd be a good idea to document this straight away in the book: the goal is to make Rust easy to pick up, and adding more information than necessary when introducing enums (which a lot of folks will only see for the first time in Rust) isn't going to do people any favors.

> What about iterators?

The documentation for Iter explains this pretty well, I think: [https://doc.rust-lang.org/stable/std/iter/](https://doc.rust- lang.org/stable/std/iter/)

It even shows the exact implementation of (basically) Range, to give you an idea.

That said, it would probably be worth calling out that most iterators are guaranteed not to allocate. Note, though, that that isn't a hard-and-fast constraint that implementors of the trait have to abide by—you can make your own iterators and implement them however efficiently or inefficiently you like.

> The meme that Rust is C++ without SegFaults and or race conditions is a bit > misleading since the actual guarantee is that you don't get SegFaults or > Race conditions outside of Unsafe blocks, and any nontrivial project will > make use of unsafe blocks.

They'll make use of unsafe blocks _transitively_ , by using unsafe code in the standard library or well-tested crates. Think of these unsafe blocks as part of the compiler: you trust the compiler to generate correct machine code when you type "a + b", so likewise you trust the standard library to do the right thing when you say "HashMap::new()".

It is not the case that most projects should use unsafe _themselves_ everywhere: that usually just makes life harder. The primary exception is if you're binding to C code, in which unsafe is unavoidable.

<comment><USER4> Speaking of "guaranteed not to allocate", is there a way that you could express that in a type? Seems like that might be nice to have.

<comment><USER5> Not in Rust's type system. In a pure language, you could have some sort of "Heap" monad similar to the "IO" type in Haskell.

<comment><USER6> So Rust has no way to mark side effects and global dependencies of functions? Allowing singletons in a language that is supposed to be safe sounds like a huge design flaw.

<comment><USER7> Mutable statics are unsafe to access or update. You can use interior mutability with something like a Mutex to get a mutable-but-not-to-rustc value, which is safe.

Systems programming languages need this kind of functionality.

<comment><USER6> Putting a mutex around a global variable doesn't change the fact that it is still a global variable.

Memory access might be safe but you get spaghetti code and combinatorial state explosion due to all the potential side effects.

 _Allowing_ singletons for edge cases is fine but with no proper way to _enforce_ it except code review you really have now idea what the underlying code might potentially do.

<comment><USER7> I agree with you that using globals as sparingly as possible is good, but your original claim was about safety, so that's what I focused on.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I would also suggest taking a page out of Apple's playbook and providing some official sample apps like [https://developer.apple.com/library/content/navigation/#sect...](https://developer.apple.com/library/content/navigation/#section=Resource%20Types&topic=Sample%20Code). Reading the books is one thing, but seeing the patterns actually used is another. You don't need as many as Apple, only a couple really, but make sure they are well written and straddle a couple of use cases. And like go crazy with the idioms, I want to see the most idiomatic Rust code.

When learning a new platform, it's always frustrating having to hunt for good code. I actually find these similarly important as docs (maybe even more because I tend to reference good open source for much longer than docs).

<comment><USER9> I agree with the example apps. Some annotated source would be great, too. Something similar to the way dc.js annotates this example: [https://dc- js.github.io/dc.js/docs/stock.html](https://dc- js.github.io/dc.js/docs/stock.html)

<comment><USER10> +1 for usinf dc.js type examples. I wished many times "Rust by example" could follow this type of detailed explanations and complex examples.

</comment></comment></comment><comment><USER11> I would love to see Rust with a REPL. I use Python professionally a lot and have done a fair amount of OCaml in my spare time and both have excellent REPls in the form of `ipython` and `coretop`. Quick experiments _with auto- complete_ is incredibly helpful for exploring a language. That's the only thing I really miss from those languages; when I want to wrap my head around a bit of syntax or a library feature in Rust, I build out a quick little experiment and see if it compiles and behaves as I expect it. With a good enough REPL, that's unneeded.

<comment><USER12> Scala does this extremely well too. Not sure whether or not a snippet will work? Run 'sbt console' and you're in a REPL with all of your code imported.

<comment><USER11> Something like `cargo shell` or `cargo repl` that automatically imports whatever crate you happen to be working in would be _fantastic_.

If you had something like that, I imagine you could probably write a Kernel for Jupyter which would be a huge win.

</comment></comment></comment><comment><USER13> It's important to note that this is an RFC which has been proposed, and there's likely to be a good deal of discussion and revision before it's merged/adopted as the official 2017 roadmap.

The conversation can be followed/joined/whatever here: [https://github.com/rust-lang/rfcs/pull/1774](https://github.com/rust- lang/rfcs/pull/1774)

<comment><USER14> "accordance with RFC 1728" \- could they have chosen a naming scheme so their documents are not confused with the _real_ RFC's? Even RRFC 1728 would helpful. Or maybe just #1728?

<comment><USER5> Lexical scope. You should assume an RFC cited in a Rust RFC is a Rust RFC, you're in the Rust RFC scope. If an IETF RFC is cited in a Rust RFC, it won't be ambiguous.

</comment></comment></comment><comment><USER15> Awesome. I have used Iron a few times to write small web services, but I can't wait for Rust to really have a strong story for the backend. If that happens it'll be the first language I reach for whenever I need to write a backend.

I think it has a lot of great bonuses already. It's language ergonomics are that of a high-level language, yet it is extremely fast, and I can be very confident in my code if it compiles.

Rust is one of my favorite languages, keep up the great work guys.

<comment><USER16> Are you saying that Rust, a system programming language, can compete with the scripting languages in speed of developing features?!

Or are you saying that it is a pleasure to use, so you'll use it for smaller backends where development speed isn't that critical?

(Asking, not flaming. :-) )

<comment><USER5> > Are you saying that Rust, a system programming language, can compete with > the scripting languages in speed of developing features?!

I'll say it. At work, the backend is Rails, and I am a Rust contributor in my freetime. I am in the early stages of working on a framework for web apps in Rust & I believe it will be comparatively productive to Rails. Only your code will be faster and many bugs will be caught at compile time.

<comment><USER16> Bold. :-) I do hope you're correct.

(Given a modest test suite and checking parameters at external API interfaces, scripting languages didn't have much problems with bugs that could be found at compile time, imho.)

<comment><USER5> > (Given a modest test suite and checking parameters at external API > interfaces, scripting languages didn't have much problems with bugs that > could be found at compile time, imho.)

Not my experience _at all_.

<comment><USER17> I've given JavaScript about six years to prove that tests make up for static analysis and all I've learned is that we need MORE static analysis.

I've met about four people in a dozen years that write better tests than me, and pretty much everyone else is writing garbage. And when I look back at my own I'm never satisfied.

Essentially the only thing worse than no tests is thinking you have test safety when you don't.

Particularly, negative tests in a dynamic language are easy to write but are virtually guaranteed to break at a later date without anyone noticing, because you are now looking in the wrong spot for a piece of data.

<comment><USER18> Coming from dynamic land, including JavaScript, one thing I noticed about rust's types and compile time safety was how it would probably eliminate 90% of the unit tests needed for an equivalent JavaScript program, essentially allowing the programmer to focus on less pendantic and more useful-looking unit tests.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> Awesome to see the learning curve addressed with such high priority.

I like Rust and I'd like to use it more, but I generally lean on Go or C for writing anything that needs performance. I can't quite get past the awkward, fumbling stage with Rust. Go, on the other hand, was really easy to get acquainted with and not too substantial of an effort to get to strong expertise. I've been able to teach Go to junior devs with no background and hand off projects within a couple weeks. Rust is awesome, but fits in a very different bracket IMO.

<comment><USER3> It's important to note that Go and C have very different design goals from Rust. Go was never designed to have zero-cost abstractions (garbage collection being the most obvious outcome of this, but there are many others), and it has a runtime. C was never designed for safety and security, memory safety or otherwise. In short, Go sacrifices performance and C sacrifices safety, while Rust's goal is to sacrifice neither.

Addressing the learning curve of Rust is important, but we aren't going to be able to do it by adopting concepts from Go or C. By and large, they just don't apply.

<comment><USER20> It's also important to note that Go was designed for programmer productivity and Rust wasn't.

GC is incredible productivity boost which is why no recent language (except Rust) does manual memory management.

Compile times in Go are a fraction of Rust compile times, which is another productivity boost.

Go gives you one good way to do concurrency, Rust believes in tyranny of choice.

Without mentioning that you don't paint the whole picture, just the parts that are favorable to Rust.

<comment><USER3> > It's also important to note that Go was designed for programmer productivity > and Rust wasn't.

Rust was absolutely designed for programmer productivity. Source: I was one of the designers.

> GC is incredible productivity boost which is why no recent language (except > Rust) does manual memory management.

That's true, it is a productivity boost. But it also has a cost. Rust didn't want to pay that cost, especially when the same mechanisms are useful for preventing data races. (In fact, removal of GC was something that happened as a consequence of the data race freedom features; it wasn't a design goal from the beginning.)

> Compile times in Go are a fraction of Rust compile times, which is another > productivity boost.

And rustc performs much more optimization. Again, a tradeoff.

> Go gives you one good way to do concurrency, Rust believes in tyranny of > choice.

That's untrue. Go has threads, channels, mutexes, condition variables, and atomics. Rust has threads, channels, mutexes, condition variables, and atomics. The only thing I can think of that Rust has that Go doesn't is, like, SIMD, and I'm sure your comment wasn't just referring to SIMD.

<comment><USER21> > The only thing I can think of that Rust has that Go doesn't is, like, SIMD, > and I'm sure your comment wasn't just referring to SIMD.

Just to clarify, are you referring to Rust using SIMD by way of LLVM, or by way of being able to use SIMD primitives / intrinsics directly in Rust code?

The former works much better than I had anticipated. I've been surprised by the extent that my iterator code ends up vectorized without me doing much work.

The latter does not give me warm Rust feelings today. There's a SIMD crate, but it doesn't look maintained and only works with the nightly compiler releases. I didn't think there was any stable way to do inline assembly, so I think linking C is my best bet here?

<comment><USER22> > The latter does not give me warm Rust feelings today. There's a SIMD crate, > but it doesn't look maintained and only works with the nightly compiler > releases. I didn't think there was any stable way to do inline assembly, so > I think linking C is my best bet here?

Yeah, the person formerly working on simd is no longer able to contribute to random open source projects. It's still something the Rust team wants to make stable, just not right now. SIMD is a bit complicated because you need to address target support in a straightforward way.

</comment></comment></comment></comment></comment></comment><comment><USER23> > Rust should integrate easily with C++ code

The day that Rust manages to have always up to date Qt bindings that do not force you to make compromises compared to the C++ API, I think the C++ support will be at a comfortable level. Right now there are fresh efforts in the Rust and Haskell camps to solve this cleanly in a modern way. It would certainly help if the consumption of C++ APIs via llvm (which is used a lot byt Rust) was made a first class feature like you can import and export C APIs. Exporting C++ classes is a whole different story and may not map in any reasonable way to Rust modules or crates.

<comment><USER24> I'm ignorant of Rusts ABI/requirements, but can the C ABI be used as a lingua franca, or are there necessary facilities that are unsupportable there?

<comment><USER13> FFI through a C ABI is how Rust <-> C++ currently works, but IIUC it's quite limiting when one might want to make use of C++ specific features. Especially important when a given C++ project doesn't have a fully-featured C API, or any C API at all.

</comment></comment></comment><comment><USER25> One way to improve productivity of Rust with respect to the learning curve is to add more screencasts/tutorials to [http://intorust.com](http://intorust.com)

I found the existing ones very helpful and instructive.

<comment> dj-wonk Thanks, I'm watching now. I recommend it.

"The primary author ... and the narrator on the screencasts, is Nicholas Matsakis ... Niko has been involved in Rust since 2011 and is a member of the Rust core team as well as the leader of the language and compiler teams"

</comment></comment><comment><USER26> This is a better link, as it will include the discussion: [https://github.com/rust-lang/rfcs/pull/1774](https://github.com/rust- lang/rfcs/pull/1774)

</comment><comment><USER27> > Rust should provide a solid, but basic IDE experience

After using IntelliJ IDEA plugin [1] (works in free community version too), I don't understand what else people need :) Plugin is pretty powerful. Also Racer works great in VS Code and other editors.

> Rust should have a lower learning curve

Rust is easy enough to learn, the only issue is a steep start. After couple of months everything is not harder than JS and smart compiler actually makes me more and more lazy :) So I think only thing we need is books/articles to help people switch from other languages, to help them overstep initial difficulties.

[1] [https://github.com/intellij-rust/intellij- rust](https://github.com/intellij-rust/intellij-rust)

</comment><comment><USER28> It's amazing how much the rust team has nailed it. they know exactly what the problems are. I do not know of any other team as talented as rust. Then language is also quiet brilliant. I have started rewriting all my code in rust the days. It just makes sense.

</comment><comment><USER29> > 1 in 19: lack of IDEs (1 in 4 non-users)

I expected that to be higher actually, but that's still the only reason I don't use the language. I've come to rely heavily on IDEs. Whether right or not it's a huge factor in my decision to wait for the language.

<comment><USER30> What kind of IDE support do you typically use that isn't handled by a modern text editor (such as go to definition, variable renaming, find and replace, etc)? I'm starting to use CLion for my C++ work now, because "go to definition" is much more reliable than most editors can manage with C++ code, but I find that most of the fancy refactoring features like extracting functions or subclasses are not used often enough to be really useful.

<comment><USER29> The features I need are:

       - Refactoring Support (rename variable, class, function)
       - Code Folding
       - Automatic type checking
       - Automatic error detection (tells me when syntactical or other errors are made)
       - Built-in documentation loading/display on hover of cursor.
       - Same thing as above except with any documentation I add myself on a function.
       - Debugger with comment overlay of values (like PyCharm)
       - Dependency management/Building/Deploying all a *button* (not 10 commands) away
       - VCS integration
       - Automatic code formatting
       - Automatic code "cleaner" (change for (int i = 0; i < arr.length; i++) to an expanded loop for example)
       - Automatic import cleaning
       - Automatic project creation for basic use cases (console, GUI, maybe a web framework)
       - Change CWD/environment variable for running the program
       - GOTO definition
       - A Graphical User Interface (Graphical being the biggest requirement)

Outside of all of those, there is a much much much more important feature: Auto Complete. A smart auto complete. An autocomplete that understands the type system and the function's return types.

For instance if I am typing:

       String sub = someString.

It shouldn't recommend "length()" as well as in the case of:

       String lengthStr = Integer.toString(someString.

It should recommend things that return an integer. This needs to be fast and needs to be non-case-sensitive. Also, if I am typing

       Lis

It should recommend List, ArrayList, etc in that order with the closest thing up front. It should also in the recommendation screen show documentation, a link to official documentation, and possibly an example of how to initialize/use the code. If something isn't imported and so it's not currently usable, if the user clicks enter or whatever on the auto-complete screen you should import it. If it has that, and has that working quickly, and has that working completely it's a "real" IDE in my book. That list is just "wants", this one thing is a "need"

If I had that for rust, I'd switch over to rust as my main language. Anything that doesn't have something like that will never compete with Eclipse in ease- of-adoption in my book.

</comment></comment></comment><comment><USER30> >We asked both current and potential users what most stands in the way of their using Rust, and got some pretty clear answers:

>1 in 4: learning curve

>1 in 7: lack of libraries

>1 in 9: general "maturity" concerns

>1 in 19: lack of IDEs (1 in 4 non-users)

>1 in 20: compiler performance

>None of these obstacles is directly about the core language or std; people are generally happy with what the language offers today. Instead, the connecting theme is productivity—how quickly can I start writing real code? bring up a team? prototype and iterate? debug my code? And so on.

I don't really see how this conclusion was reached from that data. The "learning curve" is almost certainly a reflection of the language being a little esoteric and the demands of the borrow checker. And "lack of libraries" is partly a comment on the ecosystem, but also partly shows that std is obviously lacking for some needs. Finally, "general maturity concerns" refers to worries that the language or std will keep changing, as is assumed they have not been perfected yet.

Those are the top 3 concerns and to me, both seem to relate directly to the language or standard library.

<comment><USER31> I also don't think library maturity is necessarily the only problem that makes working with libraries difficult at time. You can get burned pretty easily by someone not having e.g. Send + Sync on an essential library data structure. (Though maybe there's a way around it other than forking?) That metadata ends up being very important

<comment><USER32> Send + Sync are automatically implemented for a type X if all of X's constituents are also Send + Sync. In practice, this means that unless you're using unsafe code, Cell/RefCell or Rc, then the Right Thing will just happen automatically. If you are using Cell/RefCell/Rc/unsafe, then you need to think carefully about your synchronization story anyway, so it's typically not something you just forget to do.

For more details, see: [https://doc.rust- lang.org/std/marker/trait.Sync.html](https://doc.rust- lang.org/std/marker/trait.Sync.html) and [https://doc.rust- lang.org/std/marker/trait.Send.html](https://doc.rust- lang.org/std/marker/trait.Send.html)

</comment></comment></comment><comment><USER33> Overall it looks good.

When I look at this :

"Production use measures our design success; it's the ultimate reality check. Rust takes a unique stance on a number of tradeoffs, which we believe to position it well for writing fast and reliable software. The real test of those beliefs is people using Rust to build large, production systems, on which they're betting time and money."

I see a little bit of haste towards production use. From 'Rust 1.0 is out just last year' to 'We really need successful production use', It does some to be a push from management to justify continued investment in Rust project.

<comment><USER34> The intent wasn't to say that we should be seeing big production use _right this second_ , but rather to set out an overall "north star" for work on Rust. The investments in Rust today should be made with an eye toward driving or enabling production use in the future.

I've updated the RFC to clarify this; thanks for the comment!

</comment></comment><comment> dj-wonk Re: "Here are some strategies we might take to lower the learning curve: ... Improved docs. While the existing Rust book has been successful, we've learned a lot about teaching Rust, and there's a rewrite in the works. The effort is laser-focused on the key areas that trip people up today (ownership, modules, strings, errors)."

Yes, please. I get better every day with Rust. I'd ask that the docs on lifetimes be improved with more elaboration on the ideas and more examples. Frankly, I still find the details confusing, so I can't offer more particulars right now.

</comment><comment><USER35> For what it's worth I hope serde or whatever default serializers are improved. I had some serious issues trying to combine libraries because of serde changing too much. Albeit this was about a year ago so it probably is fixed.

Second it would be nice to see some best practices not just for libraries but application development. What to do and what not to do. Maybe a cookbook or even... design patterns. I had a hard time trying to figure out if I should embrace closures or go traits (at the time closures were not working as well so maybe this is not an issue either).

<comment><USER7> We have already landed the underlying things Serde needs to be better in nightly Rust, and it should be stable soon.

I would love to see such a thing as well; I wonder if we're not quite old enough to have said patterns really gel yet. We'll see if someone comes up with something.

</comment></comment><comment><USER36> I'd also like to see a push towards applications in scientific computing.

<comment><USER37> First class multi-dimensional arrays with natural indexing syntax would be a huge draw. You get that in Numpy, Julia, Fortran and it is extremely powerful in terms of expressing the types of operations that are common across many scientific domains.

</comment></comment><comment><USER38> Focus on high-performance servers, async I/O, C integration is very promising. These are Go's weak points, could become a good alternative and a direct competition for Go.

<comment><USER39> Care to elaborate on Go having weak async I/O support?

<comment><USER40> It doesn't have it, Go uses a different concurrency model.

<comment><USER39> I manage a Lua framework that wraps Linux epoll, BSD kqueue, and Solaris Ports. Lua provides asymmetric coroutines, which the framework uses as logical "threads" for execution state. A Lua coroutine is a just a couple hundred bytes of state, likely smaller than a JavaScript/NodeJS closure all things considered, though slightly larger than a Lua closure.

Lua also has very clean and elegant bindings to C. Lua is designed to be implemented in strict ISO C, yet also to make the C API a first-class citizen --not a hack around the VM like Python, Ruby, etc. The one caveat to this equivalence is coroutines--when a coroutine yields and resumes, it can't revive any C invocation frames (e.g. when Lua calls C calls Lua). So the C API to invoke a Lua routine can take a callback and cookie. If the VM yields and then resumes a coroutine across a C API boundary, the "return" from the Lua routine invocation happens by invoking the C callback. (See lua_callk in the manual.)

From the perspective of C, as well as the kernel, this is a classic asynchronous I/0 pattern. From the perspective of Lua-script code, everything is transparent.

I take it that because Go implements light-weight threads (goroutines, which is likely a pun on coroutines) you do not perceive it as offering async I/O. And yet from the perspective of the implementation as well as the kernel it's classic async I/O using epoll or kqueue, whether goroutines are bound to a single CPU core or not. The send and receive operations on a Go "channel" are very similar to the resume and yield operations of classic routines, and semantically identical in the context of async I/O programming (because with both goroutines and async I/O there are no guarantees about the order of resumption).

Do you equate async I/O with callback-style programming? Do you think callback-style is somehow intrinsically less costly in terms of CPU or memory? I would dispute both of those contentions.

<comment><USER41> I think the difference is in how people define "async I/O". When saying "Go doesn't use async I/O", what that really expands to is: "While Go can use epoll[0], it doesn't abstract over epoll optimally." i.e. There is a difference between "zero-overhead async-I/O" and goroutines.

I'm not an expert but I'll try to describe why goroutines would have overhead (Someone correct me):

The posterboys of async I/O are Nginx and Redis. I'm probably simplifying, but this is the basics of how they work are: When using epoll directly, the optimal way to store state per connection is using a state machine. The state machine is usually some C-like struct which the compiler can give a fixed size. Each state machine is then constructed to have X memory, and is unable to grow. In theory (I don't believe anyone actually does this), if the program was comfortable with some fixed connection limit, you could fit all of these state machines on the program's stack, and require no heap allocations.

Meanwhile, Go's routines have stacks which can grow. Each goroutine has some max size, and some initial size, both of which are pre-set by the Go-lang team (I'm sure they are configurable). Since the stack can grow: They have to be heap allocated, and need to be either segmented or copied when they need more space[1]. Additionally, there is "internal fragmentation" because a growable stack needs to be consistently overallocated, which is a "waste" of memory.

Very quick Googling suggests that Lua has growable stacks as well.

[0] FWIW: Go could use M:N scheduling of kernel threads to achieve goroutines. Which is another reason why saying goroutines are async I/O could be incorrect. I don't know how its actually implemented.

[1] [https://blog.cloudflare.com/how-stacks-are-handled-in- go/](https://blog.cloudflare.com/how-stacks-are-handled-in-go/)

</comment></comment></comment></comment></comment><comment><USER42> Really nice! I try to learn as little languages at the same time as possible so sadly I have no time for Rust at the moment, but it looks like it'll only get better.

</comment><comment><USER43> Idiomatic Rust guides would be very helpful

</comment><comment><USER44> My personal code base is C++/cmake and Python.

It would be really nice with a way to slowly start writing code in Rust instead.

<comment><USER45> You might be interested in this post about using rust with python: [https://blog.sentry.io/2016/10/19/fixing-python- performance-...](https://blog.sentry.io/2016/10/19/fixing-python-performance- with-rust.html)

</comment></comment><comment><USER46> > Rust should have a lower learning curve Rust should have a pleasant edit- > compile-debug cycle Rust should provide a solid, but basic IDE experience

I know the list isn't necessarily prioritized, but these 3 feel backwards.

A good IDE will provide can help facilitate easier edit/compile/debug cycle which makes learning the language faster because it's cheaper (time wise) to figure things out.

<comment><USER7> They're not ordered.</comment></comment>


HN: Please review http://domain-generator.us/ - <AUTHOR> http://domain-generator.us/

<comment><USER2> Looks good - nice idea, but I had a couple of problems using it... I think it's still a bit buggy:

1\. Doesn't seem to work in Chrome? I get no results no matter what I do. 2\. Checking the checkbox next to "International" or "All country extensions" should select all the checkboxes in that section IMO. It feels like it's not doing anything. 3\. After playing for a bit in Firefox, it disabled the individual and country extensions so I couldn't select them individually. 4\. If my word doesn't match any valid domain, I get an error telling me I need to select a country extension.

That said, if you can iron out the bugs, this could be useful :)

<comment><AUTHOR> Update: you may want to refresh the page and try again. I fixed a Javascript issue a few minutes after posting this thread. You may have the old JS in cache (I've modified the URL to avoid any cache issue)

What version of Chrome and FF do you use?

1\. Not tested on Opera, Chrome or IE 7/6 yet

2\. In FF 3+ and IE 8, selecting a group (such as International or All country extensions) selects all the individual extensions.

3\. Did you choose a restriction such as price of known registrar. Only in this case extensions will be disabled (extensions that are more expensive than your price, or that do not have a "known" registrar)

4\. Do you mean you added an extension in your word, like google.com? Could you send em the exact words you tried? email@example.com. You should be able to enter any word, and click on Search as long as you selected at least 1 extension.

Thanks for testing!

<comment><USER2> Ok, I've forced a refresh and here's an update :)

1\. No worries - Chrome is "5.0.342.2 dev", and FF is 3.5.8

2\. Yep, it's working for me in FF now. Still not in Chrome, btw.

3\. Yes, I did. That'd be it - my bad. Maybe something hinting that that's why? As a suggestion, perhaps a number in parentheses in each tab? e.g. "Restrictions (1)" if I've selected one restriction? Just an idea :)

4\. I can't reproduce this now! Maybe the JS update fixed it?

Happy to test! Like I said, nice idea :)

<comment><AUTHOR> 1\. It works with Safari and Chrome now.

2\. Thanks for the suggestions. I added the number of restrictions and suggestions. The alert also suggest that some extensions are disabled because of the restrictions.

</comment></comment></comment></comment><comment><AUTHOR> This is a side projects I started a long time ago (my first JQuery project) and never had time to finish.

Also it is far from being complete, I've decided to release it. Let me know what you think of it, any bug or problem.

Thanks

BTW, I should mention my number one missing feature IMHO is a to do a sort on the domain names found.

</comment><comment><USER3> It's "Godaddy", and not "Godady".

<comment><AUTHOR> Thanks, fixed</comment></comment>


N1 – The extensible, open source mail client - <AUTHOR> https://nylas.com/N1 <comment><USER2> I see a lot of potential in open sourcing a modern and beautiful mail client, but the requirement of using a mail middleware (centralized or self-hosted) is a deal breaker for me.</comment>


Maker's Schedule, Manager's Schedule (2009) - <AUTHOR> http://www.paulgraham.com/makersschedule.html <comment><USER2> This got some pick up just a few days ago again. Thread at [https://news.ycombinator.com/item?id=16922147](https://news.ycombinator.com/item?id=16922147)

</comment><comment><USER3> The things that are on schedule are one part but there are other things not on the schedule when you have scheduled a few days to do programming.

I find it hard to balance between being unavailable to my colleagues/users and being interrupted all the time. Often the most efficient way to solve a software problem is to just come to the developer and resolve it together in a few minutes. These interruptions happen at random though and are hard to plan. Some days there are none and other days there are people almost lining up.

I also suspect that the mind is able to go into a deeper state when it does not expect to be interrupted all the time. So not only the interruptions but also the expectation thereof is taking energy away. Some days when there is nothing going on I even miss the interruptions and even get the feeling of needing to actively stray away with my concentration.

I wish my company would have a hidden room where I could go with a laptop, disconnect everything and emerge only after the work of the day is done.

<comment><USER4> _I wish my company would have a hidden room where I could go with a laptop, disconnect everything and emerge only after the work of the day is done._

I used to work at a place with focus rooms, one person workspaces with a (glass) door that you could do focused work in. We were all told to go sit there when we needed to concentrate. One developer decided he always needed to concentrate and just took one for himself all day every day. Soon after we were told those rooms were not meant for the developers, since we already had a dedicated working space where we could make it quiet if we wanted. People kept walking into that space and asked questions whenever they wanted, interrupting everyone's work. Then we got a door put in at the entrance of the developer space. The door kept two thirds of people out. Turns out they interrupted because it was so easy, adding a little friction made sending an email just as good.

All of which is to say: this sort of thing is never binary, and the appropriate solution is different for every team.

</comment></comment><comment><USER5> Yet more PG blowing his own horn.

I think he too rigidly defines roles or used some archaic notion of manager that went away with the industrial revolution. When in reality a modern manager is a far more dynamic position than he gives it credit for...

Well he gives himself and YC credit for it.

<comment><USER6> Your post is like a reverse shit sandwich. There is some meat between the crap. In the context of meetings, though which this article was about, I think PG is right on the money. Though it is hardly breaking news.</comment></comment>


New font Sans Forgetica designed to boost your memory - <AUTHOR> https://www.cnet.com/news/new-font-sans-forgetica-is-designed-to-boost-your-memory/ <comment><USER2> This is actually quite interesting... I wonder about the link between fonts like this and the idea that writing is better than typing for remembering things?

<comment><USER3> Main thread/previous discussion:

[https://news.ycombinator.com/item?id=18129075](https://news.ycombinator.com/item?id=18129075)</comment></comment>


Facebook is down (09:08AM PDT Aug 1, 2014) - <AUTHOR> https://www.facebook.com/?=asjdasjidj <comment><USER2> For what it's worth, stock is down too:

[http://investing.money.msn.com/investments/charts?symbol=US:...](http://investing.money.msn.com/investments/charts?symbol=US:FB#{"zRange":"2","startDate":"2014-7-27","endDate":"2014-8-1","chartStyle":"mountain","chartCursor":"1","scaleType":"0","yaxisAlign":"right","mode":"pan"})

<comment><USER3> As is the NASDAQ

[https://www.google.com/finance?chdnp=1&chdd=1&chds=1&chdv=1&...](https://www.google.com/finance?chdnp=1&chdd=1&chds=1&chdv=1&chvs=maximized&chdeh=1&chfdeh=0&chdet=1406923200000&chddm=1173&chls=IntervalBasedLine&cmpto=NASDAQ:FB&cmptdms=0&q=INDEXNASDAQ:.IXIC&ntsp=1&ei=_MLbU6iwMYGiigK- nIHgCw)

<comment><USER4> allll red.

</comment></comment></comment><comment><USER5> Facebook beta is still up: [https://beta.facebook.com/](https://beta.facebook.com/)

<comment> k-mcgrady Never knew they had a beta site - but I can't see anything different. Is there a list of differences somewhere?

</comment></comment><comment><USER6> Anybody notice their IPV6 address?

2a03:2880:2110:df07:face:b00c

<comment><USER7> They do have interesting infrastructure v6 prefixes too.

>> snip <<

       5  be2.bb01.iad3.tfbnw.net (2620:0:1cff:dead:beef::6b8)  37.323 ms  37.332 ms  37.326 ms
       6  be13.bb02.frc3.tfbnw.net (2620:0:1cff:dead:beef::16c0)  37.669 ms  27.980 ms  27.878 ms
       7  ae61.dr02.frc3.tfbnw.net (2620:0:1cff:dead:beef::653)  27.525 ms  25.989 ms  25.871 ms
       8  po1022.csw07c.frc3.tfbnw.net (2620:0:1cff:dead:beef::1b75)  26.741 ms  27.965 ms  27.875 ms
       9  * * *
       10  edge-star6-shv-07-frc3.facebook.com  (2a03:2880:2130:7f07:face:b00c:0:1)  25.823 ms  24.916 ms  24.799 ms

</comment></comment><comment><USER8> In an oddly fortunate coincidence, I switched PortableApps.com to using custom static social sharing buttons yesterday afternoon to speed the site up. It's worked very well.

The only tradeoff is losing the Facebook like button (which is kind of useless on web pages these days anyway) and the like/tweet counts. The upside is lightning-fast loading (just image links) as well as increased privacy for your visitors. The buttons use a single Javascript function to bring up a centered window about the size of the standard social sharing widgets using the sharing URL so the functionality is about the same.

It isn't an entirely new idea as I've seen a few different writeups on it online. My solution is based on ideas from a few different online sources as well as my own custom images and tweaks. I'm planning on implementing it as a standard Drupal module posted on Drupal.org for my own sites and including options for faded and grayscale buttons to better blend with alternate themes and not grab too much attention from content. I could probably put together a quick set of code and throw it on Github as well if people are interested in just using the raw code or working up a WordPress module for it.

</comment><comment><USER8> And all the companies that decided to rely on Facebook Login for their website take a breath and think 'oh fuuudge'.

<comment><USER9> After Facebook took down the Internet last time, they updated all of the script snippets that they have and added an "async" attribute to them. The functionality is still missing when FB goes down, but the site you're looking at still loads quickly.

<comment><USER8> I switched all of my social sharing widgets to static image buttons that bring up simple sharing windows just yesterday. My site loads so much faster and is completely unaffected by Facebook being down as a result.

<comment><USER10> Plus, you're protecting your visitors' privacy by not leaking to Facebook/Twitter/etc. that they visited your site. Thanks for doing this!

<comment><USER8> Exactly. It decreases your overall footprint online, but you can still have access to it if you want it. I did a short note to our users here: [http://portableapps.com/node/42106](http://portableapps.com/node/42106)

I made a post elsewhere in this thread about it but it was downvoted. I'm thinking about packaging it up as a Drupal extension (what I run) as well as a raw package on github in the hopes that someone will be interested in doing a WordPress extension as well. There are a few posts about doing this online, but none tried to fully mimic the convenience and look of the standard buttons, so I thought folks might be interested.

</comment></comment></comment></comment></comment><comment><AUTHOR> When I submitted [http://www.facebook.com](http://www.facebook.com), it redirected me back to the previous outage link because the URL is the same: [https://news.ycombinator.com/item?id=7914905](https://news.ycombinator.com/item?id=7914905)

I added a random URL string to have HN recognize this as a new entry. Perhaps it's a good idea to allow re-posting the same link for certain URLs so that "XYZ is down/having issues" type posts aren't deemed as duplicates?

<comment><USER11> > Perhaps it's a good idea to allow re-posting the same link for certain URLs > so that "XYZ is down/having issues" type posts aren't deemed as duplicates?

It would be a much much better idea if people stopped posting "X IS DOWN!!!!" submissions.

<comment><AUTHOR> I agree that it is not the most intellectually interesting. But HN, for better and worse, has evolved to be one of the front pages of the Internet (at least for certain demographics), and some people do come here for transient, immediate information. In that sense, I don't think it is entirely useless.

Also, sometimes "X is down" type of submissions can start conversations interesting in their own right in the comment section.

<comment><USER11> Maybe they should be limited to a single account? Currently there are at least eight threads about FB.

And isn't the interesting discussion during the post-mortem?

</comment></comment></comment></comment><comment><USER12> "Increased errors/latency on all Platform surfaces" [https://developers.facebook.com/status/](https://developers.facebook.com/status/)

<comment><USER13> Now the status page is down too! Awesome

<comment><USER12> It's intermittent, try reloading.

<comment><USER8> I think it's fully down now.

<comment><USER14> Seems to be consistently back up.

</comment></comment></comment></comment></comment><comment><USER15> Typical this happens when I'm pushing fixes to our facebook integration app a friday evening. First I thought it was me hitting request throttling limits...

</comment><comment><USER16> As someone who doesn't use Facebook I'm always fascinated by these threads because they show how much some people depend on Facebook (or at least addicted to it).

<comment><USER17> Facebook has nearly 10% of the global population as monthly active users. You're surprised that people are dependant on it?

I bet you also don't even own a TV.

<comment><USER16> _I bet you also don 't even own a TV._

That's true. I got rid of TV five years ago.

 _You 're surprised that people are dependant on it?_

Fascinated, not surprised.

</comment></comment></comment><comment><USER18> From the developers page:

21 minutes ago Increased errors/latency on all Platform surfaces

Facebook is currently experiencing an issue that is affecting all API and web surfaces. Our engineers detected the issue quickly and are working to resolve it ASAP. We'll update shortly.

</comment><comment><USER19> Time to go for a nice long walk to the lake. This unscheduled get-up-and-move break brought to you by Facebook. Thanks!

I've been trying to check on several advertising campaigns and add a new one to no avail. Nothing to do but wait (or work on other stuff).

</comment><comment><USER20> Maybe it's another experiment to see what type of stuff we post after an outage.

</comment><comment><USER21> Funny that this is how I find out fb's ipv6 has their name in it (pinging their url)... :)

2a03:2880:2040:7f01:face:b00c:0:1

<comment><USER22> You should try my Chrome extension; it makes IP addresses easily discoverable:

[https://ipvfoo.googlecode.com/](https://ipvfoo.googlecode.com/)

</comment></comment><comment><USER23> I just noticed it too: [http://veb.co.nz/cloud/public.php?service=files&t=ce5fc7ac6a...](http://veb.co.nz/cloud/public.php?service=files&t=ce5fc7ac6ad1bca08c593307ed7e6d40)

Note: I'm in New Zealand, and I still can't access it.

Sorry about the screenshot I still haven't figured out how to share images _directly_ via ownCloud.

</comment><comment><USER24> ..and US productivity is up...

<comment><USER25> except for HN where the post is #1 right now. This is beyond my understanding. What is it about a FB service outage that makes it so important?

(this is not an attempt to troll, it's a serious question)

<comment><USER26> As others have mentioned in this post, Facebook is used as a log in for many other websites and services. Whatever your personal feeling is about Facebook, it's an integral aspect of user interaction with websites far outside of its native social network platform. For this reason, the condescending guffaws are out of place.

<comment><USER25> thanks for the reply. I indeed had not considered the login-aspect of it. I'm not working in the website/online service business (and neither do I use facebook) so this helps me understand better.

For the rest, I added a clear note.

</comment></comment></comment></comment><comment><USER27> [http://twitter.com/YourAnonNews/status/495249974377340928](http://twitter.com/YourAnonNews/status/495249974377340928)

 _We can neither confirm nor deny that #Anonymous had anything to do with #Facebook disruption today, nothing to see here ( ͡° ͜ʖ ͡°)_

</comment><comment><USER28> it would be interesting know the technical reasons.

<comment><USER29> AFAIK they are changing the way 3rd party applications are integrated with FB, using a special set of user IDs for each app, and other privacy related changes which will limit the amount of user information apps get. It's a completely new system and probably tested on smaller user base than the entire FB. My guess is that it went into production worldwide today.

<comment><USER30> You are right on the money with regards to the changes, but the timeline is a bit off. All FB apps created after April 30 automatically get all the new stuff (whether they want it or not). Existing apps have April 2015 to switch to the new system. So, the outage is probably unrelated to to the new stuff.

Source: I'm a FB app developer who is seriously affected by the Login and Graph API 2.0 changes.

</comment></comment></comment><comment><USER31> Down in Germany. The developer status page is down for me too

[https://developers.facebook.com/status/](https://developers.facebook.com/status/)

</comment><comment><USER32> Its amazing that the world is still turning even when Facebook is down. Hmm...

I noticed that I had trouble logging on yesterday around 4pm. I wonder what's going on.

<comment><USER33> The world has a lot of momentum. Give it time.

</comment></comment><comment><USER34> Maybe it won't come back up

<comment><USER35> A man can dream.

</comment></comment><comment><USER36> [https://i.imgur.com/984NIEs.png](https://i.imgur.com/984NIEs.png)

<comment><USER37> Offtopic, but what's that Chrome theme? It looks really nice and clean.

</comment></comment><comment><USER38> It's back up: 12:23 EDT

<comment><USER8> Nope. Still down at 12:28pm EST. I think they managed to get some regions working for a bit. And the beta site is working. But it still just shows the error page for me here on Time Warner Cable in NYC. Not too concerned as I don't use Facebook for anything critical.

<comment><USER38> Back down for me in Toronto. 12:37 EDT

Edit: Back up (again) at 12:54 EDT

</comment></comment></comment><comment><USER39> Looks like the service is coming back online now. Every other request works at this point.

</comment><comment><USER40> Facebook is up. They did not mention anything on their Twitter page.

<comment><USER41> Sorry, something went wrong.

We're working on getting this fixed as soon as we can.

Go Back Facebook © 2014 · Help

Definitely down for me. Good thing I don't have a FB account.

</comment></comment><comment><USER42> VKontakte (Russian facebook) was down a couple of days ago...

</comment><comment><USER43> It's back up now as of 09:22AM PDT. 14 minute downtime.

</comment><comment><USER44> Oh! Thank God!

</comment><comment><USER45> Please don't use facebook. it is bad for you.

</comment><comment><USER46> WW3 imminent.

</comment><comment><USER47> something went reary wrong

</comment><comment><USER48> same in bulgaria

</comment><comment><USER49> Fixing,improving,adding or just it was hacked????

</comment><comment><USER49> FB is fixing, adding,improving or just it was hacked???

</comment><comment><USER50> This affects germany as well...

</comment><comment><USER51> It is still down for me as well.</comment>


Web2Web: Serverless Websites Powered by Torrents and Bitcoin - <AUTHOR> https://torrentfreak.com/web2web-serverless-websites-powered-by-torrents-bitcoin-161008/ <comment><USER2> When I looked into it, webtorrent still requires a centralized server to at the very least set up the peer to peer connection. The problem is that there isnt a way to avoid this with WebRTC. It also serves content to the initial peer.

How is this serverless? Am I missing something?

<comment><USER3> While the infohash is stored in the blockchain, the other immediate issues is that to get the infohash, you still need to connect to a centralized third- party such as blockexplorer.com. Browsers don't natively support TCP, which is how normal torrent and blockchain clients connect to each other. WebRTC is a workaround for torrents, but there doesn't seem to be a workaround for blockchains If we want true serverless architecture within browsers, we, at least, need browsers that support TCP connections.

<comment><USER4> What features of TCP would allow serverless connections ? AFAIK, even BitTorrent (DHT) and others connect to a centralized "super-node" which then gives them other nodes to connect to.

<comment><USER3> Sorry, that was hastily written and poorly worded -- more accurately, we would AT LEAST, need browsers that support TCP connections in order to connect to the p2p networks that we already have. In practice we would need a lot more, as even apps like BitTorrent and blockchains still rely on our centralized internet infrastructure to some degree.

You mention the BitTorrent DHT, but I don't believe that it's necessary to connect to a centralized super-node. You do, however; need the address of at least one other peer to start. Unfortunately, the only way to assign an address is through our ISP system which is centralized. For true peer-to-peer architecture, normal people would have to connect the internet at the same level that ISPs such as Comcast and AT&T connect to each other... think some sort of large scale mesh network.

</comment></comment></comment></comment><comment><USER5> Two things:

First, how much BTC needs to be deposited per update?

Second, this doesn't provide a solution for anonymization, does it?

</comment><comment><USER6> This is a really fascinating concept - in reality there's no reason this needs to be anchored to bitcoin, only a blockchain for hash verification. Maybe another blockchain can be used that wouldn't charge transaction fees for updating or registering? Also, this feels a little similar in ideology to ethereum swarm ([http://swarm-gateways.net/bzz:/swarm/](http://swarm- gateways.net/bzz:/swarm/)).

</comment><comment><USER7> WebRTC does not need a centralised server. It can benefit from servers that can lead together NAT or firewall victims but these don't have to be centralised.

</comment><comment><USER8> Does it share the same weakness at zeroNet - maximum allowed size of a webpage (100MB)?

<comment><USER9> Why in the heck would you want a webpage to be 100mb+ ?!

I wouldn't say that is a weakness, you want your webpages to be as small as possible.

<comment><USER8> > Why in the heck would you want a webpage to be 100mb+ ?!

Websites have scripts, images, videos, ads, text. Image + thumbnail = 1MB, gallery of images = 15MB, 600 posts with images, thumbnails, comments with avatars = ... ?

My wordpress blog started in 2010 with images, thumbnails is 5GB, last time I checked in July.

<comment><USER10> But 100MB per page is ridiculous, expect for embedded videos. I'd be waiting two minutes for each page to load.

<comment><USER11> Also keep in mind that this isn't a traditional Request/Response model. Much (if not all) of a "website" must be downloaded up front via the torrent network, and then run locally. 100MB per request on a traditional site is ridiculous but 100MB for downloading 1 very large web app from the torrent network is not so crazy.

</comment></comment></comment></comment></comment><comment><USER12> This post killed BTorrent's tracker. It's back up now.

</comment><comment><USER13> How much redundancy is there to protect against DDoS?</comment>


As deadline for drone rules nears, FAA issues roadmap for inclusion in the skies - <AUTHOR> http://arstechnica.com/tech-policy/2013/11/as-deadline-for-drone-rules-nears-faa-issues-roadmap-for-inclusion-in-the-skies/ <comment><USER2> "Sense and Avoid" (SAA) capability

This is the one aspect that I have yet to see addressed. Aircraft operating under VFR are responsible for their own separation. This is mostly done by "see and avoid". The use of TCAS or other transponder detection solutions can be used, but keep in mind that not aircraft have transponders (gliders, older GA aircraft without an electrical system).

As a general aviation pilot, I have a huge incentive to see and avoid other aircraft. UAV pilots don't have the same incentive level. It scares me that this one simple aspect has yet to addressed.

<comment><USER3> Perception is the hardest part [1] for autonomous aircrafts, and from my experience, perception research for aircrafts is still in its infancy, albeit a hot research topic. In some ways, it is easier than self driving cars due to the added DOFs, but in other ways can be quite complicated due to weather conditions.

[1] [http://www.aviationweek.com/Article.aspx?id=/article- xml/AW_...](http://www.aviationweek.com/Article.aspx?id=/article- xml/AW_08_05_2013_p53-601281.xml&p=2#)

<comment><USER4> Part of that issue is the lack of high-performance and lightweight board for real-time machine vision (you won't have an NVIDIA GPU + x86 board as a part of your multicopter).

All hopes that Parallela board ([http://parallella.org](http://parallella.org)) will make it feasible.

<comment><USER5> Depends on how small, how powerful, how reliable and costs. Its amazing to think the core processors on an original (1990s design) F-22 Raptor could be duplicated on an embedded PC today. Current Multi-core PowerPC processors and FPGAs would be capable enough.

I backed Parallela but haven't received the board yet.

</comment></comment></comment></comment><comment><USER6> If we built drones that burrowed underground, who would make the rules?

<comment><USER4> forget underground. I want a telepresence robot to go to the grocery. Would it be allowed to walk on the curbside and cross the street using pedestrian lights?

<comment><USER6> If you check youtube there is a penguin that goes everyday to the fish market for a family and returns with dinner.</comment></comment></comment>


Ask HN: I built a small software dev agency, what should I do next? - <AUTHOR> Reaching out to the HN community to get some fresh perspectives. Over the past several years of my life I've built a software development agency with $XX,XXX monthly revenue in a very "boring" industry -- it mainly boils down to building WordPress themes and plugins. (I don't find this boring, but it's not some hot sexy speculative thing that the media is gushing over and VCs are throwing money at.)
We have a couple people on payroll and three long-term anchor clients who pay the bills.
It all began with a few years of grit, pain and poverty grinding out projects on Elance -- an experience I'm reluctant to repeat (and which might be even harder these days).
But when I started looking at ways we could grow I realized I didn't know the first thing about marketing, sales and outreach. I thought a productized, done-for-you small business website might be easier to sell than our current service (easy to paint a value proposition, thousands of small business starting up all the time), and we got started on that, but I realized pretty quickly I don't know how to sell that, either.
What should I do next? Figure out how to market this product? Find a sales guy/cofounder who can help? Start from scratch because it's a bad idea? Turn my attention back to our corporate retainer business and figure out how to get more of those? <comment><USER2> I just went through YC's Startup School [SUS] [0], the video/lessons alone are pure gold for software companies. I have had a couple employees in the past and I have had 2 different business coaches and took a business course, but the YC's view is very software centric and gave me a new perspective on how to move my business forward that none of my other training/education helped me with.

That being said, our businesses may have some overlap [1]. I risk putting a link to my business here, but in SUS they hammer it into your head that if you aren't embarrassed about some aspect of your product you launched too late. (also, forgive me as this feels a little like a shameless plug)

Email me info at archetype.media, I may have some ideas where you can move forward depending on what kind of focus you have. Also, I have a few resellers that have various industry focuses that may overlap with your interests as well.

Also, I wouldn't mind getting some advice back from you on how you grew your business.

[0] [https://www.startupschool.org/latest](https://www.startupschool.org/latest)

[1] [https://www.startupschool.org/companies/archetype](https://www.startupschool.org/companies/archetype) , [https://www.archetypewebsites.com/](https://www.archetypewebsites.com/)</comment>


The Great Language Game: How many languages can you distinguish between? - <AUTHOR> http://greatlanguagegame.com/ <comment><USER2> Hi guys, I'm the author. Here's a related blog post I did introducing the game:

[http://quietlyamused.org/blog/2013/09/01/introducing-the- gre...](http://quietlyamused.org/blog/2013/09/01/introducing-the-great- language-game/)

Feedback's much appreciated, and if you encounter any bugs, please report them via email to firstname.lastname@example.com

If there's a language you'd like to see that's missing, consider helping out by finding some good quality language samples or news podcasts in that language and emailing me.

Enjoy!

<comment><USER3> Hi, great game. A little suggestion. Serbian, Croatian and Bosnian languages are too similar to differentiate for non native speakers. Take a look at [https://en.wikipedia.org/wiki/Serbo- Croatian](https://en.wikipedia.org/wiki/Serbo-Croatian). Basically, the division is more political than linguistical.

<comment><USER4> (Disclaimer: I am a native croatian speaker.) There's a significant difference between croatian and serbian language: croatian language is composed of three dialects and a standard language which are not found in serbian. It was a political movement to merge one of those dialects (shtokavian) with serbian language. So, serbian is somewhat similar to shtokavian but not to other dialects that compose the rest of the croatian language.

<comment><USER5> I, as a native Serbian speaker, have a 100% understanding of what is being said on Croatian national TV, and 100% understanding when reading websites in Croatian.

While the difference exists, calling it significant is just... untrue. For non-speakers, it is barely noticeable.

<comment><USER4> I have probably the same understanding of serbian. I used to read a lot of science fiction literature translated into it. Not to mention that I learnt cyrillic script in elementary school in the 1980's when the language was still officially called "serbo-croatian". But there are significant differences: for example serbian people don't understand kaykavian and refuse to. There are a lot of jokes on the theme in old yugoslavian tv shows. Kaykavian _is_ part of croatian language.

</comment></comment></comment></comment></comment><comment><USER6> One of the languages is labelled "Bangla", the transliterated form of the native spelling বাংলা. Given that you've used the English names of most languages there (I can't speak for all of them), I'd prefer the consistency of "Bengali" there.

<comment><USER2> Thanks for the feedback. Many of the languages have multiple aliases, I can't say I've made a principled choice in every case. But, updating to "Bengali" is in the todo list.

</comment></comment><comment><USER7> 850\. It would be a bit nicer if the randomly selected other language choices came from different language families: one of the three I got wrong was Bosnian vs Croatian, even though the difference is arguably a political construct (just don't say that to a Bosnian or Croat...).

[https://en.wikipedia.org/wiki/Comparison_of_standard_Bosnian...](https://en.wikipedia.org/wiki/Comparison_of_standard_Bosnian,_Croatian_and_Serbian#Morphology)

The difference between Punjabi and Hindi is also pretty subtle. Mistaking Thai for Vietnamese, though, was inexcusable. =(

<comment><USER7> 2nd attempt 1050. Had precisely the same sound sample twice in a row though?

Also, this serves as a pretty handy hint that when you're completely stumped by something you've never, ever heard before, the answer is probably "Dinka": [http://greatlanguagegame.com/stats/](http://greatlanguagegame.com/stats/)

<comment><USER8> Indeed. The Dinka sample is recorded off the radio or phone and is very difficult to hear as well (It's not like I really know what Dinka sounds like, but if it were easier to hear I could at least do a better job of eliminating the other options).

</comment></comment></comment><comment><USER9> Ha! I expected computer languages. I might have a problem...

But that would be a cool game too for programmers. Here is a snippet of code, what language it is in?

<comment><USER10> [http://wtpl.heroku.com/](http://wtpl.heroku.com/)

<comment><USER9> Fantastic, I love it!

</comment></comment></comment><comment><USER11> Nice! I noticed that I tended to identify the languages by their "fingerprint", certain phonemes and accents that characterize the language. It's probably not surprising that all three languages I missed were African languages. I've heard plenty of European and Asian languages, but rarely have I heard an African language.

<comment><USER12> I've been playing this game on my own now for decades...just trying to guess what language people are speaking eavesdropping on conversations and listening to radio.

I'm easily able to break 1000 points but some of those African languages (Dinka) are really hard!

I'm so thankful for this site. It's really really cool!

<comment><USER13> "listening to radio."

For me specifically, shortwave radio. I still have a R-75 hooked up although I don't often use it anymore. I used to have a R-390 and its "mobile" cousin the R-392.

I've found the audio quality has little or nothing to do with the appeal of listening to foreign lands, so listening over the internet has had little if any change in that hobby vs using a radio. Although I do get most of my non- tech news from the BBC now, so I do appreciate the podcast feeds, something you could never do with radio.

I think most HN readers would appreciate BBC Radio 4's "In our time" program. Not every episode, especially not the more science/tech oriented, but most episodes are entertaining / mind expanding. I get it as a podcast via a RSS feed.

I would think all the startup opportunities relating to podcasting are long since used up? There seems to be a way to monetize anything people spend time/money/effort on, and at least some people do that with podcasts, so logically there must be a way to make money off them...

<comment><USER14> > I still have a R-75 hooked up although I don't often use it anymore.

I'm also a shortwave fan, and I also find it less interesting as time passes. But there's a concrete reason -- there are fewer interesting shortwave programs, mostly in response to the rise of the Internet, podcasting and satellite radio.

Many shortwave bands, once teeming with interesting and useful content, have been taken over by niche broadcasters like religious groups, or ordinary broadcasts that have shifted to the shortwave bands from the AM broadcast band in tropical areas to avoid excessive noise. Overall, less interesting shortwave content.

Apropos of nothing, for years I believed that one of my favorite AM radio stations for long-distance reception (KGO near San Francisco, 810 kHz) had its frequency to itself -- was a "clear-channel" broadcaster. I recently discovered that this hasn't been true for decades -- there are now 182 U.S. domestic AM stations on that one frequency. I was shocked.

</comment></comment></comment></comment><comment><USER15> It's amazing how distinguishable accents are. I wonder how much voice recognition software keys off of accent? I've a few South/Eastern Asia friends that never do well with spoken GPS recognition, but if it could know their native tongue was Gujarati or Thai then I imagine it could do a much better job of analyzing their English. I was pleasantly surprised to make it to 800.

<comment><USER16> I work in the call centre space which deals with voice recognition IVRS. If there is no voice pack available for your specific country, a number of 'utterances' are collected to train the recogniser. So, yes, accents are used in the voice recognition software that I'm familiar with.

</comment></comment><comment><USER17> Hey, this is really cool. Awesome work!

One tricky thing I noticed was that there was one audio clip that was in Urdu, but it was discussing something written in Arabic. Indeed, the clip had more Arabic than Urdu. Fortunately, Arabic wasn't an option, so I got it right.

That's the kind of edge case that might appear in other clips as well, and might be something to watch out for.

</comment><comment><USER18> One can do surprisingly well by knowing the geographic region a language is spoken, and imagining the accent of people from there, then matching it to the accent of the person speaking.

<comment><USER19> If you cop Assyrian vs Turkish first up, you might be flipping a coin quite early. I had two situations like that which chewed lives from the start! The other was Macedonian vs Serbian!

</comment></comment><comment><USER20> I built a similar thing, with a physical representation, covering US accents: [http://moron4hire.tumblr.com/post/60153233552/a-thing-i- buil...](http://moron4hire.tumblr.com/post/60153233552/a-thing-i-built-a- while-ago-you-can-see-it-in)

for this guy: [https://en.wikipedia.org/wiki/William_Labov](https://en.wikipedia.org/wiki/William_Labov)

it ended up in this place: [http://www2.fi.edu/](http://www2.fi.edu/)

</comment><comment><USER21> In the sound clip for Ukraine, the person actually says Ukraine (or very similar) a few times. Also, the snippets should be normalised. Some are very quiet.

<comment><USER2> Volume's been normalised using mp3gain. I manually screen all the snippets for English, music or other noise, and obvious giveaways. Looks like a Ukraine case slipped through -- it's in my todo list to remove. Thanks!

<comment><USER22> The Portuguese one also had a word sounding like "portuguese" in it that made it trivial for me.

<comment><USER2> This is against my annotation guidelines, so it's a sneaky case that slipped through. I'll make a note to review the Portuguese samples -- thanks!

</comment></comment></comment></comment><comment><USER23> Got to 500 and had to guess (definitely Slavic, but had a choice between Czech, Slovak, Macedonian... yikes!)...

and got a 522 Timed Out error. Thhbbbbt.

<comment><USER2> Awww, that sucks. I hope you refreshed and reposted your guess.

<comment><USER24> same here. 522 error. reposting has no effect. still 522s or Method Not Allowed errors.

<comment><USER2> Thanks guys, apparently my server is overloaded: [https://support.cloudflare.com/entries/23670002-Error-522](https://support.cloudflare.com/entries/23670002-Error-522)

I'll see what I can do about it.

<comment><USER25> Is loading an intermediate page to tell if the answer is correct really worth it? I would do that client-side, save the loading time and bandwidth...

</comment></comment></comment></comment></comment><comment><USER26> There were several times when a fragment of which I had already guessed the language correctly came up again two or three rounds later, which made it a lot easier. I think it would be better to keep track of that, and have more fragments per language, and round-robin between those. Maybe I just got lucky, but I think 1200 for the first play is a good score. :)

</comment><comment><USER27> I clicked the link thinking it would be code examples and I had to guess the programming language...

<comment><USER28> Exactly, thats what I thought too!

</comment></comment><comment><USER29> I'd love to see some stats on how others have done. Also, it would be nice if you didn't have to press back fifty times (or long click select) to go back to the last site you were on.

</comment><comment><USER30> I really like it. It would be cool if the score would be based on how quickly you answer too. Also, I would be very interesting to find correlation between how many/what languages user speak as native/learned to how many languages they can recognize. For example, it's funny how knowing just one Slavic language helps you not only to recognize any other ones (or in some easier cases understand a lot) but also spot the small differences in accents or vocabulary.

</comment><comment><USER31> I got a 650. Surprising how easy it was to pick out what was Indo-European or Semitic, everything else was hard. Only got Indonesian because of The Act of Killing.

</comment><comment><USER32> EDIT: first, great game. I'll be coming back to see if I can improve my score! :)

Meh, only scored 350, although in my defense I am quite deaf at the moment (temporarily).

I was also lucky as I got Mandarin twice (which I've studied) and German once (same.)

Two of my three errors were picking the wrong one of the two plausibles once the number to choose was 3 or 4.

With higher quality audio (and functioning ears) I think I could have got higher (so I could hear more of the sounds being used.)

</comment><comment><USER33> I was up to 800 points, and I got server error... (edit). Retried again, and since that was my last life, I've got it wrong. I was lucky though, as I got two times Bulgarian, and I'm from Bulgaria :)

Played second time, 650, and third time 950.

I've got lucky again, since Dutch was twice in a row, and few other languages.

It's cool, reminds a bit of Google's find this place on earth, by "driving" around until you see a sign, or some very known place.

</comment><comment><USER34> Can someone verify the Turkish sample ([http://media.greatlanguagegame.com/samples/752c4c30d475748a3...](http://media.greatlanguagegame.com/samples/752c4c30d475748a342c68ebfba24d1e.mp3))?

I've only been there on holidays but it doesn't sound right to me, perhaps it's just the low quality of the sample but the phonemes seem far more 'Eastern' to me.

<comment> i-blis Definitively Turkish. And pretty standard dialect.

<comment><USER34> Cool, thanks.

</comment></comment></comment><comment><USER35> I think that Czech and Slovak languages are incredibly similar to each other. often times, when reading the instructions on some product in both languages, they differ by one word here and there. I would be willing to guess that no speaker of these languages would be able to differentiate one from the other.

A cool variant on this game could be "guess where this English accent is from."

<comment><USER36> If anyone wants to do it with Norwegian dialects, there's an awesome set of audio samples of the same text here: [http://www.ling.hf.ntnu.no/nos/nos_kart.html](http://www.ling.hf.ntnu.no/nos/nos_kart.html)

("I would be willing to guess that no speaker of these languages would be able to differentiate one from the other" – I highly doubt that. Dialects/languages differ more and more the closer they are to your own; I can tell if someone grew up a 15 minute drive away from me, but if the choice is between a place that is e.g. >3 hrs north vs >4hrs north I have a really hard time placing them.)

</comment></comment><comment><USER37> Got to 1200, but am still surprised how easily Portoguese can be mistaken for a slavonic language. And the Bosnian/Croatian samples are really not that easy to distinguish. It would really be cool if the scores somehow reflected this, maybe depending on your native language... not sure what a good scoring system would be here.

</comment><comment><USER38> Fun! I got a score of 650. It got hard once there were five languages to choose from, and I had studied none of them.

<comment><USER39> Or have ever heard of some of them. I got actually the exact same score.

</comment></comment><comment><USER40> This is really fun, except now that i'm getting server errors (probably due to HN traffic) I can't play...

</comment><comment><USER41> 700\. Missed Tagalog, Slovenian, and Amharic. Also, dude, you could do with another Lao clip, or a better clip-selection algo, 'cause I heard the Lao clip twice. Would've been good if it had been a different clip, but giving me the same clip is just a gimme. Great game, though.

<comment><USER42> I had the same thing happen with Hebrew, 3 free wins with the same clip.

</comment></comment><comment><USER43> I don't if this was the lag because the system was underload but I had to wait for the recording to finish before I could go to the next question. Would you be able to make it go to the next question once I have answered instead of having to listen to the entire clip.

</comment><comment><USER6> I found it rather fun pressing the "next" button and then switching away from it and just listening and forming an opinion thus before looking at the options. Region of language was often pretty accurate thus if I wasn't able to guess the precise language.

</comment><comment><USER44> Biggest bug for me is that if you click on one of the two languages, it still waits till the entire clip finishes playing before progressing to tell me 'right' or 'wrong'.

UPDATE: never mind, its not when the audio finishes playing, its just slow to load.

</comment><comment><USER45> I was up to 500 before missing two in a row, but then I encountered a bug where the audio track seemed to not download properly, so hitting play caused the progress bar to jump straight to the end without playing anything. Pretty cool idea overall though.

<comment><USER46> I got 550 on my first try. It's kind of fun, kind of impossible. Serbian versus Croatian versus Slavic is just a shot in the dark.

<comment><USER47> Well, distinguishing standard Serbian, Bosnian and Croatian is impossible even for native speakers, as it is in fact one language. The division being merely a political one. One can only distinguish accent subtletlies in certain words.

It would improve fairness of the game and avoid a lot of confusion not to allow these languages appear in the answers together.

<comment><USER48> You should either throw Bosnian out or not offer it together with Serbian. It's a dialect of Serbian really and many people in south Serbia speak the that dialect (see for example Sanjak region: [http://en.wikipedia.org/wiki/Sanjak_of_Novi_Pazar](http://en.wikipedia.org/wiki/Sanjak_of_Novi_Pazar)). Bosnian language is just a political decision, because it's a sovereign country now and needed to have it's own language as Serbia was an aggressor in the last war, so having the official language named Serbian would offend both Bosniaks and Croats living in the country.

Also, Croatian and Serbian can only be distinguished by words. You can't recognize the intonation because it's the same. If you don't know words specific to these languages, you won't be able to tell the difference.

It would be best to have a filter that prevents them being in the same question.

</comment></comment></comment></comment><comment><USER2> There's some DevOps and some marketing lessons in here for me. But, long story short, the server's back up and running smoothly today.

If it felt sluggish for you yesterday, please try the game again and enjoy it as it's meant to be played!

</comment><comment><USER49> The Slovakian clip actually has the word "slovak" in it... I think :)

<comment><USER50> The Bulgarian one has something with Portugal :)

<comment><USER33> I'm Bulgarian, and was wondering how others perceive our language. But I can always understand when someone speaks portuguese, although I know very little of it (I've worked with couple of cool people from Brazil).

</comment></comment></comment><comment><USER51> It's interesting how quickly that went from "duh, dead easy" to "no frakking idea". I don't even now what Amharic is, let alone how it sounds...

</comment><comment><USER52> 1150 on my second try (thanks ridiculously multicultural upbringing), great game!

I got a few immediate repeats of the same language; maybe preventing those would be a good idea?

<comment><USER2> That's a solid effort!

Pruning immediate repeats is in the todo list, thanks for the recommendation.

</comment></comment><comment><USER53> Just got a 502 error, but really like the custom 502 page.

</comment><comment><USER54> Great game. Had 900 pts and then got cloud flare errors :(. Only thing you need to work on is to exclude repetition of clips when the game progresses.

</comment><comment><USER55> Can you provide more stats? I'm curious for the full list of language stats - which ones are easy to guess, which ones are hard to guess.

</comment><comment><USER56> Great. I'd also like a tutorial, which plays two languages with superficial similarities and points out the differences.

</comment><comment><USER57> It'd be great if the multiple choices appeared a few seconds late, giving some time to let your senses guide you.

</comment><comment><USER58> Had everything correct until a guru meditation popped up. I think most Dutch people should score very high on this.

</comment><comment><USER59> I think it'd be more fun (and less difficult) to guess the accents of people speaking English.

</comment><comment><USER60> Maybe it's just a weird coincidence but I've gotten Hebrew about half the time.

<comment><USER61> It must be; Hebrew is my second language and I was really hoping it'd pop up so I could boost my score, but sadly it never came :)

</comment></comment><comment><USER62> I thought it would be about programming languages :) But it's awesome nevertheless!

</comment><comment><USER63> Nice, though I gotta admit I was disappointed it wasn't programming languages!

</comment><comment><USER64> I got the same sound clip twice in 3 rounds. It was much easier the second time :)

</comment><comment><USER65> first: this is fun! second: maybe you can use rel=prefetch to speed up loading?

</comment><comment><USER66> One of the Norwegian samples is an interview about Varg Vikernes (aka Burzum)!

</comment><comment><USER67> Very nice. I got 500! I second-guessed on all my wrong answers.

</comment><comment><USER68> 950 and I went twice against my initial hunch and lost :-)

</comment><comment><USER69> Great game

Big lag! I hope this is because lots of people are playing :)

</comment><comment><USER70> Well I got a 404 Error.... but it was fun until then!

</comment><comment><USER71> Is it really slow or only because trafic from HN?

</comment><comment><USER72> That was a treat! Thanks for making it! :)

</comment><comment><USER73> Cool, but the site is very slow.

</comment><comment><USER74> Extremely slow unfortunately.

</comment><comment><USER70> 404

</comment><comment><USER75> 800! w00t

</comment><comment><USER76> to slow to be fun :(

</comment><comment><USER77> 1400 but that's only because I'm interested in languages. I speak English, Swedish, German, Romanian, can read the other roman languages ( French/Italian/Portuguese/Spanish) can read and write Farsi. I have no problem differentiating between Cantonese, Japanese, Mandarin and Korean.

The quiz is most difficult when presenting me with choices between slavic combinations (Ukranian/Polish/Russian) and far east weirdness: Tamil / Burmese / Malay.

<comment><USER78> Could you elaborate a bit on the part where you mentioned "far east weirdness: Tamil / Burmese / Malay".

What's so weird about those languages? All three languages you mentioned are linguistically very different and have long histories (particularly Tamil).

I wouldn't call them far east either. These languages are predominantly spoken in South and South-east Asia.

(I am from Singapore where Tamil and Malay are official languages)

<comment><USER77> They're "weird" because I have little experience with them, having barely ever heard malay until this quiz. I correctly guessed it because I heard the word "muslim" or "islam" in the clip.

And they ARE far east, if you're European. :)

</comment></comment></comment><comment><USER79> Got through 8 questions and then 522 Connection Timed Out...

</comment><comment><USER80> <iframe src="//www.facebook.com/plugins/follow?href=https%3A%2F%2Fwww.facebook.com%2Fhakan.aktan.792&layout=standard&show_faces=true&colorscheme=light&width=450&height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe></comment>


Scientific Linux, the Great Distro With the Wrong Name - <AUTHOR> https://www.linux.com/learn/tutorials/557256:scientific-linux-the-great-distro-with-the-wrong-name <comment><USER3> I've only heard of Scientific Linux once before (Ironically, in a HN posting) - 100% of all the companies I work with (Bay area), or have colleagues working at, use CentOS, until they get a lot of stodgy enterprise types working for them, or need to call Oracle for support, or need to resell their product to customers - at which point they switch (mostly) over to RedHat and start paying licensing fees.

What is other other people's experience for *nix server environments that deploy more than a hundred or so servers? (Presumably, at low server count, it's whatever the guy deploying them decided to deploy at the time - Suse/Debian/Ubuntu might all be in the mix - maybe even RHEL. )

Personally, I'm an Ubuntu + OpenBSD guy for my workgroup / personal servers, except for Linode/Slicehost where I usually go with CentOS.

<comment><USER4> I personally moved my Linodes to SL from CentOS (since Linode doesn't offer SL image, you start with centos base, switch mirrors, do update - <USER2> painless) after CentOS took forever getting it's 6.0 version out.

It wasn't that CentOS took a long time, it was that the whole process lacked transparency. You couldn't tell who was responsible for what and what the plans were. If they published status reports it wasn't anywhere public (at least, nowhere reachable through their site, google searches, or mentioned in mailing lists). At the time, I had no idea who was in charge of CentOS, who worked on it and kept it up with security updates. Even nowadays it's not so clear (the menu dropdown lists their team members, but seriously, CentOS 2.1 lead is on there? Nobody is listed as being responsible for 6, and there's only one guy listed as being responsible for security).

Contrast this with SL, where they have paid staff working on the project (<http://www.scientificlinux.org/about/credit>), publish a clear roadmap (<http://www.scientificlinux.org/distributions/roadmap>) and have a security policy in place (<http://www.scientificlinux.org/documentation/faq/errata>). If you want real guarantees, then you should pay RedHat or Oracle. If you need a free high quality RHEL clone, I recommend SL over CentOS.

Also, being on Linode also means I don't use the SL kernel (with it's custom patches). I use the ones provided by Linode, and security on that end is taken care of by them, so that difference doesn't affect me.

</comment></comment><comment><USER5> I was working at CERN in 2004 and if my memory does not fail me, the article is not 100% accurate.

Scientific Linux is the result of merging Fermilab and CERN's Linux distributions.

It is a Linux distribution customized to provide out of the box, all the tools used by any research project from both labs.

It was not intended to be used outside research institutions.

<comment><USER6> This isn't true; at least it wasn't a year ago. SL, out of the box, doesn't include all the cernlibs or the ROOT libs and is even a royal PITA to get these things to compile on. Don't even think about things like ADAMO or PAW. I tried to get SL working for a day. I gave up and just installed Ubuntu.

<comment><USER5> It was true at CERN while I was there (01/2003-12/2004).

I remember the IT division had a nice SL installation where all ATLAS projects where one yum away, if not included already on the default installation.

<comment><USER6> SL lost its way in recent years. Right now, it seems little more than a (basic, out-of-date) redhat clone. It could be much better - I don't understand why it doesn't include GEANT4, ROOT and the associated CERNlibs, matplotlib, Octave and R out of the box. If I have a distribution called 'Scientific Linux' sponsored by CERN and Fermilab, I expect that it least has particle physics tools as part of the default ditro. :-(

</comment></comment></comment></comment><comment><USER7> I don't really understand why science labs would _need_ a cusotmized distro. Can anyone clue me in? What payoff do they get from one that offsets the cost of creating and mantaining it?

<comment><USER8> RHEL is expensive.

<comment><USER7> That's not much of an answer, given that there are dozens of free distros already, any of which would appear suitable.

<comment><USER8> There's not dozens of RHEL clones. There is CentOS, but it's had its problems lately and Scientific Linux predates it.

If you're suggesting that other random free distros are suitable when one is looking at RHEL or an RHEL clone... well, that's rather silly.

<comment><USER7> _If you're suggesting that other random free distros are suitable when one is looking at RHEL or an RHEL clone... well, that's rather silly._

Call it silly if you want, but yes, I would like to know the answer to that. I'm being perfectly serious. I've used several Linux distros (though maybe I'm not an expert), and at the end of the day, they all run the same programs.

<comment><USER8> RHEL is extremely stable and releases are supported for much longer than other Linux distros. Also, some commercial software is designed to work on specific versions of RHEL.

</comment></comment></comment></comment></comment></comment><comment><USER9> Great writeup outlining some of the features you get out of the box. But at the end of the day, this is another RHEL clone. Other clones are mentioned, like CentOS, but there is no clear motive to choose SciLinux over anything else.

<comment><USER10> Scientific Linux is faster at patching and keeping up with RHEL releases than CentOS has been.

After the extremely long time between the release of RHEL6 and CentOS 6, I don't know that I would choose to go with CentOS for new installs.

<comment><USER11> I recommended the same thing to my clients for a while last year, CentOS 6 was not getting updates at all for a time. They seem to have fixed that now though, it looks to be safe to use CentOS 6 again. Of course, if you want fast updates, pay RedHat.

</comment></comment></comment><comment><USER12> The SL additions seem very inconsequential for most users. The article doesn't imho give any good reasons to use SL instead of some other RHEL clone (such as CentOS).

<comment><USER13> SL has a couple full time employees building it. Also, they publish a lot of info about their build process. Centos doesn't. Sometime their releases are slower.

<comment><USER14> PUIAS Linux also has an staff team building it, and more in the way of mathematical software in their repositories.

I'm using it on a desktop at home behind a router & so I don't watch the security updates especially.

You can add the PUIAS 'addon' and 'computational' repositories to a CentOS desktop with appropriate use of yum-priorities.

</comment></comment></comment><comment><USER15> When I last had to deal with SL (about two years ago at my job back then), it was a nightmare to deal with, and used linux 2.6.9 (!) with literally thousands of custom patches. We needed to do some kernel development with it, which was incredibly painful… (since it was totally different than vanilla linux)

Also, it seemed like vastly under-manpowered.

<comment><USER16> Since they just repackage RHEL you were probably just running a 4.x release or a early 5.x release... SL is mostly for people interested in running RHEL but don't want to pay the licensing cost.

</comment></comment><comment><USER17> I recall that Meebo was debating on switching over to Scientific Linux - <http://blog.meebo.com/?p=3213>

I'm not sure what they ultimately decided to go forward with, but they were considering SL and Ubuntu Server LTS to replace CentOS

</comment><comment><USER18> I vaguely recall statements to the effect that the SL folks didn't really want a lot of attention. Basically, that they're trying to meet the specific needs of the organizations supporting its maintenance, and are afraid of the demands on their already very limited resources should a large community coalesce around SL.

If my impression is right, then this article is a little misdirected. The small userbase and "wrong name" would not be considered problems by the project itself.</comment>


How to meet Angels.. - <AUTHOR>

Whats your experiences? Thoughts.. Is it a simple email? Is it some meetup group? Is it a referral? What if you don't know anyone? Where to begin? Luck? <comment><USER2> Move to valley. Pick up a stone. Throw it. Unless you're really unlucky, you'll hit an angel.

But seriously, other than AngelList (which is great if you have product+traction), go to meetups and network. If you're not in a tech hub (Bay area, NYC, Boston, London), move to one. Best of luck!</comment>