<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Moderate Realism (Posts about Mu)</title><link>http://ramblings.tjg.org.uk/</link><description></description><atom:link href="http://ramblings.tjg.org.uk/categories/mu.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2021 &lt;a href="mailto:mail@timgolden.me.uk"&gt;Tim Golden&lt;/a&gt; </copyright><lastBuildDate>Sun, 31 Oct 2021 11:26:50 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Teaching with Mu</title><link>http://ramblings.tjg.org.uk/posts/teaching-with-mu/</link><dc:creator>Tim Golden</dc:creator><description>&lt;div&gt;&lt;p&gt;At the club I help to run I started this week what I hope will be a regular
coding session using &lt;a class="reference external" href="https://python.org"&gt;Python&lt;/a&gt; and, of course, the &lt;a class="reference external" href="https://codewith.mu"&gt;Mu editor&lt;/a&gt;. I'm competing
directly with the regular football slot, so I'm not expecting to get
many lads. Yesterday I had three Year 8s.&lt;/p&gt;
&lt;p&gt;They were at different levels of beginnerhood and I had the usual range of
problems getting everything up and running, starting from the fact that the
room I'd hoped to use was occupied by older boys as an overflow changing room.
Anyhow, we had a good session, created a &lt;a class="reference external" href="https://gist.github.com/tjguk/61bd3e38c56fb5e1467381e5a9aa117e"&gt;simple fizz-buzz game&lt;/a&gt;
and spotted a couple of &lt;a class="reference external" href="https://github.com/mu-editor/mu/issues/683"&gt;minor&lt;/a&gt;
&lt;a class="reference external" href="https://github.com/mu-editor/mu/issues/682"&gt;bugs&lt;/a&gt; in Mu itself. With their
parents' permission I hope to get them onto Github so they can follow the
progress of "their" bugs.&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://ramblings.tjg.org.uk/images/coding-1033276_no_faces.jpg"&gt;&lt;img alt="/images/coding-1033276_no_faces.thumbnail.jpg" src="http://ramblings.tjg.org.uk/images/coding-1033276_no_faces.thumbnail.jpg"&gt;&lt;/a&gt;
&lt;p&gt;Really through force of circumstances we ended up doing a sort of &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Pair_programming"&gt;paired
programming&lt;/a&gt;. What you can see in the picture is everyone using the one
computer (my laptop). We attached a screen and a keyboard and the lads
on my right (your left) are using those, while the other lad is
using the laptop itself. I'm glad to say that they quickly got used to
the discipline of leaving the keyboard for the pilot only with
the various co-pilots just chipping in to spot problems. It ended up
being not unlike the &lt;a class="reference external" href="https://teachcomputing.wordpress.com/2013/11/23/sabotage-teach-debugging-by-stealth/"&gt;Sabotage&lt;/a&gt;
activity which &lt;a class="reference external" href="https://twitter.com/teknoteacher"&gt;@teknoteacher&lt;/a&gt; advocates.&lt;/p&gt;
&lt;p&gt;In spite of the Raspberry Pi on the table, we're not using an RPi.
The lad on my left is already a Linux user and the lad on my right was
keen to understand how he could use Linux and whether a RPi could replace
his somewhat underpowered laptop. Depending on how things look I might
start using an RPi next week.&lt;/p&gt;
&lt;p&gt;I'd hoped to try out the &lt;a class="reference external" href="https://kano.me/store/uk/products/pixel-kit"&gt;Kano Pixel Kit&lt;/a&gt;
which we were given at the recent Mu Moot, but I didn't have enough time to prep up for
that, so hopefully next time...&lt;/p&gt;&lt;/div&gt;</description><category>Mu</category><category>Python</category><guid>http://ramblings.tjg.org.uk/posts/teaching-with-mu/</guid><pubDate>Sun, 21 Oct 2018 15:44:22 GMT</pubDate></item><item><title>The Mu Editor</title><link>http://ramblings.tjg.org.uk/posts/the-mu-editor/</link><dc:creator>Tim Golden</dc:creator><description>&lt;div&gt;&lt;section id="background"&gt;
&lt;h2&gt;Background&lt;/h2&gt;
&lt;p&gt;If you follow &lt;a class="reference external" href="https://twitter.com/tjguk"&gt;me on Twitter&lt;/a&gt; you'll not be
surprised to hear that I'm involved in the development of an &lt;a class="reference external" href="https://codewith.mu/"&gt;editor called
Mu&lt;/a&gt;. As a matter of fact I've been loosely involved with
it more or less from its inception as an offline editor for the &lt;a class="reference external" href="https://www.python.org/community/microbit/"&gt;Python
micro:bit&lt;/a&gt; effort.&lt;/p&gt;
&lt;p&gt;When I &lt;a class="reference external" href="https://github.com/mu-editor/mu/commit/1cf1fca62a05f44e66745a18900d9075bcdb5622"&gt;first helped out&lt;/a&gt;
with a bit of bug-fixing and the like, I was doing so out of a sense of community
helpfulness and because of my friendship with Mu's originator and principal developer,
&lt;a class="reference external" href="https://twitter.com/ntoll"&gt;Nicholas Tollervey&lt;/a&gt;. I didn't have a huge
investment in the project myself and I wasn't honestly sure how far it
would go.&lt;/p&gt;
&lt;p&gt;While I still "Watched" the project (in the Github sense) I had nothing to do
with it really until about a year after that first commit when someone
raised &lt;a class="reference external" href="https://github.com/mu-editor/mu/issues/209"&gt;a bug about a disappearing selection marker when using the keyboard&lt;/a&gt;.
Now it happens that I know the person who raised the bug for reasons completely
unrelated to Python, Mu or anything else. And the simple fact of that coincidence
(plus my interest in what looked like an obscure issue) led me to dive in and
&lt;a class="reference external" href="https://github.com/mu-editor/mu/pull/218"&gt;fix that particular problem&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And I've watched the project get picked up and used by teachers and others
who appreciate what it does. As ever with these sort of things, it also helps if
you get mentioned by people like the Raspberry Pi Foundation, the micro:bit
Foundation, AdaFruit etc.&lt;/p&gt;
&lt;p&gt;Last night was the 2nd "Mu Moot" (the 1st was a &lt;a class="reference external" href="https://twitter.com/ntoll/status/1019297680294645760"&gt;meetup of developers&lt;/a&gt; in the,
appropriately punny Mu-seum Tavern). There were overlapping sets of Developers, Users
and Educators together at &lt;a class="reference external" href="https://kano.me/"&gt;Kano&lt;/a&gt;. And that get-together led
me to talk a little about Mu and why you would use it.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="why-would-you-choose-mu"&gt;
&lt;h2&gt;Why would you choose Mu?&lt;/h2&gt;
&lt;p&gt;I must be honest: this was my first question as well. There is absolutely &lt;a class="reference external" href="https://wiki.python.org/moin/PythonEditors"&gt;no shortage
of editors&lt;/a&gt; out there of all
shapes and sizes. Even though Mu aims squarely
at the education market, there are &lt;a class="reference external" href="https://thonny.org/"&gt;other offerings&lt;/a&gt;
&lt;a class="reference external" href="https://www.jetbrains.com/pycharm-edu/"&gt;out there&lt;/a&gt; which do the same.&lt;/p&gt;
&lt;p&gt;One answer to get out there right away is: you might not. There's no hard-sell:
if Mu works for you in your situation, use it; if it doesn't, use something else.
In fact, one of the Tutorials is precisely about &lt;a class="reference external" href="https://codewith.mu/en/tutorials/1.0/moving-on"&gt;Moving on from Mu&lt;/a&gt;.
It's never been an aim of Mu to be an all-embracing editor. In fact, it's been
a specific aim &lt;em&gt;not&lt;/em&gt; to be an all-embracing editor. It's right there in
the first paragraph of the &lt;a class="reference external" href="https://github.com/mu-editor/mu/blob/master/README.rst"&gt;README&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But now, having encountered in person and online, people who have said that Mu
helps them, I think I would put forward the following points which seem to be
headline reasons:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;It's uncluttered&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It makes working with the micro:bit easier&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It makes working with PyGame/Zero easier&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It makes working with Python easier&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can see a pattern emerging there, can't you? Although I wasn't involved,
I'm aware that Nicholas has taken a fair amount to time to speak to teachers
and other interested people to see what &lt;em&gt;they&lt;/em&gt; need from an editor. And the point
is that, as developers, we might be surprised at what a teacher considers
important. (A "teacher" here will generally refer to a Secondary School teacher
in a classroom situation, but could also include out-of-school clubs, Code Clubs
or anyone trying to work with beginner coders, young or old).&lt;/p&gt;
&lt;/section&gt;
&lt;section id="mu-for-teachers"&gt;
&lt;h2&gt;Mu for teachers&lt;/h2&gt;
&lt;p&gt;The point is that most teachers don't want to have to deal with the mechanics
of installing Python, installing various support libraries, working out where
on a filesystem an editor is storing its files, how to run those files and so
on. They want to get their pupils writing code which they can run as easily
as possible.&lt;/p&gt;
&lt;p&gt;Of course, in the abstract sense, we all recognise that there's a learning
experience to be had there. Learning how to install Python and what the pitfalls are.
Or even learning to build it from source with its dependencies. Learning about
pip and about virtual environments. Learning about filesystems and running
from the command line.&lt;/p&gt;
&lt;p&gt;The trouble is that most teachers are dealing with
a class of 30 students who may or may not be even marginally invested in the
subject. A dedicated after-school club or lunchtime session could be run for
those who are keen to learn. In a lesson situation, the teacher will want to
get up and running just as soon as possible.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="batteries-included"&gt;
&lt;h2&gt;Batteries Included&lt;/h2&gt;
&lt;p&gt;I'm not sure who coined the expression but Python has long been described
as coming with "Batteries Included". The so-called Standard Library has
code to do a lot of different things. Over the years, especially as the &lt;a class="reference external" href="https://pypi.python.org"&gt;package
ecosystem around Python&lt;/a&gt; has grown a lot, there's been a bit of a shift of
emphasis towards preferring 3rd-party packages which can iterate faster and
keep up especially with security rather more easily than built-in packages.
But Python still comes with an &lt;a class="reference external" href="https://docs.python.org/3.8/library/index.html"&gt;impressive spread of functionality&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you &lt;a class="reference external" href="https://codewith.mu/en/download"&gt;download&lt;/a&gt; one of the Mu installers you also get an array of useful
libraries, in addition of course to a full version of Python 3 with all &lt;em&gt;its&lt;/em&gt;
standard library. Of particular interest are: support for the micro:bit and
&lt;a class="reference external" href="https://learn.adafruit.com/introducing-circuit-playground/overview"&gt;Adafruit products&lt;/a&gt;,
plus &lt;a class="reference external" href="https://pygame-zero.readthedocs.io/en/stable/"&gt;Pygame Zero&lt;/a&gt;. The point isn't that you couldn't get
these things otherwise. But that, again, you're saving the teacher the headache
of installing those things with their dependencies. (And of possibly having to
negotiate the school systems admin).&lt;/p&gt;
&lt;/section&gt;
&lt;section id="not-just-us"&gt;
&lt;h2&gt;Not just us?&lt;/h2&gt;
&lt;p&gt;I've already noted that Mu is trying to meet the needs of an audience of educators,
not just (or not even) an audience of developers. And that, insofar as it has
managed to do that, it's by dint of actually going out and asking and &lt;a class="reference external" href="https://twitter.com/ntoll/status/1050365260476149760"&gt;observing
working educators&lt;/a&gt; or those (such as the &lt;a class="reference external" href="https://www.raspberrypi.org/"&gt;Raspberry Pi&lt;/a&gt; and &lt;a class="reference external" href="https://microbit.org/"&gt;micro:bit&lt;/a&gt; foundations)
who support them.&lt;/p&gt;
&lt;p&gt;But another "not just us" constituency are those for whom English isn't a
native language. I can't find the initial Tweet but a few months ago,
Nicholas started to call out to people to submit translations of the
editor text (the buttons, the help and so on). Glancing down the &lt;a class="reference external" href="https://github.com/mu-editor/mu/tree/master/mu/locale"&gt;locale
directory&lt;/a&gt; in the source,
I can see that we currently support: German, Spanish, French, Japanese, Polish,
Portuguese, Chinese, Vietnamese and Swedish. And English. There are &lt;a class="reference external" href="https://mu.readthedocs.io/en/latest/translations.html"&gt;instructions
for how to go about translating&lt;/a&gt;
and most of those translations have come from -- or been improved by -- people
outside the core team. If you feel you could offer a translation, please check
the &lt;a class="reference external" href="https://github.com/mu-editor/mu/issues"&gt;open issues list&lt;/a&gt; to see if anyone's already offering, and then try to
follow the instructions and &lt;a class="reference external" href="https://codewith.mu/en/discuss"&gt;ask for help&lt;/a&gt; if you need it.&lt;/p&gt;
&lt;p&gt;But there's even more beyond the language translations. We're conscious that
educators are often dealing with a range of difficulties from visual impairment
to dyslexia and other learning difficulties. There are several issues which
discuss things like &lt;a class="reference external" href="https://github.com/mu-editor/mu/issues/666"&gt;problems with screen-readers&lt;/a&gt; or
&lt;a class="reference external" href="https://github.com/mu-editor/mu/issues/633"&gt;specific fonts &amp;amp; colours for dyslexic coders&lt;/a&gt;.
To get a real-world trial, Nicholas worked with &lt;a class="reference external" href="https://twitter.com/bmustillrose?lang=en"&gt;Ben Mustill-Rose&lt;/a&gt; who is
severely visually impaired and who &lt;a class="reference external" href="https://www.youtube.com/watch?v=4xIt-6ZJiRc"&gt;attempted to use a screen reader to work
with Mu&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In short, as a project, we're &lt;a class="reference external" href="https://twitter.com/ntoll/status/1041982742894977025"&gt;keen to support&lt;/a&gt; as many people as much as we can while trying
to keep to the spirit of a stripped-back editor which gets on with the job and
then stays out of the way.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="bells-and-whistles-the-rule-of-three"&gt;
&lt;h2&gt;Bells and Whistles? The Rule of Three&lt;/h2&gt;
&lt;p&gt;Mu has always had this aim of being a simple editor. Uncluttered, just enough
buttons to do what's needed in a classroom situation, no multi-level menus,
support commonly-needed libraries. But people always want something else,
something which isn't supported. The fallback answer is always: if you're
looking for an editor to do X plus Y then Mu probably isn't the editor for you.&lt;/p&gt;
&lt;p&gt;Ultimately it'll be down to the developers, and to &lt;a class="reference external" href="https://github.com/ntoll"&gt;Nicholas&lt;/a&gt;
in particular to make a call on whether to go ahead with an addition or not. But
for a long time, he's had a practical metric: the Rule of Three. If three people
independently request a feature or a change, we can consider it a serious
prospect.&lt;/p&gt;
&lt;p&gt;Of course things are added for other reasons sometimes. Or not added even if three
people want them. But having a rule of
thumb helps to set the expectations of people wanting to add bells and whistles.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="the-future"&gt;
&lt;h2&gt;The Future?&lt;/h2&gt;
&lt;p&gt;At yesterday evening's Mu Moot, Nicholas outlined a sort of short-, medium- and
long-term vision for Mu. One concern of his is to raise the "bus factor" of
the project, which currently sits just above one. It's not that someone else
couldn't take on the technical aspects of Mu; I think anyone of us who have
contributed to the codebase could probably do that, albeit with a little support
in niche areas. Rather, the whole dynamic of the project is currently driven
by Nicholas and if he fell away, the project probably would too.&lt;/p&gt;
&lt;p&gt;But we also need to get more people using Mu in order to get the feedback of
whether it's genuinely useful for a wide range of people -- primarily educators,
but in fact anyone who finds a use for a simple editor with some useful
side-functionality, such as &lt;a class="reference external" href="https://codewith.mu/en/tutorials/1.0/microbit"&gt;talking directly to micro:bits&lt;/a&gt;
or &lt;a class="reference external" href="https://codewith.mu/en/tutorials/1.0/pgzero"&gt;running Pygame Zero code directly&lt;/a&gt;
or &lt;a class="reference external" href="https://codewith.mu/en/tutorials/1.0/plotter"&gt;showing plotted data directly in the editor&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you want to see what people are doing with Mu, have a look at
&lt;a class="reference external" href="https://madewith.mu"&gt;https://madewith.mu&lt;/a&gt;. If you want other people to see what you're doing
with Mu (even if it's just "using it in a classroom to get stuff done")
then &lt;a class="reference external" href="https://madewith.mu/submit/"&gt;submit your project&lt;/a&gt; and/or just &lt;a class="reference external" href="https://gitter.im/mu-editor/general"&gt;ping
the team&lt;/a&gt; and let us know about it.&lt;/p&gt;
&lt;p&gt;The good thing is that people are contributing not just questions &amp;amp; suggestions
but also code changes and language translations. Companies like Adafruit and Kano
can see the benefit of hooking up the kit they sell with an existing editor
which can be easily extended to use it. And there's talk of a web mode using,
perhaps Bottle to produce simple web-based projects for A-level students.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="and-what-else"&gt;
&lt;h2&gt;And what else?&lt;/h2&gt;
&lt;p&gt;Well the best comment made last night was from Jon, a teacher at a school
in Croydon, who says that &lt;a class="reference external" href="https://twitter.com/TopTenWeb/status/1052957572196646912"&gt;his pupils want&lt;/a&gt; the Mu logo to be a cow rather
than a snake, because you're "Coding with Moo". (&lt;a class="reference external" href="https://twitter.com/TopTenWeb/status/1053340027290374145"&gt;Or a kitten&lt;/a&gt;, apparently,
because then you're "Coding with Mew").&lt;/p&gt;
&lt;/section&gt;&lt;/div&gt;</description><category>Mu</category><category>Python</category><guid>http://ramblings.tjg.org.uk/posts/the-mu-editor/</guid><pubDate>Fri, 19 Oct 2018 08:06:29 GMT</pubDate></item></channel></rss>