How to distribute a desktop app built with Electron, Node.js and Python - express

I have recently built a desktop app using Electron and Express.js, and I also used python-shell in Node.js to call a python module. Specifically, the Express server will call the python module which sends SQL queries to Impala, and get the query result from it, then transmit it to the front-end.
It works well, but I wonder how to distribute this app? Obviously the python-shell module is not applicable without python environment. Any suggestions? Thank you all!

As far as I can see you have two possibilities:
Distribute a Python Installer along your Installation
Port your Python module to a native executable, native node module, or plain JS in the Electron app itself.

Related

neutralinojs and Blazor in Linux

I try some platform to create Linux Desktop application with Blazor (Including ElectronNET), but in most case its empty self advertising without really opportunity to do even simplest task.
Therefore I'm still in searching a good platform to make desktop apps in Linux with Blazor.
Is neutralinojs good fit to this task including development in VS CODE and deployment to end-user?
Neutralinojs is a lot like Electron. The main difference being that Neutralinojs does not use npm or is based on chromium.
This makes Neutralinojs faster than Electron. If you desire to make desktop apps with HTML, CSS, or JS then Neutralinojs would be a good fit for you!
I have tried both and I can tell you that Neutralinojs is the best at a quick startup.
Neutralinojs will work great with any code editor. You can even use the terminal that VS Code provides.
After you finish writing the code for your project, you can run the build command. This command will make executables for any OS including Linux.

How to boost perf on Angular 4 project

I am working on a project using Angular 4 for the frond-end and phph for the back-end with an Apache server using ubuntu 16.04 LTS where we setup Node JS to make's actually works Angular. So I have two questions in one, how do do to make run Angular 4 without Node JS? Are all our perf issues comming from that (Node JS on apache?) or is it my code who's make run the apps very slow? For exemple, when I check the access log servor from apache using cat /dev/null >access_log I see like 30 requests just to run the first page...how could I optimise that?
See my plunker link here (not all the code is here but he give you an idea of the construction) [Mypluker][1]
[1]: http://plnkr.co/edit/4CUPwqehwkiHNnFd1NtU?p=catalogue
The quickstart seed from angular.io ils not expected to be used for production. It's just an example of how you can quickly start developement.
For instance the quickstart do typescript transpilation inside the browser. You should avoid this kind of things.
One of the easiest solution for dev and production build is to use angular-cli.
With a production build you don't need nodejs only a webserver that can serve static files.

Ionic2 client + Meteor server, which approach is better?

I want to have Meteor as a server and Ionic2 as a client. I currently have a headache with authentifiacation. It seems that there are two different approaches:
First is use of Meteor server and Meteor client with ionic-angular library. This approach described here
https://angular-meteor.com/tutorials/socially/angular2/ionic2
I guess the advantage of this method is use of Meteor native architecture, on the other hand I guess we're using Ionic2 just like a subframework and maybe loosing some stuff from native Ionic2.
The second is using separate Meteor server ('client' folder deleted completely) and native Ionic2. This approach described here
https://angular-meteor.com/tutorials/whatsapp2/ionic/authentication
This option is vice versa: use of native Ionic2, but it has to use libraries like meteor-client-side, accounts-base-client-side, accounts-password-client-side etc, which I'm not sure are native for Meteor.
The first approach looks better, because there is a ready-to-use UI component for authentification. But I wonder what issues I would have, when I come to the step of completing my applications for different types of devices.
Thank you in advance for your help.
These approaches are essentially the same for the authentication itself.
What you are pointing out is more about what mobile platform to choose to develop and run mobile projects.
In the first case, you use Meteor's built-in Cordova platform to run the app and Meteor's compiler and bundler plugins (like TypeScript package or Meteor core packages for Babel and UglifyJS etc) to develop the app. In the second case, you develop and run the app solely on Ionic 2 CLI.
But from the app logic point of view these approaches are absolutely same: you import the same Ionic 2 components and use the same Meteor packages with the only difference in the second case is that these packages are now NPMs not Atmosphere ones (essentially though they contain the same scripts since these NPMs are built from Atmosphere packages).
The reason why What’sApp clone is built in that way that differs from the Socially’s one is simply described in the README of
the What’sApp repo (see https://github.com/Urigo/Ionic2CLI-Meteor-WhatsApp). If to repeat: since Ionic is a one of the best Web frameworks that specializes solely in building mobile apps, it’s reasonable to guess that it’ll be (and likely it is) much more powerful in building them than Meteor itself. From that point of view the second approach seems more future-proof, I would say. You could think even of building your project in some way that will allow you to substitute Meteor easily with some another framework if you decide to use it at some point in the future.
If you are though concerned about using those NPMs mentioned in the second case (e.g., if the process of building them doesn’t look transparent to you), you could try this project https://github.com/Urigo/meteor-client-bundler to bundle Atmosphere packages you need into separate scripts and use them after.

LUA windows: How do I launch windows metro app with Unified Remote script

I'm trying to make a custom remote for unified remote server in windows 8.1
The sample scripts have os.start(command). It works for something like calc, but I'm trying to launch a metro app 'netflix://' and Lua doesn't seem to want to accept it - I think it's not taking the front slashes.
Is there a way to get Lua to launch a metro app in windows? Thanks
Assuming you mean os.execute() command, to run commands that open files and run based on protocol association, you need to use start command:
os.execute("start http://google.com")
If you need to put the parameter in quotes, then make sure to include a pair of empty quotes as the first parameter:
os.execute([[start "" "netflix://..."]])
For os.start(), it seems that you have to pass the whole path to a command. The Unified Remote API states that it should match installed applications, but I believe it might only be applicable to applications with binaries in the PATH, which is why their example of calc works.
With this in mind, and knowing that start works well directly from PoweShell, this command does what we need:
os.start("C:\\WINDOWS\\system32\\cmd.exe", "/c", "start", "netflix:");
Answering this old question since it's the top google hit when looking for launching windows10 apps with Lua for Unified Remote
As a side note, due to limitations on the Netflix Win10 app, I ended up simply opening Firefox and giving it the Netflix URL. Assuming default installation:
os.start("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe", "https://www.netflix.com");

Distributing TideSDK application

I recently finished an application based on Titanium, Javascript, HTML, CSS. I have only been a web designer to date so I have little experience in distributing applications. I was accustomed to the TiDev Community deploying app, which prepared the app for download and made it available for download at a given link.
But tidev community is no longer supported, so I use TideSDK Developer to package the app, which doesnt do all the hard work the other one did so nicely.
I am obviously a complete rookie to this.
Could anyone outline the steps I would need to take to go from the bundled application folder I have now (put together by TideSDK Developer), to a link that will allow customers to download and install the app or online? I know there is an issue with packaoging the app for platforms other than your own, and that appcelerator is working on a solution to this I think. I also realise I would probably have to pay to host the download online. Any guidance would be greatly appreciated.
You must use the tidebuilder.py script. to compile a installation package. To compile a binary for a Mac, you must run the script on a Mac, to compile a binary for windows, you must be on a windows box etc.
There is some documentation on how to use it here per platform. The command is very simple and works.
Once you have your application file (DMG for OSX or a MSI for Windows) then just distribute it however you see fit, email, putting it on your web server, whatever works for you.