Smalltalk Seaside has Ajax support, which can help you create web applications with great user experience. However, there is a lack of documentation so sometimes it is hard to have things done. In this article, I will show you how to implement a page with a progress bar which shows and constantly updates a state of server process. The component will pool the server via ajax calls and update it's state withouth a page refresh in the browser.
We all have this issue of recovering significant map data to be able to know where to put sensors on (and obstacles, and etc...).
If you need to parse expressions in Pharo you have the choice between a few parser frameworks. E.g.:
Pharo as any Smalltalk is a sequential language since at one point in time there is onlyone computation carried on. However, it has the ability to run programs concurrently by interleaving their executions. The idea behind Smalltalk was to propose a complete OS and as such a Smalltalk run-time offers the possibility to execute different processes (or threads) that are scheduled by a process scheduler defined within the language.
PillarHub is an open software anyone can use or modify it. The code is published under MIT license which is the same that is used for Pharo itself. You may find sources of PillarHub at SmalltalkHub via this link:
If you worked with Smalltalk Seaside framework, you know that there is an object called "Session" which you can use to store a global state for your application. For instance, you may have a current user object stored and shared between components in session. If you use it, you must know that name "session" is very misleading and dangerous as "session" in other platforms means completely different thing than it means in Seaside. Understanding the difference is essential for security and usability of your application. In this article, I would like to show the difference between "usual session" and "seaside session" and why cookie-tracking policy should not be used for "securing" the urls.
The new PillarHub features are just released: Shared Hub and "thanks" buttons. Check this memo for more information.
You may face a problem with a Seaside application when you have a component which is used for some time without any requests. Like a text-editing form which is used for writing long texts. If it takes a user to write a text for time longer then a session timeout then all his work will dissappear due to an invalid session when the form is submited. Here is a small code that solves this problem by making session prolongate while user's browser is open.