[squeak-dev] Re: [Pharo-dev] The Dilemma: Building a Futuristic GUI for Ephestos

Eliot Miranda eliot.miranda at gmail.com
Mon Sep 15 18:54:25 UTC 2014


On Sun, Sep 14, 2014 at 10:07 AM, Nicolai Hess <nicolaihess at web.de> wrote:

> 2014-09-14 18:20 GMT+02:00 kilon alios <kilon.alios at gmail.com>:
>
>> Plenty ? no
>>
>> A few ? yes
>>
>> Woden is certainly a project that I want it to be successful and keep
>> going forward but at the moment I can't say its usable when each time I
>> resize the window it corrupts the viewport.
>>
>> No offense intended but lately the more I dive inside Pharo the more I
>> feel I waste my time, I love the IDE and the environment and live coding
>> but using the libraries is a never ending struggle for me. I agree with
>> Nicolai the landscape is not good, Pharo really lacks mature libraries .
>> Sure we like to bash Java but Java libs are rock solid and very well
>> documented. I bring Java as example. Again I am not complaining at all, I
>> knew when I came to Pharo that I will have to face these limitations. I
>> also don't feel comfortable asking questions all the time as if I want
>> others to do my code but I did not have much of a choice. I just cant deal
>> with the lack of documentation any more.
>>
>> I think Pharo as a general idea is great , you definitely have taken the
>> Squeak fork one big step further but you have a very long road ahead of you
>> to make Pharo a modern environment. Asking for animating a window with good
>> performance is one of the very basics of a good GUI API. I know you have
>> limited resources and once again I am not complaining at all I just present
>> my opinion. Its clear that Pharo needs a lot more people to contribute and
>> bring the system forward at least to solve the basic problems.
>>
>
> This is definitly wrong :)
> Especially the older squeak versions were ahead of its time with
> (animated) interactive UI elements.
> Java (Swing) does not come with an animation framework for the UI (JavaFX,
> yes but that took its time).
> There was a timing/animation framework used by Roman Guy for its
> FilthyRich clients, that did really look great.
> He created UIs that never looked like ordinary Java UIs. But I think that
> was done by few people only.
> So, doing this for pharo should be doable. (I do remember something like
> that was done for
> Morphic (maybe this one:
> https://www.hpi.uni-potsdam.de/hirschfeld/trac/SqueakCommunityProjects/wiki/animations
> ))
>
> yoiu can do great thinks with Qt for C++ simple animation with the good
> old qwidget and
> the newer qml-framework. That's what I would call feature UIs (mostly what
> is done nowadays on mobile devices and other
> "platforms" have their own frameworks (java)android and Object-C (IPhone).
>
> And I think we will see more "feature"-UI on the web with
> HTML5/Canvas/Web-GL.
>
> Do we need a good new UI framework for pharo? Yes.
> Do we need many developers for working on this ? No, I think a handfull
> (2-4) people would be enough.
> What pharo really needs are:
> Many more developers *using* pharo as a platform.
>

Agreed.  But one real problem with the Squeak/Pharo UI is the lack of
native windows.  There is an old project Graphics-External-Ffenestri but
AFAICT it isn't being used.  But there /is/ a really good prototype of a
native window system above Squeak done by Vassili Bykov in Newspeak.  The
native windows contain morphs, but anything, including MVC, can be present.
This provides native Win32 Windows (doing other platforms is merely work)
/and/ the ability to snapshot and bring back up windows on a different
platform (e.g. open in win32, snapshot and bring up in Squeak/Pharo Morphic
windows, or vice verse), and the ability to do this dynamically.  Is anyone
motivated to port the Newspeak code back to Squeak/Pharo?


If you're interested, contact me, or Vassili, or Bob Westergaard and ask
about Brazil (think plumbing).

nicolai
>
>
>
>
>>
>> Thank you all people who helped me. But I don't think it worths to make
>> my project in Pharo, too many problems.  I feel privileged to have helped
>> you with my contributions , I wish the Pharo the best.
>>
>> I could return back to Python but I think its time for me to bite the
>> bullet and learn C/C++, since graphics is an area that deeply interest me
>> (more as an artist less as a coder), so I don't have much of choice. Maybe
>> I can brings some of my code back to Pharo with NB wrappers , I definitely
>> will keep a close eye on Pharo.
>>
>> In a few months I will also present to the Pharo community a secret last
>> contribution ;)
>>
>> On Sun, Sep 14, 2014 at 6:26 PM, phil at highoctane.be <phil at highoctane.be>
>> wrote:
>>
>>> Do you know anything better for futuristic UIs at the moment?
>>>
>>> I guess that we aren't talking about commercial dev here. And if we
>>> would rely on everything being documented in Pharo, errr, we wouldn't go
>>> too far.
>>>
>>> That being said, there are plenty of examples in the Woden code.
>>>
>>> Phil
>>> Le 14 sept. 2014 16:28, "Nicolai Hess" <nicolaihess at web.de> a écrit :
>>>
>>> Why should he use it, now?
>>>> I mean, is there a stable API? Or a roadmap ?
>>>>
>>>> Sometimes it is a bit dangerous to trust on "bleeding edge" pharo
>>>> frameworks.
>>>> I did some work based on Roassal3D just to found out there won't be any
>>>> further development.
>>>> The same happens with Roassal and GraphET.
>>>> The same can happen with Woden too :)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> 2014-09-14 14:13 GMT+02:00 phil at highoctane.be <phil at highoctane.be>:
>>>>
>>>>> Why not use Woden?
>>>>>
>>>>> Phil
>>>>>  Le 14 sept. 2014 12:51, "kilon alios" <kilon.alios at gmail.com> a
>>>>> écrit :
>>>>>
>>>>> yeah I am afraid transparency is very important to me
>>>>>>
>>>>>> On Sun, Sep 14, 2014 at 1:34 PM, Nicolai Hess <nicolaihess at web.de>
>>>>>> wrote:
>>>>>>
>>>>>>> 2014-09-14 11:32 GMT+02:00 stepharo <stepharo at free.fr>:
>>>>>>>
>>>>>>>>  I remember that there was an animated gif support.
>>>>>>>> Now I do not remember exactly.
>>>>>>>>
>>>>>>>
>>>>>>> At least in squeak there is an AnimatedImageMorph, that can load and
>>>>>>> display animated gifs.
>>>>>>> That works and is quite fast even for multiple instances. But of
>>>>>>> course no (alpha-)transparency
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> for roassal2 have a look at the viva classes: this is the animation
>>>>>>>> frameworks that igor designed.
>>>>>>>>
>>>>>>>> Stef
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On 14/9/14 10:22, kilon alios wrote:
>>>>>>>>
>>>>>>>> so I tried to animate in Roassal having two different images
>>>>>>>> display with a delay for few millisecond but it only displays the second
>>>>>>>> image with this code
>>>>>>>>
>>>>>>>>  form1 :=Form fromFileNamed:'/Users/kilon/Pictures/pharo.png'.
>>>>>>>> form2 :=Form fromFileNamed:'/Users/kilon/Pictures/box.png'.
>>>>>>>> v := RTView new.
>>>>>>>> c := v canvas.
>>>>>>>> s := TRBitmapShape new.
>>>>>>>> s form: form1.
>>>>>>>> c addShape: s.
>>>>>>>> v  open.
>>>>>>>>
>>>>>>>>  (1 to: 100) do: [ :index|
>>>>>>>> s form: form1.
>>>>>>>> s signalUpdate .
>>>>>>>> "(Delay forMilliseconds: 1000 ) wait."
>>>>>>>> s form: form2.
>>>>>>>> s signalUpdate .
>>>>>>>> (Delay forMilliseconds: 1000) wait.].
>>>>>>>>
>>>>>>>>  I looked into RTAnimation but dont know how to use it for this
>>>>>>>> example. Any help ? Does Roassal 2 support such animations ?
>>>>>>>>
>>>>>>>>  if I do s form: and then s signalUpdate for each form separately
>>>>>>>> it works fine but inside the loops does not seem to work , I tried bigger
>>>>>>>> delays with no effect.
>>>>>>>>
>>>>>>>> On Sun, Sep 14, 2014 at 10:57 AM, stepharo <stepharo at free.fr>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>  Ronie when you ready I can help writting a chapter for the nex
>>>>>>>>> book.
>>>>>>>>>
>>>>>>>>> Stef
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 13/9/14 21:42, Ronie Salgado wrote:
>>>>>>>>>
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>>  On 13/9/14 20:11, Enrico Schwass wrote:
>>>>>>>>>>
>>>>>>>>>> Hi
>>>>>>>>>>
>>>>>>>>>>  another option could be the verse protocol. There was a plugin
>>>>>>>>>> for Maya and Blender to do realtime rendering. Dont know if there is some
>>>>>>>>>> automatic Swig-like wrapper for smalltalk but FFI might work.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  There is Wig like wrapper for Pharo done by ronie salgado.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  I have an adapted version of Swig for Pharo NativeBoost here:
>>>>>>>>> https://github.com/ronsaldo/swig
>>>>>>>>>
>>>>>>>>>  Currently I am using it to generate my Bullet bindings
>>>>>>>>> (available here: https://github.com/ronsaldo/bullet-pharo) that
>>>>>>>>> can be used as an example of using Swig.
>>>>>>>>>  I still have to improve more my Swig generator, by writing
>>>>>>>>> documentation and fixing some bugs.
>>>>>>>>>
>>>>>>>>>  Greetings,
>>>>>>>>>  Ronie
>>>>>>>>>
>>>>>>>>> 2014-09-13 16:11 GMT-03:00 stepharo <stepharo at free.fr>:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 13/9/14 20:11, Enrico Schwass wrote:
>>>>>>>>>>
>>>>>>>>>> Hi
>>>>>>>>>>
>>>>>>>>>>  another option could be the verse protocol. There was a plugin
>>>>>>>>>> for Maya and Blender to do realtime rendering. Dont know if there is some
>>>>>>>>>> automatic Swig-like wrapper for smalltalk but FFI might work.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  There is Wig like wrapper for Pharo done by ronie salgado.
>>>>>>>>>>
>>>>>>>>>> Stef
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  http://youtu.be/c_D2YJSNj8I
>>>>>>>>>>
>>>>>>>>>>  Almost a decade ago I did some ruby bindings by hand. It was
>>>>>>>>>> working out of the box
>>>>>>>>>>
>>>>>>>>>>  Bye
>>>>>>>>>> Enno
>>>>>>>>>>
>>>>>>>>>> Am 13.09.2014 um 16:11 schrieb kilon alios <kilon.alios at gmail.com
>>>>>>>>>> >:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> " I am curious. You mean rendering Bitmap from blender, for later
>>>>>>>>>> use in Pharo UI? "
>>>>>>>>>>
>>>>>>>>>>  yes exactly. Blender can render in all popular graphics files,
>>>>>>>>>> most used are png. Animation frames can be rendered each frame in its own
>>>>>>>>>> file.
>>>>>>>>>>
>>>>>>>>>>  So basically its a lot like the average games out there.
>>>>>>>>>>
>>>>>>>>>>  "I will suggest bare bone Morphic mainly, then Athens when you
>>>>>>>>>> need vectorial drawing."
>>>>>>>>>>
>>>>>>>>>>  ok
>>>>>>>>>>
>>>>>>>>>>  "For iStoa I decided to go purely Morphic, I have a lot of
>>>>>>>>>> bitmap. Bitmap source is SVG, then converted to PNG, overscaled for
>>>>>>>>>> production use. Then from iStoa, depending on the application window
>>>>>>>>>> extent, the bitmap are downscaled accordingly, I am pretty satisfied by the
>>>>>>>>>> result."
>>>>>>>>>>
>>>>>>>>>>  I fail to understand how your bitmap source is SVG for me
>>>>>>>>>> bitmap is a raster graphic format svg is  procedural graphic format. Two
>>>>>>>>>> opposite things.
>>>>>>>>>>
>>>>>>>>>>  "Sure. The downpoint, you will depend on one additional layer."
>>>>>>>>>>
>>>>>>>>>>  dependency is not an issue. Afterall the graphic files
>>>>>>>>>> themselves will be far bigger download even more so if the GUI becomes very
>>>>>>>>>> large.
>>>>>>>>>>
>>>>>>>>>>  "Nice.  What will be the expected outcomes of such API, I am
>>>>>>>>>> not sure to understand and I am curious."
>>>>>>>>>>
>>>>>>>>>>  Well Blender besides creating 3d objects (which can be used as
>>>>>>>>>> 2d objects too) it can also create 3d unrendable objects. That means that
>>>>>>>>>> objects produce no graphics and have the role of placeholders or helpers,
>>>>>>>>>> for example when you want an emitter of light or emitter of a physical
>>>>>>>>>> power like gravity or wind. Those are called dummy objects and I could use
>>>>>>>>>> them to give characteristics to the graphics , for example I could use a
>>>>>>>>>> dummy to define the are of influence of a mouse click , or what type of
>>>>>>>>>> event the bitmap will respond to. That means you wont have to import the
>>>>>>>>>> graphics manually to pharo and create a separate morph for each bitmap and
>>>>>>>>>> then set the events but rather press a button in blender and then Ephestos
>>>>>>>>>> will import then bitmaps to pharo , set the events and create the morphs
>>>>>>>>>> automagically.
>>>>>>>>>>
>>>>>>>>>>  So basically you will be using Blender as a GUI designer.
>>>>>>>>>>
>>>>>>>>>>  "Use fuel to store the state of your application objects."
>>>>>>>>>>
>>>>>>>>>>  ah nice so fuel is a good candidate.
>>>>>>>>>>
>>>>>>>>>>  I will also take a look at Dr Geo and Phratch , both apps have
>>>>>>>>>> custom GUIs and use only Morphic (Dr Geo using Athens for the geometry
>>>>>>>>>> primitives) .
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20140915/9d4f5771/attachment.htm


More information about the Squeak-dev mailing list