Shop OBEX P1 Docs P2 Docs Learn Events
Web Based Services — Parallax Forums

Web Based Services

Mike HuseltonMike Huselton Posts: 746
edited 2009-05-23 08:08 in Propeller 1
Has anyone given thought to developing Web based services using standard APIs for utilities such as compilers for Spin and Pasm?
Web API specifications are mature enough now for Microsoft and Java compilers to be written and the binary image output to be downloaded.

Also, in the same vein, has anyone given thought to Wolfram's computational tool recently released for integrating a browser and Mathematica?
Wolfram has plans to offer the API for Wolfram Alpha and this would lead to a Spin and Pasm compiler capability.

This would make tools independent of local computer hardware and allow for a PC running just a browser to take advantage of these tools.
The speed penalty would be traded for local PC independence of machine architecture and operating systems.

Just a thought...

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
JMH

Post Edited (James Michael Huselton) : 5/18/2009 10:43:55 PM GMT
«1

Comments

  • BradCBradC Posts: 2,601
    edited 2009-05-18 22:42
    Ugh.. why would you want to? The browser is far bigger and more resource intensive than any of the IDE's in any case.. and you end up using a pair of pliers to hammer in a nail. (Plus you can't develop anything at 38,000 feet with it!)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "VOOM"?!? Mate, this bird wouldn't "voom" if you put four million volts through it! 'E's bleedin' demised!
  • Mike HuseltonMike Huselton Posts: 746
    edited 2009-05-18 22:54
    Because cloud computing cuts the hardware umbilical cord.

    Every computer has a browser. Resources are not an issue.

    Resources are pretty much unlimited for web services. I have written C# and Java Web services that are blindingly fast. The tools available make writing these services easy. Professional coders are embracing this technology in droves, and business side folks love it for moving application development to the cloud.

    Again, I am inviting thoughts and comments, both good and bad. Let the skeet shoot begin!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    JMH

    Post Edited (James Michael Huselton) : 5/18/2009 11:00:05 PM GMT
  • BradCBradC Posts: 2,601
    edited 2009-05-18 22:58
    James Michael Huselton said...
    Because cloud computing cuts the hardware umbilical cord.

    Resources are pretty much unlimited for web services. I have written C# and Java Web services that are blindingly fast. The tools available make writing these services easy. Professional coders are embracing this technology in droves, and business side folks love it for moving application development to the cloud.

    Again, I am inviting thoughts and comments, both good and bad. Let the skeet shoot begin!

    If you can upload your code, compile it on the web server and download it again faster than I can compile it locally on my cheapest Acer Aspire One netbook I'll eat my hat.

    Having said that, build it and they might come...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "VOOM"?!? Mate, this bird wouldn't "voom" if you put four million volts through it! 'E's bleedin' demised!
  • BergamotBergamot Posts: 185
    edited 2009-05-18 23:02
    James Michael Huselton said...
    Has anyone given thought to developing Web based services using standard APIs for utilities such as compilers for Spin and Pasm?
    Web API specifications are mature enough now for Microsoft and Java compilers to be written and the binary image output to be downloaded.

    Also, in the same vein, has anyone given thought to Wolfram's computational tool recently released for integrating a browser and Mathematica?
    Wolfram has plans to offer the API for Wolfram Alpha and this would lead to a Spin and Pasm compiler capability.

    This would make tools independent of local computer hardware and allow for a PC running just a browser to take advantage of these tools.
    The speed penalty would be traded for local PC independence of machine architecture and operating systems.

    Just a thought...

    Paragraphs 1 and 3 make sense, and would be fairly easy to do with a simple ASP.NET wrapper around propellant.dll

    No idea how you think Alpha or Mathematica fit into this.
  • Mike HuseltonMike Huselton Posts: 746
    edited 2009-05-18 23:16
    In the near future, Wolfram has stated that he plans to publish full specs for the API and provide shells for applications that go far beyond that of a computational browser linked to a vetted database. Real-time computation with all of the power of mathematica. Databases that are checked by experts for accuracy.

    I can see the power of what he has unleashed. If only people will use it for what it is and will be.

    Of course, I can see it becoming a flop if the business model flops...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    JMH
  • BergamotBergamot Posts: 185
    edited 2009-05-18 23:20
    James Michael Huselton said...
    In the near future, Wolfram has stated that he plans to publish full specs for the API and provide shells for applications that go far beyond that of a computational browser linked to a vetted database. Real-time computation with all of the power of mathematica. Databases that are checked by experts for accuracy.

    I can see the power of what he has unleashed. If only people will use it for what it is and will be.

    Of course, I can see it becoming a flop if the business model flops...

    Right, but what does any of that have to do with a web-based Propeller compiler?
  • Mike HuseltonMike Huselton Posts: 746
    edited 2009-05-18 23:31
    Bacause he mentions the ability to make these type of tools creatable for any problem domain. See what the man is saying on his site.
    Also, do yourself a favor and see what Mathematica really does.

    Could be California dreamin'.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    JMH
  • Mike GreenMike Green Posts: 23,101
    edited 2009-05-18 23:47
    As BradC and Bergamot have perhaps implied, it depends on the specific needs of the tools.· Mathematica provides very complex tools for computationally difficult problems.· There is significant value in basing those tools "in the cloud".· There are similar advantages to basing very large databases and their search engines "in the cloud" where economies of scale may come into play.· Issues that still have to be addressed include those of reliability and ownership and security of the underlying information.· What happens when the "cloud" goes bankrupt and there are inadequate provisions for users and their data.



    The Propeller tools and other similar "stuff" are very modest tools.· They're cheap as these things go, even free and require only modest computing ability to support.· Given that there are Spin and C compilers and matching utilities that run under Linux, it doesn't take much hardware to run them.· A tiny embedded Linux system running off an SD card or CF card would work just as well as any laptop as far as the tools are concerned.· This isn't to say that some "cloud"-based Propeller tools wouldn't be handy occasionally, but that's not a place to put much effort unless one has a personal interest in it.
  • RossHRossH Posts: 5,511
    edited 2009-05-18 23:55
    James Michael Huselton said...

    Every computer has a browser. Resources are not an issue.

    Hmmm ....

    Not even a significant minority of computers have browsers, let alone "every" computer. I presume you mean personal desktop computers - but even there you can only say "most" computers. Don't forget that in these forums you're talking to the people who make computers, not just to people who use them.

    And resources are (by definition) always an issue.

    Excuse my skepticism, but over the years I've learned that whenever you hear this kind of thing said, it is nearly always a hardware vendor who says it (the rest of the time it's a software vendor).

    And I am also having trouble seeing the relevance to the Propeller. Do you see a need for a "Cloud" based toolset? Don't you think embedded software development is complex enough already?

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • MagIO2MagIO2 Posts: 2,243
    edited 2009-05-19 06:57
    Hmm ... interesting ... so the Y-Box can be used to edit a SPIN-program, send it to the cloud and gets back the compiled *.eeprom-file ..... I like that idea. It's much easier than writing a compiler for the prop.
  • Timothy D. SwieterTimothy D. Swieter Posts: 1,613
    edited 2009-05-19 07:19
    Some airlines are offering on-board WiFi so compiling at 38,000 feet using a cloud version of a propeller may go away.

    Overall I think the cloud capability is neat and a Propeller complier over the cloud is a simple example to implement. With such a tool one could write code on their iPhone while waiting in line or while commuting on a train without opening a laptop top. I also like MagIO2 idea of a Y-Box (or similar like device) to be able to write code, compile and redownload to itself.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Timothy D. Swieter, E.I.
    www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, 3.0" LCD Composite video display, eProto for SunSPOT
    www.tdswieter.com
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-05-19 13:56
    BradC said...


    If you can upload your code, compile it on the web server and download it again ....
    .

    @BradC,

    Here's an application that might be interesting..

    How about running a program which will allow me to upload from
    my PropNIC (or compatible) and download it again directly from my
    Propeller? Then the entire laptop part can stay stashed under my seat.

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • heaterheater Posts: 3,370
    edited 2009-05-19 14:47
    XMOS have web based tools, compilers etc, for their chips. As far as I can tell most XMOS users prefer the traditional desktop tools. Online is nice for a demo but clunky otherwise.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • hippyhippy Posts: 1,981
    edited 2009-05-19 17:00
    This "Cloud Compiling" is fine for a demo, where one doesn't want to or cannot download the multi-megabyte installer, the application won't run on the hardware one has, or one's hardware is too resource limited to run the application well or quick enough.

    I can see the benefits of a web sited server where you specify a configuration to it and 'nanoseconds later' you get the custom linux kernel and bootable CD image you asked for using the raw horse power they can afford which I can only dream of having. Even if it took a day or more it would be more worthwhile than tying up my own PC for that time.

    For hands-on rapid application development I'm sure it would also be fine if we all had Gigabit ethernet connections with no caps or bandwidth throttling, and no worse than a local thin client setup, but the real world's not like that. Also, Propeller development is more than just compiling source no matter where the compiler is hosted.

    I cannot really see a compelling reason for remote hosting or any overwhelming advantage. It shouldn't be too hard to wrap Propellent or other tools within some CGI and stick it on a server if someone wanted to try it.
  • Bob Lawrence (VE1RLL)Bob Lawrence (VE1RLL) Posts: 1,720
    edited 2009-05-19 17:53
    It would allow real-time collaboration, remote file storage. I always thought that having everything online would allow a little online programming when your having a slow day at work. burger.gif Not everyone can get permission do download unauthorized on a non-personal computer system,When I first started using Delphi for PHP(RAD development) I envisioned that it could work as an online IDE / compiler and file storage system. Other languages such as C# could do the same thing, I just happened to be using Delphi for PHP at the time.

    Reference: Delphi for PHP
    www.codegear.com/products/delphi/php

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Aka: CosmicBob
  • jazzedjazzed Posts: 11,803
    edited 2009-05-19 18:33
    Bob, Collaboration is a valid point. Of course that could also be done with desktop sharing, but as you point out not everyone has control of their PC configuration. It is also clear from this forum that many users would not know how to do some things. Schools and company's with paranoid/resource limited IT would be good candidates for such web services.

    I like the idea of "test drives without commitment." Maybe Parallax should have a demo server with connections to Sumo-bots or something for a limited time. This would be quite easy to do and would be a good project ... just make sure the bots are fool-proof [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • BergamotBergamot Posts: 185
    edited 2009-05-19 19:03
    James Michael Huselton said...
    Bacause he mentions the ability to make these type of tools creatable for any problem domain. See what the man is saying on his site.
    Also, do yourself a favor and see what Mathematica really does.

    I have done, and I still have no idea what you're talking about.

    Neither Mathematica nor Alpha are tools for generic custom cloud computing. You could *theoretically* write a SPIN compiler using the Mathematica language, but I really don't think it would be a good fit, and you'd be starting from scratch, and paying for licenses for all of your servers.

    Seems like a far better idea to wrap one of the existing compilers in a lightweight REST API, and host it somewhere. You send it a few kilobytes of code, it sends you back a 32KB EEPROM image. If you insist on hosting it "in the cloud", Amazon's EC2 service would work fine.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-05-19 19:05
    Somebody said...
    Seems like a far better idea to wrap one of the existing compilers in a lightweight REST API, and host it somewhere. You send it a few kilobytes of code, it sends you back a 32KB EEPROM image.

    Or a binary which could be directly executed... [noparse]:)[/noparse]

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • Mike HuseltonMike Huselton Posts: 746
    edited 2009-05-19 21:01
    I am referring to a desktop or laptop computer for this discussion.
    Please stop concentrating on Mathematica. I brought it up as a throw-away idea.

    My suggestion to offload software development to Web based computing used a compiler as an example, not an end-all and be-all focus for this discussion. Step back and look at the bigger picture. Maybe most of you haven't actually coded a Web Service. I don't know.

    But I have written several Java and Windows Web service modules in my incarnation as a professional coder.
    Once you get past a few key concepts, it is just a SMOP (Simply a Matter OF Programming). I can envison helper
    applications that make Parallax programming less of a pain. You can too.

    Read up on the subject. I want to share my ideas and this is an exercise in food for thought.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    JMH

    Post Edited (James Michael Huselton) : 5/19/2009 9:08:01 PM GMT
  • RossHRossH Posts: 5,511
    edited 2009-05-19 21:42
    JMH,

    Okay, I accept that you're only talking about desktops or laptps here, and you're not talking about anything Propeller-specific such as compilers. But this is a forum specifically for Propeller development, so you can understand people's confusion.

    If you have a particular need or suggestion related to Propellers, then by all means try and explain it. If you are just wanting to discuss web services and cloud computing in general, perhaps you could move this discussion to the Sandbox forum?

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • Mike HuseltonMike Huselton Posts: 746
    edited 2009-05-19 22:02
    I am speaking of tools written specifically for the Propeller. I am specifically speaking of tools, such as compilers. Only the compiler executes code on my machine and communicates the results back to your browser.

    I have decided to write these tools myself, rather than trying to explain the concept.
    I'll post the code, so everyone can share this idea freely.

    Nothing to see here, move along... yeah.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    JMH

    Post Edited (James Michael Huselton) : 5/19/2009 11:10:03 PM GMT
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2009-05-19 23:39
    Any mention of "cloud computing", as if it were something brand new, makes me chuckle a little. Back in the '70s, before the PC, "cloud computing" was a pervasive paradigm. But back then, it was called "time-sharing", and one used a terminal to connect to a gaint mainframe somewhere. Then the PC came along, and the mantra was, "Be in control of your computing! Own your computer! Cut the umbilical to the mainframes and the big companies that own them!" Microsoft was one of its loudest proponents — a David to the Goliath IBM. Now Microsoft and Google are the Goliaths, and guess what? Time-sharing, a.k.a. "cloud computing" is all the rage — again.

    It's all about control, guys. When you join the cloud, you may be cutting the umbilical to your PC (a phrase I don't quite get, BTW), but you're connecting an even heftier umbilical to the Goliaths; and, once connected, they've got you right where they want you: totally dependent.

    That said, I can see browser-based apps for lesser chores that you don't need myriad small programs cluttering your desktop for. There is a plethora of such apps spread across the internet already, such as generating barcodes and solving electrical and optical equations. I've even got one online that some of you may have used: formatting Spin code for this forum.

    But it will be a cold day in hell before I trust a long document, CAD drawing, or any other critical data to the cloud. Being subject to companies going out of business, data loss, and data breaches, the cloud computing model has too many inherent defects. The mantras from the early '80s still ring true in my ears: it's my stuff, and it'll be processed on my computer, by golly, until it's wrenched from my cold, dead hands! smile.gif

    -Phil
  • Mike GreenMike Green Posts: 23,101
    edited 2009-05-19 23:49
    Back in the old days of time-sharing, I had a mentor who worked for one of the larger time-sharing companies at the time and we had many a discussion about what it took in terms of resources, policies, and technical infrastructure to responsibly take care of security and reliability which they took very very seriously. There are few vendors these days willing to commit the resources to do "cloud computing" properly and not very many customers are willing to pay for what it takes.
  • CassLanCassLan Posts: 586
    edited 2009-05-20 02:30
    I think that the idea of a prop with a NIC being able to send spin code out to a machine, that could then generate the binary which could be sent back to be saved on the SD card and run from the prop which did the coding is pretty exciting...it is not a true "prop only" envoirnment, but who knows what genius sparks could come from coding on the prop itself.

    Rick
  • jazzedjazzed Posts: 11,803
    edited 2009-05-20 03:09
    You may as well start writing a Spin XML package to encode/decode the SOAP packets. Packet buffer space may become an issue.

    Hey I still use terminal server software (SSH) to get to my web server in a similar way I used a VT101 for Unix long ago.
    X-terminals (VNC, etc... now) were a step up. VNC made it possible to collaborate on projects in Bangalore and get access to India's 40 million cheap programmers.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-05-20 03:12
    Time to get out my linux server and my PERL guide.
    I love this idea.. Anyone want to collaborate on a solution?

    Here's a thought. If we add a couple special remarks to the top
    of the code we could specify the use of a standard OBEX object
    in the OBJ section and prevent the requirement of transmitting
    more than we needed to the remote compiler.

    Geesh, it's been a couple years since I've written PERL it
    might take me a bit to warm up. [noparse]:)[/noparse]

    I'll establish a thread for this project as soon as I get the
    box hooked back to the network.

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • Beanie2kBeanie2k Posts: 83
    edited 2009-05-20 03:30
    Phil Pilgrim (PhiPi) said...
    Any mention of "cloud computing", as if it were something brand new, makes me chuckle a little. ....
    -Phil
    Phil,· Thanks for bringing back the memories.· I, too, remember the old time-sharing days in the mid 1970's.· In my case it was with an antiquated Xerox Sigma 7 mainframe, and the terminal was one of those old teletype ones with the typewriter ball (only ours had a cylinder) and the paper tape reader.· What a lot of people forget (or don't remember) was that you paid by the microsecond for CPU time in those days, and it was darn frustrating to have to budget every second on the computer because the university department (or business department in a company) only allocated so much money.· One of the big freedoms of the PC was that you could mess around on it as long as you liked, experimenting and learning,·without worrying about the money meter running.· Of course Microsoft and others would love to return to those "good ol' days" so that they could have a constant and consistent revenue stream.· As for me, thanks, but no thanks.
  • Mike HuseltonMike Huselton Posts: 746
    edited 2009-05-20 04:56
    That is the direction that I was hoping this idea would take. This is an ideal application area for collaboration.

    I've programmed in a lot of languages and I am sure many of you have too. C# and Java are fine, but what do you think of VB6 or VB5 to keep it simple and clear to as many folks as possible? I was thinking about Hippy and his preference for VB. Just about anything will do, but keep in mind that many folks are new to programming. I think that I have SOAP wrappers done in VB.

    Hey, I just had this idea this afternoon. Give me a break wink.gif

    OBC, how is the WiKi coming?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    JMH

    Post Edited (James Michael Huselton) : 5/20/2009 5:21:38 AM GMT
  • hippyhippy Posts: 1,981
    edited 2009-05-20 11:46
    I'm afraid I don't see how VB fits into this but then I'm not clear on what Web API's amount to really. Maybe wrongly, but I've dismissed "The Cloud" and "Web 2.0" as mere marketing hype, though that doesn't mean I cannot appreciate what remote hosting can do; I just don't see what people are actually talking about when wrapped up in wide-sweeping generic terms.

    I can see four scenarios -

    1) Local processing on one's own PC - Typical PropTool, Visual C, etc, use which we are all familiar with.

    2) A local IDE running on the PC with a server somewhere providing the grunt for number crunching or compiling. Looks like (1) but the "Compile" button throws source code into the ether and gets back an executable / error report.

    3) Everything hosted on a remote server with a web browser to connect to it which provides an interface which in a perfect world looks like an IDE. Similar to Telnetting in to a box or using Remote Desktop.

    4) As (3) but with a local App running on the PC which disguises the fact it's really a web browser.

    Any and all those are valid, and we use them all in various forms today, which is why I don't see what the hype is about. Maybe I'm missing something.

    The end-user should see no differences in use and operation no matter what scenario there is and you could swap scenarios and the end-user would be none the wiser. It really boils down to where the application executables and one's own source code and object code resides, and what benefits each offers; local or remote hosting.

    Local's fine if you have resources, remote is the solution if not, but then remote hosting fails if you cannot get access to the remote and local has the advantage.

    Notionally remote hosting has an advantage as the provider can throw large iron and huge resources at it, but that has to be shared amongst all users, which is why personal computing took off when we all had our own personal resources. The "Cloud" seems to be an attempt to move back the other way but it seems rationale is a bit hit and miss for that. Sure it makes sense for Google Search and similar to be remote hosted services but I don't see the same rationale for software development.

    I'm not saying it's wrong, if that's what people want to use then it's fine. If it wasn't for my firewall logger I wouldn't know if PropTool had a compiler built-in or all source was posted back to Parallax for compilation. I wouldn't particularly care as long as it always worked and there were no loss of performance.

    Post Edited (hippy) : 5/20/2009 11:57:08 AM GMT
  • RossHRossH Posts: 5,511
    edited 2009-05-20 12:05
    I'm with hippy.

    Surely we can find better uses for the collective talents on this forum than programming web applications in VB?

    And does this really have anything to do with the Propeller?

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
Sign In or Register to comment.