Discussion:
[urbit] Re: syntax tutorial
The Dividualist
2015-11-16 13:19:20 UTC
Permalink
I love you, guys, but I cannot make head or tails of it. My most
constructive feedback would be, so far, "Wut?"

To elaborate on it, I assume it is meant for the C systems programmer types
with a deep understanding for computer science theory? Could someone write
at least some examples that the kind of mortal who tends to write SQL or
can write a generic web app with Python Django or Ruby on Rails or write
business logic in C# can understand, roughly that level? I am not really
saying dumb it down, I am sort of saying a more high level programming, a
higher layer of abstraction, less of this assembly-C + math theory level
and more of a "suppose you want to fix date formats in a CSV file, here is
how you do it in Hoon with even less eye bleed than in Perl" or "this would
be the equivalent of showing blog comments in PHP - running a select * from
comments where post_id = 23 and generating a html table or something".
Something more like scripting perhaps, something more for the guy who uses
programming to solve practical problems but is not a CS major. For example,
the higher abstraction level where in other languages you don't really need
to define types or to grok deeply how they work, you can script well enough
with the built in string, decimal, list, hashtable etc. types and generate
e.g. HTML output from it.

Also, street functional programming. I think Anders Hejlsberg demonstrated
with LINQ that if you want street functional programming, the kind of
functional programming folks like me can understand, you have to eventually
reinvent SQL or some other query language? Of course one may as well call
that functional scripting. Because the general purpose of street functional
programming is to process data structures without loops. Map, Reduce etc.
Even Python generator expressions are about reinventing a very limited SQL
because they found that very limited subset of SQL is 99% of what
functional programming is used on the street. Can I assume a query
language or generator expression / list comprehension type thing is coming
on top of Hoon or can you demonstrate on a basic map-reduce level this is
already possible just currently the tutorials work on a lower level of
abstraction?

My proposal: just take an XML file and have some fun with it. Process it
into something else, select parts of it, and generate HTML to show it. Or
maybe something like this?
http://gigamonkeys.com/book/practical-a-simple-database.html

I just love this idea, I desperately want to understand at least a bit of
it and like most out there I understand the higher abstraction layer kinds
of more scripty programming better than heavy, dense, mathy low abstraction
layer systems programming.

Thank you for all your work and best regards

The Dividualist
We're now up to chapter 2 (syntax) on
http://urbit.org/docs/dev/hoon/tutorial - take a look, feel free to
ask questions or file PRs.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Galen Wolfe-Pauly
2015-11-16 15:20:08 UTC
Permalink
This is great feedback. Thanks for taking the time to write it down.

The examples repo is a start, but I think you're looking for something else. These tutorials are very much a bottom up approach to understanding hoon. We have been working on putting together a 'hoon from the top down' set of docs as well. Hopefully these will be close to what you're after.

G
I love you, guys, but I cannot make head or tails of it. My most constructive feedback would be, so far, "Wut?"
To elaborate on it, I assume it is meant for the C systems programmer types with a deep understanding for computer science theory? Could someone write at least some examples that the kind of mortal who tends to write SQL or can write a generic web app with Python Django or Ruby on Rails or write business logic in C# can understand, roughly that level? I am not really saying dumb it down, I am sort of saying a more high level programming, a higher layer of abstraction, less of this assembly-C + math theory level and more of a "suppose you want to fix date formats in a CSV file, here is how you do it in Hoon with even less eye bleed than in Perl" or "this would be the equivalent of showing blog comments in PHP - running a select * from comments where post_id = 23 and generating a html table or something". Something more like scripting perhaps, something more for the guy who uses programming to solve practical problems but is not a CS major. For example, the higher abstraction level where in other languages you don't really need to define types or to grok deeply how they work, you can script well enough with the built in string, decimal, list, hashtable etc. types and generate e.g. HTML output from it.
Also, street functional programming. I think Anders Hejlsberg demonstrated with LINQ that if you want street functional programming, the kind of functional programming folks like me can understand, you have to eventually reinvent SQL or some other query language? Of course one may as well call that functional scripting. Because the general purpose of street functional programming is to process data structures without loops. Map, Reduce etc. Even Python generator expressions are about reinventing a very limited SQL because they found that very limited subset of SQL is 99% of what functional programming is used on the street. Can I assume a query language or generator expression / list comprehension type thing is coming on top of Hoon or can you demonstrate on a basic map-reduce level this is already possible just currently the tutorials work on a lower level of abstraction?
My proposal: just take an XML file and have some fun with it. Process it into something else, select parts of it, and generate HTML to show it. Or maybe something like this? http://gigamonkeys.com/book/practical-a-simple-database.html
I just love this idea, I desperately want to understand at least a bit of it and like most out there I understand the higher abstraction layer kinds of more scripty programming better than heavy, dense, mathy low abstraction layer systems programming.
Thank you for all your work and best regards
The Dividualist
We're now up to chapter 2 (syntax) on
http://urbit.org/docs/dev/hoon/tutorial - take a look, feel free to
ask questions or file PRs.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Jeremy Wall
2015-11-16 17:37:51 UTC
Permalink
The biggest missing piece for people like Dividualist I think are mappings
from Hoon terminology to common programming terminology. A Hoon thesaurus
of sorts.

You would of course have to include the caveats with each one since the
mappings aren't perfect due to the underlying foundations but it would help
folks to get their footing if they know how they relate and what the
differences are.
Post by Galen Wolfe-Pauly
This is great feedback. Thanks for taking the time to write it down.
The examples repo is a start, but I think you're looking for something
else. These tutorials are very much a bottom up approach to understanding
hoon. We have been working on putting together a 'hoon from the top down'
set of docs as well. Hopefully these will be close to what you're after.
G
I love you, guys, but I cannot make head or tails of it. My most
constructive feedback would be, so far, "Wut?"
To elaborate on it, I assume it is meant for the C systems programmer
types with a deep understanding for computer science theory? Could someone
write at least some examples that the kind of mortal who tends to write SQL
or can write a generic web app with Python Django or Ruby on Rails or write
business logic in C# can understand, roughly that level? I am not really
saying dumb it down, I am sort of saying a more high level programming, a
higher layer of abstraction, less of this assembly-C + math theory level
and more of a "suppose you want to fix date formats in a CSV file, here is
how you do it in Hoon with even less eye bleed than in Perl" or "this would
be the equivalent of showing blog comments in PHP - running a select * from
comments where post_id = 23 and generating a html table or something".
Something more like scripting perhaps, something more for the guy who uses
programming to solve practical problems but is not a CS major. For example,
the higher abstraction level where in other languages you don't really need
to define types or to grok deeply how they work, you can script well enough
with the built in string, decimal, list, hashtable etc. types and generate
e.g. HTML output from it.
Also, street functional programming. I think Anders Hejlsberg demonstrated
with LINQ that if you want street functional programming, the kind of
functional programming folks like me can understand, you have to eventually
reinvent SQL or some other query language? Of course one may as well call
that functional scripting. Because the general purpose of street functional
programming is to process data structures without loops. Map, Reduce etc.
Even Python generator expressions are about reinventing a very limited SQL
because they found that very limited subset of SQL is 99% of what
functional programming is used on the street. Can I assume a query
language or generator expression / list comprehension type thing is coming
on top of Hoon or can you demonstrate on a basic map-reduce level this is
already possible just currently the tutorials work on a lower level of
abstraction?
My proposal: just take an XML file and have some fun with it. Process it
into something else, select parts of it, and generate HTML to show it. Or
maybe something like this?
http://gigamonkeys.com/book/practical-a-simple-database.html
I just love this idea, I desperately want to understand at least a bit of
it and like most out there I understand the higher abstraction layer kinds
of more scripty programming better than heavy, dense, mathy low abstraction
layer systems programming.
Thank you for all your work and best regards
The Dividualist
We're now up to chapter 2 (syntax) on
http://urbit.org/docs/dev/hoon/tutorial - take a look, feel free to
ask questions or file PRs.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
Jeremy Wall
http://jeremy.marzhillstudios.com
***@marzhillstudios.com
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
c***@gmail.com
2015-11-17 01:25:42 UTC
Permalink
Definitely. The type of tutorial that glosses over HOW Hoon works and goes
straight into how to USE it is very needed, since the former requires
already existing programming knowledge, a leap of logic to understand the
consequences of Hoon and Nock's design, and a time-sink into believing
Urbit isn't trash. hidduc's tutorial is probably the best example of the
former right now: mapping Hoon into any other programming language, with
some explanation of things like contexts that are required for your code to
run.

The current Hoon 101 tutorial doesn't even have any real-life code examples
that people who want to use Hoon would want. Stuff like the fabled "top
down" tutorial, examples repo, hidduc's tutorial
(https://bitbucket.org/zaphar/hoon-intro), or even rosettacode snippets
would really lower the barrier of entry.
Dividualist: thanks for the great feedback. ~wictux and I currently
working on something that (hopefully) will be right up your alley. If
you're interested, I'd love to send you the first chapter of it once
we finish it (probably later this afternoon). If anyone else is
interested, please get in touch with me!
Jeremy: great suggestion. Part of this "top down" documentation push
is going to include a 'quick references' document, which should
certainly include something like a Hoon thesaurus. Once I get to it,
I'd love to discuss this with you further if you're up for it!
the hidduc tutorials.
Thanks you two!
Post by Jeremy Wall
The biggest missing piece for people like Dividualist I think are
mappings
Post by Jeremy Wall
from Hoon terminology to common programming terminology. A Hoon
thesaurus of
Post by Jeremy Wall
sorts.
You would of course have to include the caveats with each one since the
mappings aren't perfect due to the underlying foundations but it would
help
Post by Jeremy Wall
folks to get their footing if they know how they relate and what the
differences are.
Post by Galen Wolfe-Pauly
This is great feedback. Thanks for taking the time to write it down.
The examples repo is a start, but I think you're looking for something
else. These tutorials are very much a bottom up approach to
understanding
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
hoon. We have been working on putting together a 'hoon from the top
down'
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
set of docs as well. Hopefully these will be close to what you're
after.
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
G
<javascript:>>
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
I love you, guys, but I cannot make head or tails of it. My most
constructive feedback would be, so far, "Wut?"
To elaborate on it, I assume it is meant for the C systems programmer
types with a deep understanding for computer science theory? Could
someone
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
write at least some examples that the kind of mortal who tends to
write SQL
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
or can write a generic web app with Python Django or Ruby on Rails or
write
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
business logic in C# can understand, roughly that level? I am not
really
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
saying dumb it down, I am sort of saying a more high level
programming, a
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
higher layer of abstraction, less of this assembly-C + math theory
level and
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
more of a "suppose you want to fix date formats in a CSV file, here is
how
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
you do it in Hoon with even less eye bleed than in Perl" or "this
would be
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
the equivalent of showing blog comments in PHP - running a select *
from
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
comments where post_id = 23 and generating a html table or something".
Something more like scripting perhaps, something more for the guy who
uses
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
programming to solve practical problems but is not a CS major. For
example,
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
the higher abstraction level where in other languages you don't really
need
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
to define types or to grok deeply how they work, you can script well
enough
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
with the built in string, decimal, list, hashtable etc. types and
generate
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
e.g. HTML output from it.
Also, street functional programming. I think Anders Hejlsberg
demonstrated
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
with LINQ that if you want street functional programming, the kind of
functional programming folks like me can understand, you have to
eventually
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
reinvent SQL or some other query language? Of course one may as well
call
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
that functional scripting. Because the general purpose of street
functional
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
programming is to process data structures without loops. Map, Reduce
etc.
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
Even Python generator expressions are about reinventing a very limited
SQL
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
because they found that very limited subset of SQL is 99% of what
functional
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
programming is used on the street. Can I assume a query language or
generator expression / list comprehension type thing is coming on top
of
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
Hoon or can you demonstrate on a basic map-reduce level this is already
possible just currently the tutorials work on a lower level of
abstraction?
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
My proposal: just take an XML file and have some fun with it. Process
it
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
into something else, select parts of it, and generate HTML to show
it. Or
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
maybe something like this?
http://gigamonkeys.com/book/practical-a-simple-database.html
I just love this idea, I desperately want to understand at least a bit
of
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
it and like most out there I understand the higher abstraction layer
kinds
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
of more scripty programming better than heavy, dense, mathy low
abstraction
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
layer systems programming.
Thank you for all your work and best regards
The Dividualist
We're now up to chapter 2 (syntax) on
http://urbit.org/docs/dev/hoon/tutorial - take a look, feel free to
ask questions or file PRs.
--
You received this message because you are subscribed to the Google
Groups
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
"urbit" group.
To unsubscribe from this group and stop receiving emails from it, send
an
<javascript:>.
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
"urbit" group.
To unsubscribe from this group and stop receiving emails from it, send
an
<javascript:>.
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
For more options, visit https://groups.google.com/d/optout.
--
Jeremy Wall
http://jeremy.marzhillstudios.com
--
You received this message because you are subscribed to the Google
Groups
Post by Jeremy Wall
"urbit" group.
To unsubscribe from this group and stop receiving emails from it, send
an
<javascript:>.
Post by Jeremy Wall
For more options, visit https://groups.google.com/d/optout.
--
Jeremy Wall
http://jeremy.marzhillstudios.com
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Jeremy Wall
2015-11-17 14:32:55 UTC
Permalink
Post by c***@gmail.com
Definitely. The type of tutorial that glosses over HOW Hoon works and goes
straight into how to USE it is very needed, since the former requires
already existing programming knowledge, a leap of logic to understand the
consequences of Hoon and Nock's design, and a time-sink into believing
Urbit isn't trash. hidduc's tutorial is probably the best example of the
former right now: mapping Hoon into any other programming language, with
some explanation of things like contexts that are required for your code to
run.
The current Hoon 101 tutorial doesn't even have any real-life code
examples that people who want to use Hoon would want. Stuff like the fabled
"top down" tutorial, examples repo, hidduc's tutorial (
https://bitbucket.org/zaphar/hoon-intro), or even rosettacode snippets
would really lower the barrier of entry.
This of course is all presupposing that you guys are ready for the influx
of people who can't/won't reverse engineer this on their own. There is
something to be said for that barrier to entry in the early stages of a new
stack. But with the new docs getting pushed out it looks like you are
crossing that line now. I look forward to the top down docs coming out.
Post by c***@gmail.com
Dividualist: thanks for the great feedback. ~wictux and I currently
working on something that (hopefully) will be right up your alley. If
you're interested, I'd love to send you the first chapter of it once
we finish it (probably later this afternoon). If anyone else is
interested, please get in touch with me!
Jeremy: great suggestion. Part of this "top down" documentation push
is going to include a 'quick references' document, which should
certainly include something like a Hoon thesaurus. Once I get to it,
I'd love to discuss this with you further if you're up for it!
the hidduc tutorials.
Thanks you two!
Post by Jeremy Wall
The biggest missing piece for people like Dividualist I think are
mappings
Post by Jeremy Wall
from Hoon terminology to common programming terminology. A Hoon
thesaurus of
Post by Jeremy Wall
sorts.
You would of course have to include the caveats with each one since the
mappings aren't perfect due to the underlying foundations but it would
help
Post by Jeremy Wall
folks to get their footing if they know how they relate and what the
differences are.
Post by Galen Wolfe-Pauly
This is great feedback. Thanks for taking the time to write it down.
The examples repo is a start, but I think you're looking for something
else. These tutorials are very much a bottom up approach to
understanding
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
hoon. We have been working on putting together a 'hoon from the top
down'
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
set of docs as well. Hopefully these will be close to what you're
after.
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
G
I love you, guys, but I cannot make head or tails of it. My most
constructive feedback would be, so far, "Wut?"
To elaborate on it, I assume it is meant for the C systems programmer
types with a deep understanding for computer science theory? Could
someone
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
write at least some examples that the kind of mortal who tends to
write SQL
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
or can write a generic web app with Python Django or Ruby on Rails or
write
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
business logic in C# can understand, roughly that level? I am not
really
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
saying dumb it down, I am sort of saying a more high level
programming, a
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
higher layer of abstraction, less of this assembly-C + math theory
level and
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
more of a "suppose you want to fix date formats in a CSV file, here
is how
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
you do it in Hoon with even less eye bleed than in Perl" or "this
would be
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
the equivalent of showing blog comments in PHP - running a select *
from
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
comments where post_id = 23 and generating a html table or something".
Something more like scripting perhaps, something more for the guy who
uses
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
programming to solve practical problems but is not a CS major. For
example,
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
the higher abstraction level where in other languages you don't
really need
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
to define types or to grok deeply how they work, you can script well
enough
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
with the built in string, decimal, list, hashtable etc. types and
generate
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
e.g. HTML output from it.
Also, street functional programming. I think Anders Hejlsberg
demonstrated
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
with LINQ that if you want street functional programming, the kind of
functional programming folks like me can understand, you have to
eventually
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
reinvent SQL or some other query language? Of course one may as well
call
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
that functional scripting. Because the general purpose of street
functional
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
programming is to process data structures without loops. Map, Reduce
etc.
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
Even Python generator expressions are about reinventing a very
limited SQL
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
because they found that very limited subset of SQL is 99% of what
functional
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
programming is used on the street. Can I assume a query language or
generator expression / list comprehension type thing is coming on
top of
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
Hoon or can you demonstrate on a basic map-reduce level this is
already
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
possible just currently the tutorials work on a lower level of
abstraction?
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
My proposal: just take an XML file and have some fun with it. Process
it
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
into something else, select parts of it, and generate HTML to show
it. Or
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
maybe something like this?
http://gigamonkeys.com/book/practical-a-simple-database.html
I just love this idea, I desperately want to understand at least a
bit of
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
it and like most out there I understand the higher abstraction layer
kinds
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
of more scripty programming better than heavy, dense, mathy low
abstraction
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
layer systems programming.
Thank you for all your work and best regards
The Dividualist
We're now up to chapter 2 (syntax) on
http://urbit.org/docs/dev/hoon/tutorial - take a look, feel free to
ask questions or file PRs.
--
You received this message because you are subscribed to the Google
Groups
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
"urbit" group.
To unsubscribe from this group and stop receiving emails from it,
send an
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
"urbit" group.
To unsubscribe from this group and stop receiving emails from it,
send an
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
For more options, visit https://groups.google.com/d/optout.
--
Jeremy Wall
http://jeremy.marzhillstudios.com
--
You received this message because you are subscribed to the Google
Groups
Post by Jeremy Wall
"urbit" group.
To unsubscribe from this group and stop receiving emails from it, send
an
Post by Jeremy Wall
For more options, visit https://groups.google.com/d/optout.
--
Jeremy Wall
http://jeremy.marzhillstudios.com
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
Jeremy Wall
http://jeremy.marzhillstudios.com
***@marzhillstudios.com
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
The Dividualist
2015-11-18 12:48:22 UTC
Permalink
You are absolutely right, @Jeremy Wall, I hesitated before butting in to
this list because I clearly don't belong to a place full of "kernel
hackers", but this thread is a bit of an exception as it discusses
tutorials. I hope there will be some kind of an userspace mailing list
later (understanding of course that in this case we are still talking about
power users and script-type programmers, it is still very far from anything
usable by average users) and then I will stick to there. And I think on
that kind of list we can simply contribute by testing or simply taking
over the job of helping the next wave of newbies so that the "kernel
hackers" don't have to. A third thing people like we could do - after
learning - start making actual proper server apps. I mean, look at :talk.
Do you normally read your email by sshing into your server? Is a textmode
Facebook a good idea in 2015? The almost obvious thing to do there is write
an app that consumes :talk feed and spits out HTML - and I really like it
that doing something like this sounds like a fairly easy thing to do in
Hoon as if it was made exactly for this - and then you can point a client
side browser at it. It inlines links to videos and images, replaces station
glyphs with thumbnails and so on. The result should look something like a
Facebook feed on your phone you could show to your non Unix sysadmin mom:
that is the point of having servers, right? So I think people like me after
a lot of learning would rather work on that kind of stuff, and leave the
kernel-hackery to the pros.

I'll install a VM over the weekend so please send me an invite to
dividualist at gee mail and then we can discuss this on :talk

@Raymond Pasco - thank you, the leaderboard app does look encouraging

@Curtis, I am afraid I am really that stupid. It is really about it being
difficult to understand to folks like me - a lot of people get into
programming without a deep CS background and that means of course a lot of
bad programmers but not necessarily so, it is possible to learn good
patterns by imitation. You can learn a human foreign language without
learning much of linguistic theory and the quickest way is immersion -
which is almost purely just imitation and pattern recognition. Of course,
these programmers tend to stick to the fairly high level of abstraction,
Rails-type stuff. (So again, scripter could be a better term than
programmer here.) So yes, I do mean it in the sense that the tutorial is
not easy to understand, largely because it seems like having been written
for CS people who think computers are to be used for computation. On the
"street", computers are used for automating repetitive tasks (scripting)
and thus the popular tutorials are of the kind "here is how to write a
script to download weather forecast from a web service every night and send
yourself an email if it will rain". As this sounds roughly similar to what
non-CS people think programming is for. Or scripting. This one is another
good example:
http://www.gigamonkeys.com/book/practical-a-simple-database.html For
example, I got into functional programming - on a very superficial level -
by CA-Clippers aeval back in MS-DOS age, Clipper was the ultimate practical
<https://en.wikipedia.org/wiki/Clipper_%28programming_language%29#Programming_in_Clipper>
small business programming-database toolkit around 1989, as "street" as
possible. Aeval taught me looping through an array is not the only way to
process the data in it, you could evaluate a function to it instead, aeval
is LISP's map. So I was thinking in automating repetitive tasks framework
like how do print every item in this array, not in the doing computation
framework. Clipper folks were the first ones to rename lambda functions to code
blocks <http://www.ghservices.com/gregh/clipper/cbevo.htm>, as non-CS
people understand that term better, Ruby followed their example. Also
please don't take it as a criticism or complaint. Not looking a gift horse
in the mouth. It is just feedback with the intent to help - if you at this
stage want to filter for people who don't find that tutorial hard to
understand, that is also fine. But if you think it is the right time to
open up for the kind of folks who would write server apps of the kind that
consumes :talk feed and generates a facebookish HTML output you can point
the browser in your phone to, then maybe more railsy tutorials could work
better.

@Henry - thank you, would be very interested in it! dividualist at gee mail

Reading hidduc's stuff now. Definitely helpful.
Post by Jeremy Wall
Post by c***@gmail.com
Definitely. The type of tutorial that glosses over HOW Hoon works and
goes straight into how to USE it is very needed, since the former requires
already existing programming knowledge, a leap of logic to understand the
consequences of Hoon and Nock's design, and a time-sink into believing
Urbit isn't trash. hidduc's tutorial is probably the best example of the
former right now: mapping Hoon into any other programming language, with
some explanation of things like contexts that are required for your code to
run.
The current Hoon 101 tutorial doesn't even have any real-life code
examples that people who want to use Hoon would want. Stuff like the fabled
"top down" tutorial, examples repo, hidduc's tutorial (
https://bitbucket.org/zaphar/hoon-intro), or even rosettacode snippets
would really lower the barrier of entry.
This of course is all presupposing that you guys are ready for the influx
of people who can't/won't reverse engineer this on their own. There is
something to be said for that barrier to entry in the early stages of a new
stack. But with the new docs getting pushed out it looks like you are
crossing that line now. I look forward to the top down docs coming out.
Post by c***@gmail.com
Dividualist: thanks for the great feedback. ~wictux and I currently
working on something that (hopefully) will be right up your alley. If
you're interested, I'd love to send you the first chapter of it once
we finish it (probably later this afternoon). If anyone else is
interested, please get in touch with me!
Jeremy: great suggestion. Part of this "top down" documentation push
is going to include a 'quick references' document, which should
certainly include something like a Hoon thesaurus. Once I get to it,
I'd love to discuss this with you further if you're up for it!
the hidduc tutorials.
Thanks you two!
On Mon, Nov 16, 2015 at 9:37 AM, Jeremy Wall <
Post by Jeremy Wall
The biggest missing piece for people like Dividualist I think are
mappings
Post by Jeremy Wall
from Hoon terminology to common programming terminology. A Hoon
thesaurus of
Post by Jeremy Wall
sorts.
You would of course have to include the caveats with each one since
the
Post by Jeremy Wall
mappings aren't perfect due to the underlying foundations but it
would help
Post by Jeremy Wall
folks to get their footing if they know how they relate and what the
differences are.
Post by Galen Wolfe-Pauly
This is great feedback. Thanks for taking the time to write it down.
The examples repo is a start, but I think you're looking for
something
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
else. These tutorials are very much a bottom up approach to
understanding
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
hoon. We have been working on putting together a 'hoon from the top
down'
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
set of docs as well. Hopefully these will be close to what you're
after.
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
G
I love you, guys, but I cannot make head or tails of it. My most
constructive feedback would be, so far, "Wut?"
To elaborate on it, I assume it is meant for the C systems programmer
types with a deep understanding for computer science theory? Could
someone
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
write at least some examples that the kind of mortal who tends to
write SQL
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
or can write a generic web app with Python Django or Ruby on Rails
or write
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
business logic in C# can understand, roughly that level? I am not
really
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
saying dumb it down, I am sort of saying a more high level
programming, a
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
higher layer of abstraction, less of this assembly-C + math theory
level and
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
more of a "suppose you want to fix date formats in a CSV file, here
is how
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
you do it in Hoon with even less eye bleed than in Perl" or "this
would be
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
the equivalent of showing blog comments in PHP - running a select *
from
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
comments where post_id = 23 and generating a html table or
something".
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
Something more like scripting perhaps, something more for the guy
who uses
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
programming to solve practical problems but is not a CS major. For
example,
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
the higher abstraction level where in other languages you don't
really need
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
to define types or to grok deeply how they work, you can script well
enough
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
with the built in string, decimal, list, hashtable etc. types and
generate
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
e.g. HTML output from it.
Also, street functional programming. I think Anders Hejlsberg
demonstrated
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
with LINQ that if you want street functional programming, the kind of
functional programming folks like me can understand, you have to
eventually
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
reinvent SQL or some other query language? Of course one may as well
call
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
that functional scripting. Because the general purpose of street
functional
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
programming is to process data structures without loops. Map, Reduce
etc.
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
Even Python generator expressions are about reinventing a very
limited SQL
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
because they found that very limited subset of SQL is 99% of what
functional
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
programming is used on the street. Can I assume a query language or
generator expression / list comprehension type thing is coming on
top of
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
Hoon or can you demonstrate on a basic map-reduce level this is
already
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
possible just currently the tutorials work on a lower level of
abstraction?
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
My proposal: just take an XML file and have some fun with it.
Process it
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
into something else, select parts of it, and generate HTML to show
it. Or
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
maybe something like this?
http://gigamonkeys.com/book/practical-a-simple-database.html
I just love this idea, I desperately want to understand at least a
bit of
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
it and like most out there I understand the higher abstraction layer
kinds
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
of more scripty programming better than heavy, dense, mathy low
abstraction
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
layer systems programming.
Thank you for all your work and best regards
The Dividualist
We're now up to chapter 2 (syntax) on
http://urbit.org/docs/dev/hoon/tutorial - take a look, feel free to
ask questions or file PRs.
--
You received this message because you are subscribed to the Google
Groups
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
"urbit" group.
To unsubscribe from this group and stop receiving emails from it,
send an
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
"urbit" group.
To unsubscribe from this group and stop receiving emails from it,
send an
Post by Jeremy Wall
Post by Galen Wolfe-Pauly
For more options, visit https://groups.google.com/d/optout.
--
Jeremy Wall
http://jeremy.marzhillstudios.com
--
You received this message because you are subscribed to the Google
Groups
Post by Jeremy Wall
"urbit" group.
To unsubscribe from this group and stop receiving emails from it,
send an
Post by Jeremy Wall
For more options, visit https://groups.google.com/d/optout.
--
Jeremy Wall
http://jeremy.marzhillstudios.com
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an
<javascript:>.
For more options, visit https://groups.google.com/d/optout.
--
Jeremy Wall
http://jeremy.marzhillstudios.com
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Vince Mulhollon
2015-11-18 15:31:50 UTC
Permalink
but this thread is a bit of an exception as it discusses tutorials.
Ah thats where it gets so interesting because you're actually discussing
philosophy not tutorials.

Think OSI networking layer model for a moment.

Whats done now, the way things are done, is because of the lower layers of
the past.

So you're looking at it by analogy as if someone is swapping out their
layer 3 routing protocol, perhaps EIGRP for OSPF and rather optimistically
nothing higher level changes. And thats cool. And there's nothing really
wrong with that. I've done next to nothing with urbit but I've
philosophically considered "what if I ported BASIC" or did the "Make a
lisp" thing. Make a lisp is really cool and every programmer should do it
at least once BTW. Intellectually I think those would be interesting
"retro" projects. Why? Because I can. Because it amuses me. Because it
might amuse others. A CAI PILOT language interpreter will never become
core infrastructure, and I'm happy with that. In fact I'm glad of that.
But it would be fun, for a small enough value of fun.

But there's also a competing model where moving from 3270 mainframe
terminals to a web page interface is a lot bigger change than swapping out
mostly interchangeable routing protocols. Or imagine moving from 3270
terminals to an environment where twitter and other social media is your
customer service channel, or your bug report / outage report hotline
anyway. Its a lot more than changing some includes and recompiling and the
users probably won't notice a difference. You can't do yesterdays stuff on
tomorrows lower layers, at least if you expect tomorrows stuff level of new
functionality. You kinda have to redesign from the ground up. Just like
Java wasn't PHP recompiled for the JVM. Or more specifically Java wasnt a
direct port of classic C to the JVM or even C++, although there are common
themes.

So there's one direction of how can I do yesterdays stuff on tomorrows
lower layers, but theres also the direction of how to do tomorrows stuff on
tomorrows lower layers. And I'd say from extensive lurking and occasional
fooling around with the software that the ratio of discussion is about
1:999 at this time. Which creates a feedback loop of people interested in
the dominant direction becoming the sole population of this list.

Or the TLDR is what you want to talk about appears technologically possible
but is only going to "fit" on another list.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
The Dividualist
2015-11-18 16:26:31 UTC
Permalink
I think I get what you mean - I actually noticed how moving some business
apps from terminals or DOS to GUI or web reduced productivity, because
experienced users can be freakishly quick at data entry when it can only be
done with the keyboard. On the GUI they will never learn keyboard
shortcusts and productivity suffers and instead of trying to emulate ye
olde terminal we are trying to redesign it from the ground up: maybe a
salesperson should not just hand over the expense invoices to the
accountant who then types them in, but rather focus on receiving electronic
invoices and book them automatically. This is the same thing.

However. At the end of the day we still needed those invoices booked.
Somehow. The underlying needs don't change. If you were designing perfectly
healthy food, and if many people design that, what you should expect to see
that the products slowly converge in the same direction. There can be
absolutely revolutionary changes how healthy food is made, but the end
result should somehow converge in the same direction and basically when it
gets perfected the progress stops and people just keep reinventing the same
thing, boring. Why? Because the human biology is more or less fixed and
there is such a thing as the perfect fuel for it that just cannot be
improved much anymore. So excluding transhumanism there should be less and
less revolutionary changes in designing better and better healthy food and
it should get more boring as we figure it all out. Thus the progress of
something meant for human consumption, meant to interface with humans, due
to the limitations of the human body, is not a runaway explosion, but a
slowdown as we figure out the objective facts of the human body and thus
the objectively best interfaces with it. Do we agree in this? Now if we can
say the same thing about the human brain? Is it possible Facebook figured
out some objective facts about human psychology? I would say, yes. Not
perfectly, and can be improved, but it is a wildly success mass experiment
in human psychology. Sure, the best thing is to invent the next thing after
Facebook. But generating a Facebook like feed by consuming :talk is almost
guaranteed to be far more popular than :talk because Facebook like feeds
are apparently based on experimentally determined facts about human
psychology (people like inlined videos of silly cats, baby pics from their
relatives, image macros etc.) Similarly, I would even say Rails is about
certain objective facts about human cognition, of how people who are more
domain experts than CS-level programmers can still write clean code and
create useful apps in a short time, because it works surprisingly similar
to how Wakanda server works, how Visual FoxPro was popular 15 years ago and
Dbase / Clipper 30 years ago. As they all tend in the same direction, I
would say they say something about the objective facts of at least how a
certain group of people likes to program.

Finally, I think "tiling over" also means this, that not just tomorrow's
use cases with tomorrow's technology, but some level of caring about the
old use cases is necessary because this is how every technology got
succesful. Again this is something about the human mind. Web forms imitated
desktop forms which imitated paper forms. Sure there are better ways to
tell a computer where you live than typing in billing address information
into a form. But the idea of forms was inherited through changing
technologies in order to make it easier to understand for users. I don't
mean it is an objective fact of human cognition that we like forms - it is
an objective fact that we like if the new thing looks and works similar as
the old thing.

But you are definitely right - it is like having a LAMP stack and someone
interested in programming PHP would show up on the Linux kernel dev mailing
list. It would seriously stretch the patience of other people there. Well
it is the same stack but still not the right thing to do. Currently in
Urbit these spaces are not separated yet, so I hope I am not annoying
anyone too much. This is what you get for trying to replace everything,
people show up who are interested in different parts of the everything and
this can get chaotic :) I will try to get on :talk from the weekend because
probably it is easier to layer these discussions there.
Post by Vince Mulhollon
So there's one direction of how can I do yesterdays stuff on tomorrows
lower layers, but theres also the direction of how to do tomorrows stuff on
tomorrows lower layers
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Raymond Pasco
2015-11-18 19:22:45 UTC
Permalink
This is a general mailing list. Urbit is not nearly big enough to have its
discussion subdivided into topics.

Talk is already a webapp, it's just that the webapp is pretty
straightforward and doesn't need much documentation (it could stand a
paragraph or two, maybe), and it experiences fewer arbitrary interface
changes. So there's less noise about it.

Yours,
r
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
The Dividualist
2015-11-20 10:44:18 UTC
Permalink
Thank you. The subreddit apparently does exist for two years now, so I hope
you don't mind if I post there:
https://www.reddit.com/r/urbit/comments/3tjsl2/computation_vs_automation/
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Anton Dyudin
2015-11-20 17:31:36 UTC
Permalink
I would characterize SQL syntax as "declarative", which in my mind is
distinct from "street FP". While
[i for i from 1 to 100 when ''+i^2 is (i^2/'')reverse! * ''] "all numbers
from one to a hundred whose squares are palindromes" isn't exactly
/prolog/, I notice a distinct lack of functions, or for that matter
immutable bindings (i doesn't change within the loop, but really i
represents not a single static or dynamic int but a set). What Curtis is
going for with Hoon is the opposite direction: clear semantics that can be
reasoned about as a series of state changes, control flow, and function
compositions.
Relatedly, curious about your thoughts on http://incidentalcomplexity.com.
Post by The Dividualist
Thank you. The subreddit apparently does exist for two years now, so I
https://www.reddit.com/r/urbit/comments/3tjsl2/computation_vs_automation/
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Peter Abrahamsen
2015-11-20 18:03:44 UTC
Permalink
+1, sometimes Urbit and Eve seem to be bottom-up and top-down approaches to
some common ground. At least, that's what I'm hoping. Very curious to hear
how the projects perceive one another.

Peter
~watsyt-risryp
Post by Anton Dyudin
Relatedly, curious about your thoughts on http://incidentalcomplexity.com.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Galen Wolfe-Pauly
2015-11-20 20:25:12 UTC
Permalink
I think that’s right — although I thought Anton and I were the only ones who thought that. Glad to know that can be seen from the outside too!

It’s certainly possible that Eve and Urbit could converge at some point, but both projects have a long way to go. The way I think about it, Urbit is the infrastructure that you need for something like Eve to be really useful as a *personal* computing tool.
+1, sometimes Urbit and Eve seem to be bottom-up and top-down approaches to some common ground. At least, that's what I'm hoping. Very curious to hear how the projects perceive one another.
Peter
~watsyt-risryp
Relatedly, curious about your thoughts on http://incidentalcomplexity.com.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Curtis Yarvin
2015-11-20 20:41:24 UTC
Permalink
Yeah. I have a lot of respect for Chris, but he's 100% a
human-interface guy. You can do a lot of great things in designing a
computing experience from the interface down, but the abstraction
always leaks -- the inner nature of the machine leaks up into the
human interaction.

Our interfaces are all quite minimalist because that's the amount of
effort we have to put into them. But ultimately, the bottom-up design
we've built is designed to deserve the level of UI imagination and
effort we see from the Chris Granger / Bret Victor world.
I think that’s right — although I thought Anton and I were the only ones who
thought that. Glad to know that can be seen from the outside too!
It’s certainly possible that Eve and Urbit could converge at some point, but
both projects have a long way to go. The way I think about it, Urbit is the
infrastructure that you need for something like Eve to be really useful as a
*personal* computing tool.
+1, sometimes Urbit and Eve seem to be bottom-up and top-down approaches to
some common ground. At least, that's what I'm hoping. Very curious to hear
how the projects perceive one another.
Peter
~watsyt-risryp
Post by Anton Dyudin
Relatedly, curious about your thoughts on http://incidentalcomplexity.com.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Loading...