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 ;-)
At work; I used to use postman to test my rest apis. It was cool, but they were drawbacks
SO I decided to create reqman, which is mainly a command line. And some people don't like that ;-)
(BTW it saves my life every day, at works, at home, where it's scripted/scheduled to tests my rest apis/services)
So I decided to build a frontend. I did'nt want to use the classicals GUI python frontends. WHen I was looking for alternatives ; I found eel (which re-use a chrome installed app as frontend).
Eel was great (but bugged (js and pyinstaller troubles), and not py3 likes reqman), So I decided to create mine : wuy (same concepts, but py2->py3, gevent-> asyncio,
and a cool js/py frameworks to hide the socket between front & back)
Coming from web development ; I wanted to use VueJs things in wuy, so I built vbuild, to let me
use vue/sfc component in wuy, to avoid to use a full node-js stack, just for a simple module like wuy.
And when making vbuild, I ask myself if I could make a kind of "python components", because I was already in a python VM : why not try to let use python component instead of js ones.
My first attempts was very quick with pretty good results : and so, I create thoses python components in vue/sfc file with vbuild.
(now my vuejs app on App engine use vbuild too, with my aed thing)
Now, I can concentrate on my reqman's frontend ;-), and others : I've made 2 or 3 GUI app using wuy+vbuild+vuejs, and found the stack very useful for that kind of thing ;-)
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
WUY like "Web User Ynterface" (Y replace I, assuming that's a python thing, available on pypi ;-)
For now, It's a proof of concept .... but I will try to use it ;-)
It's a tool for quickly create an GUI for a python script, reusing the local browser. Communications between browser and server is thru websockets. It's easy to call the server from the client, and server can talk to clients thru a pub/sub mechanism.
It's a lot like the marvellous eel, but python3 only, using asyncio/aiohttp (without (the devil) gevent !)
I wanted to share it (and my vision of a "perfect" eel) ;-)
It's not production ready ;-), but it works (til now)
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 ;-)
reqman aspires to become the postman killer ;-)
Postman is a great tool. It's simple and well done, but it got a lot of flaws (the free version, never used the paid one) ;-).
First of all, you can't work with several people, let alone a source manager. You'll have to pay, to got this cloud feature (?!?). You don't have the headers inheritance. And scripts (pre-requests and tests) are not easy for everyone. And more than 70MB for just testing http requests is demoniac :-)
With python, and 150 lines later : I've created a first shot (not usable as is yet) which can do a little more easily. It has'nt got GUI, you describes your requests and tests as simple yaml files, and you can execute your tests against various environments (yaml config files too) in command line. Simple and functional.
Pure python (except yaml), no dependencies, a simple py file, and unittests included (74% currently).
Need to work on the front : the command line, and need to add examples, and docs !!! : and It will be ready for prime time. Stay tuned here !
Pull request are welcomes. Under GPL2 licence on github.
EDIT : 50 lines later, now it's usable ... docs and examples will come
It was very hard to setup it for https, thru the google console ;-)
But now, it works great with https
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.