Converting the Propeller Tool to the web with one line of code
Bob Lawrence (VE1RLL)
Posts: 1,720
Thinfinity® VirtualUIBuy
Instant GUI Remoting and Web Integration for Windows Apps
Thinfinity VirtualUI empowers developers who are confronted with a need for deep modernization of existing Windows-based apps with a dual-approach tool: instant GUI remoting and full web integration.
When it comes to GUI remoting, Thinfinity VirtualUI offers a single-line-of-code user interface remoting solution for self-developed applications, making possible to deliver them as dual-platform Windows/HTML5 apps. These applications can keep their standard Windows environment behavior or, alternatively, be hosted on a Thinfinity VirtualUI environment to be remotely accessed from any modern web browser in a multi-user, multi-instance manner.
Regarding its full web integration capabilities, Thinfinity VirtualUI takes advantage of the newly developed Javascript Remote Objects (jsRO) framework to facilitate two-way data integration between the application and the browser. jsRO makes this possible by enabling the creation of remotable server objects, with their properties, methods and events mirrored to the web as native javascript objects.
Thinfinity VirtualUI makes a huge leap forward, and boosts the concept of GUI remoting with the addition of real, smooth full web integration, filling a void that no other existing remoting tool has ever addressed!
Overview:
http://www.cybelesoft.com/thinfinity/virtualui/
Delphi Tutorial:
http://www.cybelesoft.com/downloads/virtualui-tutorial-delphi.pdf
Live Demo's
http://www.cybelesoft.com/thinfinity/virtualui/
Thinfinity VirtualUI - Video1 - Getting Started with Thinfinity VirtualUI (Delphi)
https://www.youtube.com/watch?v=13ZANj8sUJE
Instant GUI Remoting and Web Integration for Windows Apps
Thinfinity VirtualUI empowers developers who are confronted with a need for deep modernization of existing Windows-based apps with a dual-approach tool: instant GUI remoting and full web integration.
When it comes to GUI remoting, Thinfinity VirtualUI offers a single-line-of-code user interface remoting solution for self-developed applications, making possible to deliver them as dual-platform Windows/HTML5 apps. These applications can keep their standard Windows environment behavior or, alternatively, be hosted on a Thinfinity VirtualUI environment to be remotely accessed from any modern web browser in a multi-user, multi-instance manner.
Regarding its full web integration capabilities, Thinfinity VirtualUI takes advantage of the newly developed Javascript Remote Objects (jsRO) framework to facilitate two-way data integration between the application and the browser. jsRO makes this possible by enabling the creation of remotable server objects, with their properties, methods and events mirrored to the web as native javascript objects.
Thinfinity VirtualUI makes a huge leap forward, and boosts the concept of GUI remoting with the addition of real, smooth full web integration, filling a void that no other existing remoting tool has ever addressed!
Overview:
http://www.cybelesoft.com/thinfinity/virtualui/
Delphi Tutorial:
http://www.cybelesoft.com/downloads/virtualui-tutorial-delphi.pdf
Live Demo's
http://www.cybelesoft.com/thinfinity/virtualui/
Thinfinity VirtualUI - Video1 - Getting Started with Thinfinity VirtualUI (Delphi)
https://www.youtube.com/watch?v=13ZANj8sUJE
Comments
1) I want to wrap a web browser with Thinfinity.
2) The youtube video posted shows some language that is not C or C++. VB maybe? In any case, does Thinfinity support anything other than that language? PropellerIDE and SImpleIDE were written in C++ I think.
We are trying to eliminate Windows apps not encourage them.
Might be cool for running some old legacy system I guess.
Server and Client Software
@heater:
re:What a crock. VNC type solution in the browser as far as I can tell.
Not so fast LOL
1. Thinfinity VirtualUI Server is an http(s)/websockets server that communicates with the Windows app through the Thinfinity VirtualUI SDK libraries, taking the GDI/GDI+ redirection commands to the web browser.
2. Thinfinity VirtualUI Javascript Client is the responsible for the actual drawing on the web-browser canvas and interacting with the end-user mouse and keyboard events.
Architecture:
http://www.cybelesoft.com/thinfinity/virtualui/
To clarify then, are you referring to Propeller Tool, or Propeller IDE?
re:We are trying to eliminate Windows apps not encourage them.
I'm not trying to encourage anything. It's just another option and like all people with an open mind it may come in handy for a specific requirement.
That would be "Heater." I have not signed up for the chop yet!
Yes, it's not much like VNC. Shoveling pixels from the server machine to the remote client window.
It's a bit cleverer and ships graphics commands over the net to the remote window to draw.
Same difference to me. It's an app running at point A with the display appearing at point B.
Whoopy doo. X Windows has been doing this for thirty years or more.
As I said, our aim should be to eliminate Windows dependence not encourage it. Might be good for keeping legacy code running in some cases.
And, Heater: I'd consider Propeller Tool to be a Legacy system, which would actually make this a reasonable solution. Kinda cool actually.
@Bob
Where are a user's source code files stored? On the remote machine? In a cloud? What about programming the Propeller?
Yes, with that small part of my mind that is still open, I did say it may be useful for preservation of legacy apps.
In general I don't find the concept of "open mind" compatible with "closed source, proprietary software"
Interesting. I also came across this work for chrome a few days back
https://developer.chrome.com/native-client
Claims
["Native Client is a sandbox for running compiled C and C++ code in the browser efficiently and securely, independent of the user’s operating system. Portable Native Client extends that technology with architecture independence, letting developers compile their code once to run in any website and on any architecture with ahead-of-time (AOT) translation."]
re:That would be "Heater." I have not signed up for the chop yet!
I caught it . It's not really my fault. Where I come from we always add an H where is' not suppose to be and leave it out when it's needed LOL
http://en.wikipedia.org/wiki/Newfoundland_and_Labrador
That's OK "'eater" would be acceptable
Where were we? Delivering Windows apps to the browser. Yes, terrible idea.
Chrome native client is Chrome only.
One can also compile apps to JavaScript with Emscripten and have them run at nearly the same speed. But cross browser. See OpenSpin working in your browser here: http://the.linuxd.org/lab/spine.html. Plenty fast enough.
Where are a user's source code files stored? On the remote machine? In a cloud? What about programming the Propeller?
Heater
@ Hey Bob, you are almost British!
yes I am mate
I would assume if it (Programming on the Propeller )was a cloud service it would go to a database in the cloud. However, If I were to design a local program to run in the browser I would assume that it would be stored on the system that the browser is running on. The fish facts demo is a database program running in the Browser.
Maybe in the next few weeks I will make a simple Delphi demo app to try a few more things like saving from the browser. I did one a while back with a few buttons to see if it would run in the browser with this software and it ran fine.
Another issue is >> would it support USB running in the browser?
We have been hearing how much you hate Windows for several years now... I do believe you have worn out that subject Give us something new
and whoever,
Having a web IDE in your browser does not imply that you need a remote server to store your source files. Files can be loaded and saved from your local machine. Heck, the server could be a simple program running on your local machine. The "cloud" is not required.
One can also program a Propeller attached to your local machine from the browser. Currently only the Chrome browser supports this but who knows what happens in the future. But then again that simple server running locally can do it for you.
No the browser knows nothing of USB (As far as I know) but as I say Chrome can hit a serial port.
See the Espruino IDE for a fine example of how this can work https://chrome.google.com/webstore/detail/espruino-web-ide/bleoifhkdalbjfbobjackfdifdneehpo?hl=en
OK. Here is something new for you "I hate Apple also" oh yeah and "I hate Oracle as well"
But seriously, I do not "hate" Windows or Mac. It's only software right?
What I do find distasteful is the idea of the worlds computing infrastructure being beholden to a single source of supply, from whatever corporation, that is out of ones control and for most people in a foreign country.
That subject is not worn out yet. In fact in recent years with the revelations of Snowdon and co. it has become very topical around the world.
Basically I don't understand the allegiance to MS or Apple or whoever that people defend so vigorously.
Why do they do that?
I can't speak for anyone else, but for me, MS put the money and effort into promoting software and computers, and it grew by leaps and bounds, and in the process, they created some very nice applications, that I have grown very accustomed to. For the most part, I like the whole software environment of the Windows OS (or at least the older versions), it is easy to program, get around, etc.....
I suppose I mostly like the OS and the VS IDE, and I suppose I could live without office, but it is nice also. As for other OSs, I have never even bothered to try them, because I am satisfied.
However, I will admit that MS became greedy and got caught raiding the cookie jar
People develop skills and they've mapped 'em to MS and or Apple, and the reinvestment required to step away from that isn't something they find worth doing.
From there, it's simple self interest to promote the platform. Simple as that.
Once people get themselves going on more than one OS, some of that all begins to change. It's a lot like knowing how to us MS Word and word processing in general.
Yep, as Douglas Crockford has said, we always had to wait for the old generation to die before computer science can move ahead a notch.
Damn, I am angry about that. Bill Gates and MS have held us back my entire life. And I'm going to die before we get out of here.
Open stuff is good and growing.
It is frustrating at times though
Here is a screen shot of my Delphi 2 button program converted to run in the browser with 1 line of code LOL
Windoze is dead mate ..... long live the Penguin!! (in her many forms ...)
I think it is a very cool concept. Thanks for sharing.
I really think Parallax should put this into the forum rules. NO politics, NO religion and NO bashing of different OS'es. Moderators come to help. Please.
This thread is about the possibility to convert the Windows only Prop Tool into a Web Application usable on any OS.
@Bob Lawrence even shows a Delphi program converted. (That is what the Prop Tool and also the Basic Stamp Software is written in). Highly interesting for Parallax.
And @Heater. and @bmentik have nothing better to say as "Doooh, Linux is better the Windows. We don't want Windows. Windows is EVIL" again and again and again and again.
I am really fed up with this. Use whatever OS you want, but do not tell me what OS I should have to use. It's none of your business.
So is it MAYBE possible to keep this thread on the topic of converting Windows only Parallax Software to OS agnostic Web Apllications or is the thread already DEAD because it's a Windows/Linux war again?
Sad!
Mike
"Linux is better the Windows." At no point did I say that.
In fact, the first mention of "linux" on this thread is in your post !
I also don't care what OS you use. What you get up to in the privacy of your own home is not my business.
I do care what gets wide adoption though. Why? Because that may well end up affecting me.
@Bob,
Any chance you could put your Delphi 2 button program on an actual server? I'd like to see what comes down the pipe when you do that.
I am not quite understanding the whole thing, but making virtually any program run under a browser using a single line sounds amazing!
I know there are other ways where this is done by using remote desktop or similar, but the way you explained this as being done seems a far superior way to get existing programs to execute within a browser is a big advantage.
Does this mean that we could run PropTool on a tablet remotely? This is my understanding and would be really cool.
I agree - it is really annoying.
re:Any chance you could put your Delphi 2 button program on an actual server? I'd like to see what comes down the pipe when you do that.
I don't have a server to try it however, The demo programs on the company website are already running from a server. 2 of them are just open source programs that they converted with 1 line of code and the examples run from their server.
Example:
http://us2.thinfinity.net/easymoney/
@Cluso99
re:Does this mean that we could run PropTool on a tablet remotely? This is my understanding and would be really cool.
Yes, that's correct. However, you have to remember that it's still a Windows style program running as a HTML5 Program in a web browser. What that means is that if you run if on your tablet (for example) it will run in the tablet browser but will act like a windows program (in that it's still not designed to respond to touch screen events like a tablet program) It still wants to be controlled with a mouse cursor.
The converted programs will run on any PC or device with the following:
• Any operating system and/or device with an HTML5-compliant Web Browser.such as IE10/11, Chrome, Safari, Firefox, Opera, etc.
The demo's are live programs running from a server. They will run on your tablet and if you remember that you are looking for a mouse type cursor, you can navigate them fine.
For Example: They took the Free and Open Source Portfolio Manager(URL below) and converted it to a live demo
http://www.leskaye.com/zoomportfolio/
To try the live demo on your phone or tablet open the URL below in you HTML5 tablet browser (I had this demo running on my Android tablet)
http://us2.thinfinity.net/zoomportfolio/
As a side note: I use Delphi XE7 and I can make programs that run on Windows, iOS, Android etc (all from the same source code ) and it's a totally different system from the Thinfinity® VirtualUI™ system.
http://www.embarcadero.com/products/delphi
Delphi uses the FireMonkey framework:
http://en.wikipedia.org/wiki/FireMonkey
"Reference"
The HTML <canvas> element is used to draw graphics on a web page.
"The graphic to the left is created with <canvas>. It shows four elements: a red rectangle, a gradient rectangle, a multicolor rectangle, and a multicolor text."
http://www.w3schools.com/html/html5_canvas.asp