Hacker Newsnew | past | comments | ask | show | jobs | submit | bromagosa's commentslogin

Glad to see MicroBlocks on the front page of HN!

I'm one of the project devs. Feel free to AMA :)


Something that seems to always be missing from project pages like this: why? There are plenty of other similar projects that accomplish this, and in the case of the microbit, I can’t even tell the difference between your IDE and the one that comes with it. I don’t mean this in a critical way–I literally mean, “tell me why you. Hilt this. What’s better or at least different about your project? Why might I want to use this instead of the others?”


Actually, there are no similar projects that I can tell of. MakeCode, the "one that comes with the micro:bit", as you say, is not a live language and only works for a couple of boards. It's not even a language, it's a façade for an underlying text language.

To sum up what's different about MicroBlocks:

* It is blocks based.

* It is live. That means you can change scripts in real time while they're running. You can see the result of running any block in real time. You don't have to wait for any compilation/upload cycles.

* It is autonomous. You can disconnect the board at any point, and the program will keep running in it.

* It is parallel. You can run multiple tasks at the same time.

* It is portable. It runs in several boards thanks to our VM approach.

There was no language that did all these, so we made our own :)


"Similar" in terms of the job-to-be-done I had in mind—a Scratch-like interface for programming most if not all of the boards mentioned. These features you've outlined did not jump out at me at all on first glance, which is a shame!

I somehow totally missed the live aspect. That's super exciting (and impressive). And parallel!?!? A WYSIWYG parallel code editor for microcontrollers? How is that not the headline?

I'm glad I asked! This is quite interesting to me now. Thanks for your reply!


Yes, I totally agree that the website needs to make the important aspects apparent right away :)

We've been basically focused on finalizing the last details before launching beta, but reworking the website is on our list of urgent tasks, possibly even before the launch, who knows!


Excellent summary. The "oh wow this feels different" aspect of MicroBlocks comes after you try it. It makes programming microcontrollers as interactive and hands-on as building electrical circuits from discrete components. Your changes are immediate. And the live data graphing from sensors feels like a graphic voltmeter or oscilloscope. For physical computing it's simply the best learning tool I've ever encountered (note I'm an EE major, not CS). All those "real" programming languages now fall short in my view. I'm hooked.


I love Scratch-like programming environments in principle and as an introduction to programming, but dragging blocks with the mouse is tedious. Do has anyone ever tried to design a keyboard-based input scheme that still works in this graphical environment?


In Snap!, GP and MicroBlocks there's a pretty powerful keyboard interface to assemble blocks. I use it all the time instead of dragging blocks. Check out page 115 of the Snap! reference manual here: https://snap.berkeley.edu/snap/help/SnapManual.pdf

Jens Mönig implemented keyboard input for both GP and Snap!, so the same hotkeys will work on both. Since we're using GP for the MicroBlocks GUI, the same will also work on MicroBlocks.


Thanks, that looks exactly like what I was missing! Will try that out sometime soon! In my defense, "page 115 of a pdf file" is not typically indexed by search engines afaik ;)


Yup, totally. Power feature discoverability is not where we shine... :p


I've seen a few attempts at "structure editors" which are keyboard driven but limit what you can type so it's always syntactically correct.

Fructure is an example which looked promising! https://www.youtube.com/watch?v=CnbVCNIh1NA


Very cool stuff, thanks for linking!


How hard would it be to support the Teensy boards? I didn't see any mention of them one way or another in the website.


Hi Avi! Let me first say that my final project at university was about Seaside, and that project landed me a Smalltalk job that marked the beginning of my professional life as a developer. I can't thank you enough!

Regarding Teensy boards, it would have to be version >3.0, because MicroBlocks uses 32 bit instructions and needs at least 16kb of RAM. The Teensy 3.0 just about meets the requirements, and 3.1 exceeds them comfortably.

We don't yet support any M4 MCUs, but we do support a couple of M0s, so I think porting the VM to the Teensy should be fairly easy. I don't currently have one, but I see they're cheap, so I'm going to order one and try to find some time to work on the port :)

If you'd like to, we can continue the discussion over email at interest (at) microblocks (dot) fun.


microblocks.fun is still in Alpha, but check it out nevertheless! It works on lots of 32 bit microcontrollers.

It's been tested on the micro:bit, circuit playground express, calliope and several Arduinos.


Great! Congratulations on the web redesign as well!


Nope, you need to have contents in Catalan in your .cat site, not for six months but forever. I couldn't find this 6-months clause anywhere, and the terms don't mention it at all: http://fundacio.cat/ca/domini/sobre-el-cat/normativa

Furthermore, they clearly say that violation of the only usage restriction (contents in Catalan) can result in your domain being suspended.

edit: Just a little correction to your text in Catalan: L'idioma català és una llengua bonica. ;)


>> I couldn't find this 6-months clause anywhere ..

Actually if you try to add a *.cat domain through gandi.net, they included this clause as a tip-text encoded in the little warning image: "Warning: the registration contract for domain names in this extension require that you publish at least one page in Catalan within 6 months."


I tried the URL that's shown at the end of the video and it didn't work :(

Any live demos?


No, sorry. I'm moving coast to coast next week, but hope to start beta testing late April.

Enter your email on the website and I'll let you know before beta testing starts.


Is it opensource? I'd love to see the code.


Sorry, but not now. I still have hope of making some money from this, since I'm not really aware of any HTML5 image editor which outclasses my app.

Even though it doesn't earn me anything right now, I am just a little hesitant to share all the details about how it works. A lot of the specific canvas techniques I had figure out myself, and I'd rather not share all my tricks for free right away.

I did want to share some of the techniques I used in the form of blog articles however. I wrote one already on how to connect a series of points to draw a smooth curve: http://yangcanvas.com/smoothcurves


Well, opensourcing a product doesn't forbid you to earn from it, but that's your personal decision ;)


Haha very true. Considering that YinYangPaint hasn't been received so well as a simple product, perhaps opensourcing is a good idea.

At this point, I'd be happy to settle for "good enough for people to look at the code" even if it isn't "good enough for people to use as intended."


Ship it as a mobile app, seriously!


Yeah I'm really enjoying it, would love it on Android. It's different enough from Threes and Fives to warrant its creation.


would definitely agree, its a really fun game!


Check out Fives on Android--similar but I think way more polished, and well, on your phone: https://play.google.com/store/apps/details?id=com.rcg.fives


I was thinking exactly the same thing! What kind of stuff would you want to keep on a straight trajectory and prevent from steering?

Many studies that seem unpractical or even stupid at first sight become genius when somebody finds a problem to which they are an elegant and obvious solution.


«The first true object-oriented language. But it seems to me Smalltalk is pretty much a forgotten language.»

Why do so many people kill Smalltalk so fast?

I could give so many URLs to illustrate how Smalltalk has a stable and growing community, with so many open projects and people making a living out of it, teaching it in universities and using it for research, but I think these two links sum it all up:

http://forum.world.st/ http://smalltalkjobs.wordpress.com/


Well, just from my noob point of view, every time I've dug in and tried to get into Smalltalk, I've found the language to be really really nice, but I've found the ecosystem to be really really confusing. The concept of needing a development environment and a persistent image (probably not even using the right terms...) just doesn't click with me. I struggle to figure out where to put things, or how to use my editor, or how to use source control, or how to distribute my programs, and maybe some other things I'm forgetting.

I'm sure there are mind-expanding answers to all these questions, and I remain open to learning, but I wanted to give a counterpoint to the frustratingly inane "har har curly braces" sibling comment. Sounds like Pharo is nice (but that's what I heard about Squeak before...).


Sounds like you are not "ready" for Pharo yet. The problem with Pharo is that, as I said in the comment below, it's all in one package - it has built-in editor, built-in version control and package system, file manager, and generally built-in tools for almost everything. Image-basedness is also a big difference, it's a powerful concept, but it can be hard to really grok and use it effectively.

From what I know I think there are two ways you could go to avoid all this problems until you feel comfortable enough with Smalltalk to tackle them again. One way is GNU Smalltalk, "a Smalltalk for people who can type", which feels fairly normal to work with. You can use your editor and version control software with ease. From the look of it it has a bit less libraries and a bit smaller ecosystem and community, but it could serve you well as introductory Smalltalk.

The other way is Amber, which is a Smalltalk written in JavaScript (or maybe it self-compiles already?). It comes with a "browser" (the thing you use to explore and write code in Smalltalk) implemented as a JS app and you can play with it immediately in your (web) browser. It's also half-image, half-file based, so while it will introduce you to the concept of image based environment, you will use your favourite editor and other tools.

Smalltalk can feel very confusing at first and it is really different from what you know already. It may not be always possible to learn all of Smalltalk system (like Pharo) in one go, especially if you're working and you don't have too much free time. Going through the stages, from less-smalltalky to full Smalltalk environment may take a bit longer, but it will make it easier to learn it.


Neat, thanks a lot for the run-down!

Getting back to the thread-starter: Why do so many people kill Smalltalk so fast? After reading your comment, my answer to that question is: because doing it The Right Way entails learning a lot more than just the programming language itself, and it isn't clear (to me) what motivates those things.


+1 for this - Pharo is my platform of choice for developing hobby projects and I'm really pleased with it. And it moves really fast, with 3.0 release scheduled this month (IIRC) and with very exciting features planned for 4.0 too.

I checked out some other Smalltalks, including the GNU and VisualWorks ones, but Pharo comes as the cleanest all-in-one Smalltalk starter kit.

On a related note, I recently started playing with Io, which is very interesting too. It's smaller than Pharo and not image based, which makes it better suited for scripting (although it's possible to run Pharo in headless mode), has easily modifiable syntax and is pure object oriented with prototypal inheritance. If you like Smalltalk give Io a shot, chances are you'll like it too.


> Why do so many people kill Smalltalk so fast?

Because it doesn't have curly braces. Entirely unfair, but it seems like if you want to sneak in an innovative language it needs to be a wolf in sheep's clothes. (IE: it need to vaguely resemble C)


I could make an argument for the exact opposite.

If a new language has curly braces is instantly reviled and deemed as "not innovative" by part of the community.


I think both are true, because "the community" is not one thing. It's a bunch of people, each with their own viewpoint. And a bunch of people have strongly-held views (in both directions) on curly braces.


That's one of the big reasons why javascript is so horrible. It is a really nice and innovative language, but it had to be dressed up to resemble C (or Java really).


But we also do have curly braces! For dynamic arrays! ;)

{ Number. #someSymbol. 5 + 6. [ :anArgument | anArgument doSomething ] value: 'some string goes here'. #(3 'hi'). 1000 factorial }


Since curly braces are a pain for me to write (on my keyboard), I strongly embrace languages who don't make them part of the important syntax.


Wouldn't it be better to buy a new keyboard and expand the range of languages you can type in comfortably?


I'm going to hazard a guess that the problem is not the physical keyboard, but rather the OP's use of a non-US keyboard layout. My native portuguese keyboard layout uses AltGr-8 and AltGr-9 for square brackets, and 7/0 for curly braces, and it's incredibly uncomfortable. I eventually changed to using the US International layout (with dead keys) to make it less awkward to write code, to the detriment of writing in portuguese.


> I'm going to hazard a guess that the problem is not the physical keyboard, but rather the OP's use of a non-US keyboard layout.

You're exactly right.


You could try to map '{' and '}' to some more convenient keys and still keep using your non-standard layout if it works well for other things.


It's not a "non-standard" layout, it's a non-US layout.


From my research, it's growing too, which I find awesome. I'm a fan of Pharo and Seaside :)


Yeah, all of those dynamic GUI creators are basically the corollary to Greenspun's 10th law except for GUI-makers.


Just a linguistic tip:

«mucho more information» sounds really bad. Information in Spanish is Información, which has female gender. Thus, you should better write «mucha more information».


> Just a linguistic tip: «mucho more information» sounds really bad. Information in Spanish is Información, which has female genre.

Just a linguistic tip: you mean gender, not genre. :)


Thanks, English is not my native language, as you may have noticed :P


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: