A Preview of C# 8 [video] - <AUTHOR> https://channel9.msdn.com/Blogs/Seth-Juarez/A-Preview-of-C-8-with-Mads-Torgersen <comment><USER2> Found a text reference: [https://www.infoq.com/news/2017/08/CSharp-8](https://www.infoq.com/news/2017/08/CSharp-8)

<comment><USER3> Glad to see this Dart feature appearing in C#:

      Asynchronous Streams

Now you can "yield" Task<T> (~ Future<T> in Dart) and construct LINQ chains in an asynchronous fashion. I hope it streamlines reactive programming greatly.

[1] Dart - Asynchronous Programming: Streams [https://www.dartlang.org/tutorials/language/streams](https://www.dartlang.org/tutorials/language/streams)

[2] .NET Futures: Asynchronous Streams [https://www.infoq.com/news/2017/05/async- streams](https://www.infoq.com/news/2017/05/async-streams)

</comment></comment><comment><USER4> Very excited about the Nullable Reference Types.

Besides that, the feature I want most in C# is enum exhaustion checking. So I can write:

      enum Color { red, green, blue };
      public static string SuperheroFromColor(Color c)
      {
        if (c == Color.red)
        {
          return "Superman";
        }
        else if (c == Color.green)
        {
          return "Green Lantern";
        }
        else if (c == Color.blue)
        {
          return "Spiderman";
        }
      }

and not get a compiler error (that not all code paths return a value). But if I added "yellow" as an enum option, then I would get a compiler error. I realize that Color can be cast from an out-of-range int, so it's a little complicated. I'm willing to put something extra after the last else:

      unreachable return null;

or use a special switch statement. I just want something so the compiler checks that I have accounted for all normal enum values.

Is anyone talking about such a feature, or where would I request it? Can I write it myself as a Roslyn extension?

<comment><USER5> You're asking for a language change to fix poorly written code. The final else if() is redundant, if you change it to a simple else you remove the "not all code paths return a value" issue and remove a redundant check. This requires you to consider the "and others" possibility, rather than the compiler making assumptions about the type's definition.

Plus what you're asking for is a maintenance nightmare; since changing the type (Color) in one part of the code can break method definitions in another part of the code (inc. other assemblies).

I'd hope they would never support what you're asking for.

<comment><USER6> He's asking for exhaustiveness checking of pattern matching algebraic data types. Many languages have had this for essentially forever.

It does sometimes mean that when you update some code, you have to update a bunch of other things. But it's rarely spurious. Usually those other things are broken by failing to consider the new possibility.

In the long term, it's a maintenance win.

<comment><USER7> But C# enums are a terribly weak data type, not a good implementation for the semantic you're looking for at all.

Better to ask for a C# union type and matching syntax.

</comment></comment></comment></comment><comment><USER8> This looks great. I just stepped back into java for a one off project, after not touching it for about 15 years. I was surprised how antiquated it felt compared to modern C#. Glad to see Microsoft is not letting the language languish.

<comment><USER9> Oracle basically destroyed every cool technology they inherited.

<comment><USER10> I know everybody hates Oracle here, but Java 7, 8 and the upcoming 9 releases, all of them under Oracle's control, have had more improvements than Sun did in the years prior to the acquisition. How's that destroying anything?

<comment><USER9> * Ugly Oracle DB style contracts

* Scaring potential customers away with said contracts and suing customers

* Google walking out on Java going with Kotlin instead....boom billions of users moving to a different language. Still on the JVM though....but that's not a hard requirement.

<comment><USER11> In spite of the lawsuits, Google is actually a big contributor to the OpenJDK and a common presence at Java Languages Summit.

As for Kotlin, it remains to be seen how much uptake it will actually take.

Despite all attempts from Apple to push Swift, many keep on using Objective-C.

<comment><USER9> > As for Kotlin, it remains to be seen how much uptake it will actually take.

Kotlin is a language made by JetBrains which happens to be the creator of the official Android IDE. So yes the push will be strong from both Google and JetBrains. Java was a bit more modern than Objective-C but if I see what our junior Android dev has to type and type and type and type in Java to do the same as I do in Swift....kids get bored quick you know...

> Despite all attempts from Apple to push Swift, many keep on using > Objective-C.

I don't encounter many during my job as an iOS developer. I encounter people maintaining an existing Objective-C codebase that isn't worth switching and adding 10MB of application weight for Swift.

I guess for all green fields projects 80% is Swift. There's just no reason to use Objective-C anymore since Swift 3 so the only people that choose it are:

a) People interfacing with C / C++ a lot b) People creating a framework that needs to play nice with both c) People stuck in old ways

<comment><USER11> It doesn't matter if kids get bored, rather what the people giving the money want to get.

So far, I haven't found an enterprise customer that was willing to allow anything but Java, unless it is required by the tooling.

For example Scala only when making use of Spark.

I am happy that Kotlin is now an approved language on Android, but trying to kill Java on JVM, C on UNIX, JavaScript on the browser, ....

It is never going to go away, and those that embrace the language of the platform are in advantage.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I'll crank up those `null` assignments to non-optional references warnings up to compiler errors. There's really no reason to ship software that doesn't explicitly declare something as nullable.

The `!`'s are always code smells. I hope I can turn them into warnings or build errors.

<comment><USER12> I wouldn't say they're _always_ code smells. Like they say in the video, a call to the 'myString.IsNullOrEmpty()' extension method is a null check, but there's no way to prove that to the compiler.

<comment><USER9> I think that's more of a compiler problem then. Also what's missing is the unwrap syntax to easily transform between nullable and non-null references. What you really want is to operate on a non-null version of that reference if it's proven to be non-null, this is really the Achilles heel of this particular implementation. You're still checking for null all over the place, it's just better checked.

        // Unholy mix of Swift and C# syntax ahead!
        if var unwrappedString = wrappedString && unwrappedString != "" {
             unwrappedString.Length();
        }

Where the `if var unwrappedString = wrappedString` part would unwrap the var _and_ return a `bool` at the same time which is `true` if it wasn't `nil`.

Swift's nil-checking / unwrapping syntax is really short and with some clever usage of `map` or `flatMap` you can still have one-liners albeit a bit more verbose - but much more secure.

Example of using map:

        let myTitle = myObject?.title.map { "Item \($0)" } ?? "No title"

This code can't even _theoretically_ crash anymore and doesn't force unwrapping with `!` as a traditional approach would do:

        let myTitle = myObject?.title != nil ? "Item \(myObject!.title!)" : "No title"

<comment><USER13> You can totally do this in C#, since it has lambdas, and you can use the extension method to add "map" to nullable references of arbitrary types. It also has ??.

The problem is that lambdas aren't free. For something as simple as a null check, the overhead of a lambda is excessive. Zero-cost lambdas are possible, but require a new type of lambda that cannot escape the enclosing scope, all reflected in the type system.

</comment></comment></comment></comment><comment><USER14> Great to see these Swift features[1] appearing in C#:

* Nullable Reference Types This makes it so much easier to reason about references. I always found it strange that C# had nullability on value types, but not on reference types.

* Default Interface Implementations Inherit an interface, and get an implementation "for free". This makes for a very powerful way to define interfaces and default implementations.

* Extension Everything As noted in the video/text, the current syntax feels a bit weird -- having to use a static class.

[1]: Not saying these are exclusive to Swift, or Swift was the first to implement them.

<comment><USER15> Nullable reference without "if let" keyword is disaster

<comment><USER16> "If let" could be easily mirrored by a pattern in C#, and we are starting to discuss that.

However, that's a _new_ way to check for null in the language, where what we need is to recognize the ways people are _already_ checking for null in billions of lines of code. Therefore, the priority is to do a good flow analysis that will just understand when a nullable variable can be assumed to not be null (e.g. after a check, a non-null assignment, etc.), and then let you dereference without challenge.

<comment><USER15> If c# 8 has good flow for checking null, then no need "if let". If let also has disadvantage, backward compartibility. For example, maybe i want change my logic class to c# 2

</comment></comment></comment></comment><comment><USER17> Interesting, the new type IAsyncEnumerable is like an Observable. But it's pull instead of push. Ie it supports backpressure like the Reactive Streams [1] standard in the JVM world. I seem to recall that Erik Meijer had some strong opinions when that standard was forming on backpressure and anything that's not purely push based.

Personally as a developer I really like having the choice whether to buffer in one place in my system (using a persistent queue f.i.) and have the rest of the system cooperate in tandem without running out of memory f.i. Or to choose to ignore elements when stuff is just going to fast. Etc. I feel more in control of the behaviour under load of my system.

I guess Lightbend was onto something when they took the old EAI notion of backpressure (as f.i. described in Gregor Hohpes book) and implemented it in stream processing and started an interoperability standard around it.

[1] [http://www.reactive-streams.org/](http://www.reactive-streams.org/)

</comment><comment><USER18> I feel like I've been waiting for non-nullable reference types for forever.

What they talk about here, with explicit nullable reference types is so close but stumbles at the last hurdle. Having some kind of opt in on the compiler that makes regular references non-nullable is great for new projects (and arguably the best thing for the language itself), but leaves all legacy code out in the dark. You can't switch on a compiler option like this on any big existing project without massive effort. (And massive effort means management approval and planning and justification)

They got the case by case opt on the wrong part of the feature. It's really the non-nullability of a reference that's most important to be able to be opted in to on a case by case basis. (And case by case opt in means low effort, so it doesn't need big up front approval or planning, you just get on and write better code with fewer bugs.)

What's really needed is something like this

        String! s = null;

Where the ! makes the s reference non-nullable, so any attempt to assign null (or anything that could be null) to it is a compiler error.

And it's so disappointing because he comes so so close to that at the end with his talk of s!. as a way to say that you know something is not null, but it just doesnt quite get the benefit right.

It's non-nullability of reference types that should be the central feature here.

I'm just really hoping that these guys know what they are doing, and it's just he couldn't explain the subtleties in a short video, and this is going to turn out working the right way in the end.

<comment><USER13> The problem with that approach is that if you have it there, people will forget to use it, and still end up with tons of nullable references that really should be non-nullable. In order to be effective at catching bugs, non- nullability _has_ to be opt-out rather than opt-in.

Yes, this sucks for existing code. I suspect that we'll get some kind of file- level switch, so that you can port things one class at a time - there's no reason why that switch has to have the same value for all files in the project.

<comment><USER18> No reason why there can't be both. Syntax to opt in one at a time for old projects, and a compiler option for new projects.

Yeah, or a file level switch would do, that would be fine. As long as there is some way of transitioning a project little bit at a time.

I hope we get one of those options

</comment></comment></comment><comment><USER19> Why is default interface implementation controversial? I get it for moving existing .Net functionality around but for development of new code, what's the downside.

Coming from C++ it seemed like C# interfaces (and Java at the time) felt like a punishment. Now I'm sort of used to them.

<comment><USER13> It requires runtime (VM) support. That's always a much higher bar to clear than pure language features.

</comment></comment><comment><USER20> C# 7 was release a few months ago. The video is just a prototype of what C# 8 could have.

<comment><USER11> The current version is 7.1 already.

</comment></comment><comment><USER21> There's some interesting and controversial stuff in here. I am very excited about extension everything. I also like the new extension method syntax; much cleaner and a much clearer expression of intent.

<comment><USER22> Feels like extensions tend to make it hard to find out what you need to import to make things work as intended. Maybe visual studio proper is better at inference for it? Will only autocomplete methods that are actually in scope as far as I can tell.

<comment><USER23> It will only auto-complete methods that are in scope (the alternative would be a bit crazy) however Visual Studio is smart: if you type in a method you know exists you can press CTRL-. to get it to add the correct using statement to bring that extension method into scope.

<comment><USER24> You can turn on an Intelisense option to show methods that would be in scope, if you had the using statement, and it will auto add the using statement if you select that. Really helpful.

<comment><USER23> Is this a Resharper thing?

<comment><USER24> No, but after looking at VS 2017 on my pc and VS for Mac, apparently it's only a feature in VS for Mac- at least from what I could find. I imagine that gets changed soon but yea.

If you use VS for Mac its under Preferences > Text Editor > Intellisense > Show Import Items

<comment><USER13> In VS 2017, if you use a method that's an extension method, and don't have the namespace imported, it'll show the auto-correction bulb with an offer to import it.

Better yet, if it's from a NuGet package, it'll offer to install one (or several, if there are multiple candidates).

</comment></comment></comment></comment></comment></comment></comment><comment><USER25> Would "extension interfaces" be equivalent to "type classes" in Haskell and/or "traits" in Scala or Rust?

<comment><USER17> Being able to take an instance Person and make it be an Employee without changes to the Person class definitely sounds like ad hoc polymorphism. In Scala the equivalent of Haskells type classes is implicits though. Not traits. I do wonder if this 'extension interface implementation' feature would support the same inferencing that type classes in Haskell and implicits in Scala do. So that might be a difference.

<comment><USER25> > In Scala the equivalent of Haskells type classes is implicits though. Not > traits.

Really? I'm not an expert but everything I've read until this implies the opposite. Besides, C# already has implicit conversions, and they're different from type classes in that they _convert_ , not _extend_. Once an int is implicitly converted to a double, it's always a double from within the function that converted it, not just "representing" a double. So strictly less powerful than polymorphism. My understanding that type classes were the way out of that, and traits were Scala's equivalent. Is that not correct?

<comment><USER26> It's implicit arguments, not implicit conversions that enable type classes in Scala, although the class is usually represented by a trait e.g.

        trait Show[T] { def show(v : T): String }
        implicit object ShowInt extends Show[Int] {
    	def show(i: Int) = i.toString
        }
        def showLine[T](v : T)(implicit show: Show[T]): Unit = {
            println(show.show(v))
        }

<comment><USER25> Nice, that makes it more clear. Thanks!</comment></comment></comment></comment></comment>


Tea in the Beginning (2007) - <AUTHOR> http://www.lcy.net/tea/ch1.php <comment><USER2> Tea is a _very_ broad and interesting subject. Even if you ignore culture/history and just look at what you can buy today, and drink.. it's more than you can reach over. Climate/environment/elevation, species/cultivars, harvest time, processing method, age/storage method, and countless other factors play in.. You'll go broke trying to taste it all.

Babelcarp Chinese Tea Lexicon [0] is very useful if you are exploring tea culture. I will also throw in Baisao [1] as worth a read - if Zen monk turned tea seller sounds like your kind of thing.

[0] [http://www.panix.com/~perin/babelcarp/](http://www.panix.com/~perin/babelcarp/)

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

<comment><USER3> Not to mention tea pots and cups. There's an almost endless variety of materials, shapes, sizes, glazes, finishes, decorations etc.

My personal favourite tea pot is a traditional chinese blue clay pot. And a potter friend made me a set of wonderful and unique tea cups with a raku finish.

I love writing code, but goodness me am I ever _passionate_ about tea.

<comment><USER2> > Not to mention tea pots and cups.

Oh absolutely, and let's not forget the middle between leaves and teaware: brewing technique. It's _incredibly_ wide, ranging from decorative chaxi to "obviously bullshit" mid-air hand gestures to straight up science (heat retention, fermentation, etc).

> but goodness me am I ever passionate about tea.

It's a great hobby. However, my advice to beginners is always to keep the passion and dreams in check when it comes to purchasing decisions. If you think software marketing is bad and full of buzzwords ... don't try tea.</comment></comment></comment>


Live: ISS Spacewalk - <AUTHOR> http://www.nasa.gov/multimedia/nasatv/index.html

<comment><USER2> Just thinking about how sometimes an approaching deadline makes me piss my pants, I have the utmost respect for these people, who live and work under the highest pressure, out there, alone in the void helpless, if something goes really wrong. Only one small piece of their gear malfunctions and they are done. And then I'm thinking about the complexity of all the systems they are supported and kept alive by. I couldn't probably help but constantly be thinking that with a huge human-designed system like that, something is always bound to go wrong and that I would probably die in a few minutes because of some obscure equipment failure. And yet, there he is, floating around, keeping it cool, just doing his stuff in that floating cable jungle, swinging that razor sharp knife around like he isn't a knife cut away from eternity. I will try to keep this image in mind next time when my cables get tangled.

<comment><USER3> Actually if I were up there I'd be more worried about the lack of pressure, I saw the opportunity and couldn't resists on a more serious note though.

Agreed, I know a couple submariners who told me they'd tie a string from one side of the room to the other. As they dove the string would begin to droop and loose tension, a lot of tension.

Makes my head spin just thinking about the possibilities, which I'd be doing if I were down there...

<comment><USER4> > _Actually if I were up there I'd be more worried about the lack of pressure_

Interesting you should mention that. I learned a few days ago that while the ISS at large is kept at 1ATM, the spacesuits they use for spacewalks are only pressurized to a fraction of that (if you pressurize a suit too much, it becomes too balloon-like to easily move). Because of this astronauts/cosmonauts have to spend several hours before each space-walk breathing pure oxygen so that they don't get the bends.

That degree of preparation before every spacewalk would disturb me to some extra degree I think. If there was a problem, it's not like somebody else could just hop into another suit and come help you.

<comment><USER5> There are several different "pre-breathe protocols" used prior to US spacewalks to avoid the bends. Some involve taking the airlock down to 10.2 psi (as opposed to 14.7 psi for 1 ATM) and sleeping there overnight. Also the crew may hang out in the suit while still in the space station for several hours before the spacewalk. The suit is pressurized with pure oxygen and is at a 4.3 psi.

All of this does make for a long day. Even though the spacewalk may _only_ be 6 or 7 hours, entire day with preparations and clean up afterwards is exhausting.

</comment></comment></comment></comment><comment><USER6> Are nighttime space-walks common? I'd imagine you'd want to schedule them when you have sunlight to avoid any unnecessary complications. I mean their schedule each day is jam packed, but I'd imagine it wouldn't be too much trouble to schedule around nighttime?

EDIT: Duh, orbit is much faster than a 24-hour day...

<comment><USER7> The ISS orbits every 90 minutes. Any non-trivial space-walk will be in darkness at least part of the time.

<comment><USER5> Depending upon the Beta Angle [1], the spacewalk could be in sunlight the entire time (though that's rare). It could be in darkness up to about 50% of the time.

[1] <http://en.wikipedia.org/wiki/Beta_angle>

</comment></comment></comment><comment><USER8> Awesome. The other ISS thread [1] posted today had me lost on youtube watching related videos for nearly 2 hours.

I really want to experience zero-gravity!

[1] <http://news.ycombinator.com/item?id=5575469>

<comment><USER9> > I really want to experience zero-gravity!

You can.

<http://www.gozerog.com/>

Or if you don't want to drop $5k, go to your local flying school. You can get ~5 seconds of zero G in a Cessna.

<comment><USER8> Thanks, I'm in Australia though and I can't find a similar company.

I'm not talking about the weightless feeling you get when you're in free fall (or on a roller coaster) either, I want to float around!

</comment></comment></comment><comment><USER10> I never realized how time consuming it was to deal with all your cables. I'd love to know the purpose of the color coding scheme on their different cables, but couldn't find anything with a quick search. I'm assuming different weights?

<comment><USER11> Well they seem to be hooked to the ISS rails with a blue cable. The orange one seems to be hooked to one of their blue ones and also the the rail. This looks amazing!

</comment></comment><comment><USER12> Looks about as much fun as building Lego with mittens. Must be frustrating as hell.

<comment><USER5> The Russian Orlan suit [1] is pressurized higher than the US EMU [2], and gloves are not as dexterous. I don't know a lot about Russian spacewalks, but US gloves have caused fingernail delamination in many people, including myself (I'm not an astronaut, but I work with this hardware a lot).

[1] <http://en.wikipedia.org/wiki/Orlan_space_suits>

[2] <http://en.wikipedia.org/wiki/Extravehicular_Mobility_Unit>

</comment></comment><comment><USER13> Is it possible to receive a Russian transmission? I speak Russian and so the interpreter is only ruining it for me because I hear too many people talking.

<comment><USER11> Lots of voices. Are the instructions given in English and translated to him?

<comment><USER13> I turned off the feed, but I kept hearing a lady with a distinctive Russian accent speaking English, so I suppose that it's the other way around. Although maybe that's just for the spectator feed.

Edit: I listened to it again. The Russian communications are between two cosmonauts. One is most likely inside the ISS and the other is walking. The interpreter is translating their Russian communication to English.

<comment><USER11> Sweet, that's for doing this and clarifying.

</comment></comment></comment></comment><comment><USER14> Is there any info on what is happening? Why are they out of the station?

<comment><USER15> I just heard a voice-over mention: "...setting up all their hardware for the beginning of the installation of the Obstanovka experiment that will study plasma waves".

Found more detail here: [http://www.nasa.gov/home/hqnews/2013/apr/HQ_M13-060_Russian_...](http://www.nasa.gov/home/hqnews/2013/apr/HQ_M13-060_Russian_Spacewalk.html)

</comment></comment><comment><USER16> Watching that gives me chills:

        What is that?
        I don't know what that is attached to..

All those strings and cables and ties look like a huge mess.

<comment><USER17>
      singing...

</comment></comment><comment><USER18> How many things need to go wrong for an astronaut to float away into space? Just how safe are they?

<comment><USER5> I can't speak for Russian EVAs [1], but in US EVAs we always have a long tether reel attaching us to station. If we need to get further than that tether reel allows, we attach another tether reel before releasing the first. Additionally, we have a sort of jetpack called a SAFER [2] in case a tether (or the user) fails.

[1] <http://en.wikipedia.org/wiki/Extra-vehicular_activity>

[2] <http://en.wikipedia.org/wiki/Simplified_Aid_for_EVA_Rescue>

</comment></comment><comment><USER19> I am shocked to see that NASA still uses _analog_ video transmission systems! (I can tell because of the type of visible video artifacts: discoloration, etc).

Elon Musk is right when he says government-funded space research programs are stuck using decades old technologies due to inertia, conservatism, and lack of competition.

<comment><USER20> I'm shocked at how high quality the video is. It's being beamed from outer space, and I can watch in practically real time. Who cares if it's analog or digital? It works, and it's awesome.

I don't want NASA messing with the latest technology just for shits and giggles. Don't fix what ain't broken.

<comment><USER19> Well, let me do a comparison:

I can watch much higher quality videos streamed over the Internet, from servers thousands of miles away, around the world, through many routers, fiber optics, and complex technological stacks (DOCSIS, TCP/IP, fiber optics signal modulation, video codecs, etc).

Yet the ISS has a _clear line of sight to ground receiving stations_ 230-1000 miles away (or to satellites which are perfectly able to transmit digital data), yet the video signal quality is that bad?

Don't get me wrong. As a space enthusiast I love being able to watch live spacewalks. But as an engineer I sigh at certain technical aspects...

<comment><USER5> Both you and the servers you're pulling the content from are stationary on the ground, and any satellites used are in geosynchronous orbit. ISS is travelling 17000 mph. So while it may have clear line of sight to a ground station in New Mexico one minute, the next minute that same line of sight is in Texas.

Also, for a spacewalk the video source is from a space suit, so the video signal is sent wirelessly from the spacesuit to ISS, then sent to a TDRS satellite, then to the ground. The spacesuit camera is admittedly not as good as I'd like it to be, but considering all the architecture supporting it started being put in orbit over 10 years ago, and was designed before that, it's pretty good.

<comment><USER21> That's cool did you directly work on any of the systems? I have been poking around the NSTS 07700 Volume X Book 1 Flight and Ground Specification. The EVA, and Video subsystems are highlighted there.

Crazy stuff.

</comment></comment></comment></comment></comment><comment><USER22> He is using a knife really UNcarefully?!?

</comment><comment><USER23> Too many people talking...</comment>


What's Up with Those Voices in Your Head? - <AUTHOR> http://www.nytimes.com/2016/10/23/books/review/voices-within-charles-fernyhough.html <comment><USER3> I find when reading fiction, or certain kinds of literature (not including avant guard lit), using an inner voice is vital to get the full meter and rhythm. Then with slowing down my thoughts -- self talk -- rational thinking, having an inner voice helps too.

When reading non-fiction I can more easily drift into a sub-vocal whisper, to nothing at all speed read, skipping over to points I'm interested in, going back over points, etc. I suspect this is why a lot of non-fiction has standards and formats and certain clichés that make visual comprehension less intensive.

A friend of mine said she had no inner voice at all.

I've noticed when using Ketamine that I can do this sub-mental-vocal speed reading incredibly well for certain kinds of avant guard literature or philosophy lit, like Camus and David Foster Wallace, or Pyncheon, where the voice can change from chapter to chapter -- or rather the content is very info dense.

I had great trouble 'getting' Hunter S. Thompson before I'd ever heard him speak. When I heard his voice it suddenly all made sense. Same for William S Boroughs, for his more avant-guard lit works. Junky, on the other hand, has a more more straight forward voice and I was able to get into that quite easily without having heard his actual voice beforehand.

This is why I don't buy into the bicameral mind crap. Non-vocal thinking seems easier for more info dense material, wheras a voice is helpful for very emotive things like poetry or some kinds of lit.

Then again I could be simply confusing standard voice with non-standard. Hard to be objective.

</comment><comment><USER4> Wait... Some people can't turn them off? Some people don't have them at all?

I've always been able to think without voices in my head, or deliberately use them to focus my thoughts. I never even considered that others might be stuck in one mode or the other.

<comment><USER5> I can't turn off my internal voice at all, except in meditation, and even then it's difficult. I have to spend quite a lot of time where my internal voice is doing nothing but counting breaths, before eventually/sometimes, I can just observe the breaths without counting them. Otherwise, I have a continuous monologue, mostly in my own voice.

I _can_ think in images, but the images are never completely without narration.

<comment><USER6> This is soooo much me, except that I've never had it during meditation. This actually caused me some problems trying to learn to meditate - I can't grasp focusing on something if I can't have the internal vocalisation with it. I finally settled on making inner sounds along with monotonous drumming - <USER2> vocalisation will kinda tune out or get quieter, at least.

Thanks for describing it for me, btw :)

I have that monologue as well - complete along with your description of images. If I narrate them, they are much better.

</comment></comment></comment><comment><USER7> What about those of us who don't have internal voices?

<comment><USER8> Voiceless people, represent!

I had a long discussion on this subject over on Lesswrong, back in the day. Suffice to say that a lot of people have trouble imagining it's even an option.

<comment><USER9> It would have to be. People didn't start out with language, but could undoubtedly think.

I'm fairly mixed, probably like the majority. Some things are images or words and occasionally just ideas (although I'm not certain how to describe that).

<comment><USER7> I know exactly what you mean. It's that process where an idea just forms, wordlessly, and you just "know" it now. Sometimes I start narrating it to myself, but then stop mid-way, realizing it's pointless, since I already know it.

</comment></comment></comment></comment><comment><USER10> There's an interesting Reddit thread that's somewhat related to this as it pertains to reading:

[https://www.reddit.com/r/books/comments/4wttu4/do_you_hear_a...](https://www.reddit.com/r/books/comments/4wttu4/do_you_hear_a_voice_while_you_read/)

</comment><comment><USER11> This reminds me of Bicamealism [https://en.wikipedia.org/wiki/Bicameralism_(psychology)](https://en.wikipedia.org/wiki/Bicameralism_\(psychology\)) his book is a free read [http://s-f- walker.org.uk/pubsebooks/pdfs/Julian_Jaynes_The_O...](http://s-f- walker.org.uk/pubsebooks/pdfs/Julian_Jaynes_The_Origin_of_Consciousness.pdf) A very interesting theory, not sure I agree with all of it but he raises some interesting questions for anyone who finds this topic fascinating.

</comment><comment><USER12> SSC had a good piece about missing "universal" experiences a while back; lighter than his usual fare, with more anecdotal examples in the comments.

[http://slatestarcodex.com/2014/03/17/what-universal-human- ex...](http://slatestarcodex.com/2014/03/17/what-universal-human-experiences- are-you-missing-without-realizing-it/)</comment>


Parse strings using a specification based on the Python format() syntax - <AUTHOR> https://github.com/r1chardj0n3s/parse <comment><USER2> Seems to be a dead project. Several open issues and one pull request but no commits for years.

</comment><comment><USER3> I never regret the three days I spent a decade ago playing regex golf.

</comment><comment><USER4> So it's C's scanf(), but for Python?

<comment><USER5> It also uses the new format syntax rather than the old printf-style syntax.

</comment></comment><comment><USER6> A more general and mature project is pyparsing

</comment><comment><USER7> so you take %s and replace it with .*? (Checking... Yep, basically this, but with a super ugly regex)

This library should include the tagline "why learn something useful like regular expressions, when you can use some custom library with 1/10th the power!"

<comment><USER3> Well, that isn't really fair: there are lots of people out there that would appreciate this layer of abstraction over a general approach... I wouldn't hire them to be software engineers or data sci, but they exist.

<comment><USER8> I've discussed wishing this existed before (without having seen this library) - I would love it to be in Python as essentially the same thing is present in other language's standard libraries, but no, I would never depend on a third- party library for this.

There are occasions when it's a much nicer idea than the `re` hoops we need to jump through instead though; I wonder if PEP498 f-strings [0] mightn't be laying the groundwork for this to exist.

In Python 3.6 it will be possible to do:

        knights_say = 'Ni!'
        dialogue = f"""
            ARTHUR:  Knights of Ni, we are but simple travelers who seek the enchanter who lives beyond these woods.
            HEAD KNIGHT:  {knights_say}
        """

Perhaps future Python will enable `parse`-like:

        dialogue = """
            ARTHUR:  Knights of Ni, we are but simple travelers who seek the enchanter who lives beyond these woods.
            HEAD KNIGHT:  Ni!
        """
        dialogue.<some_future_method>(f'KNIGHT:  {knights_say}')
        print(f'Knights have been known to say {knights_say!r}.')
        # "Knights have been known to say 'Ni!'." is printed

Or perhaps I'm dreaming.

[0]: [https://www.python.org/dev/peps/pep-0498/#abstract](https://www.python.org/dev/peps/pep-0498/#abstract)

<comment><USER9> ES6's template strings can do something similar: [https://github.com/erights/quasiParserGenerator](https://github.com/erights/quasiParserGenerator)

I was disappointed when Python added its f-strings instead.

<comment><USER8>
        > I was disappointed when
        > Python added its
        > f-strings instead.

What's the difference, other than syntax? (I've only a basic familiarity with JS.)

<comment><USER9> In ES6 (and earlier, in E) you can write variable_name`string with ${expression} in it`, where the value of variable_name must be a function. The function gets called with an array of the substrings between the ${expression} parts, plus the values of the expressions. The function can return anything, including a non-string value. (So e.g. you might define dom so that dom`<p>Hello world` returns a new DOM node.) If you write just `string with ${e}` then there's a default for the variable_name part which does simple interpolation, like Python's f-strings.

So it's a powerful way of embedding other languages in the host language, where f-strings are not. The quasiParserGenerator library I linked to shows some of the potential.</comment></comment></comment></comment></comment></comment>


Reasons to stop using JavaScript  - <AUTHOR> http://www.leaseweblabs.com/2013/07/10-very-good-reasons-to-stop-using-javascript/

<comment><USER2> 10/10 would troll/linkbait again.

</comment><comment><USER3> This is the dumbest article I've seen on HN in quite some time.

</comment><comment><USER4> Also 10 great reasons to replace JavaScript with a better language.</comment>


FML: The scary economic future for millenials - <AUTHOR> http://highline.huffingtonpost.com/articles/en/poor-millennials/ <comment><USER2> Student loans are a bad idea. It's debt slavery, plain and simple. And most college degrees are less than useless these days anyway. $100k in student loan debt, and a liberal arts degree from Noname U? You've got a problem.</comment>


The Illusion of Knowledge - <AUTHOR> http://blog.dilbert.com/post/155121836641/the-illusion-of-knowledge <comment><USER2> I just read the article and I found the premise of the article that its difficult for non-scientists (the uniformed) to make a judgement on the validity of the fact present to them without indepth personal research. Then I read the comments. It seems not a single person understood the premise and began arguing with each other the validity of climate change.</comment>


Will Someone Please Invent iTunes for News? - <AUTHOR> http://www.nytimes.com/2009/01/12/business/media/12carr.html?8dpc <comment><USER3> No. Contrary to the RIAA party line, people did not stop paying for music when it became easy to obtain for free. The industry was not "decimated" by file sharing, they were _surprised_ and _pissed off_ by it. iTunes didn't succeed because it convinced people to pay for music--it succeeded because it was the nicest way to do so. It's not magic, it's not mystery, it's just building something that doesn't suck. Old media companies still have trouble with that concept. Exhibit A: "Already an NYTimes.com member? Log In Now"

Ugh. The punchline is the same TechCrunch "Apple Tablet" rumor that JUST WON'T DIE. It's like the HN version of a Rickroll.

(edit: The Game)

</comment><comment><USER4> News and music are different. Chances are I'll hear a song somewhere, then buy it and listen to it again and again.

A news article is usually read once then never re-read. How do I know if the article is worth paying for without reading it? And why would I pay for it after I've read it or heard the information?

</comment><comment><USER5> I would be wiling to pay for news if the media produced pieces on things I want to read: science, mathematics, computer programming. Until the media does this on a consistent basis, I will use a tool like HN to weed out the fluff prevalent in today's media and send me to free things.

<comment><USER6> Well, obviously, you would only buy things you were interested in.

<comment><USER5> Perhaps I did not make my point clear. The media produces little of substance. The following, in my opinion, is not news: murder, abuse, or celebrities. These topics, however, seem to be what most highly distributed "news" consist of.

<comment><USER7> i'll give you celebrity, but you aren't interested in what types of crimes are happening in your area?

<comment><USER5> If there is a shooter in my area, yes. I do not care about a woman in Florida who killed her daughter six months ago. I do not care about a child gone missing in California or any other state. These events are tragic, but not important to me.

EDIT: For clarification, if there is something I could do, then I would care. Since I live in NW Ohio, crime that happens anyplace other than NW Ohio is not important to me. There is nothing I can do about a crime that occurred outside of my locality. When the national media reports on such topics, they are simply sensationalizing a tragic event for their own self-interests. It disgusts me. They view death and tragedy as a commodity to expend for the sake of profits.

Take for instance this headline currently on CNN: A helicopter has crashed on the campus of Texas A&M University, authorities say.

Is this tragic? Yes. Is this truly noteworthy as a national topic? No. Why does this receive attention? Do you think that this was the only accident today? This is a prime example of the sensationalization I mention. If you run a search with Google News on "plane crash" several other crashes come up. They are covered by the local stations. Why does an arbitrary helicopter crash in Texas make the national news? Pure sensationalism.

Sorry I have edited so much, but this is a topic that infuriates me.

<comment><USER8> What do you mean by this (child gone missing)? You don't care about child kidnappers even though you could potentially see the child and alert someone?

I can be pretty cold myself from time to time, but if that's what you mean that's pretty heartless.

<comment><USER9> I'm sorry, I'm in Canada and I have to suffer the crap that is American news, it even gets on the god damn news here. I even got news of several of the numerous school shootings on public news back in the UK. I'm sorry, but American kids shooting up American schools, isn't the concern of either a British or Canadian.

Okay, 90% of child kidnapping directly involves someone in the family - <USER2> thing the police should do, hunt down everyone in the family haul them in and tell them it's a crime to leave the state without court permission. Then you've only got 1 out of 10 cases where the suspect isn't already in your custody! Those cases, I'll watch on the news; I don't care when some hillbilly family starts kidnapping each others kids.

<comment><USER5> Thank you for your POV. Even though you are not in the US, it's nice to read the thoughts of someone else who shares this opinion. Perhaps if enough people shared this view and let it be known, the national news might report on something of substance.

<comment><USER10> Old media companies will probably die before they change. Then new ones will take their place. Sometimes change must occur through economic selection.

<comment><USER9> Agreed, look at the New York Times. It's currently on the verge of collapse and it's finally starting to realize this isn't the 1930's anymore and the web isn't just another place for people to read your newspaper. It appears they're beginning to get the point that it's the 21st century and you can do pretty much anything online.

It's a shame it's taken the New York Times to get to the brink of destruction, but I believe almost every newspaper company is going to get to that point before they realize they need to change... just I think most won't adapt fast enough.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> The issue I have with this article is the fundamental difference between the way the record companies and newspaper companies went about offering their data online in the first place.

The record companies have always charged for their music; getting free music has always been theft.

Newspaper websites (excluding the WSJ) have always been free.

The comparison to the two would only be valid if the record companies had offered music for free at first, then wanted to start charging.

The newspaper organizations have set up a business model that simply doesn't work: they have established the value of a news article to be free. That's nearly impossible to change ex post facto.

The only chance I see of this changing is if some of the major players drop out, making a real shortage of good news stories. That might inflate their value enough that they could start charging effectively.

<comment><USER12> >The record companies have always charged for their music; getting free music has always been theft.

But everyone forgets about radio. Disturbingly this gives record companies more ammo to shut down internet radio (which annoys me as its the only radio I listen to now - and I am happy for it to have ads in it).

</comment></comment><comment><USER13> I'd rather have Pandora for news.

<comment><USER14> Cool as that would be (and hello there, we corresponded a year ago on an alumni list), that's besides the point. Pandora for news wouldn't help out the newspapers as long as the stories themselves are still free and surrounded by add-blocked ads.

<comment><USER13> Hi there again,

I'm less concerned about the newspapers than the journalists. Pandora probably won't help the music labels, in the long run, but it seems like it helps the artists, who gain listeners from communities that might not otherwise.

</comment></comment></comment><comment><USER15> It's called Kindle

<comment><USER16> I get your point, but as a counterpoint let me mention that I did not pay hundreds of dollars up front for my copy of iTunes. Nor can I purchase individual articles, columnists, etc. at a fraction of the cost of a subscription to the whole paper (because I don't give a hot fudge about Sports, Entertainment, Style, etc.).

<comment><USER17> Many people paid hundreds of dollars for their iPod.

<comment><USER18> I use itunes and don't own an ipod. I burn CDs with it to use in my car.

That isn't an option with kindle.

</comment></comment></comment></comment><comment><USER19> How can investigative journalism support itself on the web?

How does Drudge make money? (These are two very distinct questions.)

What do people want that they are not getting from the media now?

</comment><comment><USER20> ___"The notion that the enormous cost of real news-gathering might be supported by the ad load of display advertising down the side of the page, or by the revenue share from having a Google search box in the corner of the page, or even by a 15-second teaser from Geico prior to a news clip, is idiotic on its face."_ __

The notion that newspapers are still spending money on multi-million dollar presses and bloated newsrooms is what's really idiotic.

<comment><USER21> Evidence that newsrooms are bloated, please.

<comment><USER20> By bloated I mean local newspapers covering national news. When small papers have newsrooms with 60 reporters, and 40% of those reporters cover national news--that's a problem.

To see evidence of this go look at your local paper. Mine writes about (not syndicates...writes) national news all of the time.

Small to medium sized papers shouldn't be doing this anymore. They should be focusing on their local communities and dominating that market.

By bloat I mean purchasing multi-million dollar printing presses in 2005 (<http://www.encyclopedia.com/doc/1G1-108017775.html>) when you should be investing heavily in your local and online markets.

<comment><USER14> There are some claims here I'd still like links to backup.

Show me a "small" paper with 60 reporters.

Show me a "small" paper with 25 reporters covering national news.

Your local paper has 40% of its reporters covering national news?

</comment></comment></comment></comment><comment><USER22> A new model for news is definitely needed, but is hard to figure out.

At outside.in we're indexing and organizing local news across the US and have recently started partnering with national news sources (like nbc) to fill gaps in our index and to provide them with the local coverage that they're missing. Along with providing their users a new way to find and read news (by putting it on a map, for example.)

Eventually, it will be a combination of both major media and citizen journalists covering issues that are important. What compounds the problem for the newspapers is that people have stopped consuming news the same way they were doing it 5-10 years ago. The internet has obviously played a big part in this, but so have changing social patterns and expectations on the part of the consumer on news availability.

The bigger shift we're noticing that people are actively searching for topics they're interested in, as opposed to flipping through a newspaper, they want to see things they may be tangentially interested in ('crime', in 'Brooklyn') but had no way to get to earlier.

It will definitely be interesting to see how this plays out.

<comment><USER14> It will be. True. But I fail to see how sites like outside.in are helping.

My concern with what you guys do is that you've spent the last few years "indexing" everyone else's content...without hardly sending anyone to the original sites themselves.

I explained this to one of your biz-dev guys a few months back, so I see no need to do so here but I'll restate a few points.

I added my publication's RSS feed to outside.in several months ago. Since then, my biggest day of referrals from you guys has been 6 visitors/24 hours according to Google analytics. Big whoop.

Meanwhile, how many Google hits did you get from my content? From everyone else's content? Feel free to call me wrong with data, but I imagine Outside.in is an SEO machine and that Google accounts for most of your traffic.

How is this helping the publishers you "index"? It's been very, very clear from day one how it's helping outside.in.

Your business-development guy told me you're hatching partnerships with major newspapers to put "publisher" content on their sites. Will those links lead back to the original publishers? Or will they point back to the summary page on Outside.in?

There are now a handful of players doing this between you, Everyblock, YourStreet...even the Huffington Post with its local channels.

And not one of them sends any actual traffic back to the sites they index. Meanwhile their traffic numbers go up, up, up, the VC money rolls in, and the publishers themselves keep on spiraling down.

People rip on Digg all the time. But I tell you what, Digg actually sends bodies through the door. Same with reddit and other sites like this. Sure, they probably get a lot of Google hits that would otherwise go to the original sites, but they focus on sending people along to the original stories. They profit from the ecosystem of good content and then contribute back to help new sites sprout up.

<comment><USER23> I can't comment on the other sites you mentioned, but at EveryBlock, we've heard very positive things from publishers regarding the traffic we send to them. One local news outlet (not a blog) gets 20% of its traffic via referrers from EveryBlock. (I'm not sure whether that says more about EveryBlock or about that site, but still.) For at least three sites I can think of off the top of my head, we're the #1 referer -- i.e., we send them more people than any other site does.

Adrian

</comment></comment></comment><comment><USER24> I find plenty of quality news in text form. What I want is better stuff for when I'm on the go. Radio fails - it's mostly ads and the banal. Podcasts are better but they're not interactive and I can't un/subscribe until I'm back at my computer. Audio books and lectures from The Teaching Company dominate my ipod in transit - but with these I don't get news or blog content.

Maybe the solution is phone based. What if you could call a phone number and hear the news read to you by a good narrator? By pressing keys you could drill down into Tech, World, blogs etc. It would be an opinionated filter of news, essays, wikipedia. Like this <http://audiothink.com/concept1.png>. With twilio you could <play> .mp3s. First time callers could maybe get x minutes free after which point they'd pay for their callerID to continue working. Not sure how to handle payments - sending phone visitors to a web page might kill conversion. I think bored commuters with hands-free devices and cell minutes to burn might use such a service.

<comment><USER25> _I find plenty of quality news in text form. What I want is better stuff for when I'm on the go. Radio fails - it's mostly ads and the banal._

I'm pretty satisfied with Minnesota Public Radio and its all-news nework, exemplified by KNOW FM in St. Paul.

<http://minnesota.publicradio.org/radio/services/nis/>

I'm still learning about Minnesota Public Radio's availability as a stream on the Internet or as podcasts, but in general that radio network tries to keep up to date with the latest technology. This is, of course, not commercial radio but rather "listener supported" radio that will hit you up with fundraising drives every once in a while.

</comment></comment><comment><USER26> This article reminded me of a quote I heard a while back: "People pay for atoms, not for bits". Not 100% accurate, but if someone is going to fork over cash, you really, really, really need to make it worth their while. Unfortunately I don't think that individual news articles qualify.

I don't know if this is the solution, but here's one idea I had around this problem that I keep coming back to. It's a way to combine the disciplined process of a traditional news agency with the economies of scale and spirit of the citizen journalism movement: [http://astartupaday.wordpress.com/2008/07/23/y-combinator- ch...](http://astartupaday.wordpress.com/2008/07/23/y-combinator- challenge-3-new-news/)

</comment><comment><USER27> What I really want is an iTunes for stocks and maybe some other simple securities, something that will allow the really small investor to dabble. I guess there's a whole bunch of regulatory and legal reasons that this can't happen.

</comment><comment><USER28> Some newspapers charge for some (most) of their online content. The Financial Times is the one that springs to mind. If the newspapers need to make money from their content, they should charge for it.

They don't need anyone to 'save them', they just need the balls to ask a fair price for good content. Of course, if most newspapers are just publishing badly written stories with little depth, maybe people wont be willing to pay for it.

</comment><comment><USER29> "Free is not a business model," said Mr. Moffett of Bernstein. "It sounded good and everybody got excited about it, but when you look around, it is clear that is creating havoc and will not work in the long term."

I beg to differ. OSS and GNU/Linux are perfect examples of the contrary.

<comment><USER30> Since when is Linux making enough money to survive as a business? They get donations. So maybe you should think again.

<comment><USER12> Probably not quite what you meant, but most of the kernel developers are paid to work on it full time (and by most I mean >90%, last I heard).

Whilst that is not a business in the same sense, there is business around enough to make it worth while.

</comment></comment></comment><comment><USER31> I say this sounds like Marie Antionette begging on her way to the guillotine. I believe you reap what you sow. I find msnbc worlds better than CNN, who just recently cancelled their sci/tech reporting. That being said, I read maybe three stories a week on msnbc. I don't consciously remember the last time I bought a newspaper. If these people would realize their problem is that they aren't reporting on things people want to read about, they might find their way to a paying audience again. They have generalized the public into large segments, while in reality we exist across lots of little niches of interest. I like tech, scifi, some business, Dr 90210, and I occassionally look for topless photos of hot actresses from the 70s and 80s after watching old movies. Pics from then, not now of course. I'm not sure what the answer is 100%, but sense the direction to water in their desert isn't in the form of the same business and reporting structure, but in tablet form.

<comment><USER32> I guess the problem is that newspapers started in a time when they had to satisfy everyone. Therefore, there is no depth in their coverage. They also invest in topics that are of interest for the "general" population, like celebrities and economy.

For example, I have no interest whatsoever in the latest fight happening in the middle east. However, the TV news insists in spending >50% if its international coverage time telling me about this.

Journalism follows a model from the last two centuries, and it will take a long time to change. Perhaps it will lose relevance completely, when compared to blogs and other web sources.

</comment></comment><comment><USER33> Perfect. Just add daily editions of the new york times to the iTunes store. Maybe even have an audio version so one can listen to news stories. I love the audio books feature of iTunes, where I can download books to my iPods or iPhone. With the iTouch, one can get all the HD space of the iPhone without it being a phone, if one already has an iPhone and just needs more space. The whole iTunes/iPod/iPhone line is one of the greatest business models ever. No, I don't work for apple, so I have no stake in this, I just LOVE my iPhone!

</comment><comment><USER34> How about we all finally just move completely to citizen journalism and be done with this noise?

<comment><USER14> Because much of it is unreadable drivel, compromised by iffy product placement and factual errors.

<comment><USER34> And mainstream news orgs aren't?

<comment><USER14> Correct. They aren't.

Have you read much "citizen journalism?"

Have you tried to look to local neighborhood blogs to find out what's happening in your town?

Here in Chicago there's one blog that does a decent job of this, <http://www.uptownupdate.com>

But its a labor of love. What happens if the writer gets ill and has to take a break for a month or two? Who's covering Uptown then?

There are a few other neighborhood blogs like it that don't update more than once or twice a week or that are filled with hateful invective.

Or let's look at it this way: Did you learn about the in's and out's of the latest Pentagon policies from your wacky neighbor up the street?

Citizen journalism should really be called "amateur journalism" and treated as such. Valuable, valuable things can come from amateurs: photos, facts, reports etc. But amateur news services....are not news services.

<comment><USER34> The term "citizen journalism" does not have to mean "your wacky neighbor up the street". What about the, few, independent journalists working out there. They are certainly citizens, yet they don't work for any mainstream news org.

And if your definition of CJ is rubbish, then we need search engines and aggregators set in place to help us filter through the crap. Still, this isn't part of the mainstream sources.

And I'm having a hard time seeing how you are rationalizing that news orgs like CNN or NBC are _not_ comprised of iffy product placement and factual errors. They report what they want you to hear, not what _you_ want to hear. Fox News, for how much of a news organization than a tabloid they are, reports factual errors on a constant basis. Product placement, have you ever watched the filler crap that CNN or any of them show during the slow news days? Sanjay Gupta, who works for CNN, has continuiously promoted big pharma companies that he has financial interests in.

Every news organization, no matter what its name, is biased in one way or another. They have to sell ad revenue or else they'll go off the air, so they show you what they want you to hear. Not what _you_ want to hear. This is where citizen/independent journalism shines and is also a reason why newspapers are failing. People have found out that there are better sources of news out there than what you get through your television or off the newsstands.

<comment><USER14> Some good points here. Thanks for the responses.

-"The term "citizen journalism" does not have to mean "your wacky neighbor up the street". What about the, few, independent journalists working out there."

There's a difference between an independent journalist and a citizen journalist. The terms are not interchangeable.

Josh Marshall (TPM) is an independent journalist. He is not a citizen journalist. He does this for a living and lives off the fruit of it. Arrington is not a citizen journalist either. I agree that independent journalists (essentially, journalism startups) will become increasingly important. But that's different from citizen journalism.

Furthermore, while many citizen journalists are independent, I would argue that many aren't. What about the folks uploading to CNN's iReport? They're working for the mainstream press.

-"I'm having a hard time seeing how you are rationalizing that news orgs like CNN or NBC are not comprised of iffy product placement and factual errors."

There are instances of sketchy product placement and certainly factual errors in the mainstream press.

However, there are also mechanisms for dealing with these when they're exposed. People lose their jobs. Have their pay docked. Get moved to other assignments. Lose face with the public. They also get sued...all the time.

Citizen Journalism, on the other hand, is, by definition, the wild west.

I am constantly underwhelmed by the stuff I read on blogs and on Twitter. It's all marketing. And it's often disguised as editorial. Ever been to a "tweet- up"? The one's I've attended consisted of dozens of people talking about how to talk to people on twitter. Ugh.

The mainstream media screws up all the time. But at least there's people there committed to NOT screwing up.

As per your last point...what are these "better sources of news" that you speak of? I'm always interesting in finding new stuff to read. If you've got some great links, please share them.

So I think we're on the same page regarding independent journalists. We're only going to see more Talking Points Memo's and the like.

But I'm still very skeptical about citizen journalism as a tranformative force unto itself, based on months of watching the local scene here in Chicago. There are some great blogs here, but none that are really capable of carrying the torch for a newspaper if it went under.</comment></comment></comment></comment></comment></comment>


Graphing U.S. House Prices to Income: 1989-2009 - <AUTHOR> http://paul.kedrosky.com/archives/2010/01/us_house_prices.html

<comment><USER2> The chart is very hard to read. The color palette has too many colors that can be confused.</comment>


Steve Silberman on Autism - <AUTHOR> http://fivebooks.com/interview/steve-silberman-on-autism/ <comment><USER2> The more people I meet with autism the less idea I have what it means as a category.

<comment><USER3> You amd all the scientsts who study it. It's a giant bucket of symptoms for which we don't have a well understood mechanism or diagnostic criteria. And since societt can't comprehend too many things at once, anyone who wants funding calls their thing "autism"

</comment></comment><comment><USER4> (shameless plug) My recent article on nerds, science, Asperger syndrome (and pop culture): [http://crastina.se/autistic-traits-science-and-the-nerd- ster...](http://crastina.se/autistic-traits-science-and-the-nerd-stereotype/).

<comment><USER5> How do we distinguish between someone who is an introvert and someone who is socially lazy? Or someone who is quiet and someone who is mean?

Also saying everyone is somewhere on the austic spectrum is questionable. I am skeptical of such claims and think behaviorial choices and self-fulfilling prophechies are to blame.

Scientists and engineers can be outgoing. Introverts can be gregarious. I resist the temptation to label ourselves, I'm this or I'm that. Or the temptation to indulge our emotions; "I just speak my mind".

You are whatever you limit yourself to be. Focus, being in the zone and being mathematically inclined is not Aspergers. We are all smart enough and human enough to know and feel emotions. We aren't robots no matter how much our intellect makes us hate society or become misanthropic or antagonist towards the opposite sex.

If Temple Grandin can do what she did, a shy awkward nerdy kid can learn confidence, can challenge himself to break out of pre-defined molds, and be anything and everything humanly possible and then some.

Being social isn't easy for anyone just like coding isn't easy for anyone. Except those who practice it.

<comment><USER6> _If Temple Grandin can do what she did, a shy awkward nerdy kid can learn confidence, can challenge himself to break out of pre-defined molds, and be anything and everything humanly possible and then some._

Exceptions cannot be used to define norms. "If she did it, anyone can" is demeaning to both the person who accomplished whatever "it" is, _and_ to everyone else who hasn't done "it."</comment></comment></comment>


There Are No Gods - <AUTHOR> https://www.fasterthan.life/blog/2017/6/25/there-are-no-gods <comment><USER2> Ray…when someone asks you if you are a god, you say yes!</comment>


The FBI Wants Access to Your Web Browsing Records - <AUTHOR> http://lauren.vortex.com/archive/000679.html <comment><USER2> This is alarmist. Remaining anonymous on the Internet is pretty easy these days, what with Tor and offshore VPN hosting. Server logs are also a useless form of data (has an HTTP access log ever been used against anyone in court) that is easy to fake. If I, an operator of a public website, were required to start keeping logs, a "bug in my code" would start inserting fake log entrees, making the logs useless. (I also hate when buffers don't get sync'd to disk and records are lost. Damn!)

Anyway, entities like the governments and Microsoft want to control the Internet, but it's just not possible. There is just too much data and too much decentralization.

</comment><comment><USER3> I wonder what the cost of storage will be for all the ISPs in the country?

<comment><USER4> I work for a regional ISP, and I can tell you the cost of storage is only one small part. A huge part of it is upgrading all of your layer 3 routers to even have the capability to do this kind of logging; it is definitely not built into legacy equipment so you're essentially dictating that all these companies spend millions or more to upgrade their entire infrastructure. And of course, beyond the hardware, you need a lot of network engineers and software engineers to design and put it all together; its an effort that would and does take many years and is never really complete.</comment></comment>


Good engineering design decisions for startup companies - <AUTHOR> http://jamesseibel.com/blog/?p=50

<comment><USER2> There is a lot of trash in here. From the author himself:

"People who use super heavy frameworks are often crap programmers"

Nice. Bye.</comment>


Show HN: Neo Website → Sneak Preview - <AUTHOR> https://neomjs.github.io/pages/node_modules/neo.mjs/dist/production/apps/website/index.html#mainview=blog <comment><AUTHOR> Not fully functional yet (making it responsive is on my todo list).

The website is a neo app as well => mulithreaded => running inside a webworker.</comment>


IronRuby for the CLR (.doc 444kb) - <AUTHOR> http://www.wilcob.com/Wilco/IronRuby/IronRubyArticle.aspx <comment><AUTHOR> the article explains MS's dynamic language runtime a layer above the common language runtime for dynamic langauges ~ <http://www.wilcob.com/Wilco/IronRuby/microsoft_ironruby.aspx></comment>


IAC Buys UrbanSpoon Based On Good Recommendations - <AUTHOR> http://www.techcrunch.com/2009/04/29/iac-buys-urbanspoon-based-on-good-recommendations/

<comment><USER2> For people like me who didn't really know who IAC are, they own Ask.com, CollegeHumor, Vimeo, Match.com and Reference.com, among others.

</comment><comment><USER3> Congrats to the founders. A very impressive self-funded company that really did make something people want.</comment>


Ask HN: What has changed for developers in the last 20 years - <AUTHOR> I'd love you know your thoughts on what's changed for developers in the last 20 years. 1. We moved from client apps to web apps to mobile apps. 2. Client server apps were for work and now there's a lot more "consumers" using apps 3. Hence, design and simplicity have become important. 4. We went from waterfall to agile programming. 5. There's a huge proliferation of "stacks" and "fragmentation" of languages for specialized tasks.<p>What other trends do you see? <comment><USER2> Software development has been turned into a ridiculous contest rather than a job or profession. Twenty years ago you would go to college, work on some projects, meet with some companies in your town and get a job and maybe work on fighter jets or banking software. Now you go to a three week web dev boot camp, read cracking the code interview books, compete with hundreds of other people from around the world to solve a math/programming riddle/problem for the chance to make $150k/yr.

It's not about the work or profession any more. It's about people trying to optimize the shortest path to $150k/yr and has a certain game show feel to the industry. No one has any idea what they would be doing at the job. Many places don't even put you on a team immediately, and there is a sense that nothing else matters in the workplace/contest other than those skills used to 'crack' the interview. Degrees don't matter, and there's no industry or work to be done outside of web or mobile app development either.

Imagine today if mechanical engineering was solely focused on not designing, but making specific types of flanges. People would go to a flange boot camp then read 'cracking the flange making interview.' They would interview where they would sit at a lathe and make an honest-to-god flange. If it were a good flange you'd get a call back and a $100k salary with 50k in stock over three years to make flanges. You'd start making flanges on Monday. One day you ask yourself "why are we making flanges again? Aren't machinists supposed to be making the parts? Why are we not developing new CFD techniques or new packages for structural stress analysis?" Oh yeah, venture capital is only funding flange making.

</comment><comment><USER3> I've been building for the Web since 1995.

Databases for web services used to really suck back in the 1995/2000 time frame. They were either difficult to use, or very expensive. MySQL gradually killed the bottom 2/3 of the commercial database market between ~1998 and ~2005 or so.

Simple interactivity on sites is incredibly easy now. Applets and Shockwave were horrible, due to performance issues (systems and browsers), general bugginess, and lack of consistent support.

RAM and storage used to be really, really expensive. When Excite wanted to test out how well the first version of their search engine could scale, they paid $10,000 for a 10gb hard drive (purchased by Vinod Khosla).

Using, controlling and embedding media on sites is almost an afterthought now, it's so easy. Real Media was satan.

Search was really bad until Google put AltaVista & Co out of their misery. Search spam ruled the day. The notion of just punching in a problem and finding a solution on Stack Overflow, ha.

Ten years ago, 20-50kb still mattered when loading a site. Developers no longer need to obsess about the size of their site assets (rather, more on how many and latency), unless they're getting really crazy about it.

Language options are so much better today than in 1995/2000\. You can now choose from numerous good options, pick whichever one works best for you, and you can be confident that so long as you use it optimally, you're unlikely to run into big problems unless you're dealing with hyper scale services.

Collaboration capabilities are... well, _drastically_ better now. Github, Slack, really easy and cheap video conferencing, large file storage & sharing, sites like Stack Exchange, social networks, and so on.

Bandwidth is dirt cheap; that doesn't really need an elaboration.

The countless cloud services have made prototyping / testing super cheap.

The rise of the internet service API, following fairly standardized approaches, has made interfacing with vast amounts of data very easy, very precise and very cheap.

<comment><USER4> For databases: I remember all the "create dynamic websites with PHP and MySQL" tutorials around 2000. Prior to that, on the low-end (being a high schooler with no money), my applications used flat file databases.

> Real Media was satan.

I remember Real Player wanting $2,000+ per server license to be able to stream content. It was a perk in different hosting accounts, some featured the ability to stream.

</comment></comment><comment><USER5> One of the biggest changes is the dissemination of information about programming. Ask any developer from the 80's or 90's about the trip to Borders or Barns & Nobels and you will see a smile of nostalgia cross their face. Books used to be how one learned to program or learned new technologies. I remember owning a well worn Javascript Bible that was used by 8 or 9 programmers in the office as reference back when JS was new. Many developers spent several hours on the weekend at the bookstore pouring over programming books. Now with high speed Internet, video tutorials have trumped books for learning new tech. I really miss that experience.

<comment><USER4> Learning to script back in 1997, this was completely my experience. Learned a little by looking at other code, but also had to buy a book to learn Perl. Among others, this was a main reason why I switched to PHP around 2000, because of the online manual making it easier to find out how to do things.

</comment></comment><comment><USER6> I think the biggest change has been the loss of autonomy in development work. When I started programming the programmers were viewed as "professionals" who made decisions about when, how, and what they did. It was much more egalitarian - and not just for managers. Now I think that programmers need the same protections that blue collar workers used to need - hours, overtime, vacations, equipment, and an effective way to give feedback into a system which no longer treats them as true professionals.

</comment><comment><USER7> I can't speak on the whole 20 years (I've only been in the industry for 12 years). But, at any rate:

The largest change I've noticed is the level of accessibility that programming has now. When I got started there were "Web Designers" who worked mostly in Photoshop and static HTML, and there were "programmers" who did _something_ else, on special machines, with special training, but it was completely beyond the grasp of us mere mortals.

Nowadays programming is not something you _need_ a degree or certification for, it's not something you _need_ rigorous training for, or special equipment for, it's just something you can pick up if you feel like it (and get a taste for with little commitment or money or time spent). That's a huge change to me, and I think it's for the best. In this decade, we're seeing the definition of "literacy" expand, to include things like reading and writing programming languages...which is awesome!

<comment><USER8> > Nowadays programming is not something you need a degree or certification > for, it's not something you need rigorous training for, or special equipment > for, it's just something you can pick up if you feel like it

I believe this is true since the 80's with cheap PCs running Basic, Pascal, etc.

<comment><USER9> What's changed is the huge corpus of well-documented open-source software now available.

Back in the 80s and 90s, knowledge about how to become a programmer was easily available as long as you were willing to spring for books and a computer, but the only building blocks you had available were whatever was in the Mac Toolbox ROM, the Win32 API, or the POSIX standard. Beyond that, you were basically working directly with the bits and bytes on the machine. So yes, anyone could become a programmer, but you didn't get very far unless you could plan and execute an immensely complex web of algorithms and data structures.

There are still some problems like that (eg. if you work for Dropbox, Google Search, or Galois), but most programming these days involves assembling building blocks. You have scripting languages like Python or JS to take the pain away from memory allocation and working with raw memory layouts. You have GUI frameworks like web browsers, Android, Cocoa, or .NET to build UIs without worrying about vector graphics. You have serialization protocols like JSON, protobufs, Cap'n Proto, MessagePack, Thrift, etc. so you can just dump your data structures to the wire; back in my first programming job in 2000, I remember a significant amount of effort being figuring out which bytes would go over the wire and how they would be formatted. You have packaging managers like NPM or PyPI with tens of thousands of packages for the picking.

That's changed the job description of a programmer significantly. It involves a lot more memorization these days, a lot more lookup skills, and a lot less mathematical & logical ability.

<comment><USER10> visual basic was real easy to use. As long as you didn't want to program a complex game.

<comment><USER9> My memory is hazy, but didn't VB not come out until the mid/late 90s? That was the era when "build it all yourself" began to die... Other systems from that vintage included COM, DHTML, Java, MFC, GNOME, KDE, wxwidgets, etc.

<comment><USER11> VB6 was at probably peak popularity mid/late 90s which is why you probably remember it as just coming out even though it had been out for a while. That's one thing that's certainly different - the rate of growth and hype for new languages and technologies. The literal and figurative network effects today obviously allow stuff the ability to get hot so much faster.

</comment></comment></comment></comment></comment></comment><comment><USER12> I got started seriously around 1998, when I bought (bought!) a C++ compiler, the CodeWarrior Discover Programming Starter Kit [1], for the low low price of $79. Metrowerks achieved this amazing price by forbidding distribution of any software built with this compiler.

Two years later I was rocking with Project Builder, which came with OS X Public Beta - at no extra cost! I credit the release of OS X, and the huge usability advances in Linux, for making the GNU toolset accessible to hobbyists and students. This barrier lowering is what enabled the Cambrian Explosion of programming languages we enjoy today.

1: [http://www.macworld.com/article/1014313/19reviewscodewarrior...](http://www.macworld.com/article/1014313/19reviewscodewarrior.html)

</comment><comment><USER13> The big changes are in the frameworks/libraries, collaboration tools, information availability and pure computational power. All the other stuff is the same really. Agile and waterfall are still being used, client, mobile and web are still used, mainframe too.

From my perspective it is the collaboration and depth of answers you can find online now. When I was programming 20 years ago I was in college and "the web" really didn't exist - there was email and networks, etc. but web browsing hadn't really begun mainstream yet. When I needed to learn something I had to find a book on it or actually attend a class - like programming EJB's in J2EE.

An example about frameworks/libraries: building web applications was very different since you had Netscape and IE (v4) supporting different and overlapping HTML, CSS and JS features. MVC and all the frameworks out now were really in their infancy or didn't exist 20 years ago. I was doing CGI scripts with Perl for some apps and there was a lot of heavy lifting compared to today.

Today you can probably have a scaffold/basic application (thinking in Rails) that is OS and device independent with something like bootstrap, running on a VM, on the internet in about a hour. So it's much quicker to get to the point where you start adding value rather then spending enormous amounts of time on basic infrastructure.

</comment><comment><USER14> I disagree with the waterfall->agile thing. There are a large number of development paradigms, and back then I was mostly doing some sort of Rapid development (not sure the term was in use right then, but the concept sure was).

This may not matter to a lot of you, but computation has made a huge difference. I can run nonlinear solvers in seconds instead of hours. I have ready access to things like NumPy and SciPy to very quickly explore data in a way that used to require a supercomputer.

hardware = this is partly covered by 'computation' but the kind of work I do would have been impossible back then. We generate 10+ terabytes of data a day, and that is laughably small to some of you. some more from hardware...

bits. Anyone remember trying to fit things in 32K? You know, because integers were 16 bits long, and so were pointers. It was a major chore to just sort or otherwise manipulate data, and I made some significant wins by being clever about this sort of thing rather than just saying 'eff it, use a database' (which is what my competitors did).

5 minute compiles for rather small applications.

Sneakernet.

minimal version control. A lot of people didn't know what it was.

Off the hardware front, you mostly had the ability to understand your 'stack' (that word wasn't used that way in those days). You could more of less know the Windows API, inspect the assembly coming off of your C compiler, read the standard library, and pretty much have a picture of what is going on. These days it is much harder.

To put some of this in context. My first job, in 1988, consisted of computing cancer statistics. I'd carefully write a batch job. It'd go off to a supercomputer center. There, operators would (eventually) pull tapes off the racks and insert them into the tape reader. The job would run (eventually). The job would print to printers. A van would make runs several times during the day, delivering print outs. I'd go check the bins, eventually my print out would show up. And so on. Part of my work was converting that to the PC, but we still had to do a lot of batch runs to massage the "huge" data inputs that the PC couldn't realistically handle. By '95 the situation re data handling was better, but still quite limited both in storage and computational capacity.

These days we can trivially handle pretty big problems on a PC. And if we can't handle a problem, well, there is AWS. It is just a different world in this regard.

</comment><comment><USER15> Ability to run multiple Virtual machines, a working hibernation feature in commonly used operating systems and popularization of Distributed version control systems...</comment>


My coworkers made me use Mac OS 9 - <AUTHOR> http://arstechnica.com/apple/2014/09/my-coworkers-made-me-use-mac-os-9-for-their-and-your-amusement/

<comment><USER2> I still use Mac OS 9 off and on again, simply because it's the latest OS that runs a program originally written for System 6 (I think, but it was before I was born so I'm not sure). In the early 2000s there were plenty of people dual booting since some of the dome iMacs (only the 17" model I think) came with it installed and ready to go. Others ran Classic environment from within OS X 10.1 or 10.2, but there were odd crashes and mysterious memory and disk errors that would come up now and again. Similar problems with running it in SheepShaver/BasiliskII though I haven't given up on it yet since I would like to have it available on a modern laptop. But back to the OS... what I find most interesting is how much stuff already existed but got cut for whatever reason during the transition to OS X. WindowShade, colored Finder labels (made their way back in 10.3 or 10.4), Voiceprint (heh), etc.

If you want a quick dose of nostalgia, open Stickies. Yeah, it's in your Applications folder at least up to 10.9.

</comment><comment><USER3> _" It looks like the Windows 98 version of Mac OS"_

Other way round… other way round ;-)</comment>


Show HN: YourTrove - The First Truly Social Search Engine - <AUTHOR> http://www.yourtrove.com/

<comment><AUTHOR> We're getting some love (and some tough questions), we'd love to have you weigh in!

[http://pandodaily.com/2012/09/18/yourtrove-aims-to-crack- soc...](http://pandodaily.com/2012/09/18/yourtrove-aims-to-crack-social- search-but-will-platforms-play-ball/)

[http://bub.blicio.us/yourtrove-becomes-your-social-search- en...](http://bub.blicio.us/yourtrove-becomes-your-social-search-engine/)

[http://searchengineland.com/introducing-trove-facebook- socia...](http://searchengineland.com/introducing-trove-facebook-social- search-133229)</comment>