Creating an interactive lab environment with a server - server

I want to install an interactive lab environment in which students can code within that environment. I want to use codeboard.io for the IDE part. But, I don't want students to access the Internet apart from codeboard.io. So, how can disable the Internet access except codeboard.io?
Thanks in advance...

There are different tools which help you lock down a system and limit what students can do in the browser. One software I remember and which was used at my university is Safe Exam Browser.
As far as I can tell it's free and open source.

Related

Pre-packaging settings/extensions for VS code for users of a course

We teach a Deep Learning course on our supercomputers, and one step which is prone for improvement/automation is the connection to the machines and text editing.
Our users come with extremely distinct backgrounds: from people who set up their own linux clusters to people who barely understand the concept of a text editor, given they always edited files on jupyter or collab.
What I would like to do is a double-click package users can download and it configures VS code to connect to our machines, downloads dependencies (like the extension for ssh), generate new ssh keys, and gives support for viewing image files, csv and so on.
My impression is that the way of doing so is, instead of a full package containing vs code and our configurations, would be to make an extension of VS code itself which does that, but I have no idea where to begin or if such a thing even makes sense.
Any pointers are welcome.

How do you get #Recomended to work in VS Code?

I can get#recommended:workspace extensions to work correctly but I am unsure as to why I cannot get the general #recommended to show anything. Where am I supposed to put the extensions.json file?
My goal here is to have PowerShell install VSCode, copy over some JSON files for specific settings and then have the user shown the companies recommended extensions to install once they open up VSCode.
I know I can force them installed with code --install-extensions but I want the user to be able to pick and choose from the companies recommended list based on what kind of files they'll be working on. What I can't seem to figure out is how to get that list to show except within a workspace.
For example, we have a Chef team, an Azure team, Linux team, etc. each needing different extensions.
The #recommended option has no config. VS Code decides which extension to recommend based on the file types that exists in the folder/workspace that you opened (official release info).
So, in your scenario, I guess the best option is to use Workspace Recommendations (#recommended:workspace), using a different recommendation for each team/project.

Cinnamon show an application in all workspaces

I have a number of monitors. I typically move between up to 4 or 5 workspaces for different areas of focus during the day (simply different projects, PyCharm for Python projects vs Eclipse for Java projects, e-mail and project management activities, etc.)
I would like to throw a chat application up on a monitor that would be mapped into all workspaces so that it's always up attracting my attention and doesn't change when I change workspaces.
I don't see in Cinnamon any option to do this and find no search expression getting me help in Google to solve it.
At the moment, this is not possible in Cinnamon. It is a long standing feature request (since 2012!).
However, there are alternatives to it. Namely, the program devilspie2 (available in the repositories) allows one to manage windows and their placement, with the help of a small Lua script.
Here1 is how I stick my Firefox and Pidgin window on all workspaces, while some other windows in a given workspace WORK (because I don't want to see them when I'm not working (: ).
-- Make windows of all these apps visible on all workspaces
GLOBAL_WINDOWS='Firefox;System Monitor;Pidgin'
if (GLOBAL_WINDOWS:find(get_application_name())) then
pin_window();
end
-- Firefox should be tall maximised
if (get_application_name() == 'Firefox') then
maximize_vertically();
end
-- Put the Sublime on their correct workspaces
if (get_application_name() == 'Sublime Text' and get_window_name():find('WORK')) then
set_window_workspace(4);
end
This should be placed in a config file in your home directory. Check the documentation :). And don't forget to set devilspie2 as the first startup app.
1 also posted in that issue

How to create a CMS that exports to a memory stick that could then update a presentation on another computer

I have been asked to provide a solution for a client of mine. They have asked me to build a presentation for a exhibition in a museum that can be updated. The presentation will essentially be galleries of images/videos with associated captions. This presentation computer will have a poor internet connection at best.
I see the best way forward for my client to update the presentation would be to have created a presentation on another computer. They need to do this remotely from exhibition and there will be no network connection between the CMS and presentation computer.
I need them to then be able to export the presentation file onto a USB stick that they could then take to the exhibition.
Once at the exhibition I would like them to be able to put the USB stick into the computer and then for it to automatically copy the information into a folder on the computer and also update a XML file.
What I'm wondering is what would be the best way to program this? I am pretty experienced Flash and PHP programmer and would normally get round allot of these problems by running it all on networked computers running stuff from servers. I know I could quite easily create a presentation system in flash that would load all the info from a folder but getting that folder from one computer to the other seamlessly is not something I'm familiar with. I really don't want the administrators of the system to have to manually copy a folder from one computer to another. It really needs to be click a button and it exports to USB and click a button and it imports from the USB. When it comes to creating programs that export files and copy folders to and from USB sticks I'm pretty lost!! Would this be something that needed done in C++ or something similar? Any advice would be great!
Many thanks for taking the time to read this!
Cheers,
Craig
I think there are several options for this but one that comes to mind is to install and run a complete stack with CMS, MySQL, webserver from a bootable USB drive/stick.
Also check http://portableapps.com/
http://bitnami.org/ may also have something for you.
Another option is to use a CMS that can export and import its content easily.
e.g. hhttp://share.ez.no/download-develop/downloads/
allows users to create content and that content ( or any section of it ) can be exported as zipped package for import into another instance of the CMS. Usually takes less than a minute each way ( unless the export is very large ). The CMS would be installed at both locations running on the local machine. They don't need to be both running the same OS stack.

Automate Human Activity software

Anyone know any softwares that can simulate human interaction on desktop browser specifically by clicking or entering some data and run some report and print automatically obviously with some programming behind this. Main, it will be used for reducing business process steps on human interaction day to day activity (possibly testing purpose in the future).
I am appreciated your comment or input.
Thanks
I tried a few different automation tools myself when trying to automate desktop software, one is AutoIt which is one of the most complete in my opinion. It helps to automate small tasks, ie: select a window and press a button to do the rest. It even has a macro recorder to get you started.
Telerik WebUI Test Studio
Watir
Selenium
...to name a few
To keep up with the namedropping, here's 2 APIs for Java:
Robot
Abbot (Built on top Robot)