Microsoft Gets Hacker Friendly

You don’t often hear hackers say a lot of good things about Microsoft. Sure, you might use Windows, especially if you have one of those embarrassing day jobs. But at night in a hacker’s secret lab, you are likely to find something that looks more like Unix, even if it has a penguin, a piece of fruit, or even a green robot on the label. But we’ll give Microsoft credit. Their new MakeCode site will be a great boon for educators, students, and anyone who wants to learn how to code. What’s more is they are joined by a lot of familiar hacker faces including AdaFruit, Sparkfun, and Seeed Studios.

The idea is to have tutorials and if that was all there was to it, this would be a short post. But what is really entertaining about the site is that there are web-based emulators for all the hardware so you can actually do the projects in your browser with no extra hardware. You can also do your own projects from scratch.

It will dismay some, but the default interface is for a blocks language where you drag items around. But if that bothers you, you can click the Javascript button at any time. You can even switch back and forth. For example, here’s a little fake radar servo, complete with a blinking light and a beep tone:

And here’s the same thing in Javascript:

let state = false
loops.forever(function () {
 music.playTone(494, music.beat(BeatFraction.Eighth))
 music.rest(music.beat(BeatFraction.Half))
 control.waitMicros(1000000)
 pins.A5.digitalWrite(state)
 if (state) {
 pins.D3.servoWrite(0)
 } else {
 pins.D3.servoWrite(90)
 }
 state = !(state)
})

When you create something like a servo, an LED, or a temperature sensor, the simulator automatically connects one up for you. You can also download the code for your target board. Right now you can use a micro:bit, an Adafruit board, a Seeed Grove Zero, or a Sparkfun Inventor’s kit. There’s also Minecraft, Chibi Chip, and Cue if you are feeling adventurous.

The blocks aren’t bad and the Javascript editor is actually pretty sophisticated. If you get the bug for block coding, you can try 3D modeling with it. You can even program the Raspberry Pi that way if you like.

72 thoughts on “Microsoft Gets Hacker Friendly

  1. I would say kids friendly not hacker friendly. These blocks are for learning purposes, usually for kids. But anyway, I like for example the MIT App Inventor, which uses similar blocks. I use it often, because it’s easier for me, if I just want to make an app quickly. An app developer would laugh at me, but since I am not an app developer, it’s just comfortable for me.

    1. I’m an app developer and I never would laugh at you. Because we doing the same if we just want an quick app, maybe as prototype ore Klickdemo. We also using Tools to make our life easy and safe money.

  2. I have such a day job, and to be honest, Microsoft today is not Microsoft from the beginning century. I like both platforms, not because I have to code cross platform, but I realy like the way Microsoft supports developers. They have a lot of programs to support beginners like MVA or other thinks. But the most impressing thing is the MSDN. There is nothing comparable like this documentation platform. In my opinion Microsoft gets more and more open.

    1. I’m not so convinced that MSDN is great but I will give Microsoft credit for what it has done with the Windows platform. It is much much better than it used to be. It is much more reliable than it once was and i think the fact that they offer a free version of Visual Studio is great!

      I have a long memory though. I remember when just getting any compiler for a Microsoft (DOS or Windows) platform was an expensive thing. I remember when their home consumer operating systems crashed almost hourly and their business offerings (which were too expensive for a home user) still needed to be restarted once a month or so to clear out memory leaks.

      Windows today really is ‘good enough’. It isn’t great though. It certainly isn’t better than a typical free Linux distro. Also, I think that what really forced Microsoft to do better with Windows was competition. There may have never been a ‘year of the Linux desktop’ but that isn’t because Microsoft just sat still while Linux just couldn’t catch up. A lot of people wanted to switch even if they were prevented by a lack of this or that application (lookin at you Adobe) or there was no driver for their fancy video card, etc… The executives at Microsoft knew this and they reacted. Windows is better because it was forced to compete.

      If too many people only see that Windows has improved and don’t consider that we are all parts of a larger ecosystem of competition.. then it will all be for nothing. Take that competition away and Microsoft will revert back to it’s old familiar ways.

      Meanwhile Linux will do just fine. It’s developers are also it’s biggest fans and users. They will continue to work to make it better.

  3. Its actually quite interesting, the JavaScript is not interpreted on the micro-controllers, it is actually compiled into native code in the browser and supplies a file to be uploaded on to the target board (Usually through drag and drop).

    The JavaScript is a subset of TypeScript (Microsoft’s JavaScript seuperset) and removes some of the dynamic nature through type checking and constraints. The editor is the Monaco engine, which drives Visual Studio Code, but run in the browser.

    It currently only targets ARM processors, as it compiles into ARM Thumb machine code, although they have some experimental versions with support of other micro-controllers.

    If you you clone the github repo (https://github.com/Microsoft/pxt) and follow the intructions you can get it running locally on your own machine, no internet required.

    1. One hopes that they won’t murder these “learning” systems the same way they did by creating Visual Basic’s infinite layers of dismay (yes, Small Basic reels this back a lot).

  4. Hold the phone! Hackers have lots of good things to say about Microsoft. The shear number of bugs to exploit over the years has been enormous and now they come out with freshly bugged code to hack every two weeks! Hackers couldn’t ask for a better target. ;)

    1. After the meltdown bug I had to use the wufuc hack to enable the windows updates again. With Windows 7 self-builders where forced to buy the retail version of Windows 7. (volume licences are upgrades only, so as a company you also have to buy the retail version first) This licence allows for hardware replacement, which I did after a couple month. But if you have a slightly newer CPU, Microsoft still tries to force you to buy Windows 10 if you want a Meltdown-proof operating system.

      You also need to port all your software every few years because Microsoft replaces software environments faster than they can debug them. I would highly recommend to use something like GCC on Linux so your code (and compiler) will just work 10 or 20 years later.
      It’s not that Windows is bad, it’s just designed to be sold commercially, which requires intentionally making new stuff incompatible, else no one would have a reason to buy the next version of there OS.

        1. You can use both in tandem. Visual Studio is great for how easy it is to bend it to your will. Like perhaps your will is to replace their build process with one that routes the build into GCC and parses errors messages into the output box for proper IDE support. I believe you can actually use official extensions that are freely available to build with GCC from Visual Studio as well in anything newer than VS2012. Not certain since I stick to VS2012 due to all my stuff I’ve developed for it being non-trivial to port into newer versions.

          1. I work on the Visual Studio C++ Linux support. You can use VS on Windows with C++ targeting Linux and build on a remote Linux machine with GCC. That can be driven by our build system or CMake. We also support cross compiling for ARM microcontrollers on Windows using GCC and make. This is all in VS2017 including the free community edition.

    1. That’s rather unfair…

      Most of the programmers I’ve known work very, very hard at finding ways and/or excuses for not doing what they are supposed to be. Or what they’ve been told to do…

  5. Hmmm…. my life started with a C64, then an Amiga 500 and 1200 later. My transition to Windows went with a lot of problems… I simply did not like a lot of things about windows at the time. But when the years passed I must admit that I could do everything I wanted with my Windows machine. So over the years I grew from a Windows hater to a satisfied Windows user. Sure there are issues, but seriously, is it that bad as some hackers might tend us to believe.
    There are lot’s and lot’s of tools for t he windows environment that help lot’s of people that tend to call themselves hacker. Although, I must say that the term hacker is no applied to anyone who can hold a screwdriver and has allmost nothing to do with the original intention of the name, but that aside.
    The fruit logo company has their problems too, I would not consider them friendly in many ways.
    When my laptop with windows XP was considered “end of life” I wanted to install the OS with the pinguin. I tried many flavors, but every time the computer started I would not see my network (cable version) and the wifi network only worked for 2 or 3 minutes then suddenly disappeared. I would not call that friendly. I also found it very frustrating to work with a pie when I didn’t even know a simple command in order to solve a booting problem. You may call me an idiotm, you may call me afraid of reading manuals. But all of this never happened on a windows system to me before.
    Every system has it flaws. MS Windows has served me well for many years now, please don’t attack it because you think your OS is so much better… because that only looks like it from your point of view.

    Sometimes it feels like the OS (or brand) people use is like a religion they follow follow and everything else is inferior, why is that?

    1. This is not about religion or whether one OS is better than the other it’s about proprietary software versus free software. Either you control the software or the software controls you. When working on your Windows PC ask yourself does this machine obey me or M$?

    2. So your experience with Windows is:

      “Sure there are issues, but seriously, is it that bad as some hackers might tend us to believe.

      But then Linux:

      ” I would not call that friendly. I also found it very frustrating to work with a pie when I didn’t even know a simple command in order to solve a booting problem.”

      To an outsider it seems you prefer Windows because you took the time to learn it, and dislike *nix because it would involve learning how to use it. Don’t you think this opinion might be formed by the fact that you are unwilling to put in the effort to learn? Why were you open minded to change 20 – 30 years ago, but now are not?

        1. Because when you have learned it, you will become extremely productive. When you do everything by commands, you’ll learn that you’ll never have to do anything more than twice. First time you have not yet realized that you will do this again. The second time, you’re writing the script. From then on, repeating the task is reduced to just trigger the script :)

          But, alas, it will take some time to become fluent -as is the case with everything. It might be frustrating at times, but all that’s needed is a “I know it can be done” mindset . And knowing that at the end of the rainbow you’ll find yourself with incredible power and flexibility at your fingertips.
          If you want to.

        2. I would say that learning shell commands (or any anything CLI) is similar to learning how to change your car’s oil or brake pads. While it is not for everyone, some people enjoy knowing more about the things they use in daily life. Changing your oil does not make a mechanic in the same way knowing a bit of CLI does not make you a sysadmin; but when something goes wrong you already have a better understanding of what might have gone wrong and how it could be fixed.

          Sure getting under the hood isn’t for everyone, but compare the hours a normal person spent with a computer 20 years ago to now. The average person lives attached to their cellphone/tablet/computer so why shouldn’t they try to learn more about how it ticks? I’m not saying they need to be proficient in understanding kernel dumps with one eye closed, but it wouldn’t hurt to introduce any normal person to a CLI so that they have a foundation to build on if they so choose.

        3. Windows 10 is a disaster without using shell and batch fixes, which still leaves it a disaster but one you can occasionally force yourself to live through for short periods of time.

        4. Because in 2018 there is no better way to interface a person to a computer. In the future maybe we’ll have brain probes to read semantic commands (“get from storage that document I saved yesterday at 17:20”) plus AI to understand them and inject the results into our brains (user sees the document and navigates/edits it via mental commands), but today all we do is through the mouse which is an incredibly limited interface. Think about it: on a shell you can arrange your input into a huge number of keyboard sequences (command names) followed by other sequences (command arguments) and validated by a return key. On a GUI your input is restricted typically to (double) clicking three buttons, one wheel and a few combinations with keys; if you need to perform 5 tasks you probably have to build an interface with 5 elements. In other words your interface doesn’t scale because after adding a few more “commands” it becomes cluttered, complicated to the point it distracts the user (there are papers on the max number of GUI elements an user can see on an interface before getting confused). On a text interface you don’t see the command you don’t need to write. Attempts were made to translate this into the GUI world using tabbed pages etc, but still it doesn’t scale well as text interfaces do.

      1. If you just want to get the job done, and time==money, you’ll go with Windows, there is no other choice. Macs are overpriced hype, Linux is a support nightmare. Don’t get me wrong, I absoulutely love Linux, I have multiboot USB stick with several Linux distributions in my pocket all the time, it’s my software swiss knife. But for average Joe *nix is a nightmare and very time-consuming if anything goes wrong, and as I said time is money, so just give him Windows+Office, and let him do his thing.

          1. Well, Windows will also let someone do all he wants. He just needs to know how to do it, same as the other OSs. I would say there are some things that aren´t possible in Android, but maybe they also can be done and is just me that still don´t know how.

        1. A rather narrow viewpoint and not very accurate.

          Modern Linux desktop distros simply work ‘straight out of the box’ or whatever the current marketing speak is.

          The majority of end-user complaints about Linux desktop systems arise when Mr. Ego ™ discovers that the security model won’t let him install filesharing software and/or break things at random so he has an excuse for not doing any work.

          Most of the rest are just the usual ‘oh my god it’s not Windows!’ nonsense. Once they get past that they usually find that there is very little difference between Linux Desktop+LibreOffice and MS Windows+MS Office from the ‘doing what they’re being paid to do’ viewpoint.

          There are of course those who simply ‘Will Not Learn’ ™. There’s very little you can do about them and in the UK you cannot dismiss them for refusing to use the tools provided. A rather unfortunate legacy of the Trade Union era…

          The simply fact is that most ‘support issues’ for both Windows and Linux usually arise from a lack of proper procedures, tools, etc. The recent nonsense with meltdown patches borking cloud hosting services is purely down to panic and a lack of proper pre-installation testing.

          1. That could be deliberate. Microsoft have a history of sabotaging competitors, FOSS and basically anyone who won’t pay the Windows tax.

            And to think this li’l ol’ country of ours once staged a rebellion over a windows tax :)

          2. Certainly wasn’t an accurate viewpoint. I have used both Windows and Linux since the mid-90s. Whatever you can do in one you can do in the other. There’s no one is easier than the other either. Take codecs for example. It’s a heaping mess of configuration in either OS. However I can make either OS play any type of video I want just by learning how their respective codecs operate and what parts of the OS they interact with. Most Windows and Linux users don’t seem to realize they have an option as for which media player they want to use and just use whatever plays the video they want to watch at the time or desperately install one “codec pack” after another to find it breaks a lot of things. Even among so called experts this crap continues, yet me a lone amateur figured each out with just a little bit of reading and good old fashion trial and error. It’s the same with just about everything else.

            What it ultimately comes down to is how willing one is to learn. Some people are so against learning that they would rather remain stupid and incapable of doing the things they want.

          3. Only reason for not using Windows is licensing. But in any bussines enviroment prices of licenses are minor part of expenses. What costs much more is reduced productivity, and free solutions with no support can lead to that. I use Open Office at home as paying for Microsoft Office doesn’t make much sense to me, I’d rather buy more RAM or HDD for that price, but in bussines it’s different.

          4. Only reason for not using Windows is licensing. But in any bussines enviroment prices of licenses are minor part of expenses. What costs much more is reduced productivity, and free solutions with no support can lead to that. I use Open Office at home as paying for Microsoft Office doesn’t make much sense to me, I’d rather buy more RAM or HDD for that price, but in bussines it’s different.

            Perhaps if your business is big enough to squeeze a large discount out of Microsoft but most are stuck with paying the ‘list price’ which can adds up pretty quickly with more than a handful of employees.

            Reduced productivity has very little to do with the tools and everything to do with staff training and attitudes, ‘Can’t Learn, Won’t Learn’ ™ costs far more than software licenses.

            That old chestnut about FOSS lack of support is complete nonsense. There are dozens of businesses providing paid support. You *have* heard of Red Hat haven’t you?

  6. I see some are missing the forest for the trees again. Focus, people on what the website is about. It’s not about “my OS can beat up your OS”. It’s not about the superiority of one philosophy over another. It’s about making learning fun, and accessible. Hopefully something everyone can get behind.

  7. Microsoft had .NET microframework that made embedded programming a easy. Remember the Netduino. Sadly they ignored the pronect to death even when the rise of IoT was obvious. They did open source it and it still lives on s TinyCLR.

  8. More useless toys to teach “coding” without really getting past chapter one. To get anywhere beyond the very basics you need to understand algorithms etc. hacking/programing is mathematics applied to an encyclopedic amount of esoteric knowledge and there is no way around that. These coding sites are like circuses for training monkeys to ride unicycles, without the monkeys ever knowing how a unicycle works or how to build a better one. Al I like a lot of your stories, but if people are being a little derisive about this one it is probably with good reason. As for M$, [DELETED]

    1. So if you don’t start on the hard math with boatloads of esoteric knowledge, you can’t go anywhere? What a loon. This is what gets young kids interested in tech. Kids learning the basic concepts of getting machines to do their bidding isn’t monkeys and unicycles, don’t insult beginners that way. As for You$, you’re a dick.

  9. I like to constantly test different versions of OSes to see if they include certain desktop packages and to browse partition editors. That is really all that matters to me and my spindle of discs.

  10. Is there any indication that all these “learning” environments actually end up being used to teach children about electronics and software development? Because every time I see a Raspberry Pi, an Arduino, a BBC Micro Bit or whatever it seems to be in the hands of an adult nerd. I actually wonder how the Raspberry Pi Foundation is able to justify their status as a tax-exempt foundation, they’re even selling industrial modules.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.