Re: [Pharo-dev] [Pharo-users] success story: NTed

47 views
Skip to first unread message

Nicolas Petton

unread,
May 15, 2013, 6:12:43 AM5/15/13
to Discusses Development of Pharo, Any question about pharo is welcome, Amber ML
Hi Norbert,

I'm answering inside your email. If you'd like more explanations about some of the points, please just tell me. I'm also forwarding to Amber ML.

On May 14, 2013, at 5:37 PM, Norbert Hartl <nor...@hartl.name> wrote:

> Hi Nico,
>
>> I do have one question: what was your experience with Amber?
>>
>
> as an overall statement I would say it was a pleasure to use amber to develop the app. The initial setup until the class browser opens is easy. Learning how to create packages and knowing that code persistence is based on packages is also quite ok because amber includes a WebDav Server that can be started from the downloaded amber repo. So no big problems in starting.
>
> Thinks that go less smooth:
>
> - the web app I'm developing is checked into git. Amber puts all files (js and st) in the same directory. This makes managing files in version control system a bit cumbersome.

One approach that worked for me and others is to ignore the .js files and recompile the .st files of your project using a git hook when you pull.


> - all code is put in the same directory. The amber code checked out from the repository is in the same place as the code that I produced myself. Again you need to do additional steps to do to clean it up

You can now deal with that. loadAmber() takes additional optional arguments to deal with project paths.

> - tools for combining code are missing. That is not a big problem because a simple cat on the console can solve this but would be nice not have to.

bin/amberc does that. That's actually how the WebDAV of Amber is compiled into one file :)

> - I prepared two different locations on my web server for the same app. One that is used to develop (the WebDav server access it) and one where only the combined javascript source code is used. This is needed to test the target deployment. Something that could ease this would be wonderful
>
> What keeps me from using it in every project:
>
> - The startup times for amber can be quite huge. All the class initialization is a lot of stuff that burns CPU cycle. On an iphone you don't notice really but on the Nexus 7 tablet it takes 2-4 seconds for initialization and the first page to appear. This is a not a problem for desktop browsers but for mobile ones where I find amber extremely good for. I only used amber in pre pre 1.0 versions and I know there have been optimizations that I didn't test, yet.

The latest stable release of Amber should be *a lot* faster to load.

>
> And the annoying "You didn't ask for but I add it anyway wishlist":
>
> - I need to test Helios because I think it solves a lot of issues with the current browser. I don't know how it is supposed to work that you have a second window with the IDE that accesses a page. But I'm sure it works flawlessly or I misunderstood it from the screenshots

yes, it does :)

> - retarget files on the disc. I would like to have different paths on disc for separate packages.

You can also do that now with loadAmber()

> - amber using websockets to connect to a backend pharo server. This can be used for comfortable code management, amber support for state transport client->server and server->client and to replicate console log to the pharo transcript (or whatever). This is important on mobile devices where sometimes you cannot access the browser console.

ok, that's an interesting point :)

> - it would be fine to have support for obfuscation. It is not only for hiding code but also for making it smaller thus saving bandwidth and startup times. This could be the case if the produced javascript code would be work with google closure compiler. Even better would be to have visitor for AST/IR to make it even more effective/less dangerous.

it does work with Google Closure Compiler, there's an option in bin/amberc too for that ;)
>

Cheers,
Nico

> Norbert
>
> Am 14.05.2013 um 15:32 schrieb Nicolas Petton <petton....@gmail.com>:
>
>> Nico
>>
>>
>> On May 14, 2013, at 11:37 AM, Norbert Hartl <nor...@hartl.name> wrote:
>>
>>> I think my last post of this message fell into the time the old mailing list dies. So here it is again
>>>
>>> ---
>>>
>>> We (@2denker in cooperation with a local university) built a monitoring tool for disaster scenario recovery rehearsals. Several times a year universities, red cross, THW und hospitals are planning a rehearsal together. For this an environment is prepared for a simulated disaster (car accidents, explosions in civil areas, …). The local environment is prepared to look real as well as film make-up artist prepare people for injuries (broken legs, open head, …).
>>> The rehearsal should improve the coordination of several hospitals, firemen…as well as the quickest possible treatment for the injured.
>>>
>>> One important part of the rehearsal is monitoring of what happens. This is achieved by installing a local position system and using our tool. Every injured person gets a wireless tablet. On the tablet there are UI elements that indicate treatment done to them. Whenever a doctor comes visiting the injured person activates the corresponding UI button. The events are transmitted to a server and are prepared for another analysis software. The tablet enables the HQ to make contact to individual persons or groups. The tablet measures times of needed treatments and instructs the injured to be dead if measurements weren't taken in time.
>>>
>>> Technically it is done in smalltalk solo.
>>>
>>> The server is a pharo image. It has
>>>
>>> - web admin interface with complex forms for managing injuries, injured, groups, etc. For this we used seaside because it is best suited for this job. Forms are done with magritte, magritte-bootstrap. The interface also displays the live incoming events and other data
>>> - a static file server that delivers static resources to client tablets
>>> - a websocket connector that is used by the clients to connect to the server
>>> - a http handler to export data to other analysis tools
>>>
>>> The client is done with amber smalltalk. It
>>>
>>> - loads the web page containing amber from the server
>>> - connects back to the server
>>> - downloads a UI spec for the injured using the tablet to display personalized UI elements
>>> - stores events on the tablet in case the injured is offline
>>> - measures times to instruct the injured
>>>
>>> If you have any questions please don't hesitate to ask.
>>>
>>> Norbert
>>
>> --
>> Nicolas Petton
>> http://www.nicolas-petton.fr
>>
>>
>
>

--
Nicolas Petton
http://www.nicolas-petton.fr

ph...@highoctane.be

unread,
May 15, 2013, 6:21:24 AM5/15/13
to amber...@googlegroups.com
About the Google closure compiler, how does one install that?

Just put the jar file in one's home directory as the amberc usager page says?

Phil


2013/5/15 Nicolas Petton <petton....@gmail.com>

--
You received this message because you are subscribed to the Google Groups "amber-lang" group.
To unsubscribe from this group and stop receiving emails from it, send an email to amber-lang+...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



Nicolas Petton

unread,
May 15, 2013, 6:56:29 AM5/15/13
to amber...@googlegroups.com, Manfred Kröhnert
I'm actually not sure. Manfred can answere that :)

Nico

Manfred Kröhnert

unread,
May 15, 2013, 7:10:07 AM5/15/13
to amber...@googlegroups.com
Hi Phil,

currently it only works if 'compiler.jar' can be found in your home directory.

Afterwards you need to specify any of the optimization flags -o, -O, or -A.

Best,
Manfred

Norbert Hartl

unread,
May 15, 2013, 9:31:39 AM5/15/13
to amber...@googlegroups.com, Discusses Development of Pharo, Any question about pharo is welcome
Nico,

thanks for your helpful input. I will try all of these when the project enters the next phase. Well, I will measure the startup times soon because it influences the do or don't of using it in new projects.

Norbert
Reply all
Reply to author
Forward
0 new messages