Typing Practice for Programmers - <AUTHOR> http://typing.io <comment><USER2> This. Is. AWESOME. Let me tell you what this is useful for by telling you my story:

I'm a pretty fast typist (80-100WPM on TypeRacer, usually) and I really never put much thought into my typing, since it was good enough. But I recently started paying attention to the kinds of mistake I make on Typeracer, and realized that I have certain combinations of keys which I don't make using the "home row" of the keyboard, but rather, move my hands to make. Every time I hit one of these, I have a 50/50 chance of not getting back to the home row correctly, meaning I have a 50/50 chance of throwing off my typing.

And I am a heavy VIM user, by the way, which means I am very used to doing _everything_ from the home row, including every navigation you can think of. I even have AutoHotKey scripts to give me vim-style navigation everywhere in windows, so I never have to move my hands.

Now with this program, I finished running an example and noticed 2 shocking things:

1\. There are a lot of keys which I'm not used to typing from the homerow, which happen to show up a lot in regular Python code. For example, periods (.). And underscores. I was used to shifting my hand to type these characters. I don't notice this during every day work, since I'm actually programming, but I _did_ notice this while playing a program specifically designed for typing.

2\. At the end of the program, it gives you statistics, and I found out that I was only about 48% effective, meaning 52% of the keystrokes I made were accidents that had to be backspaced out. This is a _lot_. Part of it is "first time with this program" bias, but it still means I have a long way to go.

Anyway, I recommend running through this program, it will probably teach you a lot.

P.S. Just one bit of constructive criticism: the way the program presents mis- types is a little annoying, and hard to follow. I recommend doing the same as TypeRacer, that is, have the "mistaken" keystrokes be visible somewhere, so the typist is very clear on how many keys he needs to backspace out. This is much closer to how people type in the real world.

<comment><USER3> Thanks, I'm glad you found the stats useful. In my initial version, I wasn't requiring the user to correct errors. I was personally getting errors rates around 3~5% , which appear good but seemed too low for the amount of errors I feel I make. Adding the need to backspace and correct keys revealed the true cost of mistyping a key, namely the wasted keys typed before correcting and all the backspaces.

Thanks for pointing out typeracer. I will take a look at it and try to incorporate its error handling.

<comment><USER4> I was taught in typing class that its better to skip errors and then come back and correct them when you are done. Not that I follow that advice especially often, but I wonder if it would be more helpful to do that. I didn't like during the demo that I was forced to correct the problem before continuing.

<comment><USER5> Take it from someone who averages 140 WPM and peaks at 160-170 WPM. Don't skip errors and return to them later. Do delete whole words (alt-backspace) and re- type them from the beginning. When you get really fast, almost all typing errors are transposition errors. By the time they register you are already several characters, even words, ahead. Trying to correct them character by character will throw you off.

<comment><USER6> If you use emacs, what do you think about `flyspell-auto-correct-previous- word`? It's like autocorrect, but it only happens when you invoke it and it always happens on the last misspelled word rather than the word under point.

<comment><USER5> Never tried it but that sounds like it could work great.

</comment></comment></comment></comment></comment></comment><comment><USER7> This is really well done. Surprisingly well done. Way better done than average.

I'll tell you how I'd like to use it. This may seem odd, but I'd like to be able to upload code that I'm interested in learning, and then type over it just like in these lessons - but not to speed up my typing, but rather for learning.

Writing is a unique channel for learning new things. (Reading is too, of course, but everyone knows that.) Even if you're merely reproducing keystroke- for-keystroke what someone else wrote, following in someone's footsteps helps the brain absorb new patterns and is particularly good for something one's a beginner at. If what you're copying is the work of a master, then you're absorbing really good patterns. I would totally use a tool like this for that purpose. It's a way of learning with one's hands.

But pure typing efficiency? That's hardly a way to become a better programmer, only a more prolific one, and _more code_ is not what we need in this business.

So basically I wish I could subvert the purpose of your tool and send it off in a new direction. :)

<comment><USER3> Thanks. I will give your idea some thought. A related offshoot I've considered is allowing companies to upload private code for employee onboarding. New programmers to the company can type through common code, get a feel for the libraries, coding standards, etc.

<comment><USER8> Man, that's a _brilliant_ idea. I hope companies will use it!

Hey a few pieces of constructive criticism, I only did the Python lesson so I may have a skewed view though:

\- your tool somehow collapses double newlines? in the example, after the import statements came a class definition, which are (as suggested in PEP8) separated by a blank line so I pressed Enter twice. But your program expected me to already type the 'c' of 'class' :(

\- it skips comments. and not only comments, but also docstrings! docstrings are not just "comments that happen to be documentation" but actually proper python code and part of the program, they are not ignored like comments, but can be introspected. When I'm programming Python, I'm _also_ typing docstrings.

\- the example I got had me starting out by importing a whole load of modules that were particular to that project. for Python practice it would make more sense to practice typing imports of the standard library, or popular frameworks.

\- You should try to figure out some way to incorporate the particular keyboard shortcuts, autocompletion and other typical code-editor features, because learning to use those properly gives enormous advances in efficiency. Does your program at least do auto-indenting? For other features it is more difficult since they are so different across editors.

</comment></comment></comment><comment><USER9> Very impressive.

Things I particularly liked: not making me type the indentation (because any sane editor will do that for me), allowing backspace, providing examples in numerous languages.

Things that bugged me (and which only become an issue because the example otherwise proves sufficiently realistic that any remaining differences feel awkward, like an uncanny valley for typing code): showing faded-out code I'm not expected to type and skipping it, not allowing any navigation other than backspace (I frequently "correct" errors by ignoring them until I finish typing what I wanted to type and then going back and correcting them, which means the "collaterally typed before backspacing" characters are _not_ wasted keystrokes), not allowing copy-paste (particularly important for lines like #include or import), not showing incorrect characters I've typed.

Things you probably can't do anything about: typing a file in a more natural order than top-to-bottom (the Haskell exercise starts with a giant export list, and the Python exercise starts with an import list). Normally, you'll extend those as you go, rather than typing them all at once.

<comment><USER3> Thanks for the feedback and criticism. I decided to keep error correct close to the error instead of allowing navigation to simplify navigation logic. Mimicking normal editing may have still felt stilted if I didn't support the mousing around or keyboard shortcuts programmers are used to with their editors.

I debated whether to require typing the import/include boilerplate at the start of code. As you noted, this usually done piecemeal and often inserted by an ide. I decided to include it as it's part of the code and looked for code samples that didn't go overboard. For the Java and Scala examples, I collapsed imports into wildcards imports.

</comment></comment><comment><USER10> I'm one of those folks who is on the top-end of crazy-stupid-fast typing, but hadn't ever seen a typing test that actually had typing code, so this is absolutely awesome for seeing the difference in speed between prose and code. However, the fading in and out cursor makes it extremely difficult to track where I am, particularly when going back to correct a mistake I made (I know I hit the wrong key, and depending on where in the typing I hit it, I'll need to see how far back to go). It's also exceedingly annoying when it blurs across multiple characters.

I personally would prefer a side-by-side text entry, rather than typing on top of existing code, so it's easy to see progress and mistakes (even if you don't highlight mistakes in the text).

EDIT: It looks like about 50 words per minute, maybe 55, is the max speed you can type and have the cursor actually be visible enough to be a guide of where you are in the text.

<comment><USER11> Are you one of those 170wpm-ers that ruin my win streak on TypeRacer?

<comment><USER10> Only if I'm on my preferred keyboard, I top out at 120 to 130 on laptop/netbook keyboards.. For a stint in high school, I typed medical reports from dictation for a friend's mom, eventually having the cassette player on the fastest speed and keeping up without issue. I have no idea how people can be very productive as hunt and peck typists when writing code.

<comment><USER11> Would you also happen to be a fast reader? I can't seem to break the 120 barrier, and I'm wondering if the habit of mentally "saying" the words as I read them is a significant reason why I can't improve.

<comment><USER12> That's known as "subvocalization" [1]. Look at a basic speed reading book for tips on avoiding it.

[1] <https://en.wikibooks.org/wiki/Speed_Reading#Subvocalization>

</comment></comment></comment></comment></comment><comment><USER13> I don't understand programmer's obsession with typing efficiency. We're not typists. Typing is a tiny fraction of the time I spend programming. Most of the time I'm thinking, or talking to another developer about a problem. I could have the fastest typing skills and most efficient editor and not even be marginally more productive.

<comment><USER10> Obsessing over typing efficiency doesn't make much sense, but being able to reasonably quickly with a high level of accuracy type makes a huge difference. By being able to touch-type at ~30 words a minute (making a rough guess here, I have no data to back up where the speed actually lies) means that you can quickly and easily get the bit of typing necessary over with and get back to thinking, planning and studying for the next bit of typing that's necessary. As an anecdote, I type extremely fast, but type for probably 45 minutes of the day in 30 second to 1 minute bursts every so often. In that burst, I likely create or edit a couple of functions and put in the calls to it. And then go to working on the next piece. There's rare times where it'll be a concentrated stream of typing, but that's following a large period of scrawling in a notebook.

I cannot fathom how people can find the time to actually approach any particular problem at a reasonable depth if it will take them more time to type out the solution than reading and understanding the existing code and determining how to solve the problem. Sure there's code where there's boilerplate, or add a line to a bunch of files, or tons of ways that raw typing speed doesn't play much of a benefit, but when it comes time to type, having to move your hands and look to find the { is akin to a carpenter having to read every label to find the bottle of glue.

<comment><USER8> re. your rough guess: 30 wpm is actually kind of slow, according to Wikipedia the "average computer user" types at 33 wpm. I'd expect someone who spends most of his time at the computer to do quite a bit better even if they never learned to touch-type. I thought I'd time myself copying the first two paragraphs of [http://en.wikipedia.org/wiki/Words_per_minute#Alphanumeric_e...](http://en.wikipedia.org/wiki/Words_per_minute#Alphanumeric_entry) (1024 characters at the standard 5 per word = 204.8 words) and got 70 wpm! I'm a bit surprised by that myself, TBH, since I don't "properly" touch-type either--I'd probably get a significant drop if I had to type more than that though, but as you say programming goes in bursts so that's not much of an issue here.

As far as you wondering what use typing speed is to a programmer:

1) if you can type faster, it takes less effort to fix cosmetic mistakes and you do so more often. you must have noticed as well when looking over the shoulder of a slow typer they seem to make more errors? or maybe it just _seems_ more tedious because you're waiting on it. you must have also seen that a really skilled typist can make an error and have it corrected before you hardly notice it (which is because they feel their fingers slipped).

2) in a similar sense, if you type faster, it takes less effort to quickly try something out. just type it out, maybe not even immediately test it, because as you see it on the screen you can more easily reason about it and make corrections before you do. if you type slower, you're more likely to get stuck halfway writing a block of code because you're thinking "wait this isn't right" and start doing proto premature optimization (well, that's my problem, I start thinking about what is the best/most concise/pythonic/readable way to write this code halfway, before I even got the rough structure down. I find it's _almost always_ better to first write down something that works).

3) if you type faster you spend less time writing comments on HN and can get back to programming sooner.

</comment></comment></comment><comment><USER14> It doesn't appear to respect my keyboard layout - I'm using colemak (which works fine) but with UK symbols instead of US (which works everywhere else, including the HN comment box, but not in Typing.io where it wants me to type US symblos: eg " and @ are swapped).

<comment><USER15> yea, german keyboard here and it doesn't recognize my "=" ( so couldn't get past line one. Looks really cool though, I hope it gets I18lized sometime soon :)

KeyboardJS has a basic locales mapping: <https://github.com/RobertWHurst/KeyboardJS> , Unfortunately it appears to only have en_US at the momment though

<comment><USER16> Unfortunatelly suffering from the same problems, as soon as I type : or ( or = or anything other than normal characters, I get errors. :( Cool typing experience other than that!

</comment></comment></comment><comment><USER17> Well done on the NoScript front. It's rare to see a site on HN that requires JS and falls back to a nice explanation of _why_ it needs JS (Instead of just stating the fact, or worse, displaying a white page).

<comment><USER3> I'm glad someone noticed! I hope you whitelisted typing.io in noscript:)

<comment><USER18> I will! =)

I just checked my comment history and about 50% of my comments have been related to this issue. This is the first one that is complimentary.

</comment></comment></comment><comment><USER19> This is great. You should charge money.

Regarding indentation: I think you made a reasonable choice in excluding it across the board. Definitely better than requiring it to be typed everywhere. That said, ideally you would require the user to make the keystrokes to un- indent whenever an IDE wouldn't automatically.

Also: Something in Objective-C please. Those square brackets took me a lot of practice to get used to.

</comment><comment><USER20> Fun idea, but doesn't seem to recognize non-US keyboard layouts.

<comment><USER3> Thanks for the bug report. The next update will fix international keyboard layouts once I figure out the mess that is cross-browser, cross-language javascript key event handling:)

<comment><USER21> Possibly one of these will be useful:

<https://github.com/madrobby/keymaster>

<https://github.com/ccampbell/mousetrap>

<comment><USER3> Thanks for the js library recommendations. I've taken a look at keymaster, and it's mostly focused around modifier keys used in shortcuts. I'm currently using google closure library, but I will need to add more key recognition and failsafes in case there is a unrecognized keyboard layout.

</comment></comment></comment></comment><comment><USER22> We attempted to make something very similar at a hackathon. It's cool to see a more polished, complete version. Ours was more of an attempt to make a version of typeracer (<http://play.typeracer.com/>) using code samples from rosetta code. All we really got done though was handling typing the code (hilighting errors, letting you use tab for whitespace, etc), we didn't get around to recording stats.

This is all bringing back horrible memories of our disastrous demo actually, but very nice otherwise.

</comment><comment><USER5> Great idea. But as a fast typist of both prose and code I found the interface nearly unusable. Please make it behave more like a normal edit box. I never had any idea of the location of my cursor. The lack of alt-backspace made it unbearably slow to correct errors. Auto-skipping whitespace makes it tougher to rely on my habits where the key strokes for indentation and line breaks are a natural part of the flow. And if you're not going to make me type the comments, just delete them from the text entirely so I can more easily scan ahead.

Here's a straight-up bug: I had to turn off a Chrome extension (Type Ahead Find) that I use for incremental search. It was intercepting key strokes that were supposed to go to typing.io. That hasn't happened with Ace and other canvas-based text editors. My friend also mentioned that it didn't work with his Danish keyboard.

Beyond these annoyances with the implementation, typing the C code from Redis reinforced how difficult (and frankly infuriating) it is to spontaneously conform to an unfamiliar coding convention. E.g. no spaces in "while(1)" throws me off completely because my brain is thinking "while 1" and my fingers translate that into my customary "while (1)". If you want this web app to be relevant to real-world programming, you need to let people upload their own code samples.

For even punctuation heavy, syntactically gnarly prose, I can average 140+ WPM without much effort. Typing.io put me at around 100 WPM for the first few sections of the C Redis lesson. I'd say I'm good for at least another 15-20 WPM if the environment wasn't so utterly alien.

</comment><comment><USER23> This doesn't seem to work with keyboard layouts that are different than US keyboards.

My german keyboard didn't work :(

<comment><USER24> Same here in Sweden. ; is mapped to ö here :(

<comment><USER25> and = is at + (swedish)

</comment></comment></comment><comment><USER26> The message google gives when trying to log in is really poor: "A third party service is requesting permission to access your Google Account.Please select an account that you would like to use."

What do you mean "access"? Do you mean "authenticate as"? Do you mean "go screw with my email"? I seem to remember that I sometimes see specific access requested, but this one is vague. Possibly this is the result of requesting sign in with no permissions at all.

<comment><USER3> You can try typing.io without signin in by clicking the demo link below the blue button.

</comment></comment><comment><USER27> It seems like <,:, and certain other characters don't work. Also, why do you skip over white-space?

It is interesting. I wonder if I can learn to make fewer typos.

<comment><USER28> I had issues with the '-' character (for example, in the first line of the Shell Git lesson), and I'm just using the standard US keyboard layout.

EDIT: also '_', as sp332 commented. Firefox on OS X.

<comment><USER29> Me too with '-', also with Firefox (Nightly) on OS X (10.6.8). However, it seems to work fine with Safari.

</comment></comment></comment><comment><USER30> This reminds me of Learn Code The Hard Way... The guy that runs it states the only way to learn is by typing the code in, bit by bit and not to go too long because you might burn yourself out...This is a nice free tool, Cheers moonboots!

</comment><comment><USER31> Man I think I might be kind of a slow typer. I was only getting like 45 wpm in the javascript test. I think it's because of all the abnormal characters, although I do code in js daily. -_-

But keeping my fingers on the home keys to type has always felt really awkward to me. I tend to position my hands differently depending on the word I'm about to type - in a way that let's me "roll" my fingers along in just the right sequence so it tends to be a series of short bursts where it would seem as if I'm actually just smashing a bunch of keys at once over and over again.

Edit: I just tried type racer and was getting 80+ wpm. /me wonders how people get 140+. :O

</comment><comment><USER32> The hash (#) character isn't working for me (UK layout keyboard, Firefox 10 on Ubuntu).

<comment><USER33> It isn't working for me either on my UK layout mac keyboard (Chrome, OSX Lion)

<comment><USER34> Or me (en-GB, Safari, OS X Mountain Lion). I'm guessing it doesn't like how we invoke it with option-3 ?

</comment></comment></comment><comment><USER35> If anything, this site shows the importance of autocomplete

<comment><USER3> Autocompletion is an important tool along side typing proficiency. Most of the autocomplete I've used only covers alphanumericVariableNames, so you still have to type the hard-to-reach symbol keys.

<comment><USER36> As a Lisp programmer, this amuses me. :-)

</comment></comment></comment><comment><USER37> I made something similar except you can practice using any Gist you want. <http://newtonapple.github.com/Gistype/#1> It still needs some work on the current cursor movement for longer Gists, but the basic functionality is there. No login required, just type. :) Note that if you have Vimium installed, you'll have to put the URL on your "excluded URLs" list.

</comment><comment><USER38> This is very great!

I was considering doing something like this in the terminal, possibly using an adaptation of gtypist. However, I the more I thought about it, I realized that I would be better off writing a module for my everyday text editor, since I would have access to completion, copy/paste, indention, macros, etc.

I don't want to 'talk down' all the work you did with this. I'm really glad you made it and I am going to use it, for sure.

Keep up the great work!

</comment><comment><USER39> This is a very neat idea; but, I do have one issue with it. When I'm programming, I don't start with the import statements (except for maybe some common ones that I have to deal with). I usually start with the most important part of the API and then spiral outward. I noticed this issue in the Java sample I tried. It began with the drudgery of import blah.blah.SomethingSpecific 10 times. I wasn't able to get into the meat of the code, and by the time I did, I was bored to tears. Imports usually come organically, if I'm having to deal with them at all (IDE's usually take care of them).

I think a great place for this to go would be if the code bounced around a bit more. Perhaps, start with what seems like the most commonly used function and write that function header and whole function; then, start writing all of the different subordinate methods you called in this primary method, and so on until the whole class is created. The way it's written write now, in particular for Java, isn't a way that I code and I imagine it's not the way that many people code.

Just my two cents. Otherwise, it's an interesting system so far.

</comment><comment><USER40> It would be an added bonus if there were an illustration of a hand highlighting which fingers should be used with which keys at the bottom. Similar to <http://www.typingweb.com/>. I get allot of practice typing my own source, but what I am currently working on is making sure I am using the right fingers for numbers, symbols, and punctuation.

</comment><comment><USER41> I honestly didn't mean to break it! It does seem however under Safari OS X it doesn't like alt + 3 for hash, which for the C++ ones is a big thing.

<comment><USER3> Thanks for the bug report. I'll look into what's happening with your key inputs on Safari.

<comment><USER42> And I'm having trouble typing brackets () on Chrome + OSX. Too bad, because I started to enjoy myself.

<comment><USER42> PS: Works great now!

</comment></comment></comment></comment><comment><USER43> It would be awesome if they're keeping stats on each language so that we can find out which language is the easiest to type.

<comment><USER3> I am! This is good idea. Keep an eye out for a blog post...

<comment><USER44> Really fascinating to see my Javascript vs Python speed (the two I type the most in), JS around 45 and Python around 65. Super interested to see what the blog post shows!

</comment></comment></comment><comment><USER45> It's absolutely brilliant.

And besides improving your code-typing speed, it's also a nice way to get a hang of all different languages you might want to delve into. Alternatively, you can also polish your muscle memory on all the thousands of function, classes and method names you can find in your typical language/framework of choice.

</comment><comment><USER46> I couldn't type various characters, such as <>={ and probably others that I didn't get to try out. I have an Icelandic keyboard layout, if that matters. I should probably switch to the American layout anyway. Ubuntu 12.04, Chrome version 21.0.1180.79.

This is still excellent. If these keys worked I would definitely use it.

</comment><comment><USER47> FF 16/Win7, I don't seem to be able to type underscores '_' at all.

ETA: looks fine in Chrome though, and I really like this idea :)

<comment><USER3> Thanks, will take a look into this

<comment><USER48> P|pes in OS X on Firefox, too.

</comment></comment></comment><comment><USER49> Why can't I share my test results on social networks? This is like one of the only types of social activites / games I would want to share with my friends!

Other than that, this is freaking rad!

I found it funny that I'm normally a 120-150 WPM typist, but when typing special characters for regex, etc, I hit a patch of molasses.

<comment><USER3> Currently there's an option to tweet your results after you finish any entire lesson. However, I will consider adding more sharing opportunities.

</comment></comment><comment><USER50> Haskell, Scala and Clojure but no C# or Objective C. Typing practice for hipster programmers or something?

<comment><USER51> You raised a legitimate concern but threw in unnecessary derision. I wish I could downvote you.

</comment></comment><comment><USER52> Doesn't work at all with nordic (swedish) keyboard - it doesn't recognize the less than (<) sign.

</comment><comment><USER53> With all of the emphasis on learning how to code I think this is really useful. The insight I really like is that simply learning to type in this weird way is a big part of being an efficient programmer.

Maybe when codeacademy students get frustrated they could spend a few minutes doing this.

Nice work!

</comment><comment><USER54> This doesn't interact very well with the firemacs Firefox extension. I love the idea, though.

</comment><comment><USER55> I'll chime in as one of those, who made something similar. It's not very official, but should work in Firefox and Chrome for all keyboard layouts, though you have to bring your own text.

<http://type.trmnl.org/>

</comment><comment><USER11> This serves as a great reminder that a good portion of your speed comes from accuracy. I find if I slow myself down ~10% of what feels "fast", I'm much more accurate and my WPM increase significantly over typing faster but backspacing more.

</comment><comment><USER56> Kinda OT, but I noticed you're using Google Fonts, and they load instantaneously. When I use Google Fonts, they take a little bit, usually loading after the whole site is already displayed. Did you optimized anything regarding this?

<comment><USER3> Hmm, I'm not doing anything special. I just put the web font link at the top of head. I'm also only including the default font weight. How many assets does your page have? Typing.io is relatively slim, so the font download can occur relatively sooner. If I'm not mistaken, the initial css downloads blocks the page load, but the actual ttf/woff/etc download occurs async and may be delayed if there is other stuff.

<comment><USER56> I'm just in development right now, and the assets haven't been packed yet (but I'm loading the font right on top). Thanks for answering, and congrats on your very well designed website!

</comment></comment></comment><comment><USER57> This definitely shows me how much of the coding style I use is in muscle memory, I'm continually trying to add spaces and newlines where they aren't!

It would be interesting to be able to pick specific coding styles for C

I'm spending too long on this, back to work...

<comment><USER58> I had this exact same problem! Kept trying to predictively type characters that weren't actually there in the source code.

</comment></comment><comment><USER59> Really nice. It felt like shadow-boxing the creation of a language. What I mean is that the ability to type what giants typed before me in such an easy and accessible way made it worthwhile. I'll do it again.

<comment><USER3> Love the metaphor and glad you enjoyed the experience

</comment></comment><comment><USER60> Why do you want me to sign in with Google?

<comment><USER61> You would prefer Facebook or Twitter? Or that they implement yet another authentication scheme and store their own accounts and credential database?

There's no free lunch. The OAuth providers are, on balance, pretty good at what they do and a better choice for account management at small sites. This one happened to pick Google.

<comment><USER60> > There's no free lunch.

Of course there is. No sign-in at all.

My question should have been: Why do I have to sign in?

<comment><USER62> Presumably for keep track of statistics reliably.

<comment><USER63> Why not use a cookie, or html5 storage? Is security really a concern here?

<comment><USER64> because then they can't run reports across all users/languages. This is an awesome dataset that (I hope) they are collecting for language designers.

<comment><USER65> Why not? How does cookie storage of information about your progress prevent those reports?

Presumably they are storing that information in their back-end somewhere.

<comment><USER64> I don't know about you, but I have a windows desktop, a windows laptop, and a macbook pro that I regularly work from in different contexts. I much prefer cloud services that store my account information, and let me log in from whatever computer I want ... local storage would remove that benefit for users like me who don't really care that they're using my google login ;)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER66> For the most part I like it, but there's a performance issue that actually affects usability. The first time you start a lesson, the editor is really snappy, but with each successive lesson, the scroll speed gets slightly slower, and a few lessons in, the entered text is just a blur, and you can't even see a cursor. This means that when you make a mistake, it's hard to tell how far you've backspaced, and I ended up bogged down in error correction loops.

I don't have anything more specific to add than that it seems to get worse over time.

Otherwise, awesome idea!

<comment><USER3> Thanks for pointing this out. I will see if I'm holding on to references to finished lessons for too long.

</comment></comment><comment><USER67> Typing the Php sample code - mainly the namespace stuff was a horrible experience.

Please find some code that isn't laden heavy with use statements. I'd expect my editor to autocomplete these...

</comment><comment><USER68> Nice app, I would like to point out one thing, hope you find it useful enough to address.

I am pretty sure many people do this too: whenever I type braces/brackets/parentheses/[/%$..] I type both open and close, then continue filling in the statement inside the completed pair of open/close. It is a very useful practice especially for languages with a love of open/close symbol pairs. When you try this in your app, the close gets marked as an error, and I couldn't find an easy way out.

</comment><comment><USER69> Things that bother me in the _extreme_ : Not showing letters as they are typed in the advanced lessons. That immediate feedback is how I know that I'm typing a word correctly and how I know if I make an error that I have corrected it.

Penalization for adding additional whitespace between identifiers in some situations: "[one,two,three]", for example, I _personally_ like adding a space after the comma and do it automatically.

<comment><USER3> Are the typing mechanics different in latter/advanced lessons? If so, it's something I need look into. Or is this a different problem?

I preserved the whitespace the project authors used. I'm a little picky too regarding these details, but I want users to see code in its original form.

Thanks for the feedback

</comment></comment><comment><USER70> I love it!

One tiny piece of criticism though: when calculating the percentage of unproductive keystrokes, divide by the number of ALL keystrokes, not just the correct ones.

</comment><comment><USER64> This is fantastically great! I'm a huge fan of typing games (typing of the dead, typeracer, etc.) and always lamented the fact that there were none that focused on programming syntax. Love it!

 _edit_ : the more I use this, the more I find myself really hoping that you're storing all of these stats somewhere. I think that some aggregate analytics of typing accuracy across programming languages would be fascinating.

</comment><comment><USER21> I wish this had a timer on it. I don't know which metric it would result in, but it would be fun to race against other people nonetheless

</comment><comment><USER71> This is awesome. Finished the 1st Scala lesson and I really liked the end of the lesson summary. I got to make some improvements :)

</comment><comment><USER72> It's collapsing newlines. In the Rails demo I hit enter twice to skip a line, but it only took one to get me down two lines, and the second was an 'error'.

Edit: It appears that this is part of the "auto-indent" mechanism (which is intuitive for indentation). How about accepting multiple newlines, or whitespace at the beginning of a line, but not requiring it?

</comment><comment><USER73> Looks awesome!

For some reason I can't type the ( symbol. I do have my ( and [ keys swapped but I tried both and neither has the desired effect.

</comment><comment><USER74> Absolutely love the design and the idea! Just one small issue: I'm using a MBP but, for reasons that that I won't take the time to explain, I spend 90% of my time in bootcamp (windows 7). I can't seem to get past any single quote(') characters.

<http://i47.tinypic.com/ilbm1x.png>

</comment><comment><USER41> Ah this is awesome, we've had a few similar stuff appear recently but this is exactly what I was after.

</comment><comment><USER75> Any plans on adding Common Lisp? Do you just need someone to point you to some decent code?

</comment><comment><USER76> The hash character and numbers don't work on Arch Linux, dvorak programmer layout.

</comment><comment><USER77> Maybe it's not a bug, but could you make the Details buttons collapse when you click away from them, or at the very least when you click on other details buttons? Detracts from checking out all your sourced projects :)

</comment><comment><USER78> Very nice.

One minor thing: practice sessions are called "lessons" but nothing is actually taught.

</comment><comment><USER79> I don't understand why I need to sign in to try this out. Glad you're getting rave reviews in this thread but I'm passing on the basis that I believ this sign in is unnecessary and creates yet more data exhaust.

</comment><comment><USER80> Cool? Still haven't decided if it's useful.

Anyway, the cursor occasionally obscures the character and slows you down. Might be worth testing out a fish-eye effect as the cursor scrolls so you clearly know what you need to type.

<comment><USER3> Author here, thanks for the feedback. Do you mean the backspace cursor that appears after the user typed a character incorrectly?

<comment><USER80> No, I meant the cursor that's highlighting the current character. This could be my own vision problems, but the size of the text + color of the cursor + motion makes it slightly difficult to tell what character I'm supposed to type on the fly. I found myself stopping and squinting just to be sure. That's mainly why I recommended a fisheye - enlarging the current character would solve the problem, but perhaps it's not worth it for most users.

Beautiful app though!

</comment></comment></comment><comment><USER81> This is the best project I've encountered at Hacker News so far. Thank you.

</comment><comment><USER82> i really like it, but one thing disturbed me. why do you skip the comments?

<comment><USER3> Good question! I wanted to focus on helping users practice typing code with its often cumbersome symbols. The majority of comments are prose, comfortably near the home row, which I didn't feel deserved as much attention. Plus some comments (like the ones in the Guava projects) are longer than the code.

<comment><USER82> yeah, but you do not practice comment characters :D.

but valid point nevertheless.

</comment></comment></comment><comment><USER83> I really liked this idea, reminded me of this talk I saw a while ago: <http://joshuafoer.com/conquering-the-ok-plateau/>

</comment><comment><USER84> I've been using the opensource Keyzen to polish up those awkward coder keys.

<http://wwwtyro.github.com/keyzen/>

That being said, this also looks great. Love the idea.

</comment><comment><USER85> This is cool but it doesn't play well with Caps lock.

</comment><comment><USER86> Wouldn't accept an = on a German Apple keyboard.

Is it only typing an existing piece of source code? Wouldn't simply coding stuff then be better practice?

</comment><comment><USER87> This is not fair. The captial letter requires you to use shift + letter key. It took me more time to do that..... can we fix that bug?

</comment><comment><USER88> This is awesome, but whats supposed to happen when I mis-type? It is not allowing me to keep typing or re-type again, it just freezes.

</comment><comment><USER89> Safari 6 on OS X 10.8, most (not all) of the time, I have to type ':' twice to make it progress. Catches me every time, not pleasant.

</comment><comment><USER90> I learned I really need to type correctly.

</comment><comment><USER91> A "Kinesis Advantage " keyboard and "apt-get install dvorak7min" is all a programmer needs.

<comment><USER91> I don't want to sign in with Google for a typing tutor.

</comment></comment><comment><USER92> This made me aware that i typed ":" with my RING FINGER. wow. What have I been doing...

</comment><comment><USER93> Does not support other keyboard layouts than US I think. Good idea though.

<comment><USER94> yes, my demo stops at (

</comment></comment><comment><USER95> Awesome! This is incredibly cool.

Bug: Caps Lock key is ignored. Feature Request: c#

<comment><USER96> I'm glad to see someone else mention the Caps Lock issue, I was starting to fear that I was the only one who used it or that it was just an issue on my end. I would like to see the Caps Locks functionality added to the Rails practice set too if possible. Otherwise I think this is a fantastic resource you've created, moonboots!

</comment></comment><comment><USER97> Where do people get these .io names? Are they really $50+ a year?

<comment><USER98> <http://nic.io>

And yes, those domains are pretty expensive.

</comment></comment><comment><USER99> This is great! I'd love to see some SQL examples too!

</comment><comment><USER100> The quotes don't work on US-international layout.

</comment><comment><USER101> cool, but what's this -really- for? ;)

recruiting coders?

optimizing keyboard layouts?

optimizing character usage for new language or framework development?

advertising open source projects?

<comment><USER3> I found myself fat fingering too many keys, wanted to improve my typing, and one thing led to another...

</comment></comment><comment><USER102> AWESOME

</comment><comment><USER103> i don't really care how fast i type as programmer as i found typing doesn't account much of time in total time of shipping a product. and second, why the hell we got code completion for!?

</comment><comment><USER104> Awesome!!!!

</comment><comment><USER105> Perfect tool for code monkeys :)

You even can't put more line breaks than it is - just type, character by character. If it checked the code in general (e.g. package names typed correctly - but not line breaks and stuff) - I'd totally use it. Not now, though.</comment>


The startup family from France - <AUTHOR> http://thefamily.co

<comment><USER2> They behave a little like the "illuminatis of startups". It's a kind of YCombinator but in a closed ecosystem of co-optation, doing also lobbying towards investors termsheets, public authorities, classic industries etc...

</comment><comment><USER3> What the hell is this? An incubator? Venture capitalists? A social group? The design of their page is obstructive, and really only serves to link to a bunch of social media sites.

Also, what's with this weird kick to bring tech companies to France?

</comment><comment><USER4> This is actually cringe worthy</comment>


Cursing Linked to Higher F*#@%$* Intelligence - <AUTHOR> http://losangeles.cbslocal.com/2016/11/17/is-cursing-bad-or-good-for-you/ <comment><USER2> Current post title: "Is Cursing Bad Or Good For You?"

</comment><comment><USER3> Social science is complete bullshit.

</comment><comment><USER4> Well shit...</comment>


California bans drones from delivering marijuana - <AUTHOR> https://www.theverge.com/2017/9/11/16286350/california-ban-drones-delivery-marijuana <comment><USER2> > Transportation may not be done by aircraft, watercraft, rail, drones, human > powered vehicles, or unmanned vehicles.

What? Why no marijuana watercraft? In all seriousness though this seems very arbitrary.

<comment><USER3> This is probably motivated in part by a desire to prevent legal in-state distribution from being easily parleyed into illegal interstate distribution. They want to be able to keep track of all the vehicles distributing mj. This is easier if they can only drive on roads and are required to have gps.

Since federal regulation of mj is built on the interstate commerce clause, actual interstate commerce is a likely trigger of conflict between the federal government and the California mj industry

<comment><USER4> In short: this regulation was passed to keep from giving the feds a very easy reason to raid the state government of California.

Sound accurate?

<comment><USER5> Seems reasonable considering all the ongoing raids on Colorado, Oregon, Washington, and Nevada governments.

</comment></comment></comment></comment><comment><USER6> Drones already deliver medicine in California though [https://www.theverge.com/2016/8/2/12350274/zipline-drone- del...](https://www.theverge.com/2016/8/2/12350274/zipline-drone-delivery-us- launch-blood-medicine)

<comment><USER7> Cannabis, while undoubtedly a medicinal product, is one with a very high possibility of being used recreationally. Nobody is going to consider batting down a drone carrying chemotherapy drugs being delivered to a reservation, whereas the risk is a lot higher for pot brownies. If (and I don't know whether this is true) the cannabis delivery rules are similar in scope to alcohol delivery rules, I'm not going to get myself worked up over it.

<comment><USER8> "very high possibility of being used recreationally"

You mean like opioids?

</comment></comment></comment><comment><USER9> Well, we don't want the drones getting high now do we?

 _I 'm so so sorry, I just couldn't resist_

<comment><USER10> Flagged. :p

<comment><USER11> When humor is outlawed, only outlaws will have humor.

<comment><USER12> The problem is that if you allow witty comments that contribute nothing substantially, you will end up with nothing else but witty comments. This happened to a lot of subreddits on reddit.

<comment><USER13> This place becomes more and more like reddit every day. Where is proper STEM discourse happening now?

<comment><USER14> "This place becomes more and more like reddit every day" is so old a meme here, that it wouldn't surprise me if a similar phrase was posted as one of the first 100 comments of HN's history.

<comment><USER15> The meme is older than the internet for sure,

"In a paper on 'Pure Mathematics for Engineering Students,' published in The Bulletin for March 1901, I expressed opinions which coincide with those given here today. I then said that instruction in mathematics for engineering students should have two objects (1) to develop an engineering mind, and (2) to develop mathematics as an instrument of research for the engineer. I came to these conclusion at that time as a result of inquiries made of graduates of several institutions, who were in engineering practice, and of their employers. From the latter, I have had the statement that it is inadvisable to place a man in the higher positions in engineering who has not has a good mathematical training, especially, in the calculus, which, they assert, develops those modes of thought which are necessary to the engineer." Arthur E. Hayes, Symposium on Mathematics for Engineering Students, 1907

<comment><USER13> It'd be great if someone could either answer me or refute my assertion instead of pointing to prior art as if it nullifies what was said. This, in itself, is an example of the topic post.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> Good to see California really tackling the big issues.

<comment><USER17> That's not a useful point of view. Should they only tackle one issue at a time, in order of priority?

<comment><USER8> They shouldn't tackle this at all...

<comment><USER18> By "this" do you mean marijuana legalization, regulation around the sale and delivery of marijuana, or specifically the part about drones?

<comment><USER8> I did mean the drone part, but now that you mention it ... all of it - regulation of cannabis should be like alcohol but even _lighter_ IMHO

<comment><USER17> So you're saying that, yes, they _should_ regulate it.

Out of the thousands of other issues facing the California government, where would you rank it?

</comment></comment></comment></comment></comment></comment><comment><USER19> In regulated states transport must happen in a locked container, fixed to the vehicle, operated by a licensed driver. The driver, and vehicle must me registered with the State agency. CA is likely following existing legal designs.

Hard to do those things on bikes or drones.

</comment><comment><USER20> "Transportation may not be done by ... human powered vehicles ..."

Does that mean no bike deliveries?

</comment><comment><USER21> >The Bureau also specifically states that those delivering the cannabis aren't allowed to consume the substance while out on the delivery.

Since driving under the effects of marijuana is already not allowed, maybe they are specifying it for non-driving people?

</comment><comment><USER22> Brings up an interesting problem...How do the police pull over a drone or rover etc?

Should these vehicles have visibly identifiable plates/cards?

<comment><USER23> Yep, the FAA requires drones to have visible identifier if over 0.55 lbs. There's even a couple sites[1][2] to help manage it, although I'm not sure how beneficial they are... I've only been flying drones in Canada.

[1] [https://drone-registration.net/](https://drone-registration.net/)

[2] [https://www.droneid.us/](https://www.droneid.us/)

</comment></comment><comment><USER24> How about T-Shirt Guns?

[http://www.tshirtguns.com/](http://www.tshirtguns.com/)

</comment><comment><USER25> Damn, so does this mean I need to actually take off my VR apparatus to receive delivery of my dank legal weed?

I can still pay with Bitcoin, right? Sorry I mean Bitcash. Wait no, Dogecoin? Or was it Litecoin?

For real though, 2017 produces the best ever news headlines.

</comment><comment><USER26> Would other industries be wise to expect such regulations?

All of my "Drone Uber for [weed, pills, guns, flammable materials, knives, slingshots, katanas, scissors, ...]" ideas are now in limbo.

</comment><comment><USER27> No sequel to Air Bud?</comment>


Kaspersky Labs Launches Online Bootcamp to Eye Security Startups - <AUTHOR> http://techcrunch.com/2015/02/24/ssc/

<comment><USER2> So this is basically a business plan contest, like b-schools run, right? No equity stake, a relatively small prize, and no expenses/stipends for participants during the program itself.

The advisors in the announcement are all either employed at Kaspersky or the investment fund sponsoring the contest.

<comment><AUTHOR> I agree. It seems to be a business-plan contest with a prize. I am actually curious how they made it into techcrunch. Can one "buy" articles at techcrunch?</comment></comment>


Windows for Linux Nerds - <AUTHOR> https://blog.jessfraz.com/post/windows-for-linux-nerds/ <comment><USER2> Want to _really_ impress us, Microsoft? Give us a Windows Subsystem for Linux.

I chose a maxxed out Dell XPS15 laptop with Windows 10 to replace my 3 year old rMBP with the (foolish) expectation that it could replace my Mac. Apple had lost sight of what mattered to developers, and I was angry. But now, 2 months later, here I continue developing and existing on my old rMBP.

Bash in Windows is incredibly slow on some actions. I didn't document all my activities, so I can't point to which thing was slow. But for a developer using Python, Elixir, Node, Nginx, PostgreSQL, MySQL, Git! SSH! and some other smaller accessories, WSL was far less performant than a Linux VM on my Mac. And it was far, far less performant than on native Mac.

I very much appreciate what Microsoft is trying to do. Perhaps in a generation or three they will finally leave behind most of their protectionist behaviors and embrace what works for them (for better or worse) - MS Office and the host of Windows apps that businesses depend on.

Apple is no saint or savior. But thankfully, some of what they did in the years past (dare I say during the reign of Jobs) is what has made them special. #1 - latency. My Macs work 99% of the time as expected. They run for weeks or months. My high end Android phone, even after factory reset, has occasional mind-boggling hangs (after which 1000 UI events register and take effect). The same applies to Windows 10! It works fine, sometimes, for a few things. Then it goes nuts. Wipe and reinstall (remove the Dell bloatware) and it's better. But it still lags so far behind macOS.

There is no utopia. There is only pain, frustration, and anger on the part of users. But please, give us developers (who practically _live_ in your environments) something.

<comment><USER3> Why not dual boot linux and windows 10 or use a Linux VM? It takes like 10-15 seconds to reboot a machine these days. I am about to take the plunge toward a ThinkPad after many years with OSX (I haven't upgraded my 2011 17" to macOS).

My plan is to try dual booting linux and/or using a Linux VM. I think the biggest hurdle will be changing my mindset. That is, looking for the OSX version of whatever it is I am looking for. Wrapping my mind around Linux... just Linux for as much as possible.

I am looking forward to using _just_ Linux as time goes on. I need to ween myself off of a few things before I can make the switch completely... I did it when I went from win to mac.

<comment><USER4> I'm in a similar predicament to OP. I prefer Linux in most cases, it's what I'm used to. But I need or would vastly prefer one or the other depending on what I'm doing. A VM is fine for just checking outlook..or using Skype for chat and things like that. But the second I need to use an IDE for Windows development, it's too slow to bear. Having better interchangeability between these two would make my life significantly better. Whether that be a stronger Linux subsystem for Windows, or a Windows subsystem for Linux.

Of course, I work at Microsoft. That being said, many devs I see are open to or enjoy using Linux--myself included. I think, and hope, we'll see continued growth in support for it. Though, I have little to no influence over such things.

<comment><USER5> How is the attitude/atmosphere internally at Microsoft towards people using a competing OS (Mac or Linux).

Does the group working on Windows OS feel alienated at all?

<comment><USER4> In my experience, pretty positive. I see Macs around campus frequently. In my team, people mostly use Windows, so there's definitely no alienation there. However, when people notice I mostly use Linux, I usually receive a chuckle for not using Windows--either out of irony or since we are highly encouraged to dogfood everything here. But that's usually the last I hear of it, so I don't think anyone sees anything wrong with it.

</comment></comment></comment></comment></comment><comment><USER6> _If you need to access files in VolFS, you can use bash.exe to copy them somewhere under /mnt/c, use Windows to do whatever on it, then use bash.exe to copy them back when you are done._

IMHO this is the worst-designed(?) part of the whole WSL. Copying files back and forth is the antithesis of a "seamless Windows and Linux experience", to put it mildly. From that perspective it's no better than running an isolated VM. To add insult to injury, although I haven't personally tried it, apparently trying to access the files directly from Windows as if they were both on the same filesystem (which they are) results in all sorts of ridiculous breakage: [https://news.ycombinator.com/item?id=12980380](https://news.ycombinator.com/item?id=12980380)

I have mounted CIFS/SMB shares from Windows machines onto Linuxes and Macs, and gone in the opposite direction with Samba; in both of these cases, there is no need for wasteful copying and managing _two_ files; Windows and Linux can essentially use the same files simultaneously.

Going in the other direction, WINE also allows Windows apps to work directly with the same files as Linux ones.

One then wonders, when a _networked_ filesystem with all its complexity can be used nearly effortlessly across different OSes running on _completely different machines_ , and WINE is like the inverse of WSL, why couldn't Microsoft do the same with two subsystems on the same machine using the same filesystem!?

<comment><USER7> I'm sorry that we don't provide a way to access the Linux portion of the file system directly from Windows yet. It's annoying, and we are working to improve it.

For many use cases it suffices to symlink a Windows directory (e.g. /mnt/c/Users/myuser) into your WSL $HOME directory somewhere and do your source work, builds, etc. in that path. This breaks down if you need certain features that aren't supported on these files yet (e.g. chmod), though.

I assure you that we find this annoying too and are working toward a better solution.

<comment><USER8> I know this probably goes well beyond the scope of your department but here is my wishlist that would convince me to buy windows:

1\. Support for ZFS (and future open source filesystems as they appear)

2\. The ability to control every service running, and good honest descriptions of what each service does. The ability to control all the servers my computer is connecting to and a transparent view of the information they are sending

3\. Ability to turn off having to use Microsoft Accounts, store, etc. Leave it on by default to make your money but offer a developer version/option.

<comment><USER3> What do you use now?

<comment><USER8> win7 & debian. I don't ever plan on going to win10, so my next computer will be full linux.

</comment></comment></comment></comment></comment><comment><USER9> A lot of snarky comments here, but I've been using Ubuntu shell on Win 10 for the past few weeks and it's really fantastic. Way faster than a VM and much more compatible than cygwin or msys.

<comment><USER10> More snarky than usual, i don't know why. "why not just" or "just use" kind of comments that you see more in reddit.

Even someone recommended an Electron alternative, on HN! the #1 Electron hater community.

Interesting.

<comment><USER11> It's not snark, or feeling threatened. It's just that lots of people (me included) fail to see the point of running Windows at all (unless you are developing _for_ Windows, in which case it's foolish not to). If you want a Linux experience, use Linux. If you want polished applications and a Unix experience, get a Mac. Windows has somewhat polished apps (with very lax UI consistency rules), a convoluted overall experience (ever tried to debug a wireless connection?) and a Unix-like environment (and it had one from the start) both with Cygwin and WSL.

IMHO, WSL is Microsoft's attempt to compete with Mac, not Linux, by adding a Unix-like environment to Windows. I already did that with Cygwin, more than a decade ago.

<comment><USER12> I am not a pro-developer, but I do enjoy programming and all its associated activities and by trade I'm a Windows Enterprise Architect, as such I need to run Windows as my primary machine(s), but looking a the list of VMs I have running on my Hyper-V servers, I have an equal smattering of Windows Servers and Linux Servers.

So it's purely horses-for-courses. If my career had been built up designing Linux solutions then my viewpoint would be the complete opposite. I really don't understand the hate that Windows gets. Yes, it's not open-source. Yes, it's controlled by a massive organisation. Yes, it can cost quite a lot if you want to develop on it... but you know what, a lot of people (and organisations) don't care. They happily run Windows because they always have, it comes with support options, and it kinda always works (within reason) for what they need to do with it.

Telling people to 'just run Linux' or 'Windows is Better!' is akin to pushing your religion or your choice of diet at everyone you meet. If are an atheist and have issues with organised religion, or if you are an omnivore and get irritated every time someone says 'I'm Vegan, you should be too!' then maybe, just maybe, it's time to rethink your position with regard to the OS wars.

\--

P.S. The Amiga was better than the Atari ST, and the Commodore 64 pwned the ZX Spectrum. /s

<comment><USER11> What would be, from your point-of-view, the key advantages of working on Windows?

> P.S. The Amiga was better than the Atari ST, and the Commodore 64 pwned the > ZX Spectrum. /s

The ST was a much simpler and more elegant machine. The Amiga was much more powerful, but too video-centric.

The C64 had better graphics and sound than the Spectrum (and a much nicer palette), but the Atari 8-bit computers had the best graphics of that generation by far. It's actually fun (but not surprising) to notice the Amiga is more a descendant of the 8-bit Ataris and the ST looks a lot like a 32-bit C-64.

</comment></comment></comment></comment></comment><comment><USER13> I've been a Microsoft developer for a long time, but in recent years it's become increasingly hard to justify and the Linux subsystem hasn't helped. Not because it's not an interesting feature, but because my desktop has become even more useless as anything but development than it already was with Visual Studio infecting everything.

I'm sure it's a step in the right direction for a lot of people, but I bought an old 2015 MacBook and it's been a so much better experience than windows that I'm actually considering getting a ubuntu machine to see if it can work as my main machine. If this sounds odd to you, you haven't programmed on a MacBook with a Danish keyboard.

Honestly Microsoft does a lot of things right these days, but it all comes with terrible user experiences. .Net core is great, but the devops required to run it in production, frankly has us considering java spring.

Sorry about the rant, but the fact that you even needed to write this blog is a good illustration of what's wrong with Microsoft. Tech is supposed to run out of the box, with minimal effort required.

<comment><USER14> Funny because I used to be a "Linux developer", if there is such a thing, for a long time. But nowadays I consider myself a developer who has invested my time and energy into the Microsoft ecosystem.

Why? Because never before have I felt so productive on Windows and together with my dissatisfaction with desktop linux it was an easy choice.

With .NET Core, the console actually gets usable and today Powershell is simply a fantastic tool. Stuff that used to be a pain to setup is already there when you install Visual Studio. Things like git used to be hard to have to handle (I prefer the console) but now it is no longer true. I don't even run git bash.

If you want to run stuff that usually is hard/annoying to run on Windows, for example Ruby or PHP it is today a breeze with the linux subsystem.

I use .NET nowadays and together with Azure it's just unbeatable IMO. I get start a new project and have it deployed withing minutes complete with a database. It's super easy to setup git push deploy and you can deploy from the IDE as well. Node is setup with a click, it feels like it's almost better implemented on Windows than on linux. With both VS Code and the normal VS, setting up stuff like task runners or to compile typescript is now simpler than ever.

I don't really know what devops you're talking about because I think .NET Core is much easier to run in production and you can still run it on the .NET Framework if you want that.

<comment><USER13> Try pushing your .net core project to your iis and see what happens.

I mean, it's not like it's impossible to get a .core project to run behind your iis, it's just not easy.

Then try doing something like the EU standards for SAML authentication which is the easiest thing in the world in a lot of other environments yet is really terrible in .net.

If Azure was my production environment I probably wouldn't be unhappy either.

</comment></comment></comment><comment><USER15> This post was interesting in a morbid way but you can count the Linux nerds that want leave the open world of Linux for Microsoft very easily. They all work at Microsoft.

Microsoft is losing on mobile, desktop, servers, and IoT. Their entire ecosystem is a technological deadend.

If you're a Linux Nerd, you should probably keep using Linux if you care about having a good career going forward.

<comment><USER16> Linux still sucks shit on the Desktop. I try it every year, and every year it sucks very slightly less. It goes beyond drivers and application compatibility, Linux distros are ugly and the people making them have no taste.

The Desktop/Laptop market is not nearly as important as it used to be, but within that space, Microsoft's dominance is about as strong as ever. Apple might have been able to take a dent out of it if they were committed, but they decided the obscene margins on iPhones were more important (and I can't entirely blame them).

Outside of admins and linux developers, Linux has no chance on PCs. Every year that passes convinces me more of this. We are going on the 20th "Year of Linux on the Desktop". If they were going to do it, they'd have done it by now.

<comment><USER17> Check out [https://www.reddit.com/r/unixporn/](https://www.reddit.com/r/unixporn/)

I think the linux desktop user experience has improved exponentially over the last few years, you should give it another shot.

<comment><USER18> Nice UIs won't fix people's broadcom wireless cards.

<comment><USER19> Responding snark with snark: Then don't use them.

Most wireless cards out there work just fine. When I had to use a laptop with a Broadcom chip for uni I used my Android phone as tethering (charging it as a bonus) and the guy sitting next to me just used a dongle smaller than his thumb.

<comment><USER18> Most people (even developers) aren't willing to open up their laptop to replace their laptop wifi cards or to have to use dongles to get on their wireless or to play endless hardware roulette.

<comment><USER20> OSX doesn't work on all windows-only hardware either. You have to buy something with Linux support.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> I tried WSL a few times but for real world every day development it's just not usable at all. The file mount performance is crippling slow. A Rails app takes 30+ seconds to see changes vs nearly instant on native Linux.

If anyone is interested in running Linux on Windows in a way that's suitable for full time development then check out this screencast / blog post: [https://nickjanetakis.com/blog/create-an-awesome-linux- devel...](https://nickjanetakis.com/blog/create-an-awesome-linux-development- environment-in-windows-with-vmware)

I've been using this set up for many years.

The pros of the above method are:

\- It's free

\- It's as fast as native Linux

\- It's actually Linux from end to end

\- You get independent floating Linux windows (graphical apps work)

\- You can still run your Windows apps

\- Works flawlessly with dual monitors

\- No need to dual boot

\- Takes about 15-20 minutes to set up your first time

<comment><USER22> Kinda sad to use old VMware and old Xubuntu...

<comment><USER21> No need to be sad.

Before I moved to Windows 10 I routinely had 150+ day uptimes. The old VMWare is rock solid and runs really fast.

Having to use an older version of xubuntu does kind of stink, but I'm pretty sure if you really cared you could use 16.04, but just downgrade xfce to use 14.04's version.

It's not something I bothered with because visually I'm happy with the way things look, using custom PPAs are easy and I use Docker for various programming language runtimes and services.

</comment></comment></comment><comment><USER23> I really, really wish Microsoft would open up the Pico Process APIs to third- party driver developers. Right now, WSL is the only driver allowed to install Pico Process callbacks. It would be cool to implement a Darwin layer or a Classic Xbox emulator with that tech.

<comment><USER24> The Pico Process subsystem isn't fully baked yet -- in earlier talks Microsoft mentioned that while the API itself is pretty generic but the current implementation is just hacked together to support the Linux subsystem for now.

</comment></comment><comment><USER25> For anyone wanting to automate using boxstarter and chocolatey without finding all the packages manually I created this GUI about a year back.

It has a search bar to search chocolatey's repository automatically.

It has search and allows you to save the GIST straight to github and then invoke installer straight from website. Uses cookies to store script on machine so you can come back to it and add/remove more.

Was a quick 2-3 hour job so it may have bugs

[http://dhruvb14.github.io](http://dhruvb14.github.io)

</comment><comment><USER11> Correct me if I'm wrong, but WSL looks more like an attempt at stopping developers from moving to Macs in order to get a polished app environment with a Unix-like OS underneath and to keep them in the Windows ecosystem.

<comment><USER26> "a polished app environment"

If you're meaning XCode then no.

XCode is never going to draw in developers... or at least no developer I've ever talked to liked XCode.

I changed from iOS to Android development because I couldn't stand XCode anymore. Constant crashing, walled garden bullshit where I couldn't even get plugins running every time they updated, inexplicable code changes to my apps which were un-diagnosable from within xcode because they obfuscate away all layout files... It was nightmarish. I spent more time swearing at my computer than I did coding.

<comment><USER11> I'm talking about iTunes, iWork, all IDEs that count with the exception of Visual Studio, Skype, the built-in apps and even Microsoft Office if you are so inclined. I've done some development in ObjC using Xcode and didn't notice the problems you mention. Must be luck.

And one thing that others never replicated is the quality of the laptops. I've had Dell XPSs and Thinkpads and the MacBook Pro is still my favourite laptop.

</comment></comment></comment><comment><USER27> Congrats, Jess!

LXSS is amazing, but I had to stop using it because mounted volumes in Docker straight up don't work within it.

How don't they work? When you do a "docker run -v $PWD:/whatever <image>", "/whatever" will be blank. This occurred even when I tried to mount a directory on the FUSE mount to the Windows filesystem.

I'm guessing that given her experience in hacking container runtimes, she can probably lend a big hand towards fixing it. I'm currently using Vbox + Vagrant as a substitute, and it works well, but I'd prefer to use WSL.

</comment><comment> dis-sys Microsoft never made any change to its core strategy. There is no alternative platform to run Windows applications with official Microsoft support (you can name a couple exceptions, they are exceptions, e.g. SQL Server), there is no way for average developers to read Windows/Office source code. That is the best proof.

Windows for Linux Nerds? I run 5 Linux machines in my study room, Microsoft would be charging me thousands of $ for Windows Server licenses, I read source code of the software I am using on daily basis, Microsoft wouldn't let me do that. Every code of weeks, I hack the software I use and share the changes with others, Microsoft lawyers are not going to be happy if I choose to do that on Microsoft software.

Windows for Linux Nerds? Microsoft is not ready for that, Microsoft never had the intention to do.

<comment><USER28> Hear hear!!

</comment></comment><comment><USER29> I have been super impressed with WSL after using it for close to a year now. The Creators Update fixed some issues like file watching and symbolic links which had been preventing certain programs from begin usable.

I now do all my C++ and node.js development through WSL so I can still use all the Windows GUI applications (which tend to have fewer bugs and be easier to use than Linux GUI apps, in my experience). VS Code even allows you to run gdb on WSL, and interface with it on Windows, if you can get the setup right.

</comment><comment><USER30> Stop dangling your rotten carrot! You can't impress me with these stale gimmicks. The choice of operating system is not a purely utalitarian, but also and mostly a social choice of morality and utopia.

And the choice has been made already, for freedom, not corpdom. Therefore, i'll stick with even the shittiest desktop and OS imaginable, as long as it's open for me to any change i can think of.

There is simply no going back from freedom to corpdom. It's one way only. You need to understand this.

</comment><comment><USER31> It's hard for Windows to realistically compete with Linux as a developer environment.

GNU/Linux and userland software is made by developers for developers, and a lot of it is open source. If you are a developer, on Linux sky is the limit. Everything can be played with. On Windows that's not the case. Many areas are off-limits and you don't get to see how they work, and you cannot change them if you need to.

Then, Microsoft can sunset a project at any time, and that's final. In the open source world an orphaned project can always be forked or picked up by someone else.

<comment><USER32> > It's hard for Windows to realistically compete with Linux as a developer > environment.

That's the whole point of WSL

<comment><USER31> The WSL is useful if you need Windows as a host system. That's not a universal need. Most of the software I use supports Linux.

Then there's is Wine and finally virtualization. I haven't needed the latter in years.

</comment></comment></comment><comment><USER33> TBH I dug out my Surface Pro when Jess started talking up WSL... Finally got Windows Insider Preview going so that I could try it out for myself.

I spend most of my days in a text editor and a terminal, and macOS has been making even that painful sometimes. Linux was my desktop for ages before I switched to mac ~7 years ago, so it'll be nice to see what it can do now.

<comment><USER34> you no longer need Windows Insider preview for WSOL - its part of the creator's update. still has a beta tag but its available without having to use a full beta OS.

<comment><USER35> When did this change? as my home machine required me to move to insiders for WSL just on the weekend. (also the volume of spam they are sending to me now :|)

<comment><USER36> Creators update came out back in April. I think you need the Insiders Program right now to pick which Linux distro you want to install, normal way only gets you Ubuntu?

</comment></comment></comment></comment><comment><USER37> > Imagine a Linux setup where you can launch PowerPoint without a VM

Wine?

<comment><USER38> Why not use a browser based presentation app like Google Slides and not deal with stupid proprietary software that won't run on anything but a windows or mac machine?

<comment><USER39> Exactly. Using non-portable formats when there are portable alternatives is simply stupid.

<comment><USER40> Surely, because Google Docs runs on my computer without any part of that closed source behind Google virtual walls.

</comment></comment></comment></comment><comment><USER41> I totally agree with his points about how terrible the Windows console is.

Scrolling past the current line into blank space makes no sense. Having two identical settings menus (Defaults and Properties) that affect the current terminal vs every terminal makes no sense. Having no color theme support makes no sense.

As far as third party terminals go, ConEmu is pretty good but crashes a lot for me. I don't see why I should even need to get a third party terminal though. Microsoft is a multi billion dollar company. Can't they hire a team of guys to improve the one thing that every single programmer and sysadmin cares about - the god damned terminal?

<comment><USER42> As a Windows developer for last year I can see very big leap in terminal usability. Nowadays you can reset it as you Wish. Hotkeys works as expected. Muse integration much much better. Try latest Insider builds. Console nowadays mush better and faster then ever in Windows

</comment></comment><comment><USER43> Here are my notes [https://github.com/chx/chx.github.io/wiki/How-I-set-up-my- Wi...](https://github.com/chx/chx.github.io/wiki/How-I-set-up-my- Windows-10-\(coming-from-Linux\)) on setting up W10 after using Linux for almost a quarter century.

</comment><comment><USER44> Install hyper terminal, it is a lot more bearable than the ugly default console emulation on Windows.

<comment><USER45> Conemu is where is at (for me at least), along with clink you have a lot of niceties bash has (reverse history search, etc)

<comment><USER46> I've been using the WSL bash inside Conemu. I pretty much only use it for SSH'ing to other boxes, but I spend a lot of time in it and it's the best Windows setup I've found.

</comment></comment></comment><comment><USER47> WSL is waste of time if you work with docker - Linux desktop experience (not laptop) is just good enough these days (and future seems even brighter since Ubuntu goes back to Gnome)

<comment><USER32> Docker works pretty great with Windows nowadays using Hyper-V.

Because of that your point can be reversed: If you work with Docker there is no point in switching from Windows to Linux.

<comment><USER47> Windows works ok as virtual box/vmware guest as well. I spent few years as .net Dev this way and was more than happy with this solution. You need beefy machine though.

Not using windows as primary OS limits risk related to viruses, malware. Also moving to new hardware is just copy vm files (windows provision for Dev used to take a lot of time)

</comment></comment></comment><comment><USER48> Why would you use WSL instead of straight VM for example (assuming you are somehow banned from running Linux proper directly on your hardware)? And I'm a bit confused about the benefit of launching PowerPoint from WSL, when you have the Windows host itself sitting there.

<comment><USER49> I'm uncertain if you're asking "Why use WSL vs VM" or "Why use WSL/Linux VM if you can run Linux directly".

For the first: Unified filesystem, memory, processor resources. You don't need to have the extra overhead of running a VM.

For the second: The reason to run Windows is the same as the reason to run MacOS - so you can run apps for those platforms. If you don't need to do that, then obviously there's little/no point in doing so.

<comment><USER48> Well, for running Windows applications on Linux we have Wine already. I'm not saying WSL isn't an interesting thing, but if I'd had such choice, I would have run Linux natively first, in VM as second best option, and WSL as last resort.

<comment><USER49> Sure, those are your personal preferences, and in your current specific needs/wants.

You did ask why, though, and you've been given a few examples of why someone might choose WSL over VMs.

</comment></comment></comment></comment><comment><USER50> WSL is nice and I would use it more often if USB devices were transparently mapped into it. I want to use it for embedded development on my Windows machine, and without USB support this is just not possible.

Edit: apparently they added it in May [1], but I have no access to the newest update.

[1] [https://blogs.msdn.microsoft.com/commandline/2017/05/10/bash...](https://blogs.msdn.microsoft.com/commandline/2017/05/10/bashwsl- insiders-build-now-supports-usbserial-comms-and-mounting-removable-storage- network-shares/)

</comment><comment><USER51> I used to run [http://www.andlinux.org/](http://www.andlinux.org/) but with no 64bit support it's dead now. This was how to run Linux on windows.

</comment><comment><USER52> Thank you for WSL! I've been using it to learn more about what it could be done with it, and at home have been trying to compile flutter ([http://flutter.org](http://flutter.org)) on it... Currently it gets stuck in the "pub upgrade" (the dart language packaging mechanism), as it runs several tar's to unpack packages.

If you just follow the simple:

bash.exe...:

      $ mkdir p; cd p

      $ git clone https://github.com/flutter/flutter

      $ cd bin

      $ ./flutter doctor

it'll soon get up to speed, and eventually hang. Off course all this works on Windows, but I wanted to experiment with something as it encompasses several different things - language, environment, packages, jit-ing, etc.

Still pretty excited about the development!

Heh, one thing I've learned the hard way, I made a symlink on my /mnt/c/ as /mnt/c/something - and this was making several windows tools unhappy, had to deleted from WSL and now it's fine.

</comment><comment><USER53> I've recently (~1y) moved back to Windows as a primary 'desktop' OS for development. By day I'm a rails developer.

I've worked extensively on windows (back in PHP days), Linux (when I was doing HPC software) and Mac (most of my rails career...).

Generally the code always runs on Linux -- and WSL isnt' there yet for background processes and the "platform" your code needs to run on; most of the stuff I need needs worker processes, elasticsearch, mysql, et al, all of which need to be running long-lived in the background which WSL isn't great at supporting -- it's "user mode" after all.

It's also closer to prod environments, which is a theoretical argument against OSX.

I clone and do terminal operations on either a VM or a physical ubuntu server in my house, and edit locally using gvim or visual studio code using an NFS or Samba mount. Nginx proxying using port forwarding over ssh. Long story short; it works for me, but this is a frankenstein-ish setup made familiar solely because I've used all 3 OS's day in, day out for ~20 years. When I explain it to Junior devs they look at me funny.

WSL with ConEmu and openssh is close to replacing PuTTy for me, but that's it. You still can't use it to have a painless node, ruby, etc development experience on windows.

Microsoft should be focusing on optimising for someone who's in a coding bootcamp, not people who've been in tech for decades already and already have the solid technology base.

Right now, people grow up using windows for day to day office work in other careers and at school, and for PC gaming and browsing at home, but have to switch off it when they enter a development career because the native tooling isn't there. If Microsoft can address that shortcoming, probably through further development of WSL and (hopefully) implementing Bash as a "first order citizen" in Windows, then they're home.

</comment><comment><USER54> Very neat! This reminds me of lx branded zones in illumos: [https://www.youtube.com/watch?v=TrfD3pC0VSs&list=PLH8r-Scm3-...](https://www.youtube.com/watch?v=TrfD3pC0VSs&list=PLH8r-Scm3-2VmZhZ76tFPAhPOG0pvmjdA&index=6)

<comment><USER55> Indeed. I wonder if Microsoft will eventually use their Linux emulation to accomplish the same thing that motivated Joyent to work on LX-branded zones, namely running Linux-based Docker containers in production on a non-Linux server OS (Windows in this case) without any VM overhead.

<comment><USER56> I believe this is already the case with hyper-v, is it not?

<comment><USER54> I thought hyper-v would be more for the case of full-blown emulation (I'm creating a soft-CPU and hardware, a la VMWare) versus this is more like linux emulation - I have some windows software that can parse and run ELF binaries, and some layer that converts calls to the linux kernel into windows kernel stuff.

</comment></comment></comment></comment><comment><USER57> Author should check out this script for an even more minimal setup :)

[https://gist.github.com/alirobe/7f3b34ad89a159e6daa1](https://gist.github.com/alirobe/7f3b34ad89a159e6daa1)

<comment><USER58> That gist is full of insecure shit.

<comment><USER59> Hi! Your comment is very vague and damning considering it contains no specifics.

The gist is served over https so that's secure. It's well documented so it's not really doing anything unintended so there's no problems there. It requires admin privileges, but so would similar changes in other operating systems.

How specifically is the gist full of insecure shit?

<comment><USER58> I mean insecure configurations, like turning off automatic updates. For instance, unconditionally marking current network as private.

<comment><USER57> It turns off Automatic reboots, not Automatic updates.

</comment></comment></comment></comment></comment><comment><USER60> Slow file writes - working with WLS I found that integrated ms antivirus really doesn't like my python scripts for some reason. Turning off "ongoing protection" speed up things considerably.

</comment><comment><USER27> Also, for anyone with a Windows 10 (Anniversary Edition or above) machine that wants to try this, try the quick PowerShell script I wrote some time back that sets this up for you: [https://carlosonunez.wordpress.com/2016/12/01/enable- linux-o...](https://carlosonunez.wordpress.com/2016/12/01/enable-linux-on- windows-the-fast-way/)

Also, note that WSL can be disabled via Group Policy, and it is possible that your sysadmins may have done so.

</comment><comment><USER61> Linux on Windows 10 seems like a good thing. I plan to use it for testing a Node.js application developed on Windows

<comment><USER62> You're probably going to have a bad time. Some of the lower-level network APIs are pretty buggy last time I checked.

<comment><USER7> We've made a lot of improvements in the last few months of insider builds. If there are still blocking issues, I'd definitely be interested in hearing about them.

</comment></comment></comment><comment><USER63> Weird I've been cloning git repos to an external NTFS drive mounted in /mnt and never had any issues.

</comment><comment><USER64> I find that the copy/paste terminal stuff and keyboard shortcuts are much better by using an X-based terminal emulator, e.g. xfce:

[https://askubuntu.com/a/867696/86161](https://askubuntu.com/a/867696/86161)

</comment><comment><USER65> Note that Android emulation (or most kinds of emulation aside from docker) will not work under WSL. Yes, I know I can do Android development under Windows, but I'd prefer Linux for day to day development for everything.

</comment><comment><USER66> I remember "Lindows" from the good ol' days - I think it ended up being called Linspire, but alas it died back in 2007. It would've been great to give to my grandparents right about now.

</comment><comment><USER67> I wanted to read this but I honestly don't care about how Windows hacked away a lesser version of a linux machine into their already bloated OS. I'm just going to use linux.

</comment><comment><USER38> Not sure how WSL is more compelling than using docker containers. I can very easily download, compile and run basically anything I want with minimal friction and way less domain knowledge than managing a VM.

Also, this might just be me being snarky, but MS is absolutely losing the battle for developer tooling and that's what's prompted them to try to sway developers back to their ecosystem. If the circumstances were any different, I'm sure they'd be perfectly happy letting us suffer using cygwin and putty.

Don't trust a snake.

<comment><USER68> > Not sure how WSL is more compelling than using docker containers.

It takes much less resources and file sharing is easier. You don't need to run a VM.

</comment></comment><comment><USER65> i3 is simply amazing. I'd give up my Windows Desktop in an instant if I could use i3 to start Window apps within the manager.

<comment><USER69> Since you can start windows apps from WSL console, I bet something can be hacked to launch them from i3, though i haven't tried myself

<comment><USER70> i3 can only be run in a window that emulates Xorg. So, no.

</comment></comment></comment><comment><USER71> All the linux commands I need I can find in windows-native format using scoop.sh. No filesystem trickery needed.

</comment><comment><USER72> Drawbridge is what powers SQL server for linux and is a full windows subsystem but is locked down.

</comment><comment><USER73> I love my late 2016 mbp with new keyboard & touchbar that i never use. It's a million times better than the surface pro 4, surface book, dell xps, lenovo, or any other equivalently priced winbox. Granted, I don't game at all or need high performance graphics.

</comment><comment><USER70> An i3 user who is happy with WSL? I think you are in denial, my friend.

</comment><comment><USER74> Why not just use Cygwin?

<comment><USER75> Cygwin cannot run Linux executables. Cygwin .exe's are specifically compiled for Windows.

<comment><USER37> Cygwin is essentially a distribution, so like any distribution their packages are recompiled for that specific distribution and available in their repo. It's not too often you download a random binary for Linux and run it, but that case I concede.

<comment><USER45> Very often; every ruby/node/etc library that has at least one dependency that needs compilation ("native-extensions") can now run on Windows 10 without issues.

<comment><USER37> Huh? If it was compiling the native extension, then it would work in cygwin also?

<comment><USER45> Just as an exercise; try to compile latest Node on cygwin and you will be welcomed by a ton of errors. Then try to compile it on linux subsystem (no issues arise)

</comment></comment></comment></comment></comment></comment><comment><USER76> how about directX for wine?

</comment><comment><USER77> What does this mean for Cygwin?

<comment><USER78> Cygwin still seems to be the go-to for any POSIX apps that need to interact with the actual Windows environment. For example, wslbridge[1] that connects wsltty[2] to WSL compiles the frontend component under cygwin.

[1]: [https://github.com/mintty/wsltty](https://github.com/mintty/wsltty) [2]: [https://github.com/rprichard/wslbridge](https://github.com/rprichard/wslbridge)

</comment></comment><comment><USER79> how is WSL any different to WISE ?

(a better explination of WISE than I could ever come up with [https://news.ycombinator.com/item?id=11072143](https://news.ycombinator.com/item?id=11072143))

it sounds like microsoft up to its old tricks,

"look its really easy to develop for windows now you have done that, well now we have dropped that so guess your going to have to only develop for windows now"

<comment><USER80> WSL uses the "real" userland of the distro of your choice. If you are running Ubuntu on it, you are using the same .debs and ELF binaries inside those .debs that "real" Ubuntu is using. If for whatever reason the Windows team decided to "cut bait" and kill WSL, you can quickly spin up an Ubuntu VM or reimage to Ubuntu and continue to be productive.

If there is an opportunity for a Trojan horse here, it's for Linux developers to encourage young geeks to install Ubuntu from the Windows Store and start learning Linux commands in WSL and maybe from there eventually baby step to running Linux full time. (That said, it's not like having BSD terminals available in macOS has encouraged a lot of people to move out of macOS and directly to Linux. Still seems to trend the opposite direction, if the laptops at developer conferences are any indication.)

</comment></comment><comment><USER81> ...but why do I need this ?

Work gives me a Mac which I have a Linux VM inside of to get work done. Personally I have Linux / BSD laptops and BSD servers.

Why do I need windows at all ?</comment>


Investment Group Makes Run For Yahoo, Using Microsoft's Money  - <AUTHOR> http://www.techcrunch.com/2009/01/07/investment-group-makes-run-for-yahoo-using-microsofts-money/ <comment><USER2> It's actually not Microsoft making a bid this time. According to this, Microsoft gets only the Search and Search Marketing (which is what they have been really after) and only a minimal control over the rest of the company, which is also shared by the investment groups.

There's no news on any other news networks about this so it might as well turn out to be a rumor.

</comment><comment><USER3> I think this deal holds some weight; The fact that microsoft won't directly own it might help get past any anti trust issues others would bring...

\- On the other hand I think Google might try to step in again (like in the past unsuccessfully) and bring yahoo over to an agreement to block the microsoft deal.

</comment><comment><USER4> Oh god, not again. Will these bastards ever give up?</comment>