Wednesday, August 26, 2015

Google Classroom vs ALE


Of course a lot of you loyal readers may have been wondering:  "ya'll are going on and on about ya'll's Asynchronous Learning Engine (ALE) but what about the Google Classroom API?"

Excellent question.

Google's metaphors are more staidly rooted in the idea of a brick and mortar building with classrooms, whereas ALE has more hints of travel industry thinking.  One may regard a lot of these differences as superficial, a matter of "skinning" (GUI = skin).

Having ALE and Google's classroom API both in the same genre or category is muy convenient as well, as that helps with comparing and contrasting learning engine models more generally, a discussion we need to have, as learning is now the core business of so many of us these days.

My work on ALE is influenced by years of working with Nano, an in-house solution wrapping an approach to andragogy which inherits from the DIY or "craftsman" schools, such as Make: Magazine. At the other end of the spectrum is kicked-back watching videos, passive absorption minus much kinesthetics.  Combine both modes, but definitely the "off your duff" active learning mode is not the one to sacrifice.

Differences in philosophy need not be closely followed by an API; the same classrooms and buildings get used by all manner of faculty member and student enrollee.  I'm not looking at ALE as staking philosophical turf except insofar as I've suggesting making "grading" ancillary, an add-on.  ALE should be compatible with a non-graded flex-time style (self paced) but not dictate this template as a universal format.

Testing a prototypical Python course in the Google Classroom sounds like a worthy project.  That would be hands on experience I could take to the bank when it comes to envisioning a next generation of Nano.  Y'all would benefit.

ALE is vaporware as of this writing, a stub ready for test case development, however it inherits from a working version within an operational school.  Google is ready for developers to start using its API today.

Google Classroom is an exciting reality and door-opening possibility I'm eager to explore more deeply.  I've been nudging the Quakers about it, given priority access is reserved for non-profit / non-commercial enterprises.  We could use it to conduct Interest Groups.

Saturday, August 22, 2015

Sky Writing

DSCF9912

DSCF9908

DSCF9911

DSCF9914

DSCF9916

DSCF9917

:: more cool moon ::

Thursday, August 20, 2015

The Farmer in the Dell

Lesson2.py output

... the Dell in the Farmer.  Lets think of a farmer riding a tractor, the tractor in a field.  Yes, the farmer is in the field, but then so has the farmer internalized the field, a mental field.  People do that with fields.  In the computer language I'm learning, Python, the method for adding a Tractor to a field is a time to give the farmer, the self of the Tractor, a handle on the Field.

tractor_born
the self of "this Field" is provided to the "self" of the added Tractor

One may view that in source code at GitHub, where Lesson1.py defines the Field and Tractor, along with a subclass of Tractor for writing in the field.

Then Lesson2.py defines another subclass of Tractor, the CropCircleTractor, that appropriately plows or plants a Mandelbrot in its Field.  The output is just a text file, ASCII art, whereas in future Lessons one might use PIL, or POV-Ray, or VRML or even Visual Python.

The Field is an XY layer, a grid of cells each addressed by two numbers, a familiar tool.  Piling up these layers, 3D Printer style, would be a way to encompass Volume which contains shapes we might address in various ways, perhaps with XYZ coordinates, adding Quadrays as a less familiar tool for contrast.  The Mandelbrot might become a Mandelbulb instead.

The Tractor comes with a TV-like raster motion.  A real tractor would turn around and come back the other way, but this one works more like a spiral, as if the end of a row connected to the beginning of the next at the other side of the field.

I_notebook_fractal

Then, having traversed the very last row and coming to the end, the Tractor magically reappears at the start again, to begin its trek all over.  What we lose in freedom, we gain in the simplicity of the code.  Provided the Tractor has enough fuel (there's a fuel_level), every cell will get visited within a circular topology.

Another subclass yet, of which I've already done some versions, plays a Game of Life using rule-governed cellular automata.

Might we alter the Field class to consist of hexagons instead? Games of Life may be played that way too, and are, quite a lot.

Could our Volume be as if filled with rhombic dodecahedra, perhaps using Quadrays again?

These vistas stretch out before us, which speaks well for the simple ladder that got us up this high, where we get lots of overview.

Using Pillow & I-Python Notebook

Tuesday, August 18, 2015

Film Theory

I'm going out on a limb here to suggest a hallmark of fictional films is they participate in the same voyeurism as fictive theater in denying there's either an audience or a point of view.  We're complicit in this mutual agreement to suspend disbelief.

To call it "voyeurism" maybe makes such outright denial sound bad or dark, however the motive is innocent enough and has to do with removing any troubling metaphysical questioning from the viewer's mind, such as "how could I, in the 21st Century, be witness to a battlefield in a war fought over a hundred, or even a thousand, years ago?"

The obvious answer, "this isn't real" just gets in the way of getting into the fantasy.  The whole point of a cave-like theater, bright screen, surrounding sound, is to "put you right there" meaning the thoughts we don't want to be pestered with are such as "I'm staring at a screen in a dark room at events that never happened."  We can think that later, after getting our money's worth.

So just don't worry that movie cameras of this quality had not been invented yet and that those awesome sweeping aerial shots would have required technology unavailable at the time, not to mention awkward to deploy in the midst of battle. Forget the fact you were not alive at the time and could not have been a direct witness.

A long time ago we theatergoers got used to omniscient narrators who have the ability to flit about seeing and knowing everything, even the secret thoughts inside people's heads, given the power of novelists to create characters straight from their own imaginations.

We're told this "choice of voice" is a matter of tense and grammar, versus an author assuming superpowers to know in ways mere mortals don't.  Again, we're complicit in wanting this omniscience and will trust our authors and directors to conjure its facsimile.

Fiction denies the camera.  On the other hand, to acknowledge both an audience and a camera is not to escape the vortex of fiction and, in fact, escaping said vortex may not be the film maker's intent. Film and theater are art forms and fiction has always been fair game, ditto stage magic.  Newsreels came later.

I have no quarrel with fiction, nor have most moviegoers as a clientele, those who are sticklers for strictly the documentary genre being a relatively small minority overall.

However, speaking of documentaries, many of those deny the camera too:  there is no film team, this is not a film, is more the attitude.   Perhaps we have an omniscient narrator, that tells us what we need to know.

Applying my criterion, I'd say such films tilt towards being fictional.  Non-fictional films include the process of making the film somehow and acknowledge the reality of an observer making a difference in some way, if only in choice of scenes.  An observer is also an editor.

Film removes two freedoms the novel reader takes pretty much for granted:  the freedom to "make the movie" in one's own mind, to imagine the action, and to create a point of view from which that action is perceived.

The theater substitutes an imagined scene for a real one, acted out with scenery, and now the points of view are limited to those within the theater. Some are in the balcony or in boxes, whereas some sit below in the orchestra section.  Buying a seat is tantamount to choosing a viewpoint, as is buying a pair of good binoculars (or opera glasses as the case may be).

The convention with film and TV is the viewpoints are chosen for us.  This becomes more clear when we consider the alternatives.  Some immersive recording devices provide a complete sphere or almost a complete sphere of action which the viewer may then swivel within, in real time, looking in different directions from a center point, as if turning one's head in all directions.

In ordinary movies, one has a choice of what part of the screen to gaze at, but even then, a director is directing attention, choosing an angle, and if engaged at all, we usually see what we're intended to see.  Providing TV viewers with a remote control and the ability to pause, go forward, go back, pick a scene, play slowly... these were new powers that early ticket-buying film viewers did not enjoy.

Now it's getting easier to quote video, to splice it in, grabbing from free and/or for-a-fee sources. Making home movies that were clearly amateur was a possibility.  Nowadays, more with less and ephemeralization have taken their course and the barriers to going pro are less physical than psychological.

Sometimes we can move between a fictional no-camera-here scenario and a more grounded one. For example, when newsworthy events occur, it becomes possible to watch the "same" event through multiple news shows.

The added realism may come less from the news shows themselves, and more from one's recognizing oneself as a chief editor, somewhere along the production pipeline.

"This is how I put it all together" one says to oneself, acknowledging one's process and assuming responsibility for a perspective.  This can be value added work, sometimes called analysis, or perhaps synthesis.  Perspectives, as much as perceptions, may be dangerously out of whack and should be tested, reality checked and reviewed.  Keeping it fictive actually keeps us out of the danger zone in the sense that we don't care if it's "actually true" or not.

One may take that approach even when many of the news sources are doing their best to erase or deflect attention from any sense of a camera with a point of view, an innate bias.  That's fine. Semi-fictionalized versions may be the best versions available.

There's no depending on any input stream to stay purely factual.  Always allow for spin rather than fight the mere fact that spin exists, then apply counter-spin if you think that's in order or a part of your work.

Saturday, August 15, 2015

High School STEM

clojure_map

The above is from a Clojure REPL in the Eclipse environment (IDE), whereas below is pretty much the same idea in a Python REPL, in PyCharm.

The symbol 'map' is a built-in function in both languages and does the same thing:  it applies a function to each member of a collection.

How the collections are named depends on the namespace:  Python or Clojure.

The square bracket collection above [1 2 3 4] is called a vector and needs no commas as commas count as whitespace in Clojure.

Below, in Python, [1, 2, 3, 4] is called a list, though a tuple might have been used, in which case parentheses replace square brackets.  Commas would be required either way.

What Python outputs is not another list (or vector) but an iterator, named mo in the example below.  An iterator is by definition responsive to the next() function.

Each time the iterator is fed to next( ), it yields its next value in the sequence, by applying the lambda to a next element.  One might also loop over mo in a "for elem in mo:" construct.

A lambda expression in Python is a way of defining a function on the fly that need not be remembered with a name.  The Clojure function is likewise anonymous, using fn instead of defn.

python_map

Although full blown mastery of either Python or Clojure might be too much to expect of an average busy high schooler, with limited study and practice time, some exposure to both is not out of the question.

Let the spiraling begin!

A strong STEM curriculum would likely include at least some dialog with the various REPLs, with mentor guidance, and combined with self study.

Yak with Python.  Chat with Clojure.  Get used to having these tools around.  They're free for the downloading (IDEs too).  Instructional materials abound.  Get in gear!

Friday, August 14, 2015

Unicode Again

devanagari

I just discovered some bogus information I'd been purveying, which is that UTF-8, a way of encoding Unicode characters (actually code points), may include up to six bytes per character.

In fact, that used to be the standard, but per RFC3629, when Unicode merged with an ISO standard, the cut off was set to 4, covering hexadecimal numbers U+0000..U+10FFFF.

The Python docs themselves give a clear, if abbreviated, introduction to the history:
There’s a related ISO standard, ISO 10646. Unicode and ISO 10646 were originally separate efforts, but the specifications were merged with the 1.1 revision of Unicode.
This featured chronology at the Unicode.org website seems to stop in 1992 and doesn't talk about the 1.1 revision.

Monday, August 10, 2015

All Math is Ethnomath

I used the saying "All math is ethno-math" almost as a slogan on math-teach, a listserv where I'd posted thousands of entries.

But what does that mantra even mean?

Well, there's this literary conceit inherited from specific cultures, wherein "our" brand of math is "universal" and in that sense, culture-free.  "We're above all that" is the attitude (snobbish).

Peoples have wanted to get "above mere culture" such that, from an Enlightened stance, they could administer justice, lord it over those more mired in their cultural milieus.  Cults assured of their "above it all" status will gladly let others know of their relative inferiority.

Mathematics, including statistics, invented by sociologists and statesmen alike (yes, mostly men back then), was to be the tool of Empire and, as such, a product of Reality Itself.

Imperial grammars all tend to assume great gravitas and may begin to exude that "sheen of eternity" -- a shiny polish or reflective veneer.

Those who speak the mainstream Mandarin will tend to impute "ethnicity" to everyone else.  "Ethnic food" is "their food" -- perhaps delicious, but the point is it belongs to a "them", some "minority".

A mainstream mathematician is perhaps not in the mood to cop to any brand of close to home math as having any "ethnic" flavor.  Babylonians and Macedonians had their quaint ways but by now our math is Universal, has conquered all corners of Planet Earth.  That's an attitude.

However, in these days of post postmodernism, I think a far greater number of academics are friendly to the view that yes, all math is indeed of some ethnic flavor.  We may and probably should study math in a cultural matrix, rather than erase or deny these special case roots.

But lets not confuse "ethnic" with "parochial" necessarily.  World-traveling pirates who put in to many ports, with crews in turnover and networks of spies and informants across the lands, would have had more opportunity to develop what I'd call "cosmopolitan" traits.  They'd be more catholic, more liberal in their outlook, one might surmise, more accepting of the diversity among the many cultures.

"Ethnicity" is one of those concepts that slices every which way.  Really one might better say "cultural currents" or "lineages" or "traditions".

One may talk about "races" but also "genders" and "social classes" and "the professions".

Think about it for awhile, and you'll come up with at least a dozen ethnicities you might go by, easily more.

In light of this backdrop in broad brush stroke, I did some work to brand specific geometrical artifacts as "Quaker".  That may seem quite weird.  The justification or thesis had to do with American Transcendentalism, New England's in particular.

The traditions feeding Quakers include some poetic currents flowing through and around Bear Island, for example.  The World Game idea, so attractive to Medard Gabel, is decidedly pacifist in competing with any War Game for attention.  GENI is about bringing power to the people -- literally, in the form of electrical distribution networks.

Once a people have banded (or branded) into a "tribe" with some currency and reputation, with some semblance of self governance, then perhaps the mathematics they pass along to their progeny, like their myths and bedtime stories, might achieve the coveted "cultural" status, i.e. some of the artifacts, the algorithms, become museum quality exhibits, like exquisite baskets or china on display.

Certainly the ethnicity of "ancient Greek"--  as in "Athenian" -- became a hallmark in the annals of Ethnic Math.  We all learned respect and admiration for those ancient Greeks and many of us gladly lay claim to that lineage.  "We too are worthy heirs".

In any case, you'd be hard pressed today, in 2015, to find many if any Quakers (besides me that is) talking about "the IVM" or "the Jitterbug Transformation".  You'll find all these terms, along with the associated mathematics, on the web, and in Wikipedia, but any adoption of such topics by Quakers is hardly on anyone's radar.  "Not just me, but still just a few" would be my assessment.

So consider you may have stumbled upon an esoteric memeplex then, possibly of some potency.  Stay tuned.

Sunday, August 09, 2015

Core STEM Topic: Cardio


The audience for Websites does not have to be "the public" 
i.e. a tool used inhouse to do an existing job is more our focus.  
My background is in medical research, heart stuff in particular.  
Why not start with the heart as a STEM topic?   
--  me on edu-sig@python.org
In learning to program a website, we might focus on anatomy more generally, but how about we start with this amazing pumping device and the service it provides:  sharing oxygen gas as well as metabolized food, to hungry cells throughout the body.

The beating heart is a very physics-oriented topic, ala First Person Physics (FPP), in that it's bio-electrical and has specific throughput to maintain, at a set pressure.   The alimentary canal aka digestive tract would be a next system to explore, with musculature and skeletal framework providing the means for motion, including within an environment.

Elastic Interval Geometry (EIG), somewhat obscure but well-developed in software by Gerald de Jong and some others, provides a bridge topic twixt ordinary vector mathematics, developed in our  { Python ↣ Java ↣ Clojure } spiral, and muscle-bound creatures with traction, on a planetary surface.  Gerald invented Fluidiom to model a kind of genetic algorithm whereby those elastic geometries with the most ability to "get somewhere" rose to the top.

EIG simply applies tension and compression values to Edges, where any Edge is defined by two Vectors.  The vector tips or Points do not really exist in a sense, in that all the math happens in the connecting intervals, the "I" in "EIG".

Stretched to longer than equanimity, the Edges pull, work to contract, whereas those compressed beyond equanimity press to elongate.  The vector sum of all these tendencies takes us to a next iteration in some smooth animation.

Going from all "resting" Edges (no forces) to a regime of pushing and pulling, ala the Tensegrity or "floating compression" concept by which EIG is inspired, takes us from a Platonic Realm into something more energetic and unsettled, capable of far-from-equilibrium dynamism.

But those Fluidiom creatures are still purely mathematical and don't need a beating heart to "get somewhere", which brings us to the cardiovascular system as a place to anchor fluid dynamics in a different sense.

In FPP, we're keen to generalize around the concepts of Energy and Energy per Time i.e. Power.  Metabolites, impounding solar energy in the form of hydrocarbons e.g. sugars, power the ATP cycle whereby the "bio-batteries" continuously charge and discharge.

Thursday, August 06, 2015

Eclipse for (+ Python (+ Java Clojure))


Eclipse + PyDev (August 2015)
:: Eclipse + Python ::

Some folks are understandably confused by all the jargon, as in "what's a virtual machine?" -- one needs context to resolve that.  Some VMs host operating systems however more usually it's the reverse:  an operating system (such as Windows 10 or Yosemite) hosts one or more VMs.

A breakthrough in recent computer science was the building of some "Great Pyramids" we never see in the desert, and yet they take gazillions of people hours to build.  They're packed with fancy algorithms.

I'm talking about the engines that specify their own bytecodes to which other higher languages might compile, and then those languages the run on top of them.

The JVM is one of the best known of these pyramids and is the target for several not-Java languages, the Java Virtual Machine having started out as Java's host within a platform (also known as the JRE or the Java Runtime Environment).

Whether you have Android or Windows or Linux, you have a JRE free for the downloading, plus often it's pre-installed.

Thanks to the JVM, one of the paradigm Object Oriented languages (Java) and one of the newest Functional Programming languages (Clojure) have become interoperable.  They both target the JVM.  Java coders can take advantage of what a Clojure genius writes, and vice versa.

The .NET VM, another virtual machine with open standards (i.e. world class), is likewise a shared target for interoperability:  as long as we all share the same Common Language at Runtime (or CLR), we're able to interweave our programs, and therefore our subcultures. 

IronPython and IronRuby are examples of the higher languages targeting this VM.

Python has not been left out of this equation as Jython, supported by Oracle, likewise targets the JVM.  Learn Python on its native C-language VM, then move to Jython and Java, in route to Clojure as a way of rounding out your language savvy.  From that beginning, you're in a strong position to branch out.

On edu-sig (Python.org) and the Clojure list (a Google Group) and other places, I'm noticing this ecosystem, of Python + Java + Clojure, and suggest we embrace it.

Having one IDE (integrated development environment) that does all three is a big plus.  Eclipse and IntelliJ both come out on top as strong candidates for this role.


Eclipse + Clojure 
:: Eclipse + Clojure ::

Tuesday, August 04, 2015

Art Displays


DSCF9506


DSCF9483


DSCF9484


DSCF9497


DSCF9515