Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- 6 participants
- 50351 messages
Re: [Pharo-users] Moose browsers: Updating an object value from a text pane and from an emergent window
by Offray Vladimir Luna Cárdenas
Hi again,
I have opted for another option: Manually updating objects from text
panes. I have a method for showing the content of a node body:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
bodyOn: constructor
"Shows the body of a selected node"
(constructor text)
title: 'Cuerpo | Body ';
format:[:eachNode |
(eachNode body) isNil
ifTrue: [ '' ]
ifFalse: [ eachNode body]];
act: [:text | text inspect ]
icon: GLMUIThemeExtraIcons glamorousRefresh
entitled: 'Save body'.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
At this moment I have only "text inspect" as an action for the text
pane, but when I inspect it, I can see in the "Pane Ports" tab that any
text wrote there gets updated up to the moment of clicking in the
button. What I would like is to send the updated text as an argument for
the "body:" setter of the UbakyeNode object. I have seen in the PBE2
chapter about Glamorous that I can used ports to send values to the
outside, but still I don't get how.
Remember that you can upload the code by following the instructions here:
http://wiki.hackbo.co/doku.php/herramientas:grafoscopio:en:install
Any advice on this is appreciated.
Thanks in advance,
Offray
On 09/05/2014 10:58 PM, Offray Vladimir Luna Cárdenas wrote:
> Hi Doru an community,
>
> In almost a week from now I will write an small revision article about
> this prototyping exercise on Moose/Glamour/Pharo, for structured
> writing. My ideal would be to write it inside this prototype, but for
> that I need to be able to edit and store the changes on the tree and its
> node contents. Hopefully it won't take too much, even for a newbie like
> me. Even if is not possible, and I need to go back to Leo Editor
> (http://leoeditor.com/) for reporting and writing the article, this
> exercise has been really valuable.
>
> This are my issues so far:
>
> Auto-updating objects from the browser is working but I'm having
> problems to integrate this with my code. To follow better what is
> happening just:
>
> 1. Follow the installation notes on:
> http://wiki.hackbo.co/doku.php/herramientas:grafoscopio:en:install
>
> 2. Run this code:
>
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> | text mainTree |
> mainTree := UbakyeNode new.
> mainTree becomeDefaultTree.
> text := (mainTree children at: 1) body.
> GLMCompositePresentation new wrapper
> with: [ :wrapper |
> wrapper show: [ :a |
> a text ].
> wrapper transmit
> fromOutsidePort: #text;
> toOutsidePort: #portIDoNotCareAbout;
> transformed: [ :textComingFromThePresentation |
> text := textComingFromThePresentation ] ];
> openOn: text.
> (mainTree children at: 1) body: text
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>
> If I comment the last line, I can explore the Browser Tree and see how
> #text updates automatically, but if I leave it uncommented I can explore
> the mainTree and see that is not updating.
>
> Also I tried to put the transmit parameters in the build browser
> transmit parameter, just here:
>
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> UbakyeBrowser>>buildBrowser
>
> "(... snipped code)"
> (browser transmit)
> to: #body;
> from: #tree;
> andShow: [ :a | self bodyOn: a].
> "(...snipped code)"
>
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>
> replacing "to:", "from:" and "andShow:" for "fromOutsidePort:",
> "toOutsidePort:" and "transformed:" as shown in your example, but then
> the current selection in the tree got disconnected from the body pane.
>
> I would mind to have a explicit button or keyboard shortcut to take what
> is currently on a text pane and send it all to a particular node for
> updating, if this is the quickest workaround. So, How can I made this?
>
> Also, Doru showed to me a way to invoke inspector on the current
> selected node. Suppose that I want to have an emergent window to edit
> the node header and some tags on it. Is this possible?
>
>
> Cheers and thanks in advance,
>
> Offray
>
> On 09/03/2014 04:27 AM, Tudor Girba wrote:
>> Hi,
>>
>> As I said before, right now, Glamour does not easily the behavior you
>> want, but
>> you can abuse an existing mechanism of capturing changes of a port
>> through a
>> transmission that transforms that value.
>>
>> Here is an example:
>>
>> text := ''.
>> GLMCompositePresentation new wrapper
>> with: [ :wrapper |
>> wrapper show: [ :a |
>> a text ].
>> wrapper transmit fromOutsidePort: #text; toOutsidePort:
>> #portIDoNotCareAbout;
>> transformed: [ :textComingFromThePresentation | text :=
>> textComingFromThePresentation ] ];
>> openOn: text
>>
>> In this example, we create a transmission that originates in the #text
>> port that
>> will be populated every time you modify something. This transmission
>> sends the
>> value to #portIDoNotCareAbout only to have access to the
>> transformation block
>> where you can do what you want with the textComingFromThePresentation.
>>
>> To check the behavior:
>> - execute the code in a Playground,
>> - type something in the text area that opens,
>> - inspect the text variable
>> ==> you will see that it contains the latest contents from the text
>> editor
>>
>> We should promote this mechanism explicitly in Glamour, but in the
>> meantime it
>> is probably sufficient for your case.
>>
>> Doru
>>
>>
>> On Wed, Sep 3, 2014 at 4:47 AM, Offray Vladimir Luna Cárdenas
>> <offray(a)riseup.net
>> <mailto:offray@riseup.net>> wrote:
>>
>> Hi,
>>
>> I'm trying to restate my question to see if I have more luck with
>> any answer
>> this time.
>>
>> I'm making advances with an outliner like app for writing and now
>> I can add
>> nodes move them and store them in the really nice STON format.
>> But because
>> information on trees is not editable, I would like to try another
>> approach:
>> To create an emergent window and put the node tree and node tags
>> on it, and
>> the update the this values on the tree node.
>> Also, I would like to update some objects from the a Glamour text
>> pane,
>> without any special button or action, just while I'm writing on
>> them. If
>> this is not possible which is the message to select all text in a
>> body panel
>> and to send it to a object?
>>
>> I will be doing some further advances by my own and keep you
>> posted (may be
>> with some more specific/better questions on how to get this
>> behaviour from
>> Moose browsers).
>>
>> Cheers,
>>
>> Offray
>>
>>
>>
>>
>> --
>> www.tudorgirba.com <http://www.tudorgirba.com>
>>
>> "Every thing has its own flow"
>>
>
>
>
Sept. 8, 2014
Re: [Pharo-users] [ann] pillar support in gtinspector
by Offray Vladimir Luna Cárdenas
Hi,
On 09/07/2014 05:47 PM, Ben Coman wrote:
> Offray Vladimir Luna Cárdenas wrote:
>> Hi Doru,
>>
>> I really like the advancements in this direction. If fact what I have
>> trying to do, as a newbie, by making a Glamorous Toolkit powered
>> outliner/tree like interface for writing structured documents tries
>> something similar. I think that writing is mainly a non-linear
>> experience and the usual metaphors of document processors are not
>> powerful enough in expressing/exploring the structure of ideas in the
>> writing process (some thought about it ane examples about how
>> implement non-linear academic writing are in [1], in Spanish).
>>
>> [1]
>> http://mutabit.com/offray/static/blog/output/posts/la-forma-en-que-escribo-…
>>
>>
>> I would like to create Visual Data Narratives inside
>> Pharo/Moose/Roassal that use file system and web, and LateX as
>> "exportation formats", but where the writing/structuring experience
>> happen mainly inside Pharo. For that persistence/change of trees is
>> important, but as I have documented in other threads, I'm having
>> problems with it, using Glamorous Toolkit (specifically on updating
>> objects from text panes and from emergent windows for tree
>> names/properties).
>>
>> With your post, I'm wondering who difficult is:
>>
>> a. To put support to Pillar/Markdown inside text panes (something
>> similar to the "smalltalkCode" message for showing Smalltalk in text
>> panes but with "pillarCode" or "markdownCode" (or some dictionary with
>> the #syntax keyword and the language as a value).
>>
>> b. To execute some parts of the code, for example the ones that are
>> inside "[[[" "]]]" while the cursor is there, so we could not only
>> preview imagages, but also execute code for visualizations or other
>> computations
>
> I have been thinking previously, that it would be good to have named
> code blocks "[[[ ]]]", some of which are visible which appear in the end
> document, and some are invisible, just used to scaffold the live
> document, e.g. to generate pictures. For example, visible code block
> code A might show the text to "create a class definition and accessors"
> and invisible code block B might say...
> "close all windows.
> run code block A.
> open System Browser at origin: 100@100 extent 500@300.
> System Browser select class and accessor just created.
> Screen snapshot and save to filenameXXX.png."
>
> cheers -ben
>
What I made on Leo Outliner is to have some custom directive (@ words
like "@ignore") as headers of a node, so I can ignore what is inside
that part of the tree. For the ouliner on Pharo I'm thinking in adding
tags to nodes so, some exportation procedures for the interactive book
can be put in invisible nodes (I mean invisible in the context of the
exportation of the book). That nodes can contain code for "Pharo
selfies" where the environment takes screenshots of itself, or metadata
for the exportation (template for document, database information and so
on).
I will be trying to make some progress on the saving/updating of trees
front, but If I can not, I will be on the nodes tags and interface, at
least to show some ideas and explain myself better with pictures :-).
Cheers,
Offray
Sept. 8, 2014
Re: [Pharo-users] [ann] pillar support in gtinspector
by Offray Vladimir Luna Cárdenas
Hi,
Comments below. :-)
On 09/07/2014 02:54 PM, Tudor Girba wrote:
> Hi,
>
> Thanks for the feedback. Indeed, your points are much inline with where we
> should go next.
>
[...]
>
> I would like to create Visual Data Narratives inside Pharo/Moose/Roassal
> that use file system and web, and LateX as "exportation formats", but where
> the writing/structuring experience happen mainly inside Pharo. For that
> persistence/change of trees is important, but as I have documented in other
> threads, I'm having problems with it, using Glamorous Toolkit (specifically
> on updating objects from text panes and from emergent windows for tree
> names/properties).
[...]
> Great. Please keep experimenting and keep us posted.
Well I have redefined my immediate goal for the next experiment as just
updating an object from a text pane even if this is not automatic (as I
said in the proper thread automatic updating is not working). So, how
can I get the current content of a text pane and send it as an argument
for updating an object value?
> With your post, I'm wondering who difficult is:
>
> a. To put support to Pillar/Markdown inside text panes (something similar to
> the "smalltalkCode" message for showing Smalltalk in text panes but with
> "pillarCode" or "markdownCode" (or some dictionary with the #syntax keyword
> and the language as a value).
>
>
> That is precisely what already happened. If you load the code, you can take a
> look at the FileReference>>gtInspectorPillarIn: method to see how to specify the
> presentation.
I will as soon as I can load humane-assessment.com, to see your blog
post again. In fact is usual for me not being able to load this site or
Moose's ones on a regular basis (last time when I was trying to show
this technology to a friend). If your have any possibility to consider
another more stable hosting that would be nice for newcomers. Digital
Ocean (I have not any affiliation with them) has been a nice solution
for my for only USD $5 per month.
> b. To execute some parts of the code, for example the ones that are inside
> "[[[" "]]]" while the cursor is there, so we could not only preview
> imagages, but also execute code for visualizations or other computations
>
>
> Exactly. That should definitely be a direction. We need to experiment here with
> the exact semantics. For example, you will not always want to execute the code.
> Or not all code is meant to be executed.
Well for me that would be a human decision always and by default
disabled. What I was thinking was more inline with IPython's notebook
behaviour that executes a code cell with a shortcut. Would be nice to
have a shortcut for executing code inside "[[[" "]]]" blocks if the
cursor is inside them.
> c. The ability to support drag and drop to files to the tree (a Glamorous
> Tree) and get some kind of node pointing to that file.
>
>
> That is indeed something I would want as well. For example, we should be able to
> drag and drop a pier file from the outside and spawn an editor on it.
Yes.
> d. Tha ability to preview thumbnail images in a similar way of the
> "contextual places" for printing described on your post at [2]
>
> [2] http://www.humane-assessment.__com/blog/rethinking-print-it-__in-pharo
> <http://www.humane-assessment.com/blog/rethinking-print-it-in-pharo/>
>
> Yes. This will likely come soon :)
Nice! Keep us posted.
> e. The hability to show a preview of the pdf/html in an emergent lateral
> panel in a simlar way to what TeXStudio or TeXmaker do[3]
>
> [3] http://www.xm1math.net/__texmaker/texmakertop_big.png
> <http://www.xm1math.net/texmaker/texmakertop_big.png>
>
>
> I do not know how to do it at this time. For this purpose, we would need to be
> able to embed a browser in a Pharo UI, and I am not aware of how to do it
>
I would think in something like executing a browser inside a VNC client
that can be shown inside Pharo. AFAIK that's the way that Open Croquet,
Teleplace and other Smalltalk 3D worlds use to execute and show desktop
apps inside the worlds. I imagine that something similar can be done in
a Glamorous Toolkit pane.
Cheers,
Offray
Sept. 8, 2014
Re: [Pharo-users] [ann] pillar support in gtinspector
by Ben Coman
Offray Vladimir Luna Cárdenas wrote:
> Hi Doru,
>
> I really like the advancements in this direction. If fact what I have
> trying to do, as a newbie, by making a Glamorous Toolkit powered
> outliner/tree like interface for writing structured documents tries
> something similar. I think that writing is mainly a non-linear
> experience and the usual metaphors of document processors are not
> powerful enough in expressing/exploring the structure of ideas in the
> writing process (some thought about it ane examples about how
> implement non-linear academic writing are in [1], in Spanish).
>
> [1]
> http://mutabit.com/offray/static/blog/output/posts/la-forma-en-que-escribo-…
>
>
> I would like to create Visual Data Narratives inside
> Pharo/Moose/Roassal that use file system and web, and LateX as
> "exportation formats", but where the writing/structuring experience
> happen mainly inside Pharo. For that persistence/change of trees is
> important, but as I have documented in other threads, I'm having
> problems with it, using Glamorous Toolkit (specifically on updating
> objects from text panes and from emergent windows for tree
> names/properties).
>
> With your post, I'm wondering who difficult is:
>
> a. To put support to Pillar/Markdown inside text panes (something
> similar to the "smalltalkCode" message for showing Smalltalk in text
> panes but with "pillarCode" or "markdownCode" (or some dictionary with
> the #syntax keyword and the language as a value).
>
> b. To execute some parts of the code, for example the ones that are
> inside "[[[" "]]]" while the cursor is there, so we could not only
> preview imagages, but also execute code for visualizations or other
> computations
I have been thinking previously, that it would be good to have named
code blocks "[[[ ]]]", some of which are visible which appear in the end
document, and some are invisible, just used to scaffold the live
document, e.g. to generate pictures. For example, visible code block
code A might show the text to "create a class definition and accessors"
and invisible code block B might say...
"close all windows.
run code block A.
open System Browser at origin: 100@100 extent 500@300.
System Browser select class and accessor just created.
Screen snapshot and save to filenameXXX.png."
cheers -ben
>
> c. The ability to support drag and drop to files to the tree (a
> Glamorous Tree) and get some kind of node pointing to that file.
>
> d. Tha ability to preview thumbnail images in a similar way of the
> "contextual places" for printing described on your post at [2]
>
> [2] http://www.humane-assessment.com/blog/rethinking-print-it-in-pharo/
>
> e. The hability to show a preview of the pdf/html in an emergent
> lateral panel in a simlar way to what TeXStudio or TeXmaker do[3]
>
> [3] http://www.xm1math.net/texmaker/texmakertop_big.png
>
>
> So here I put my other ideas about "bringing liveliness to
> documentation" as you said and I would like to build them together.
>
> Cheers,
>
> Offray
>
> Ps: In the other threads I'm asking about how to advance in the
> outliner metaphor for live doc writing on Pharo/Moose/Roassal. I'll
> keep you posted.
>
> On 09/07/2014 08:41 AM, Tudor Girba wrote:
>> Hi,
>>
>> Documentation is important. To make it more likely and more enjoyable
>> for people
>> to write more of it, I teamed up with Andrei and Jan to build up
>> support for
>> Pillar in the GTInspector.
>>
>> The current solution brings the following:
>> - Pillar specific syntax highlighting including Shout highlighting
>> for code snippets
>> - Embedded files validation and preview possibility
>> - Quick browsing of Pillar book projects when inspecting the book folder
>> - Class comment rendering using Pillar syntax when inspecting the
>> class object
>> - Text editor support for custom highlighting in Glamour (using
>> Rubric for now)
>> - Island parsing for quick specification of incomplete parser
>>
>> You can learn more about it here:
>> http://www.humane-assessment.com/blog/writing-pillar-books-with-the-gtinspe…
>>
>>
>> Inline image 1
>>
>> There is much more to do in this direction, and I would be happy to
>> inspire some
>> of you to join forces. Please let us know what you think.
>>
>> Cheers,
>> Doru
>>
>> --
>> www.tudorgirba.com <http://www.tudorgirba.com>
>>
>> "Every thing has its own flow"
>>
>
>
>
Sept. 7, 2014
Re: [Pharo-users] The fourth R
by Pablo R. Digonzelli
exellent !!!!
Ing. Pablo Digonzelli
Software Solutions
IP-Solutiones SRL
Metrotec SRL
25 de Mayo 521
Email: pdigonzelli(a)softsargentina.com
pdigonzelli(a)gmail.com
Cel: 5493815982714
----- Mensaje original -----
De: "kilon alios" <kilon.alios(a)gmail.com>
Para: "Any question about pharo is welcome" <pharo-users(a)lists.pharo.org>
Enviados: Domingo, 7 de Septiembre 2014 17:39:51
Asunto: Re: [Pharo-users] The fourth R
thats the idea yes. Actually I can already call python libraries from pharo with my project. However I need to add a way to fetch python values and store them inside Pharo variables. I am also interested in implementing callbacks, so that python code can call pharo code. This two way communication would allow Pharo to act as an IDE for Python and Python to take advantage of Pharo abilities. But this is also up to the Pharo community to create wrappers for python libraries in pharo or make the communication smoother in practice. Or maybe someone else comes up with a better implementation that does not rely on socket and instead on NB FFI and parsing of syntax. There is only so much an inexperienced single part time Pharo coder can do :)
On Sun, Sep 7, 2014 at 11:11 PM, Pablo R. Digonzelli < pdigonzelli(a)gmail.com > wrote:
I think your work is very interesting kilon.
May be you can create framework for call python libraries from pharo.
Ing. Pablo Digonzelli
Software Solutions
IP-Solutiones SRL
Metrotec SRL
25 de Mayo 521
Email: pdigonzelli(a)softsargentina.com
pdigonzelli(a)gmail.com
Cel: 5493815982714
De: "kilon alios" < kilon.alios(a)gmail.com >
Para: "Any question about pharo is welcome" < pharo-users(a)lists.pharo.org >
Enviados: Domingo, 7 de Septiembre 2014 16:19:39
Asunto: Re: [Pharo-users] The fourth R
A Python bridge is what I am working on with my project Ephestos, using a socket server / client relationship between Pharo and Python. So far it has been going quite well and is already usable for calling python libraries etc. It seems to work very well even for more complex python code, like class definition , function definitions etc. I use it to communicate with and control Blender. The same concept could well apply to any other languages Its definitely a project I am very interested so Python libraries are coming to Pharo sooner or later. Probably sooner ;)
On Sun, Sep 7, 2014 at 9:34 PM, Offray Vladimir Luna Cárdenas < offray(a)riseup.net > wrote:
<blockquote>
Hi,
Really nice to see this talks here. My two cents would be around supporting a model that can grow with the user and trying to create a connected experience. I have been previously teaching Introduction to Informatics to young (17-21 years old) newbies and they include introductory programming. For that I have taught with Scheme, Python, Scratch/Etoys/Bots Inc and recently I been creating some data narratives on health with IPython. From this two experience (newbies teaching and data narratives) separated like ten years between them, I think that the idea of a continuous environment one that not only is connected across time (supporting your learning in time) but also in space, connecting several ways of programming and other environments. The idea of programming as a kind of literacy has point me to visual data narratives as a practical way to build this two axes continuum, of course, video games and (web) app building are others, but I think they're more specialized.
I think that Pharo now with Roassal and Moose can be vehicles for this visual data narratives, with the advantage that once you learn the language to tell this stories, you can also change the tools for build/express your understanding of the world, making use of the turtles all the way down metaphor, but for that we need exploring the say that Pharo can play better with others (for example pharo/python bridges).
Cheers,
Offray
On 09/07/2014 05:29 AM, kilon alios wrote:
<blockquote>
Python has no competition. Sure there are languages that are more popular than
Python for their own reasons. There have been simpler languages before python,
there have been more popular languages, more cross platform languages etc etc
but Python fills a gap that no language was able to fill before it , easy to use
very powerful well documented libraries. Python is a language that you can teach
to a kid now and make a living later on using until his or her old age. Its not
because the language is simple , its simple enough but not the simplest. Its
because the culture surrounding the creation of libraries . That culture has a
name its called "pythonic"
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
this kind of ideology is why Python has been so successful. It has also inspired jokes like this
http://xkcd.com/353/
it may look funny and it says thinks about overestimating the simplicity of those libraries but python does feel at times as simple as this, as simple as importing antigravity.
So if a kid comes to me and ask me "what language should I learn" , I will recommend a language that is fairly easy to learn , has powerful library , easy to use libraries , well documented and its a language that will able to keep using even if his or her needs change, forever. For that only Python is the language that has been able to succeed and I think its adoption will continue to progress in educational institutions pretty much everywhere on the planet.
Referring to the rest of your post I dont agree that we need to separate Data from Code, I think quite opossite that a kid needs to be taught why Code and Data are one and what that means in practice. I also don't agree that OO or functional programming or any other programming paradigm I am aware of are the future. They are simple solutions for simpler times. The coding community at large the way I see it is in denial hoping to apply simple recipes to solve complex problems. We need very complex solutions to very complex problems , we need tools that can interact with the user in many diffirent ways.
Pharo is definitely showing the future, the close integration of IDE , language and environment. But thats is just the start, the next step is powerful tools that can deeply interact with code and solve automagically logical coding problems. Obviously all that has to be wrapped to an easy enough interface for the user even if the solutions is very complex.
Fortunately this where the rest of the coding world is heading. For example iPython is one of the most popular python projects right and it offers a highly interactive environment for python coders that shares a lot of similarities with Pharo though the implementation is very different.
So the future is no longer languages , is no longer IDEs , its not even environments but tools that are produced in these environments that can vastly automate coding and hide the increasing complexity of coding solutions. Maybe one day a child will be able to describe to a computer what kind of software he or she needs and the computer automatically generate the code for it. That day is not close enough but is where we are heading.
On Sun, Sep 7, 2014 at 12:34 PM, Trygve Reenskaug < trygver(a)ifi.uio.no
<mailto: trygver(a)ifi.uio.no >> wrote:
I have for some time been pondering two problems. One is to identify the
fourth R in *R*eading, w*R*iting, a*R*ithmetic, and p*R*ogramming. There
are many contenders for the kids' first step. I believe the English
government has chosen Phyton as a first language. Scratch has a certain
popularity, there are many others. My concern is "what comes next"? I want
the kid to gradually build a mental model of what computing is all about.
Learn a little, do a little, lean more, do more, etc. up do old age. This
goes much deeper than any programming language. It's a bit as learning to
read. Personally, I "broke the reading code"at an early age. Since then, I
have been learning more and more. What I read today would have been
incomprehensible to me 75 years ago. But my basic mental model of what
reading is all about has remained unchanged. I have never had to unlearn
anything.
I suggest that true object orientation (not class orientation) can form the
foundation for the human mental model of computing. Internalize it and live
with it forever.
------------------------------ -------
The other problem is to find a better example for DCI presentations. It should
1. Be executable and have a cool demo effect.
2. Its domain model should be obvious from the demo.
3. It should have very few and very simple Data classes.
4. It should have a Context that is clearly and obviously separate
from the Data.
5. It should scale to any number of Contexts (use cases) without
changing the Data classes.
------------------------------ -----------
/Last night I got an idea for an example: A waltzing couple. (See the
attached for a picture and Wikipedia for a movie of the use case)./
The program needs one simple class for a moveable shape and a DCI Context
for each dance (waltz, foxtrot, tango, ... for two role, polonaise for
more.) The example will clearly demonstrate the wisdom in separating what
the system IS from what the system DOES since the simple Shape class would
be overloaded with instance methods for all dances.
What do you think?
--Trygve
--
Trygve Reenskaug mailto: trygver(a)ifi.uio.no <mailto: trygver(a)ifi.uio.no >
Morgedalsvn. 5A http://folk.uio.no/trygver/
N-0378 Oslo http://fullOO.info
Norway Tel: (+47) 22 49 57 27
<tel:%28%2B47%29%2022%2049% 2057%2027>
</blockquote>
</blockquote>
Sept. 7, 2014
Re: [Pharo-users] The fourth R
by kilon alios
thats the idea yes. Actually I can already call python libraries from pharo
with my project. However I need to add a way to fetch python values and
store them inside Pharo variables. I am also interested in implementing
callbacks, so that python code can call pharo code. This two way
communication would allow Pharo to act as an IDE for Python and Python to
take advantage of Pharo abilities. But this is also up to the Pharo
community to create wrappers for python libraries in pharo or make the
communication smoother in practice. Or maybe someone else comes up with a
better implementation that does not rely on socket and instead on NB FFI
and parsing of syntax. There is only so much an inexperienced single part
time Pharo coder can do :)
On Sun, Sep 7, 2014 at 11:11 PM, Pablo R. Digonzelli <pdigonzelli(a)gmail.com>
wrote:
> I think your work is very interesting kilon.
> May be you can create framework for call python libraries from pharo.
>
>
>
> ------------------------------
> *Ing. Pablo Digonzelli*
> Software Solutions
> IP-Solutiones SRL
> Metrotec SRL
> 25 de Mayo 521
> Email: pdigonzelli(a)softsargentina.com
> pdigonzelli(a)gmail.com
> Cel: 5493815982714
>
> ------------------------------
> *De: *"kilon alios" <kilon.alios(a)gmail.com>
> *Para: *"Any question about pharo is welcome" <pharo-users(a)lists.pharo.org
> >
> *Enviados: *Domingo, 7 de Septiembre 2014 16:19:39
> *Asunto: *Re: [Pharo-users] The fourth R
>
>
> A Python bridge is what I am working on with my project Ephestos, using a
> socket server / client relationship between Pharo and Python. So far it
> has been going quite well and is already usable for calling python
> libraries etc. It seems to work very well even for more complex python
> code, like class definition , function definitions etc. I use it to
> communicate with and control Blender. The same concept could well apply to
> any other languages Its definitely a project I am very interested so
> Python libraries are coming to Pharo sooner or later. Probably sooner ;)
>
>
> On Sun, Sep 7, 2014 at 9:34 PM, Offray Vladimir Luna Cárdenas <
> offray(a)riseup.net> wrote:
>
>> Hi,
>>
>> Really nice to see this talks here. My two cents would be around
>> supporting a model that can grow with the user and trying to create a
>> connected experience. I have been previously teaching Introduction to
>> Informatics to young (17-21 years old) newbies and they include
>> introductory programming. For that I have taught with Scheme, Python,
>> Scratch/Etoys/Bots Inc and recently I been creating some data narratives on
>> health with IPython. From this two experience (newbies teaching and data
>> narratives) separated like ten years between them, I think that the idea of
>> a continuous environment one that not only is connected across time
>> (supporting your learning in time) but also in space, connecting several
>> ways of programming and other environments. The idea of programming as a
>> kind of literacy has point me to visual data narratives as a practical way
>> to build this two axes continuum, of course, video games and (web) app
>> building are others, but I think they're more specialized.
>>
>> I think that Pharo now with Roassal and Moose can be vehicles for this
>> visual data narratives, with the advantage that once you learn the language
>> to tell this stories, you can also change the tools for build/express your
>> understanding of the world, making use of the turtles all the way down
>> metaphor, but for that we need exploring the say that Pharo can play better
>> with others (for example pharo/python bridges).
>>
>> Cheers,
>>
>> Offray
>>
>>
>>
>> On 09/07/2014 05:29 AM, kilon alios wrote:
>>
>>> Python has no competition. Sure there are languages that are more
>>> popular than
>>> Python for their own reasons. There have been simpler languages before
>>> python,
>>> there have been more popular languages, more cross platform languages
>>> etc etc
>>> but Python fills a gap that no language was able to fill before it ,
>>> easy to use
>>> very powerful well documented libraries. Python is a language that you
>>> can teach
>>> to a kid now and make a living later on using until his or her old age.
>>> Its not
>>> because the language is simple , its simple enough but not the simplest.
>>> Its
>>> because the culture surrounding the creation of libraries . That culture
>>> has a
>>> name its called "pythonic"
>>>
>>> Beautiful is better than ugly.
>>> Explicit is better than implicit.
>>> Simple is better than complex.
>>> Complex is better than complicated.
>>> Flat is better than nested.
>>> Sparse is better than dense.
>>> Readability counts.
>>> Special cases aren't special enough to break the rules.
>>> Although practicality beats purity.
>>> Errors should never pass silently.
>>> Unless explicitly silenced.
>>> In the face of ambiguity, refuse the temptation to guess.
>>> There should be one-- and preferably only one --obvious way to do
>>> it.
>>> Although that way may not be obvious at first unless you're Dutch.
>>> Now is better than never.
>>> Although never is often better than *right* now.
>>> If the implementation is hard to explain, it's a bad idea.
>>> If the implementation is easy to explain, it may be a good idea.
>>> Namespaces are one honking great idea -- let's do more of those!
>>>
>>>
>>> this kind of ideology is why Python has been so successful. It has also
>>> inspired jokes like this
>>>
>>>
>>> http://xkcd.com/353/
>>>
>>> it may look funny and it says thinks about overestimating the simplicity
>>> of those libraries but python does feel at times as simple as this, as
>>> simple as importing antigravity.
>>>
>>> So if a kid comes to me and ask me "what language should I learn" , I
>>> will recommend a language that is fairly easy to learn , has powerful
>>> library , easy to use libraries , well documented and its a language that
>>> will able to keep using even if his or her needs change, forever. For that
>>> only Python is the language that has been able to succeed and I think its
>>> adoption will continue to progress in educational institutions pretty much
>>> everywhere on the planet.
>>>
>>>
>>> Referring to the rest of your post I dont agree that we need to separate
>>> Data from Code, I think quite opossite that a kid needs to be taught why
>>> Code and Data are one and what that means in practice. I also don't agree
>>> that OO or functional programming or any other programming paradigm I am
>>> aware of are the future. They are simple solutions for simpler times. The
>>> coding community at large the way I see it is in denial hoping to apply
>>> simple recipes to solve complex problems. We need very complex solutions to
>>> very complex problems , we need tools that can interact with the user in
>>> many diffirent ways.
>>>
>>> Pharo is definitely showing the future, the close integration of IDE ,
>>> language and environment. But thats is just the start, the next step is
>>> powerful tools that can deeply interact with code and solve automagically
>>> logical coding problems. Obviously all that has to be wrapped to an easy
>>> enough interface for the user even if the solutions is very complex.
>>>
>>> Fortunately this where the rest of the coding world is heading. For
>>> example iPython is one of the most popular python projects right and it
>>> offers a highly interactive environment for python coders that shares a lot
>>> of similarities with Pharo though the implementation is very different.
>>>
>>> So the future is no longer languages , is no longer IDEs , its not even
>>> environments but tools that are produced in these environments that can
>>> vastly automate coding and hide the increasing complexity of coding
>>> solutions. Maybe one day a child will be able to describe to a computer
>>> what kind of software he or she needs and the computer automatically
>>> generate the code for it. That day is not close enough but is where we are
>>> heading.
>>>
>>>
>>>
>>> On Sun, Sep 7, 2014 at 12:34 PM, Trygve Reenskaug <trygver(a)ifi.uio.no
>>> <mailto:trygver@ifi.uio.no>> wrote:
>>>
>>> I have for some time been pondering two problems. One is to
>>> identify the
>>> fourth R in *R*eading, w*R*iting, a*R*ithmetic, and p*R*ogramming.
>>> There
>>> are many contenders for the kids' first step. I believe the English
>>> government has chosen Phyton as a first language. Scratch has a
>>> certain
>>> popularity, there are many others. My concern is "what comes next"?
>>> I want
>>> the kid to gradually build a mental model of what computing is all
>>> about.
>>> Learn a little, do a little, lean more, do more, etc. up do old
>>> age. This
>>> goes much deeper than any programming language. It's a bit as
>>> learning to
>>> read. Personally, I "broke the reading code"at an early age. Since
>>> then, I
>>> have been learning more and more. What I read today would have been
>>> incomprehensible to me 75 years ago. But my basic mental model of
>>> what
>>> reading is all about has remained unchanged. I have never had to
>>> unlearn
>>> anything.
>>>
>>> I suggest that true object orientation (not class orientation) can
>>> form the
>>> foundation for the human mental model of computing. Internalize it
>>> and live
>>> with it forever.
>>> -------------------------------------
>>> The other problem is to find a better example for DCI
>>> presentations. It should
>>>
>>> 1. Be executable and have a cool demo effect.
>>> 2. Its domain model should be obvious from the demo.
>>> 3. It should have very few and very simple Data classes.
>>> 4. It should have a Context that is clearly and obviously
>>> separate
>>> from the Data.
>>> 5. It should scale to any number of Contexts (use cases)
>>> without
>>> changing the Data classes.
>>>
>>> -----------------------------------------
>>> /Last night I got an idea for an example: A waltzing couple. (See
>>> the
>>> attached for a picture and Wikipedia for a movie of the use case)./
>>>
>>> The program needs one simple class for a moveable shape and a DCI
>>> Context
>>> for each dance (waltz, foxtrot, tango, ... for two role, polonaise
>>> for
>>> more.) The example will clearly demonstrate the wisdom in
>>> separating what
>>> the system IS from what the system DOES since the simple Shape
>>> class would
>>> be overloaded with instance methods for all dances.
>>>
>>> What do you think?
>>>
>>> --Trygve
>>>
>>>
>>>
>>> --
>>>
>>> Trygve Reenskaug mailto: trygver(a)ifi.uio.no <mailto:
>>> trygver(a)ifi.uio.no>
>>> Morgedalsvn. 5A http://folk.uio.no/trygver/
>>> N-0378 Oslo http://fullOO.info
>>> Norway Tel: (+47) 22 49 57 27
>>> <tel:%28%2B47%29%2022%2049%2057%2027>
>>>
>>>
>>>
>>
>>
>
>
Sept. 7, 2014
Re: [Pharo-users] The fourth R
by Pablo R. Digonzelli
I think your work is very interesting kilon.
May be you can create framework for call python libraries from pharo.
Ing. Pablo Digonzelli
Software Solutions
IP-Solutiones SRL
Metrotec SRL
25 de Mayo 521
Email: pdigonzelli(a)softsargentina.com
pdigonzelli(a)gmail.com
Cel: 5493815982714
----- Mensaje original -----
De: "kilon alios" <kilon.alios(a)gmail.com>
Para: "Any question about pharo is welcome" <pharo-users(a)lists.pharo.org>
Enviados: Domingo, 7 de Septiembre 2014 16:19:39
Asunto: Re: [Pharo-users] The fourth R
A Python bridge is what I am working on with my project Ephestos, using a socket server / client relationship between Pharo and Python. So far it has been going quite well and is already usable for calling python libraries etc. It seems to work very well even for more complex python code, like class definition , function definitions etc. I use it to communicate with and control Blender. The same concept could well apply to any other languages Its definitely a project I am very interested so Python libraries are coming to Pharo sooner or later. Probably sooner ;)
On Sun, Sep 7, 2014 at 9:34 PM, Offray Vladimir Luna Cárdenas < offray(a)riseup.net > wrote:
Hi,
Really nice to see this talks here. My two cents would be around supporting a model that can grow with the user and trying to create a connected experience. I have been previously teaching Introduction to Informatics to young (17-21 years old) newbies and they include introductory programming. For that I have taught with Scheme, Python, Scratch/Etoys/Bots Inc and recently I been creating some data narratives on health with IPython. From this two experience (newbies teaching and data narratives) separated like ten years between them, I think that the idea of a continuous environment one that not only is connected across time (supporting your learning in time) but also in space, connecting several ways of programming and other environments. The idea of programming as a kind of literacy has point me to visual data narratives as a practical way to build this two axes continuum, of course, video games and (web) app building are others, but I think they're more specialized.
I think that Pharo now with Roassal and Moose can be vehicles for this visual data narratives, with the advantage that once you learn the language to tell this stories, you can also change the tools for build/express your understanding of the world, making use of the turtles all the way down metaphor, but for that we need exploring the say that Pharo can play better with others (for example pharo/python bridges).
Cheers,
Offray
On 09/07/2014 05:29 AM, kilon alios wrote:
<blockquote>
Python has no competition. Sure there are languages that are more popular than
Python for their own reasons. There have been simpler languages before python,
there have been more popular languages, more cross platform languages etc etc
but Python fills a gap that no language was able to fill before it , easy to use
very powerful well documented libraries. Python is a language that you can teach
to a kid now and make a living later on using until his or her old age. Its not
because the language is simple , its simple enough but not the simplest. Its
because the culture surrounding the creation of libraries . That culture has a
name its called "pythonic"
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
this kind of ideology is why Python has been so successful. It has also inspired jokes like this
http://xkcd.com/353/
it may look funny and it says thinks about overestimating the simplicity of those libraries but python does feel at times as simple as this, as simple as importing antigravity.
So if a kid comes to me and ask me "what language should I learn" , I will recommend a language that is fairly easy to learn , has powerful library , easy to use libraries , well documented and its a language that will able to keep using even if his or her needs change, forever. For that only Python is the language that has been able to succeed and I think its adoption will continue to progress in educational institutions pretty much everywhere on the planet.
Referring to the rest of your post I dont agree that we need to separate Data from Code, I think quite opossite that a kid needs to be taught why Code and Data are one and what that means in practice. I also don't agree that OO or functional programming or any other programming paradigm I am aware of are the future. They are simple solutions for simpler times. The coding community at large the way I see it is in denial hoping to apply simple recipes to solve complex problems. We need very complex solutions to very complex problems , we need tools that can interact with the user in many diffirent ways.
Pharo is definitely showing the future, the close integration of IDE , language and environment. But thats is just the start, the next step is powerful tools that can deeply interact with code and solve automagically logical coding problems. Obviously all that has to be wrapped to an easy enough interface for the user even if the solutions is very complex.
Fortunately this where the rest of the coding world is heading. For example iPython is one of the most popular python projects right and it offers a highly interactive environment for python coders that shares a lot of similarities with Pharo though the implementation is very different.
So the future is no longer languages , is no longer IDEs , its not even environments but tools that are produced in these environments that can vastly automate coding and hide the increasing complexity of coding solutions. Maybe one day a child will be able to describe to a computer what kind of software he or she needs and the computer automatically generate the code for it. That day is not close enough but is where we are heading.
On Sun, Sep 7, 2014 at 12:34 PM, Trygve Reenskaug < trygver(a)ifi.uio.no
<mailto: trygver(a)ifi.uio.no >> wrote:
I have for some time been pondering two problems. One is to identify the
fourth R in *R*eading, w*R*iting, a*R*ithmetic, and p*R*ogramming. There
are many contenders for the kids' first step. I believe the English
government has chosen Phyton as a first language. Scratch has a certain
popularity, there are many others. My concern is "what comes next"? I want
the kid to gradually build a mental model of what computing is all about.
Learn a little, do a little, lean more, do more, etc. up do old age. This
goes much deeper than any programming language. It's a bit as learning to
read. Personally, I "broke the reading code"at an early age. Since then, I
have been learning more and more. What I read today would have been
incomprehensible to me 75 years ago. But my basic mental model of what
reading is all about has remained unchanged. I have never had to unlearn
anything.
I suggest that true object orientation (not class orientation) can form the
foundation for the human mental model of computing. Internalize it and live
with it forever.
------------------------------ -------
The other problem is to find a better example for DCI presentations. It should
1. Be executable and have a cool demo effect.
2. Its domain model should be obvious from the demo.
3. It should have very few and very simple Data classes.
4. It should have a Context that is clearly and obviously separate
from the Data.
5. It should scale to any number of Contexts (use cases) without
changing the Data classes.
------------------------------ -----------
/Last night I got an idea for an example: A waltzing couple. (See the
attached for a picture and Wikipedia for a movie of the use case)./
The program needs one simple class for a moveable shape and a DCI Context
for each dance (waltz, foxtrot, tango, ... for two role, polonaise for
more.) The example will clearly demonstrate the wisdom in separating what
the system IS from what the system DOES since the simple Shape class would
be overloaded with instance methods for all dances.
What do you think?
--Trygve
--
Trygve Reenskaug mailto: trygver(a)ifi.uio.no <mailto: trygver(a)ifi.uio.no >
Morgedalsvn. 5A http://folk.uio.no/trygver/
N-0378 Oslo http://fullOO.info
Norway Tel: (+47) 22 49 57 27
<tel:%28%2B47%29%2022%2049% 2057%2027>
</blockquote>
Sept. 7, 2014
Re: [Pharo-users] [ann] pillar support in gtinspector
by Tudor Girba
Hi,
Thanks for the feedback. Indeed, your points are much inline with where we
should go next.
On Sun, Sep 7, 2014 at 9:50 PM, Offray Vladimir Luna Cárdenas <
offray(a)riseup.net> wrote:
> Hi Doru,
>
> I really like the advancements in this direction. If fact what I have
> trying to do, as a newbie, by making a Glamorous Toolkit powered
> outliner/tree like interface for writing structured documents tries
> something similar. I think that writing is mainly a non-linear experience
> and the usual metaphors of document processors are not powerful enough in
> expressing/exploring the structure of ideas in the writing process (some
> thought about it ane examples about how implement non-linear academic
> writing are in [1], in Spanish).
>
> [1] http://mutabit.com/offray/static/blog/output/posts/la-
> forma-en-que-escribo-para-el-doctorado.html
>
> I would like to create Visual Data Narratives inside Pharo/Moose/Roassal
> that use file system and web, and LateX as "exportation formats", but where
> the writing/structuring experience happen mainly inside Pharo. For that
> persistence/change of trees is important, but as I have documented in other
> threads, I'm having problems with it, using Glamorous Toolkit (specifically
> on updating objects from text panes and from emergent windows for tree
> names/properties).
>
> With your post, I'm wondering who difficult is:
>
> a. To put support to Pillar/Markdown inside text panes (something similar
> to the "smalltalkCode" message for showing Smalltalk in text panes but with
> "pillarCode" or "markdownCode" (or some dictionary with the #syntax keyword
> and the language as a value).
>
That is precisely what already happened. If you load the code, you can take
a look at the FileReference>>gtInspectorPillarIn: method to see how to
specify the presentation.
> b. To execute some parts of the code, for example the ones that are inside
> "[[[" "]]]" while the cursor is there, so we could not only preview
> imagages, but also execute code for visualizations or other computations
>
Exactly. That should definitely be a direction. We need to experiment here
with the exact semantics. For example, you will not always want to execute
the code. Or not all code is meant to be executed.
> c. The ability to support drag and drop to files to the tree (a Glamorous
> Tree) and get some kind of node pointing to that file.
>
That is indeed something I would want as well. For example, we should be
able to drag and drop a pier file from the outside and spawn an editor on
it.
> d. Tha ability to preview thumbnail images in a similar way of the
> "contextual places" for printing described on your post at [2]
>
> [2] http://www.humane-assessment.com/blog/rethinking-print-it-in-pharo
>
Yes. This will likely come soon :)
e. The hability to show a preview of the pdf/html in an emergent lateral
> panel in a simlar way to what TeXStudio or TeXmaker do[3]
>
> [3] http://www.xm1math.net/texmaker/texmakertop_big.png
I do not know how to do it at this time. For this purpose, we would need to
be able to embed a browser in a Pharo UI, and I am not aware of how to do it
>
> So here I put my other ideas about "bringing liveliness to documentation"
> as you said and I would like to build them together.
>
Great. Please keep experimenting and keep us posted.
Cheers,
Doru
> Cheers,
>
> Offray
>
> Ps: In the other threads I'm asking about how to advance in the outliner
> metaphor for live doc writing on Pharo/Moose/Roassal. I'll keep you posted.
>
> On 09/07/2014 08:41 AM, Tudor Girba wrote:
>
>> Hi,
>>
>> Documentation is important. To make it more likely and more enjoyable for
>> people
>> to write more of it, I teamed up with Andrei and Jan to build up support
>> for
>> Pillar in the GTInspector.
>>
>> The current solution brings the following:
>> - Pillar specific syntax highlighting including Shout highlighting for
>> code snippets
>> - Embedded files validation and preview possibility
>> - Quick browsing of Pillar book projects when inspecting the book folder
>> - Class comment rendering using Pillar syntax when inspecting the class
>> object
>> - Text editor support for custom highlighting in Glamour (using Rubric
>> for now)
>> - Island parsing for quick specification of incomplete parser
>>
>> You can learn more about it here:
>> http://www.humane-assessment.com/blog/writing-pillar-books-
>> with-the-gtinspector
>>
>> Inline image 1
>>
>> There is much more to do in this direction, and I would be happy to
>> inspire some
>> of you to join forces. Please let us know what you think.
>>
>> Cheers,
>> Doru
>>
>> --
>> www.tudorgirba.com <http://www.tudorgirba.com>
>>
>> "Every thing has its own flow"
>>
>>
>
>
--
www.tudorgirba.com
"Every thing has its own flow"
Sept. 7, 2014
Re: [Pharo-users] [ann] pillar support in gtinspector
by Offray Vladimir Luna Cárdenas
Hi Doru,
I really like the advancements in this direction. If fact what I have
trying to do, as a newbie, by making a Glamorous Toolkit powered
outliner/tree like interface for writing structured documents tries
something similar. I think that writing is mainly a non-linear
experience and the usual metaphors of document processors are not
powerful enough in expressing/exploring the structure of ideas in the
writing process (some thought about it ane examples about how implement
non-linear academic writing are in [1], in Spanish).
[1]
http://mutabit.com/offray/static/blog/output/posts/la-forma-en-que-escribo-…
I would like to create Visual Data Narratives inside Pharo/Moose/Roassal
that use file system and web, and LateX as "exportation formats", but
where the writing/structuring experience happen mainly inside Pharo. For
that persistence/change of trees is important, but as I have documented
in other threads, I'm having problems with it, using Glamorous Toolkit
(specifically on updating objects from text panes and from emergent
windows for tree names/properties).
With your post, I'm wondering who difficult is:
a. To put support to Pillar/Markdown inside text panes (something
similar to the "smalltalkCode" message for showing Smalltalk in text
panes but with "pillarCode" or "markdownCode" (or some dictionary with
the #syntax keyword and the language as a value).
b. To execute some parts of the code, for example the ones that are
inside "[[[" "]]]" while the cursor is there, so we could not only
preview imagages, but also execute code for visualizations or other
computations
c. The ability to support drag and drop to files to the tree (a
Glamorous Tree) and get some kind of node pointing to that file.
d. Tha ability to preview thumbnail images in a similar way of the
"contextual places" for printing described on your post at [2]
[2] http://www.humane-assessment.com/blog/rethinking-print-it-in-pharo/
e. The hability to show a preview of the pdf/html in an emergent lateral
panel in a simlar way to what TeXStudio or TeXmaker do[3]
[3] http://www.xm1math.net/texmaker/texmakertop_big.png
So here I put my other ideas about "bringing liveliness to
documentation" as you said and I would like to build them together.
Cheers,
Offray
Ps: In the other threads I'm asking about how to advance in the outliner
metaphor for live doc writing on Pharo/Moose/Roassal. I'll keep you posted.
On 09/07/2014 08:41 AM, Tudor Girba wrote:
> Hi,
>
> Documentation is important. To make it more likely and more enjoyable for people
> to write more of it, I teamed up with Andrei and Jan to build up support for
> Pillar in the GTInspector.
>
> The current solution brings the following:
> - Pillar specific syntax highlighting including Shout highlighting for code snippets
> - Embedded files validation and preview possibility
> - Quick browsing of Pillar book projects when inspecting the book folder
> - Class comment rendering using Pillar syntax when inspecting the class object
> - Text editor support for custom highlighting in Glamour (using Rubric for now)
> - Island parsing for quick specification of incomplete parser
>
> You can learn more about it here:
> http://www.humane-assessment.com/blog/writing-pillar-books-with-the-gtinspe…
>
> Inline image 1
>
> There is much more to do in this direction, and I would be happy to inspire some
> of you to join forces. Please let us know what you think.
>
> Cheers,
> Doru
>
> --
> www.tudorgirba.com <http://www.tudorgirba.com>
>
> "Every thing has its own flow"
>
Sept. 7, 2014