Lion's posterous

Lion's posterous

Lion Kimbro  //  I have an idea! Why not let's make a new society?

Apr 10 / 1:55pm

"Can I stop living in the moment now? There are dreams inside of me."

  I was talking on my Facebook about some difficulties I was having
  writing out my life philosophy.  I work on creating new societies,
  and I'd like to be able to succinctly share my own thoughts on my
  orientation towards life.

  Someone I know and like responded with, "That's why I've decided to
  more or less stop writing and do more living. How deeply can I touch
  this moment? Not that writing doesn't sometimes help to touch a
  moment more deeply."

  -and my thought was: "Ah, now, there's a familiar argument..."

  Because -- just three days ago, on Saturday, at the Easter party at
  my mom and dad's place, I was talking with a family friend.  (Names
  omitted because I haven't asked permission to use them.)  She was
  telling me that she was reading Eckhart Tolle, and connecting with
  the present moment.

  But it's more than that -- most everybody I know who is spiritually
  minded, is talking this way -- whether they are near or far.

  Philosophies are like giant ships, gigantic structures floating
  through histories.  They are shaped by historical forces.  When
  everybody (or at least, a lot of people) are thinking similarly,
  there's a reason, a story behind it.

  So what is this philosophy that people keep telling me?

  Now I need to make a cautionary note -- I don't know the person very
  well, who said the things that triggered this blog post.  Perhaps I
  am way off, in this individual's case.  But I don't think that I am
  far off in the general case.  So, MB or KW, if I get what you meant
  way off -- please forgive me, and I welcome your correction.  But I
  think you will be able to recognize the general case story that I am
  talking about, and I think it's very likely that you'll be able to
  substantially identify with it, too.

  So what's this philosophy?

  Here I think are some of the core ideological points.  I don't think
  the ideology sees itself as an ideology -- it's in the category of
  ideologies that are anti-ideological; And yet, whoah, when you look
  at it, familiar patterns emerge in the motions of thought.  I argue
  that it *is* an ideology.

  Point: "Life has no meaning."

  The argument goes that meanings are the products of abstractions
  which are inclined to become increasingly unreal.  Some people put
  the boundary of this at mainly human knowledge ("What's a good way
  of organizing my closet?  What's a good way of organizing a
  society?"), and some people extend it to the cosmic ("The universe
  is play; Our lives are the universe at play.  The universe is
  playing hide & seek with itself.")

  There is no right way, and "right ways" are the products of
  controllers, the overly serious, the patriarchs, the law makers,
  wanna-be Moses', etc.,.  Anyone who talks about a meaning is
  basically assigning you a job, and thus having YOU live out what is
  in fact THEIR drama, making you a slave.

  So:  This being the frame of the world, what do we do?

  Here the aim is to get past the abstractions which just confound
  human beings, so what we do is focus on the sensations of the
  present moment.  We put a stop to the mind, to thoughts, which run
  incessantly like a crazy wind-up toy.

  So:  This being the frame of the world, how do we communicate?

  Because nothing has any meaning, we focus on the sounds of the
  words, rather than their meanings.  Non-verbal communicate and
  peace-communication becomes essential.  Focus goes to the muscular
  and emotiona motions behind words.  We listen for the anger, or we
  hear the desire, or we hear the warmth, or we hear the coldness.
  "That's where the real value lives."

  Because if you focus on the "semantic meaning" of the words, you're
  going to miss it.  All the action is going on underneath the
  semantics.  If you're "in the moment" (which is the enlightenment
  state of this ideology,) then you're going to get all that rich
  juicy underneath stuff.

  Practices approved by this line of thought:
  * sitting meditation
  * listening, "really listening," to people
  * going hiking
  * listening to waves
  * and (of course:) "being in the moment

  Appreciations:
  * Buddhism  -- "religion without the 'stuff'"
  * Taoism  -- (the same)
  * stillness
  * the aesthetic of "emptiness"
  * veneration of relaxation, middle-class life, and compassion
  * games & play; layla
  * did I mention stillness?

  Affinities:
  * circular (cyclical) views of the world
  * anthropology
  * nature

  Aversions:
  * interpretation
  * grand narratives
  * business
  * activity

  Entering the philosophy:  Alan Watts

  Inside the philosophy:  Eckhart Tolle (The Power of Now, a New Earth)

  Exiting the philosophy:  The Landmark Forum  (still in it, though)

  Okay.  I've explicated the philosophy.  Everyone know what I'm
  talking about, kinda?  It's a huge thing and many words written
  about it.  I think I've pointed at it enough, though, so that
  someone who is "in the scene" or alive in spirituality/spiritual
  communities/the New Age/Metaphysical/philosophical bookstore at this
  time should be able to recognize it, though.

  I'm at the 28 minute mark, and I meant to write for only 30 minutes.
  I'm going to give myself another 15 minutes before I head down to
  get a burrito.

  Maybe I'll write another post tomorrow to continue.  Anyways, here
  really fast is 15 minutes of an alternative to the philosophy, and
  maybe some problems with the philosophy.

  Well, I'll just say what I want to say.  It probably won't make
  sense, but maybe you can piece together clues.  If there is
  interest, I'll formulate something stronger and I'll definitely
  answer any questions.

  MEANING.

  Meaning may not exist in any sort of "hanging out in space" absolute
  sense, but meaning exactly and ALWAYS exists inside the human brain.

  Look at the absurdity of this -- too.  I mean, there's a part of
  these people where they get upset if you say, "No, there is
  meaning."  Because they're actively trying to stamp out any and all
  sense of meaning ("within reason, dear fellow, within reason") from
  their minds.

  What they are missing is that the universe is alive inside of them
  and that it is perceiving meaning.  Where is that meaning?  It's not
  hiding out there in space; It's the universe's exploration of its
  interior.

  And -- it's not just a game.  A game is by definition something that
  doesn't mean in reality.  It's "pretend."  But the proper motion for
  pretend is to be an exploration of the real.

  The Real -- "reality" -- that's something very scary for most
  people.

  A lot of times, the people in these philosophies have made turtles
  of themselves.  And yes, they absolutely are involved in compassion
  and making the world a better place.  Absolutely.  These are
  wonderful lovely people.

  But often, those who have not found a core "something larger than
  myself" that they are participating in -- or in moments of
  (necessary!) confusion -- go back to "well, nothing means anything,
  so it doesn't matter, and I don't matter, and that doesn't depress
  me becomes nothing matters, ..."

  Oh dear.

  What I mean is that there is a part of these people that sees that
  things do matter, and then they try to stamp that out, jump up and
  down on it, make that thought go away by strategies of misdirection,
  affirmation ("nothing means anything, nothing means anything,
  nothing means anything,") and "I just need to meditate harder,
  longer, and I will be in bliss and peace."  Many call it "the work"
  or "practice" or "daily practice" and on and on.  Enormous volumes
  of time go into this "most important" work of elminating all sense
  of importance.

  I've read your books;  Don't hide.  And I'm not your enemy.

  What about those people who are doing the good works?  Who are
  working as part of something larger than themselves?  But look:
  There is meaning.  It's right there.  That's exactly where it is.

  ...

  Hang with me.  I'm collecting my energy; Revisiting the arguments in
  my mind.  I'm speaking from the perspective of the perspective I've
  gone past, and I think, really, I should speak from the perspective
  I'm at, and that I want you to come *too.*

  ...

  The world is rich and alive.  It's also Real.  Meaning is real,
  consequence is real, but that doesn't mean that we are slaves to
  some remote disembodied God, or that someone is going to become your
  Pharoh, telling you what you need to do.  The reason is because the
  connection with reality is within yourself.  You can learn from
  other people, but the divine structures within the heart are visible
  for all to see.

  Joseph Smith and his concept of the Theo-Democracy.

  A saint is to be revered by his ability to help people to see, not
  by his ability to organize people.  When people who see organize
  themselves, then something of value has been done, and the person
  who was a seer is now one amongst many.

  The world is rich and alive.

  We are the Universe that is evolving.  There is a meaningful dream,
  a real draeam inside of us, that is striving to grow out.  We, in
  our genetic-mimetic-spiritual core, in our sex and ideals and hopes
  and powers, are participants and occupants of the great dream.

  The intellect is not our enemy.  Perception is not our enemy.
  Sensation is not our savior.  Really, what we are after is a
  liveliness.  It is a dance, but it is a dance that is going
  somewhere, too.  Because war is not something we can dance to.

  Those who feel the compulsion to think, we can apply our thoughts,
  and we need to find our thoughts.

  Are questions are of merit; They are not to be suppressed.  They are
  how the universe finds itself within the conscious plane.

  Really what we are after is the cooperation and communication
  between the conscious and unconscious elements.  The limin was not
  intended to be an escape.

  I am not seeking a "balance" point; I am seeking life and vitality.
  I know it in my body, and I know it in my thoughts.  Emotion and
  rational thought play clear and distinct parts in the dance.  Now I
  feel, now I think.  Conclusions follow.  They are of value.  One
  path was wrong, the other was right.  I went the wrong way, but I
  found the right one.

  This is not oppression or oppressive; Only what is oppressive or
  oppression will be oppressive or oppression.  We'll feel it in our
  heart, and communicate, to make sure we aren't oppressing one
  another.  But we'll also think and challenge our hearts at times,
  too.

  Desire and conscience are the guide.  The destination is the Kingdom
  of Heaven.  Yes, this present moment is great, but it is also full
  of horrors.  The excuse that "my eye does not see war right now" --
  "I am just looking at a computer monitor" -- is not a good one.

  One of the errors (horrors?) of the "present moment" movement is
  that it pretends not to see what it knows very well is going on.

  Intellect and powers are the manifesting arm of the flow of the
  spirit.  The perceptual arm is absolutely worthless if it is not
  flying with the intellect and powers as well.  The same is true in
  return.

  Today: Some people will be thinkers and strategists and perceivers
  and "psi" types.  But in the future, everybody will be empowered,
  without losing a smidgeon of who they are.  This does not mean that
  people are of lesser or higher value.  The evolution is eternal and
  spirals upward completely around the ever-present Love.

  Okay.  Times up.

Filed under  //  missionbroadcast  
Mar 6 / 11:52pm

tkhelp - the tkinter support module

Peoples, I've started work on tkhelp.  This is a tkinter support module.  I'm actively looking for collaborators, so please email me (LionKimbro@gmail.com) or call me (206.427.2545) if you want to participate in some way..!

Here are the links of import:

Here's a little bit about what it does.

Here's a basic setup:

>>> import tkinter
>>> import tkhelp
>>> tkhelp.setup()
True
>>>

That that setup() call does for you, is initialize the global Tk() instance, and then withdraws the window that (for whatever reason) tkinter or tk automatically assumes you'll be wanting.

(If you did want that window, call tkhelp.setup(withdraw=False)instead).

Now, create a tkinter tree...

>>> toplevel = tkinter.Toplevel(name="toplevel")
>>> b = tkinter.Button(toplevel, text="b", name="b")
>>> b.pack()

And, ask to see the widget hierarchy:

>>> tkhelp.print_hierarchy()
** tk [6095814] <Tk> **                           200x200+0+0
     toplevel [6817202] <Toplevel>                116x26+25+25
       b [919100] <Button>                        18x26+49+0

("print_hierarchy()" is a bit wordy;  you can also just use "hr()".)

The number within the brackets [] is the tk widget ID#.  The string within <> is the tk widget type.  The values on the right are width,height,x,y.  The indentation shows the nesting.

There are also functions for easily retrieving widgets, and getting information about them.

>>> tkhelp.wid("b")
919100
>>> tkhelp.fullpath("b")
'.toplevel.b'
>>> tkhelp.name("b")
'b'
>>> tkhelp.wclass("b")
'Button'

Note that, in all of these examples, I used the tk "name" for the widget "b" to identify it.  But you can also just as easily use the ID for the widget, or the full path.

>>> tkhelp.fullpath(919100)
'.toplevel.b'
>>> tkhelp.wid(".toplevel.b")
919100

("wid" is short for "widget id."  I'd use "id", but it's a built-in Python function.)

Of course, you'll want to access the widgets themselves, as well.

>>> tkhelp.find(".")
<tkinter.Tk object at 0x0000000002554390>
>>> tkhelp.find("toplevel")
<tkinter.Toplevel object at 0x00000000026A4588>
>>> tkhelp.find("b")
<tkinter.Button object at 0x00000000026BDB00>

These are very, very rudimentary capabilities -- and yet, incredibly helpful if you are working with tkinter.

This module is all about making tkinter easy to use, without putting a heavy layer on top of tkinter itself.  I'd rather give increased visibility to what is going on in tkinter, than put a layer on top.

If you are interested in learning about where I am going with this, or interested in contributing, please consult the Google Doc I've created for this project, or leave comment on this post.  I can be reached also at LionKimbro@gmail.com, or 206.427.2545 (Seattle, USA).

Download the code at github.

 

Filed under  //  planetpython   programming   tkinter  
Feb 20 / 5:27pm

tkinter Support Module?

Has anybody written a general tkinter assistance module?

I'm thinking of a module that:

  • supplies functions/tools to examine the widget hierarchy from the shell
  • wraps idle binding and .after scheduling, so that you can review bindings (like a task manager), see what's going on, pause/continue (control) idle executions
  • setup Tk & withdraw in 1 call
  • return the full path for a widget
  • standardize access to the text content of Text, Entry, etc.,.
  • ... (and anything else that makes life with tkinter generally easier)


Has anyone created such a thing?

If no one has created one, is there a good reason for that?

I'm somewhat baffled that tkinter has been around for more than a decade, and yet, to my knowledge, nobody has written a module like this.  The tkinter field seems to me to be stuck in time.

Filed under  //  planetpython   tkinter  
Jan 25 / 5:43pm

XML-RPC SOAP REST JSON-RPC in 2012.

The battle contenders:

  • XML-RPC
  • SOAP
  • REST
  • JSON-RPC

It is the year 2012.

 

It appears to me that this is what the reputations are like:

 Technology    General Opinion    Lion's Opinion  Difference        
============  =================  ==============  ===================
XML-RPC       0   (neutral)      +++ (great)     undervalued       
SOAP          --- (evil!)        --- (evil!)     valued correctly  
REST          +++ (great!)       ++  (good)      slightly overvalued
JSON-RPC      ++  (wow!)         +   (ok)       
slightly overvalued

It is the year 2012.

 

One of the questions people asked over and over, when comparing REST & XML-RPC, is this:  "What's XML-RPC have that REST doesn't?"

  Q: What does XML-RPC have that REST Doesn't?

Here's my answer:

  A: Primitive typed data transported effortlessly.

When you use XML-RPC, you basically get a wormhole from one environment to another.  The data types (numbers, lists, strings, dictionaries,) all transfer seamlessly.  XML-RPC takes care of encoding the data types, and then un-encoding the data types.

When you use REST, you have to define an XML structure for encoding your data, and then you have to define another XML structure for receiving your response.

But with XML-RPC, you don't have to do either of those things.  Because this is what you have with XML-RPC that REST doesn't have.

So stop asking that question!

 

REST & XML-RPC:  Different Purposes.

  • XML-RPC gives you native function calls across the Internet.
  • REST gives you data structures across the Internet.

Native Function Calls are Fine.

There is nothing wrong at all with using native function calls.

I have heard REST people argue on esoteric lines that we should only be using data structures and "representational state transfer" and such gobbledygook.

Nonsense;  There are plenty of great times when you just want a simple API that just works.

And that's what I've encountered so far with XML-RPC:  simple APIs that just work.

It takes near zero effort at all to set them up and make them work, on both the server and the client sides.

I work with service APIs all the time.  Sadly, they are in SOAP.  So many times, I'm working with them, and I think:  "Geeze, if this were XML-RPC?  This would just work.  There is zero reason that they need to detail the nuts and bolts so extensively here.  Just accept a key-value dictionary, rather than deeply defining these complexities with namespaces, nested types, and on and on."

However, I do not ever think to myself, "Gee, I wish this were REST, and that I was writing out code to encode and decode XML structures."

Yes, it is easier to write a "simple" XML encoder and decoder for basic data, but even simple things take time.  Far easier still is to have primitive types go out, and to receive primitive types coming in.  Because then I don't need to write an XML encoder or decoder at all.

Again:  That's what XML-RPC gets me.

REST is good too -- for what it's for.

I have nothing against REST.  I love making a GET and seeing exactly the data structure I asked for.  And then I love pulling out the URL for the next chunk of data -- a pointer value within the data structure.

Wonderful!

You can traverse the data structures in so many ways!

But you know what it's not?  It's not an automatically functioning API call.

So when I just want to call "server.creditAccount('lion', 300)", it's easier to just use XML-RPC.  I don't have to think about POSTs, I don't have to formulate an XML data format;  I just ... call it.

A Brief Note on JSON-RPC.

Great!  It's...  exactly the same as XML-RPC.

Except it's JSON!  Everybody loves JSON, right?  Primitive types!  Awesome!

But how can people be soooo excited when it's JSON, and soooo blase (or worse: "That should be REST!") when it's XML-RPC?

I'm pretty sure that the reason people are excited is because of the "JSON sugar" halo effect.

But really, with both of these RPC mechanisms, you never ever see the underlying transport.  Unlike SOAP, they work so great, and so "there's-only-one-way-to-do-it", that the implementations just work.

So who cares at all whether it's XML-RPC or JSON-RPC?

Again:  When they work, (and they do both work,) you never ever ever see the underlying transport.

I don't care either way about XML-RPC or JSON-RPC;  I just want things to work.  If the JSON excitement is enough to get JSON-RPC implemented and defaulted everywhere, fine.

But if your system permits XML-RPC, but not JSON-RPC, and you're wanting JSON-RPC, -- don't hold out.  Don't go, "Oh, I won't do this.  That is XML-RPC.  I heard that XML-RPC isn't RESTful."

A Wish.

The only thing I wish was easier in XML-RPC, and perhaps in JSON-RPC too (haven't had as much experience with it), is: SSL.

Just make the SSL easier to negotiate, and we're golden.

Jan 6 / 6:14pm

the Pinkie Pie Party

  After Sakura and I made the Pinkie Pie party, (4 days, nonstop motion,) we spent 2 days winding down.

  Sakura and I were at a restaurant, and she was playing on her Nintendo DS.  I was busy thinking about something.

  She put her DS down.

  She said to me,

    "Dad, ...  I don't really want to play this game."

    "I want to make another party."

Dec 30 / 2:52pm

"Dear Celestia, ..."

  I'm over the hangover, now comes the clean up..!  {;)}=

  The party was, to my thinking, a quirky yet huge success.
  For myself, it was amazing, mysterious, and wonderful.
  Perhaps friendship really is magic?


  == Quick Facts ==

  * 38 people (head-count during one of the video playbacks)
  * ended ~ 1:30 AM

  Sakura and I got home at 3:30 AM.
  I'll be there around 5 PM for clean up.


  == Observations ==

  The Bronies are very emotive & creative, and I think we're going to do, within 2 months, another build party with them.
  There is a lot of possibility for additional fandom actions taking place at Jigsaw Renaissance.
  Traditionally fandom has expressed itself in:  writing (fanfic), drawing/editing (images) -- net savvy forms.

  I think I see here that painting & construction are easy avenues for the Bronies;  I think the only reason they do not do it more is because materials and tools (particle board, spray paints, jigsaw, in this case) are not readily available to them.  But Bronies very quickly took up the task -- and enthusiastically so -- when those things were supplied at Jigsaw.  They even applied their own creativity and vision.


  == Theater at Jigsaw ==

  I am curious whether theater will work -- which is visible at cons -- ...
  But I am even MORE curious about whether improvisational theater specifically can work:
  I see the tendency towards antics and replaying scenes, but more than that, I saw people make up a scene, on the spot, using the Pinkie Pie board character that we had constructed (and, mostly carefully developed and attended to by Scorched Wing,) and then I saw them arrange themselves in the stairway with Pinkie Pie to frame and shoot the shot.
  I think that by applying the ideas in Impro & other theater books, we can further focus this and see more ambitious developments take form.


  == Props ==

  The role of props in the social space and in the public imagination was reinforced for me.
  The Twilight Sparkles stand-up on particle board was very popular and drew out strong emotion.
  I think this is something that Walt Disney had worked out -- he had noticed that what people REALLY want to do at Disney World, was to interact with the characters.  That's why people will wait longer in line (hours in line!) to see the Disney Fairies for a few minutes, then they will even to ride the Haunted House.
  I'll be revisiting Impro's section on *mask* work, and invite the woman who does mask work development to help inform -- and perhaps lead -- these efforts.  I'm kicking myself for not having invited her to the party earlier.


  == Costuming  & Plush ==

  I think there is a powerful opportunity here for costuming & sewing work.

  These people really want, and value, their characters.
  I have seen that they enthusiastically do things that they don't normally do, if given the materials and know-how.
  Perhaps this would apply also to costuming, and making plushes?

  Ordinarily, "men don't do these things."  But these are Bronies.  They have My Little Pony dolls.
  They're already jumping over stupid gender rules.

  I am 95% confident that if we had someone teach "how to make a plush", in a way that was do-able, they would follow the steps and make them -- and then take it to the next level, and the level after that, all on their own.

  They just need space, materials, and a little "here's how to do it."

  They will then make costumes, plush toys, etc., and sell them on e-bay (if they can stand to see them go.)


  == Upcoming Events ==

  Likely:
  * Build parties for completing the Mane 6 characters & making additional background characters
    (Derp, DJ P0N-3, Spike.)  Also, settings:  Rainbow arches, Tudor Ponyville houses, utilizing grid beam.

  Possible:
  * Grand Gala 2012 -- Summer or Fall
  * Plush creation.
  * Improvisational Theater.
  * Costume creation.

  Stand-ups will likely be attending Everfree NW mid-August.

On Fri, Dec 30, 2011 at 10:23 AM, Michael Park <mpark@jigsawrenaissance.org> wrote:
Several days of frantic activity culminated in an amazing party last night: http://www.jigsawrenaissance.org/2011/12/party-pix/
 
Congrats to Lion and Sakura for making it happen!

Nov 10 / 12:13pm

the Body

There's a theme that's been moving around in my thoughts a lot lately:  It's the theme of the body.

It is something that I have been reading about in Tameran and Damanhurian literature, a theme that Armen Moradians was able to explain to me in some detail, I see the theme in James Carleson's works and methods, it is evident in almost all artworks, I have discussed it with Brian Rice, and Michael Dobbie, and many others;  It is a theme that I encounter just about everywhere.

A post or an event or both is stirring in me; In broad strokes, it will reference:

  • Embodiment & Spiritual Reality
  • Embodiment & Spiritual Practice
  • Embodiment & the Arts
  • Embodiment & User Interface
  • Embodiment & Sexuality
  • Embodiment & Charisma
  • Emboidment & Ideas
  • Embodiment & Creativity
  • Embodiment & Writing
  • Embodiment & Chakras (New Age & Science)
  • Maps of the Body/Bodies


And finally, and perhaps most significantly to me:

  • The Limits and Traps of Embodiment


The last part will make use of solid criticism of the Esalen Institute (California New Age equivalent of a "Think Tank") as part of a broader criticism of (what I'll call) "The Embodiment Movement."  I will juxtapose with Damanhur, to demonstrate the difference between a society of Embodiment, and a society of Embodied Ideas.

It is my solid conviction that ideas and the body need and produce one another.  One without the other leaves me feeling dead inside.  Both spheres are alergic to the other in our culture.

Where I see the alergy to the body:  Our culture's lack of care for art.  The way we do not see ourselves as artists.  How we live sex, sexuality, and attraction.  How our culture disproportionately rewards a particular kind of analytic intelligence, which I see as basically a form of mental weaving.  The way we eat.  Our lack of exercise.  Transhumanist dreams of living inside of a computer.  Our lack of effort.  Our over-focus on a particular kind of information.  Our language of "tools," "information," and seeing everything as a computer -- what Jaron Lanier called "Cybernetic Totalism."  Oh yeah:  We're destroying the Earth, our greatest body.

Where I see the alergy to the mind:  One friend telling me "the body comes first," and other friends telling me "nothing means anything."  Our society's rejection of meaning and purpose, both on individual and collective basis.  Postmodernism.  Our society's depression.  Our society's fixation on sensual drugs.  Our society's rejection of ideas -- visible in the rejection of "-isms" of all sorts.  Our fixation on "the present moment," and willful distaste for any and all considerations of the future, except when we go to work and pay project managers.

This is not an abstract academic concern;  This is the difference between a powerful, extraordinary, & meaningful life, (which I believe is the birthright of all people,) vs. one that is lost to sensation, or lost in thought, or heck, just plain lost.

Most immediately and practically, I face the challenge of creating experiences for people that people love, that they find themselves in, and that they can connect with extraordinary ideas through -- ideas that are swimming within themselves, and outside of themselves.  The Damanhurians have a phrase;  They say:  "People need Gods, and Gods need us."  In one of the Batman movies, the speaker talks about how a man can connect with an ideal, and become more than just a man.  At the Shinto shrine, goji said that Shinto practice involves the connection of the human being with divine forces.  I believe all of this, and all of this makes perfect sense to me.

We are not here to emulate grass -- though this is the horror that most of embodied culture has presented me with.  Clearly, the mind-heavy traditions of the last millenia or two (or more) have led us astray.  But I don't see the solution in the rejection of the mind and the solitary embrace of the body either.  What is needed is a deeper analysis (yes, an analysis,) using our experiences for a foundation, and the discovery of fresh paths that connect the body with with the spiritual ideals within the human being, and also through the plantlife and animal life around us, and also the cybernetic organism about us, coming alive through our experiences.

The answer to this question is the answer to "What are we going to do today?"

Filed under  //  damanhur   jigsawrenaissance   missionbroadcast  
Nov 5 / 10:24pm

2-Dimensional Regexes

One of the themes I work on is creating new mediums for programming.

But what about in the mean-time, where we only have plain text?  Well, I think it's underutilized.  We can out-Lisp Lisp by string interpretation.

I've written before tkinter-based code before for creating GUIs out of text representations.

X- Tagged Text Browser ---------------------------------------------X
|                                                                   |
|  tags: [.tags_input........]    "- text_out -------------------"  |
|                                 |                              |  |
|  found:                         |                              |  |
|  [=entries_found===========]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [=========================]    "------------------------------"  |
|                                 (save_edits)              (quit)  |
X-------------------------------------------------------------------X

(A GUI, represented in ASCII text.)

One of the fundamental mechanisms making this possible is code for reading (say) 2-Dimensional representations in characters of rectangles.

I think I have, 3 times, for different libraries, written 2-D rectangle recognition code.

Let me tell you, it's a real bore.

Here is an example of what some such code looks like:

# Extend right, from the top-left.
        # It is possible that there is a label here.
        while extend_right.scan_char(h_char, 1, 0) is not None:
            pass
        if extend_right.at_topright_corner():
            label = None
        else:
            extend_right.scan_char(" ")
            label = extend_right.read_label()
            if label == "":
                return None
            extend_right.scan_char(" ")
            while extend_right.scan_char(h_char, 1, 0) is not None:
                pass
            if not extend_right.at_topright_corner():
                return None
        r_corner_char = extend_right.char()
        if r_corner_char is None:
            return None
        # Extend down.
        left = self.PRN.cursor(self.PSX, self.PSY+1)
        right = self.PRN.cursor(extend_right.PSX,
                                     extend_right.PSY+1)
        if ((left.char() == l_corner_char) and
            (right.char() == r_corner_char) and
            left.at_bottomleft_corner() and
            right.at_bottomright_corner()):
            l_v_char = None
            r_v_char = None
        else:
            l_v_char = left.char()
            r_v_char = right.char()
            if l_v_char is None: return None
            if r_v_char is None: return None
            while ((left.scan_char(l_v_char, 0, 1) is not None) and
                   (right.scan_char(r_v_char, 0, 1) is not None)):
                if (left.at_bottomleft_corner()
                    and right.at_bottomright_corner()):
                    break
            if ((left.char() !=  l_corner_char)
                or (right.char() != r_corner_char)):
                return None

(This is just the beginning.  It goes on and on, and then there are the support functions, and then there are the variants, ...)

It's boring.

It's the programming equivalent of shoveling dirt.

While I worked on the code, over and over and over again, and painstakingly debugged it, I kept thinking, "I need regexes...  I need regexes...  I need some kind of 2-dimensional regex..."

But every time I looked at how regex languages, I thought of two things + 1 conclusion:

  1. Boy, this is really complicated.  It's like writing freaking compiler optimizations.
  2. This is really boring stuff.
  3. I don't have time for this.  <- the conclusion

I'd think it over off and on across time.  And then recently, I got an idea how to do it pretty easily.

I realized that there is a very small set of things that I am doing, and a fairly easy way to make the machinery for it.

So here's the language I came up with:

c type      flags description
= ========= ===== ====================================================================
> direction       head right
< direction       head left
^ direction       head up
v direction       head down
0 tar             start a measurement
I measure         1st time: store measurement I,  further times: require equivalence
J measure         1st time: store measurement J,  further times: require equivalence
K measure         1st time: store measurement K,  further times: require equivalence
S recording       1st: start recording, 2nd: stop and store, 3rd: start anew, ...
R require         require the next character (literal)
r req-meta        r! = req. nothing;  r[A-Z] -- req. from set;  r[#] -- req. from recorded
! move      ----- go until requirements can't be met, then pause
. move      1E--- take a step if requirement is met, otherwise: ERR out
, move      1---- take a step if requirement is met, otherwise, pause
X accept          all done!  accept what was found

Then I wrote an "engine" that reads the instructions, takes a function for reading a character from a position, takes a start position, and the character sets fed in (for lower-case alphabet "r" requirements,) ...

...and it worked!

So the code for scanning a rectangle is like so:

R+>. 0R-!I R+v. 0R|!J R+<. 0R-!I R+^. 0R|!J X

Here's one of the rectangles that it scans:

+----------------------------------+
   |                                  |
   |     x--------------------x       |
   |     |                    |       |
   |     |                    |       |
   |     x--------------------x       |
   |                                  |
   +----------------------------------+

I used that in one of the test cases.

Reading from the start, it says, "Require a +.  Head to the right.  Eat one character, or fail.  Now start measuring.  Require a dash, and go as far as you can.  Save the distance traveled in register I.  Now read a +, but head down this time.  Start measuring again.  Head down, gobbling up the pipes. Mark how far you went in register J.  Gobble up a +, heading left.  Start measuring again.  Gobble all the dashes.  Now, check your distance with register I.  Is it good?  Keep going, otherwise -- abort, this isn't the rectangle we're wanting.  Now gobble the +, heading up.  Start measuring again, and eat all the pipes headed up.  Check against register J.  Good?  Ok, you're done!  Accept."

If you wrap the whole expression in S's ("store this to a list of expressions,") you get in your response:

"'+----------------------------------+||||||+----------------------------------+||||||"

...which is a pretty dang cool way of verifying that your code works, if you ask me:  a complete track record of everywhere that the code went.

It's been a while since I've blogged about programming, and I don't really have a storage system worked out for posting & sharing the code.

But, here's the header (and docstring):

@note_function("2d", "space 2d line lines recognition recognizer ascii " +
               "character characters machine machines abstract")
def recognizer_2d(instructions, read_pos_fn, start_pos=rt_zero,
                  registers=None):
    """Abstract 2d recognizer.
    
    read_pos_fn(rt_pos): -> return a character representing the position;
                            will be compared against the requirement
    
         RC>.  0R-!I  RCv.
            C---------C
      0R:!J :         : 0R:!J
    (checks):         :  (records)
            C---------C
         RC^.  0R-!I  RC<.
    
    Returns:  dictionary on success;
              None on failure
    
      {"I":  goal for I measurement (or None)
       "J":  goal for J measurement (or None)
       "pos":   position rectangle
       "step":  step rectangle,
       "recorded_text": list of recorded strings}
    
    Spirograph pg. 48
    """

Note that: because it takes a function to identify characters, this function can be used with any 2-dimensionally indexed schema.

For example, you could use it with graphics, by supplying a function that returns a "X" for a non-black pixel, and " " for a black pixel.  (Or some related scheme of translating pixel colors into character codings.)  Then the very same function (and codes) can be used to identify rectangles (and what have you other simple/rectilinear shapes) in graphical images.

This is the first time in a very long time I have posted about my coding adventures online.

In particular, I am writing for Planet Python, because Python is my favorite programming language in the world.

For those who don't know me, my interests are in what I call "Visionary Programming" and "Improvisational Programming."

That is, I like to write code to support a way of programming that allows you to get from a visionary idea, to an implementation, in as short a time as possible.  (For example, I wrote the engine here in 1 unfocused lazy day that involved a lot (too much) of listening to Dubstep on Youtube...  I probably put in 3-4 hours of real work on it.)

Much of this involves working on remaking the representation of software ideas.  When you have a solid representation, (which can take some time to find,) you can then experiment and find alternatives very quickly, and flow around like water.  It's a lot of fun, and really gets to the magic of programming: the "Wow!"

Please let me know if you had a good time reading this.  Thank you!

Filed under  //  planetpython  
Sep 22 / 12:29am

Tuesday Night Meeting Notes

  2011-09-20 7:00PM Tuesday -- Jigsaw Renaissance

  Attending:  Laurence  Danny   Niles
              Lion      Robin*  Doug*    *: Skype call

  We started with Laurence, Danny, and Niles' shared question:
  "How do we get more events?"

  That was great!  Because that's exactly what I'm about!
  I pretty much gave a presentation, and we talked about the ideas.

  Here's what I said:

  * Emotional & Personal Events!

    I was at Burning Man, and the events there were very PERSONAL and
    EMOTIONAL.  They really inspired everyone to think about things in
    new ways, or to feel closer, more connected, and in solidarity.
    There were events about conquering fear, getting to know others,
    getting to know ourselves, artworks, love and sexuality, spiritual
    philosophy, and even bodily endurance.  I love crafts & technical
    things, but I don't believe we need to only do those things!

  * Cleaning Jigsaw

    I'd love to make emotional events at Jigsaw, but Jigsaw looks a
    bit like a sty.  We talked about how to clean Jigsaw, how to throw
    things out.  We talked about tagging items.  We talked about
    making "purgatory" -- just taking a corner of the room, and
    stuffing the things we want to throw out there.

    If we're going to have permanent stations (crafts section,
    electronics section, whatever, --) it needs an accountable person
    who maintains it.

    We like the idea of neatly kept, focused and clearly distinct
    areas.

  * Movie Nights!

    I believe that movies can alter consciousness, inject energy, and
    establish context for conversation -- IF we don't treat it as
    "just entertainment."  So I'd like movies of IDEAS, and that can
    challenge us.


  Then, I talked about a philosophy of action.

  It is centered in this principle:

             "Unless we know each other,
               we can't work together."

  What is meant by "knowing each other" ..?

  It means:
  1) When I see you, I have a sense that I know who you are, beyond
     just your surface appearances to me.
  2) When I see you, I have a sense that you know who *I* am, beyond
     just the surface things that most everybody can see about me.


  ...and what is meant by "working together" ..?

  I don't mean just the capacity to pass the wrench when it's asked
  for.  Rather, I mean:

  * I care about you, and you care about me.
  * I support your efforts, and you support my efforts, in something
    like solidarity.
  * I make time for you, and you make time for me, so that we can see
    each other, do things with each other, make things together, and
    hear each other.
  * We care for the space that we share.


  What's it like if we don't know each other, and have no interest in
  working together?

  Keep in mind -- just a reminder: The question we all started with
  was: "How do we get more events?"

  I want to talk about the physics of this.

  So often, it works like so:
  * If you're popular, or you have an event that is established and
    super-popular, then lots of people will come.
  * If you're not popular though, or you have an event that isn't
    established yet, then ...  Hmm, ...  Maybe people will come.

  How do people decide whether to come or not?

  People ask themselves questions like so:
  * What's this event offering?
  * How much value will this event provide to me?
  * How likely is it that the event host is going to be able to really
    pull it off, and make it work?
  * How likely is it to be fun?
  * How much of my time will it cost me?
  * What else is going on at that time that I'd be missing out on?

  These are fair questions.  We encounter these type of questions
  whenever we go to the marketplace.


  Okay, but let's say we had another dynamic?

  What if we know each other, we care about each other, and we are
  supporting each other?  We feel like we have an "iron" in with each
  other, and we want to see each other succeed -- because we like each
  other.  We've started to form bonds together.

  Then what happens?

  Now your friend has worked up the courage to take a risk.  Your
  friend is going to give an event.  It's something that's based in
  something very important and intimate to him.

  What's the dynamic?

  * What practical steps can I take to assist my friend?
  * What kind of feedback can I give to my friend to help him/her pull
    it off successfully?
  * How can I help publicize this event?
  * Who else might be interested in this event?
  * What kind of event does this inspire me to give?

  These aren't marketplace questions, these are family questions.


  "But how do we see each other?  What does this all mean practically?
   What do we DO?"

  There are many answers to this question.  I DON'T think we have to
  get to know each other "accidentally" -- I think we can actually go
  directly towards the target, with great efficiency and skill.

  Here are three ways:

  1. MIXERS; & broad general events.  SCoW is playing this role right
     now.  Saturday House did this too, back in the day.  But I think
     we can do better, going more directly.

  2. CREATIVE ENCOUNTER -- the Creative Encounters outlined by Peter
     London in No More Secondhand Art are designed so that not only do
     you have an interesting art encounter, but also so that you and
     others start to see one another and yourselves in fresh light.  I
     tried this at Jigsaw with some limited success.  I'd like to try
     again, but this time around, I want to make sure participants
     understand the WHY, the context, of why we're doing what we're
     doing.

  3. FORUM -- (named after the Zegg/Tameran Forum) Make a circle of
     participants, and invite people to take the center of the circle
     to make themselves visible and heard.  Someone is a facilitator,
     to help people who are maybe shy, or maybe going off into some
     space that disconnects with the audience, etc.,.  But mainly,
     it's a direct, immediate sharing of the individual with the other
     people, so that they can be known intimately.  Not just with
     words in the traditional verbal culture, but also artistically:
     with posture, theatre, sound, dance, sign, ...  A person can
     share about who they are, or what their dreams are, or what they
     are struggling with, or anything at all really that they want to
     be seen.  I believe that this is THE most direct way of three
     three, of getting to know one another.  know one another.  Major
     key word: TRUST, which must be intentionally and continuously
     sought.

  So, this is, in extreme synthesis, basically what we talked about on
  Wednesday.

  We said more things, and there were many threads that led off from
  these things in interesting directions, but I think if I wrote them
  all down, this would get even longer, and it's already crazy long.

  G'night all,
    Lion {:)}=

Aug 16 / 6:41pm

3 Events in Seattle

(This is a post that I sent out to the davinci mailing list;  The email list for Jigsaw Renaissance.)

(If you are in or near Seattle, and interested in participating in any of these, please contact me here or by email or by phone [206.427.2545], and please tell me which one(s) you are interested and availabilities.)

  ** NOTEBOOKS **

  I've given this class many, many times, and I've always
  found a positive reception.

  Do you have good, maybe even GREAT ideas, and then lose
  them?  Do you keep notes?  Do you keep notes for creative
  projects?  Do people ever ask, "Do you have any ideas?",
  and come up blank?  Are you tired of loose paper and
  computer files laying all over the place?  Do you keep a
  journal or a diary?

  I have a system of notekeeping that I've worked out over a
  decade of notekeeping.  I've gone through many, many
  systems.

  What I'm teaching is a system that I've developed, myself,
  that is very easy, convenient, and extraordinarily
  powerful.  I've also worked on how to *teach* notekeeping,
  and I have a very simple system for that to: It all adapts
  around the contours of a person's notekeeping.

  1-2 hours long, single event, though repetitions or
  private consultation afterwards are possible and helpful.
  No, I'm not charging for any of this.


  ** SELF-DISCIPLINE **

  For most of my life, self-discipline has been a real
  struggle.  It does not come naturally to me, in the way
  that it does for, say, Willow.

  About 6 months ago, I discovered a technique, that I am
  STILL using, that is still functioning, that has made an
  extraordinary difference.

  I'd like to share this approach with anybody who struggles
  with self-discipline.  I have NOT mastered this technique,
  and it is quite deep.  So: Expect miracles (it's been
  miraculous for me,) but don't expect that I know this to
  the Nth degree.

  Some of the key elements are:
  * A re-definition of self-discipline: It's not a
    personality trait.
  * A re-evaluation of the self, and how the self relates to
    self-discipline.
  * Subconscious communications: The arguments in your mind
    that you never even notice.
  * Self-talk, broadly and in the trenches.

  Everything here I learned from a book published by a guy
  in Seattle who I have never met, called "Self-Discipline
  in 10 Days."
    http://www.hubpublishing.com/html/self_discipline.html


  ** A NEW SOCIETY IN 3 HOURS **

  This one isn't ready for the big time.  This is something
  where I need pioneers and explorers.

  Most people who know anything about me know that: I'm all
  about new societies.  I don't at all agree with how we
  live, and I'm dedicated to creating a radically different,
  visionary, magical society, on the order of Damanhur and
  Tamera.  This is part of a broader effort, embedded in the
  very nature of reality itself, to transform, to change, to
  give form to Love.  Yadda yadda yadda -- giving that talk,
  that's not what I'm doing right now.

  Rather, right now, I'm exploring: What are the practical
  inter-personal issues that become immediately apparent in
  the sharing of change with others?  In sharing dreams, and
  in relating to power?  Power sharing is a big huge deal.
  So I'm asking myself, "What kind of experience can make
  these questions visible quickly?  And how can we
  creatively engage in society making when we don't really
  have a new society to tinker with?"

  So I've been imagining an activity that would create these
  situations artificially.  Something fun, something
  creative.

  But the activity is untested.

  In the future, maybe we can do this activity with 10, 15,
  20 people, but right now, I want a team of *4 people* to
  try this with.  I need *3 or 4 people* who will go through
  the rough spots of figuring out what this exercise is and
  how it works.  I've got a raw frame for it.  I don't want
  to spoil what it is.

  I am looking basically for something like "play testers."
  If I've designed a game, it's unfinished and I don't know
  for sure that it works.  So I need people who are willing
  to experiment, to have fun, to spend 3-4 hours kicking the
  tires, to change it, to notice things, etc., etc.,.  More
  then play testers, because I hope you'll help actually
  change it so that it works well.  Co-designers is a better
  term.

  OK, that's it!

  Please respond either publicly or privately if you want to
  go to one of these, or if you have ideas, or any kind of
  feedback (positive or negative) at all.  I'd like to do
  one or two of these this weekend, and one or two next
  weekend, and then another 1 or 2 in September.

Post-Script:

When you contact me, please let me know (most important:) Which event caught your interest?

Filed under  //  jigsawrenaissance