Convert webpages into webapps - nix

Due to laziness, I created some web pages that I use daily as a webapp using Chrome's "Create Shortcut" functionality. This is more convenient because I can see them in a single window or on my task bar as an app.
This is a manual step and I would like to have this automated in my configuration.nix or home.nix so that I can have these apps on all of my machines.
Is there any way to do this?

Related

What is the advantage of using angular with electronJS

I want to create desktop application compatible with other OS.For that I'm using electron with angular.Because both are frame work whether it will effect performance or loading time, and also whether deploying easy,can we use all the features of angular when we use with electron like routing..?
Electron uses Chromium and NodeJS which is the reason why it is compatible with other OSs. You can talk with the NodeJS process from your angular-app which opens up some possibilities. For example opening native file-dialogs to let the user choose files. Electron also already abstracts some platform specific operations like getting the user home to save some configuration files for example.
You can use routing just like in any Angular app and I think you can use most features like you would normally but dont take me for granted on this one.
I would not say it affects your loading time to combine those too. During development you have to build your angular app before electron can start up and use those files but in production Angular is already ready to be loaded so they dont hinder each other.

Export Data from Avaya CMS

Bit of a long one...
I am trying to reliably export data from Avaya CMS, currently the set up I am using is a Win 2012 Server with Avaya CMS Superviser R18 installed. I have 5 report scripts which I run and they export data to a individual csv files every 3 - 5 seconds. This way was sufficient while we were using CMS Superviser R17 as it would only crash once a day, and when it did, the csv files would stop updating which triggered an email to me once the files had been 120 seconds without updating. This ensured that the reports had very little downtime as I could just quickly restart CMS superviser and the scripts (batch file) rather than having to wait for someone to report that it was no longer updating.
However with CMS SUperviser R18, the software doesn't seem to crash, instead the csv files keep getting updated, but with incorrect data. I am still trying to troubleshoot that issue to find out exactly what is causing it to go out of whack, but while that is ongoing I am also trying to look at alternative solutions.
The reports I am trying to export are custom reports that others in the company have created, and they appear under the designer category
I looked at CLINT but I cannot see the reports I am looking for in there so I ssh'd into the server and using xterm terminal I can view the CMS menus and go through them. In here I noticed that you cannot view any reports under the Integrated tab, nor any reports under the Designer Category of the Real-Time or Historical tabs. I also noticed that there is a "custom reports" section in the menu, although I see no reports under this menu item, just two empty categories (Real-time and Historical)(Pics attached)
So my questions are:
1 Do you know if "Custom Reports" is where reports from the designer category should show up? If not, do you know is it possible to access those reports through the ssh menu at all?
2 Has anyone any other ideas as to how to export the data from CMS to a csv file?
Thank you for your time.
The "Custom Reports" in the cms menu you show on the screenshots is different to "Reports" in the Supervisor.
You can read about Custom Reports here (a little old, but still relevant):
https://downloads.avaya.com/elmodocs2/multivantage/215822_3/215822_3_1_CMS_Reports.pdf
If you create reports in the "Custom Reports" subsystem then you can run them using /cms/toolsbin/clint. Note that you must recreate the "Reports" reports in the "Custom Reports" to be able to run them through clint.
You can create command files so you can script clint, then you just have to run it with a scheduler. You can read about scriping clint here:
http://www.tek-tips.com/viewthread.cfm?qid=397058
You can also establish a direct connection to the Informix database on CMS but you can not access real-time data there.

How do I demo an electron app on the web

Is there a way to easily distribute an electron.atom.io app as a static site?
I don't need all the functionality, I just want to allow the client to view the latest updates.
-- edit --
Perhaps a better way to ask the question is; "How do I build a web app that can be hosted online and run on electron with minimum rewriting" - similar to the Slack app that works the same way on web or electron app.
As long as your main use of Electron is to create a 'native browser wrapper' for a web-app this is entirely possible.
You will have to implement a check if your application is running inside a browser or inside Electron and wrap your electron specific code in it:
if (window && window.process && process.versions['electron']) {
const {BrowserWindow} = require('electron').remote
}
You'll probably have to step through your application and disable Electron specific functionality at multiple places.
You have other options to do a long distance demo of an Electron app
Electron is basically a shell to run node.js apps on the desktop. This means if you want to move it to the web, you have to give up all the Electron APIs that access the local system and you're left with a basic node.js app, which is most likely not desirable.
To demo your desktop app to an off-site client, you can either make a presentation with screenshots detailing the current user flow, or compile a sandboxed demo version of your app and send it over to them.
Screen presentation
This is your quickest and easiest solution if your client just wants to be kept in the loop and see some eye candy. You can just record how the app works with some example data, add some written or audio explanation to it, and let them enjoy the smooth ride.
Build a demo
If your client wants to actually have a hands-on demo with the app, you need to have some form of basic code distribution. The cleanest way to do this would be to tie up all loose ends in your current app flows, block all unfinished roads in it and compile it for whatever platform your client requested the demo for.
Take a look at the electron-packager and electron-builder docs to get an idea how to build an .exe, .dmg or whatever file from your Electron app, then send that file to them with some basic instructions.

ActiveX Control always working on my machine - unpredictable behavior on others?

I have a question about my ActiveX control not always working in IE on other machines.
Context: I'm working on an internal app for my company. It is designed to be a standalone web-page config tool for viewing a static customized version of our web app. The user may select the colors, images, and other settings they would like to see, and these will be present in the static mockup/preview version on their machine when they click a button.
Implementation: my javascript file creates a filesystem/activex object that essentially creates a temporary javascript file to which a list of values are written. Then when the user previews the configuration, the javascript file is located and values are loaded dynamically into the dom, etc etc. Naturally this functionality only works in Internet Explorer and is shady at best, but is my only way of implementing a purely zero configuration, client-side dynamic webapp.
Problem: When I test out my script, Internet Explorer prompts me twice about ActiveX controls and I say "yes" to them and the ActiveX functions work. I do this every single time I open my page. But sometimes when I send the file to another person so they can use it, they don't get the notifications so it doesn't work. However sometimes they do get notifications and it does work! I am using default security settings for IE so there should be no difference between my settings and theirs.
Could this be related to my user permissions vs theirs, or the fact that the files are read-only (because they are coming from source control and are also being made read-only when put on the shared drive.) or unknown dark Microsoft forces beyond human comprehension?
Thanks,
Josh
I believe you may want to create an HTA (HTML Application) instead of a web page. Writing HTA's gives you more privileges as far as ActiveX objects are concerned. Check out this page from Microsoft: http://msdn.microsoft.com/en-us/library/ms536496(v=vs.85).aspx.
To answer your question about privileges, I believe that some of your coworkers' IE settings probably prevent web pages from using ActiveX objects. Your settings may be such that you are prompted whenever ActiveX object are about to be created.

Testing multiple concurrent browser sessions

I'm developing a card-game in Ruby on Rails, and trying to work out how best to test it.
When a player joins a game, their Player object is stored in the session. Obviously, in order for the game to work, I need more than one Player in a game at once. Since sessions are the same for different tabs in one browser, I'm currently testing a 2-player game by having the app open in FireFox and Internet Explorer at the same time.
Before I go off and download Chrome in order to test a third player... is there an easier way of doing this?
Edit: To clarify, I'm not yet at the stage where I want to run automated tests to see if it breaks. I'm at the stage where I want to be able to hack the back-end db, then refresh the page and see how it looks now, or click a button to see the (usually) failure response, or whether the behaviour is looking right.
You can run Firefox with multiple profiles. From a command line go to the directory Firefox is installed in and run firefox -P. Create a profile for every instance that you want to run. Close the profile manager, then for each profile run firefox -no-remote -P "profile name". You can run as many instances of Firefox as you want, and each one runs with an independent profile and thus independent session.
Automate it!
You really don't want to be manually testing this. You could use a Ruby script with the curl libs to generate the 'moves' and manage the response including the session cookie.
As a teaser, see this snippet from the API docs, sounds like it would help you..
easy.cookiejar = "cookiejar.file" => "pwd string"
Set a cookiejar file to use for this Curl::Easy instance.
This file will be used to persist cookies.
Use http://watir.com/ to create ruby scripts exercising your game.
Use multiple Watir::Browser instances to run multiple browsers.
Use firefox' profiles and -no-remote switch to keep them separated. See also this question.
Rather than opening a new tab, create a new window in your Web browser. The new window will have its own session. This works for Internet Explorer, but not for Firefox. I haven't tested it in the WebKit based browsers.

Resources