Nobody was waiting for it (except me ;-) )
pye is just the main tool I use, for 8years, to develop things on the web. I always wanted to share it to the world... and now : it's real !
It's now a Docker Image named 'pye', based on the github pye !
It's wildly simpler to release it like that, because It can be tested/runned in seconds. Without a docker image, I should have to write a lot of docs to setup the full stack, and It could be very difficult to reach to run it. Here : it just works ... in a near perfect container. Multiprocessed with gunicorn, multithreaded(ASGI) with uvicorn/uvloop ... and all the stack to be able to compile vuejs python components, develop fastapi ressources, use websockets with IPC, etc ... in a "convenient" web editor.
BTW, the pye app code is "AS IS"; I use it "as this" on my nas, on my gae accounts, on my hostings providers (and can transfer app from one to others without pain). (I ddon't use the docker version yet .... but will !)
But for sure, there miss A LOT of docs, to be able, to anybody, to understand all the features added during 8years.
Tags: pye, gae
A lot of changes since my last post ;-)
First, I found a name for my "aed things" : it will be pye (like PYthon Engine), and because the "E" means "3" too (in leet speak) : it means 3 because it's the third version, and because it's now python3 only. I'll hope to release it next year (but the place is defined here);-)
Secondly, all my aed/pye instances are now running on python3 ! And this site was the last to migrate (a lot of works, because it uses a lot of ndb's apis, which are not availables on "gae python37 second generation" ... so I needed to use gcloud datastore api ;-( ... and here (you can't see them) : there are 3 services to migrate ;-)
BTW, pye with starlette (asgi thing) is great, with web sockets support, long running process, background tasks ... a lot of new things are now available for me (except on GAE, because websockets are not available yet) ... no more bottle, because it's not asyncio ;-( ... But I needed to adapt the starlette's request to the bottle's request, to be compliant with all my instances ;-)
I've made my pixel thing using pye, and websockets, with 4 workers. I needed to communicate between my process workers, to share the "events" (IPC communcations). First version used redis ... but I have created my own redis-like for the occasion : it's named redys, a lot lighter and simpler ;-), it's full python3 asyncio compliant, and works like a charm in asyncio app like starlette or pye ;-)
This is the first post, with pye/python3 ;-)
Big day ... my aed thing is now fully py3 compliant.
So I can host, a fully featured demo of vbuild ;-)
Now, I need to migrate my app engine aed things from py2.7 to py3.7, before the end ... no pressure ;-)
One week later : I've got one which runs on AppEngine with python37 !
Although everything has changed : a lot of apis are not availables ;-( (wtf?!). The migration from ndb to google-cloud-datastore was relativly easy. (Need to implement the google auth).
One week later : 7 instances (including 2 gae) of my aed thing is now powered by py37 ;-)
Yesterday, I released a simple module on github : vbuild, and pypi. I use it everyday, since 3 or 4 years, but decided to release it for everybody.
I tell it on r/python and r/vuejs and hacker news ... and created a real debate ;-)
Currently, I was 139 starred on github, making it my first project ... awesome ;-)
It's just 100 lines of code ... but they seems to be useful for others people.
The main problem that vbuild resolves is here. If you want to use SFC .vue components, in your vuejs app : you have no other option that to use webpack/nodejs stack on dev platform ! Really frustrating !
With vbuild : you can use 5 lines of python code to do the same kind of things : use ".vue" sfc in your app. That's all ! (btw it provides its own js-minimzer (via online tool))
vuejs (hey Evan You !) should really consider to offer others options (like that ? compiled at runtime)
BTW, vbuild let you build big wuy app easily (with vuejs and vue files). I use it in my aed thing, where it's clearly not possible to use nodejs stack ;-)
To feed the buzz, announces of python component was here r/python, r/vuejs and HackerNews
Just a post, to mark the day I dive into python3 ;-)
It takes long times, but now ; I'm with it ;-)
reqman was the first !
It was hard to dive into bytes/str(unicode), coming from the str(bytes)/unicode world ... but it's definitivly simpler in all cases ! My main tools are fully support py3 (bottle, app engine, ...)
My "aed" thing will be the next ...
Always not released on github ;-)
But now ... I'm migrating all my websites under a new version ! And this one, was migrated at that time !
The new version is a bit like AEd, but without the ED(itor) ! I've separated the engine and the editor. Now the editor is simply some files, which can be added or not in the engine. It will be a lot easier to make evolutions on the engine, or on the editor.
It's a little bit the story of the chicken and the egg. Coz now, I can edit the editor, in the editor itself (but can broke it too ;-). So I needed a way to communicate with the engine to re-deploy files (ex:the editor files) on-the-go ;-)
And now, everything is greatly tested with reqman; some tests for the engine, some tests for the editor. It saves me a lot of time, and allowed me to delete the python code dedicated to it. ;-)
But for sure, it's gonna be more complicated to explain what "aed" really is. Nothing the name doesn't make much sense anymore. There is no longer an integrated editor. Perhaps it's the time to find a good name for all these things.
All this makes it possible to have a website editor, available in any browser. The engine manage the distribution/execution of files (on an appengine account or anywhere else) over http. And the editor is the GUI which gives the life to all the thing.
EDIT 27/02/2018 : all my sites use this new thing ... migration was slow, but wanted to be sure to not make an error ;-) ... Special mention to On-The which is the root which is able to resend a fresh/functionnal "ed's app" to the others ;-)
Great News : SSL for custom domains on AppEngine !
Now, this site is on HTTPS ;-)
I planned to migrate it on another hosting service (for ssl capacities), thanks to AED, because it makes it simpler. But I cancel this idea; it will stay on gae !
Here is a new app : wall pixel maker, for smartphones and desktop. It's a multi users online painter ! It's fun for many people, and for kids, to be able to paint online (it use websockets (not on gae ;-( ).
My next websocket thing will be for Atomic Bombers.
After migration of all my websites (except ibraining) to Aed ...
After migration of my NAS to Aed (with a letsencrypt SSL certificate behind a nginx in reverse proxy.
I'm migrating this website under AED : it's clearly finished (this post is posted thru this website running under AED ... it's a test ;-)). But I need to do more tests ;-) (and jbrout/abombers subdomains need more work ;-( ).
I've found some bugs on AED (need to fix them); it was not easy to migrate this !
But it's definitively a big change ! AEWeb is dying, tempita still work under AED, and some things won't be migrated (my xmpp's bot, my appjet editor, but they were not public).
It's time for rationalization !
All my main websites (except this one, ibraining & manatlan.com subdomains) have been migrated to my new AppEngine Editor, codename "Aed" (like ahead). The "In-the" editor is dead. But the new one is far far far better ; logic, it's the second iteration. And I always plan to release the sources on github (need some work yet).
scratch-me a pwa for scratching, cave-pilot a pwa game, in-the for my app tests, on-the for aed's dev & units tests & tmanatlan for my finished websites.
It's pretty cool to be able to modify them thru a simple browser, anywhere in the world ;-)
I've built a super tool : it's a "web editor" online, so I can quickly code for the web (static or dynamic (python/bottle) files). It use the marvelous ace editor, it's hosted on GAE, it's built with RiotJS. It's a little bit like koding, but without the linux prompt. It's just for me, but I could release it. The frontend is here, but it's just for me, like I said before ;-( ... (it's already the second version, and this one was coded using the first version ... it's like the chicken & the egg ;-) ... now, I can code with the chromebook or whatever internet devices ;-)
It could be done with angular, but not. RiotJS is more fun (but not widely used ?!?) ;-)
Twos are using :
- a service (to deal with datas) : 'MyService'
- a master component : 'app'
- a child component : 'item' (itered from the master)
- a mecanism of events to communicate between the twos
- a pipe (aka filter), to transform data : 'mypipe'
I let you choose which is the most readable, the simplest ;-)
It's not really comparable, A2 comes with a full stack. With Riot, you'll need to import yours polyfills and others libs : but you've got the choice !