Accessing a USB Midi device via the web - java

I'm trying to figure out if it's possible to access a Midi device (like a piano/keyboard or electronic drum set) that is plugged into to a clients USB port over the web.
Obviously the browser security model makes this impossible using just javascript and while it looks like the emerging html5 device standard might help in the future it's apparently not there yet.
So what about flash, silverlight or java? The closest I've found is that silverlight seems to be able to do it if the app is trusted, but that's not a very easy thing to convince a user to do.
Any options?

Yes, this is possible, at least in Windows and MacOS.
I'm not sure how to post a link here, but you can google for "Jazz-Plugin"

The only practical way (that I know of) to achieve this using Silverlight, is platform invocation. This requires Silverlight 5 and the app to run in full trust mode, which makes sense because the app can do pretty much anything with P/Invoke. If a web app allows the developers to access information on a client's computer, then there will have to be some warning or user sign-off (like Silverlight's full trust).

Related

Emulating Android Drone Control App On Windows

I recently purchased a Yuneec Breeze quad-copter drone that uses an Android and iOS app with its own WiFi connection as a controller.
I am looking to write a Java application that performs the functions of the Android app with Game Controller support (the Breeze Cam app uses the touchscreen which means my big thumbs cover the streaming video) but am running into a roadblock.
While being proficient in Java, including network functions, I find myself woefully uninformed as to how to capture and read the network traffic between my phone and my drone. Its simply a skill I never needed until now.
Any place to help me get started?
OR -
Since I'm writing this in Java would de-compiling and hacking away at the Android source be a more viable option?
If so what decompilers are recommended?
In my experience these apps tend to be written in proprietary code. Android may be an open-source project, but the apps written for it don't have to be. It's unlikely you'll be able to write your own code to control the drone unless Yuneec provides an API/SDK to do so.
A quick Google search yields this thread on their forums: https://yuneecpilots.com/threads/api-sdk.745/
It's not much info, but it looks like you're SOL. Sorry.

What is the alternatives for Java Applet to launch client programs using Chrome browsers?

I am working in a web application using ASP.net and C#.
My target is to check on a desktop application on the client machine .. If it was exist then I should launch it. Else if it wasn't exist, we should download, install and then launch it.
I could develop this module using Java Applet but unfortunately, Google decided to disable NPAPI in September 2015, So the applet will not working on Chrome.
My question is about the Applet alternatives to help me implementing the above scenario ?
The only (semi) viable option as far as I can see, is to offer the Chrome user a link to a JNLP file for a desktop application. Then when/if the JWS desktop application starts, have it report back to the server 'loaded OK' and then 'target app. installed/not installed'.
On your server, have a time out for waiting on the client to report back. If it passes that time, presume the client machine does not support Java at all and the user is checking some web service to try and figure out what app. opens a JNLP!
After searching about the most suitable way to achieve my goal, I think using custom protocols will be a nice solution to access my client applications from the web page.
This solution is used by many companies such as Microsoft (using mailto: to open Outlook application) and Apple (using itms: to open iTunes application).
The following link is a very good link which talk about a custom protocols:
https://support.shotgunsoftware.com/entries/86754-How-to-launch-external-applications-using-custom-protocols-rock-instead-of-http-
Once Google Chrome was the first to announce that they won’t be supporting NPAPI anymore, they were also the first to provide a new architecture in order to rewrite your code to work on their browser. You can take a look on Native Messaging, which “can exchange messages with native applications using an API that is similar to the other message passing APIs”. The problem is that this approach only works on Chrome, is not something that you can adapt to other browsers.
A more useful approach is FireBreath, a browser plugin in a post NPAPI world. Check the words below from one buddy of the project:
“FireBreath 2 will allow you to write a plugin that works in NPAPI, ActiveX, or through Native Messaging; it’s getting close to ready to go into beta. It doesn’t have any kind of real drawing support, but would work for what you describe. The install process is a bit of a pain, but it works. The FireWyrm protocol that the native messaging component uses could be used with any connection that allows passing text data; it should be possible to make it work with js-ctypes on firefox or plausibly WEB-RTC or even CORS AJAX in some way. For now the only thing we needed to solve was Chrome, but we did it in a way that should be pretty portable to other technologies.”

NPAPI retirement and the future of digital signature

I understand that browser's companies are not interested about the applications which use Smart Cards, applets, etc, anymore. So, I'd like to ask you guys about the approach that you will be taking from now and then without NPAPI.
In my company we are developing a new app which is basically digitally sign confidential documents and we are afraid of it and the nexts steps on this NPAPI novel. For now, just Chrome is removing this netscape plugin, but I know the other browsers are planning the same soon. Will we be back to desktop apps in order to sign documents digitally?
Thanks.
FireBreath 2 will allow you to write a plugin that works in NPAPI, ActiveX, or through Native Messaging; it's getting close to ready to go into beta. It doesn't have any kind of real drawing support, but would work for what you describe. The install process is a bit of a pain, but it works.
The FireWyrm protocol that the native messaging component uses could be used with any connection that allows passing text data; it should be possible to make it work with js-ctypes on firefox or plausibly WEB-RTC or even CORS AJAX in some way. For now the only thing we needed to solve was Chrome, but we did it in a way that should be pretty portable to other technologies.
Check the #firebreath IRC channel on freenode if you want to help with the effort.
I think in the future, you will be able to anything you can do in a desktop app in the browser. Chrome is able to remove NPAPI because most plugins can be replaced with HTML5/CSS3 and native browser APIs.
In terms of digital signatures, there are several implementations of capturing them using HTML5 canvas. One example is Signature pad.

Getting Started with Mobile Value Added Service, MVAS

I am interested in mobile development and have been self tutoring myself android development.I also plan to learn I-phone development and also cross platform development with phonegap.
But being from Nepal i see that if i would develop an app most of my users would not be smartphone users. I seen another option is SMS based MVAS applications and thus would like to learn how such applications works and how such applications are developed and deployed. I have been searching on Google and have not been able to find any resources that goes into technical details. I have found a lot of materials on what MVAS is and what it can be applied to, but not a single resource on how it works and how to develop MVAS applications.
If someone could provide me with some answers i would be grateful as i am really interested in finding more about how such applications work.
PS: I really do hope that there is someone who can help me out with this because i see that there does not yet exist a MVAS tag in stackoverflow.
I have found two ways this can be done. There are Open Source Solutions called front Line SMS and Rapid SMS. These tools can be used for receiving and sending SMS and can be integrated with you server using a GSM phone or GSM modem. After you receive the data how you use and handle it totally depends on you. This solutions can be integrated into your existing systems and you can also write new solutions to serve content and other data.
http://www.frontlinesms.com/
http://www.rapidsms.org/

Send commands between two computers over the internet

I wish to control my computer (and usb devices attached to the computer) at home with any computer that is connected to the internet. The computer at home must have a program installed that receives commands from any other computer that is connected to the internet. I thought it would be best if I do this with a web interface as it would not be necessary to install software on that computer. For obvious reasons it would require log in details.
Extra details: The main part of the project is actually a device that I will develop that connects to the computer's usb port. Sorry if it was a bit vague in my original question. This device will perform simple functions such as turning lights on etc. At first I will just attempt to switch the lights remotely using the internet. Later on I will add commands that can control certain aspects of the computer such as the music player. I think doing a full remote desktop connection to control my device is therefore not quite necessary. Does anybody know of any open source projects that can perform these functions?
So basically the problem is sending encrypted commands from a web interface to my computer at home. What would be the best method to achieve this and what programming languages should I use? I know Java, Python and C quite well, but have very little experience with web applications, such as Javascript and PHP.
I have looked at web chat examples as it is sort of similar concept to what I wish to achieve, except the text can be replaced with commands. Is this a viable solution or are there better alternatives?
Thank you
VNC
SSH
Remote Desktop (Windows)
You can write a WEB APPLICATION. The encryption part is solved by simple HTTPS usage. On the server side (your home computer with USB devices attached to it) you should use Python (since you're quite experienced with it) and a Python Web Framework you want (I.E. Django).
While it is an interesting programming question, perhaps you should ask it on ServerFault instead? There you can probably get a lot of nice input on web-based administration / control tools.
Unless this is a "for fun" project for you, there are about a jillion things out there that already do this. And if you want to control a computer from a web browser, be prepared to require installing some kind of custom plugin - since browsers can't touch arbitrary files on the local filesystem, execute local applications, or do other things that are flagrant security risks.
I've been using VNC for over a decade - free and easy.
http://en.wikipedia.org/wiki/Virtual_Network_Computing
Well, I think that java can work well, in fact you have to deal with system calls to manage usb devices and things like that (and as far as I know, PHP is not the best language to do this). Also shouldn't be so hard to create a basic server/client program, just use good encryption mechanism to not show commands around web.
I you are looking for solution you could use from any computer anywhere in the worls without the need to install any software on client pc, try logmein.com (http://secure.logmein.com).
It is free, reliable, works in any modern browser, you don't have to remmeber IPs and hope they won't change, ...
Or if this is a "for fun project" why not write a php script, open port 80 in your router so you can access you script from outside, possibly dynamically link some domain to your IP (http://www.dyndns.com/). In the script you would just login and then for example type the orders in textfield in some form in your script. Lets just say you want to do some command prompt stuf, so you will basically remotely construst a *.bat file for example. Then the script stores this a fromtheinternets.bat to a folder on your desktop that is being constantly monitored for changes. And when such a change is found you just activate the bat file.
Insecure? Yes (It could be made secureER)
Fun to write? Definitely
PS: I am new here, hope it's not "illegal" to post link to actual services, instead of wiki lists. This is by no means and advertisement, I am just a happy user. :)

Categories

Resources