How can I install an application on iPhone automatically? - c++

I need a way to install a distribuible application without user intervention, of course I currently have a distribution profile installed on my device (I can install or uninstall the application by means of iTunes or iPCU), the problem remain on the side of automation "no user intervention is required", basically I need to develop a software (maybe hack iTunesMobileDevice.dll) that install the application when a valid device (the one with a valid distribution profile) is connected to one machine (application server), so any ideas??....
Thanks in advance!

There is absolutely nothing in the standard API that will let you do this. I can't image a bigger security hole than a mechanism for installing software without the users intervention/knowledge. If Apple did find such a hole they would plug it so fast it would cause physicist to question certain assumptions about the speed of light.
You might could do this on a jailbroke device but AFIK all the open development tools require human interaction. You would probably have to write quite a bit from scratch and you would have all the security and software availability problems of a jailbroken device. You would also run the risk of Apple breaking the loophole you exploited in a future release.
If I may ask, why exactly are you trying to automatically install software? What advantage do you hope to gain by undermining your security to that extent? There might be a better way to go about it.

Related

Can I use AWS as a virtual computer?

I know zilch about AWS, and everything I read about it is at a level of generality beyond my poor understanding.
So, to be specific, say I plan a peripatetic lifestyle. Or say I cross national borders frequently with an ever-present danger of having my laptop confiscated.
Can I keep only a barebones laptop computer locally, and put compilers (say perl, python, etc), editors, browsers and my own programs and data on AWS, edit my code and run it on AWS, and then view the output on my laptop from wherever I may be?
Does AWS provide any of these programs as a service, so I don't have to upload them?
Amazon WorkSpaces may have the functionality you are looking for.
https://aws.amazon.com/workspaces/?nc2=h_m1
There is a free trial version to test it out.

Railo Express for a portable web app on a USB stick

Here's my scenario. I am writing a web app for a client that needs to be portable, i.e. they need to plug it into different PCs (Windows) and have it simply work. Life would have been easier if they could just put it up on a domain, but no can do in this case, cause internet access might not always be available. So, I am trying out Railo Express with Jetty (http://www.getrailo.org/index.cfm/download/) which has everything I need. I actually managed to install (well, copy and configure really) the package on a USB stick, created a new site in the "/webapps" folder and wired that up, then downloaded the drivers for SQLITE and got that connected and working just fine.
This is not going to be a very intense web app at all, or does it need many users connected to it (max 2-3 at a time). I use Bootstrap and other than a Dashboard with a couple of graphs, all the pages are basically forms and read/write to the SQLITE db.
So, while everything seems to work do you think this is a viable solution? It seems to work fine, but will I run into any issues, like perhaps performance or compatibility issues with the different PCs the client might be using? And is there a better way of doing this?
EDIT:
Thanks for replying guys. Here's some more info to hopefully clear things out. I should have been more specific as to why use a portable web app. The app is for a car wash business to log the business going through. There is basically one computer at the counter where things will be accessed from (and the USB will be attached here), and possibly one iPod at the entrance where cars going in will be logged by the attendant (and will connect to the local computer via wireless). The reason for portability? They want to take the stick home with them and review stats, so it's either a full installation on the computer and a backup on the stick (extra work), or just everything on the stick. The reason for not simply going online and making things easier for everyone: tricky internet reception, which would mean downtime of the app.
From your descriptions it looks like a simple and not very intensive application. Based on my experience with Railo Express, I think you have the power needed to run this.
What I would do is to install the application on the computer at the counter since that is the main hub (you mention the iPad connecting wireless). Use the stick as a backup and before they take it home, make sure the stick is updated with data. You might also consider designed the app so that there is separation between writing data and consuming it (e.g. people at home running reports).
Will the app on the stick run at home, most likely it will work, or if you run into some problems will not be hard to fix.

Django hosting on ep.io

is there someone who has expirience in hosting django applications on ep.io?
Waht are the pros/cons on it?
I'm currently using ep.io, I'm still in development with my app but I have an app deployed and running.
When you use a service like this you go into it knowing that it isn't going to be the perfect solution for every case. Knowing the pros and cons before hand will help set your expectations so that you aren't disappointed later on.
ep.io is still very young and I believe still in beta, and isn't available to the general public. To be totally fair to them, it is still a work in progress and some of these pros and cons may change as they roll out new features. I will try and come back and update this post as the new versions become available, and my experience with the service continues.
So far I am really pleased with what they have, they took the most annoying part of developing an application and made it better. If you have a simple blog app, it should be a breeze to deploy it, and probably not cost that much to host.
Pros:
Server Management: You don't have to worry about your server setup at all, it handles everything for you. With a VPS, you would need to worry about making sure the server is up to date with security patches, and all that fun stuff, with this, you don't worry about anything, they take care of all that for you.
deployment: It makes deploying an app and having it up and running really quickly. deploying a new version of an app is a piece of cake, I just need to run one maybe two commands, and it handles everything for me.
Pricing: you are only charged for what you use, so if you have a very low traffic website, it might not cost you anything at all.
Scaling: They handle scaling and load balancing for you out of the box, no need for you to worry about that. You still need to write your application so that it can scale efficiently, but if you do, they will handle the rest.
Background tasks: They have support for cronjobs as well as background workers using celery.
Customer support: I had a few questions, sent them an email, and had an answer really fast, they have been great, so much better then I would have expected. If you run your own VPS, you really don't have anyone to talk to, so this is a major plus.
Cons:
DB access: You don't have direct access to the database, you can get to the psql shell, but you can't connect an external client gui. This makes doing somethings a little more difficult or slow. But you can still use the django admin or fixtures to do a lot of things.
Limited services available: It currently only supports Postgresql and redis, so if you want to use MySQL, memcached, mongodb,etc you are out of luck.
low level c libs: You can't install any dependencies that you want, similar to google app engine, they have some of the common c libs installed already, and if you want something different that isn't already installed you will need to contact them to get it added. http://www.ep.io/docs/runtime/#python-libraries
email: You can't send or recieve email, which means you will need to depend on a 3rd party for that, which is probably good practice anyway, but it just means more money.
file system: You have a more limited file system available to you, and because of the distributed nature of the system you will need to be very careful when working from files. You can't (unless i missed it) connect to your account via (s)ftp to upload files, you will need to connect via the ep.io command line tool and either do an rsync or a push of a repo to get files up there.
Update: for more info see my blog post on my experiences with ep.io : http://kencochrane.net/blog/2011/04/my-experiences-with-epio/
Update: Epio closed down on May 31st 2012

Development Environment in a VM against an isolated development/test network [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I currently work in an organization that forces all software development to be done inside a VM. This is for a variety of risk/governance/security/compliance reasons.
The standard setup is something like:
VMWare image given to devs with tools installed
VM is customized to suit project/stream needs
VM sits in a network & domain that is isolated from the live/production network
SCM connectivity is only possible through dev/test network
Email and office tools need to be on live network so this means having two separate desktops going at once
Heavyweight dev tools in use on VMs so they are very resource hungry
Some problems that people complain about are:
Development environment runs slower than normal (host OS is windows XP so memory is limited)
Switching between DEV machine and Email/Office machine is a pain, simple things like cut and paste are made harder. This is less efficient from a usability perspective.
Mouse in particular doesn't seem to work properly using VMWare player or RDP.
Need a separate login to Dev/Test network/domain
Has anyone seen or worked in other (hopefully better) setups to this that have similar constraints (as mentioned at the top)?
In particular are there viable options that would remove the need for running stuff in a VM altogether?
In particular are there viable options
that would remove the need for running
stuff in a VM altogether?
Given that you said there are unspecified risk/governance/security/compliance reasons for your organization's use of VMs, I doubt any option we could provide could negate those. Ultimately it sounds like they just need their development team as sandboxed as possible.
(And even so, the question/answers would probably be better off at serverfault since it's more networking/security oriented.)
It sounds like a big problem is not having enough horsepower on the host OS. WinXP should be fine, but you need to have adequate hardware. i.e. at least 3 GB RAM, dual core CPU, and hardware that supports virtualization. Clipboard sync should be working with the VM.
I am not currently doing this, but I've thought about it, and we're kind of kicking this idea around with the idea of making it easier to standardize the dev environment, and to avoid wasting a day when you get a new PC. I'm dismayed to hear that it's not the utopia that I had dreamed...
I've been using VMs as a development environment for a long time. There's nothing inherently wrong with it, and it presents lots of benefits.
Ensuring a consistent environment
Separating file systems for different backup scenarios
Added security
Potentially gives developers access to more raw computing power.
There is a lot of innovation in the VM world, as evidenced by the growing popularity of VM farms, hardware support for virtualization, and controlled "turnkey" solutions, like MS's VirtualPC images for testing browser compatibility and the TurnKey set of appliances.
As others have said, your issues are probably due to insufficient hardware or sub-optimal configurations.
Development environment runs slower than normal (host OS is windows XP so memory is limited)
This should not be noticeable. XP vs. Windows Vista or Win7 is a marginal comparison. I would check the amount of physical RAM allocated to the VM.
Switching between DEV machine and Email/Office machine is a pain, simple things like cut and paste are made harder. This is less efficient from a usability perspective.
There are VM-specific optimizations/configurations that can make these tasks seamless. I would consult your VM maintenance staff.
Mouse in particular doesn't seem to work properly using VMWare player or RDP.
Again, should be seamless, but consult VM staff.
Need a separate login to Dev/Test network/domain
I would see this as a business decision: your company could obviously set up virtual machines with the same domain poicies as your own personal workstation, but may have other (big brother?) purposes for forcing you to login separately.
As far as using VM's as an agent of control, I think there are better solutions, like well-designed authorization controls around the production machines. There's nothing like paper trails to make people behave themselves.

Do you use virtualized desktops for legacy/seldom used applications?

I wondered if anyone uses virtualized desktop PCs (running WinXP Pro or older) to have some old applications that are seldom used available for some ongoing tasks.
Say you have a really old project that every once in a while needs a document update in a database system or something like that. The database application is running on a virtualized desktop that is only started when needed.
I think we could save energy, hardware and space if we would virtualize some of those old boxes. Any setups in your company?
edit Licensing could be of concern, but I guess you have a valid license for the old desktop box. Maybe the license isn't valid in a VM environment, I'd definitly check that before.
Sure enough, if the application is performance critic, virtualization could hurt. But I'm thinking about some kind of outdated application that is still used to perform, say a calculation every 12 weeks for a certain customer/service.
I use virtualized desktops for:
Support that requires VPN software I do not want on my own desktop. This also lets a whole team share the support computer for a specific customer.
A legacy system which we use several different versions of (depending on customer's version) and they're not really compatible so its good to have a virtualized desktop for each version.
We use virtualisation to test on a variety of Operating Systems - the server application runs under linux, and we have a production (real) server, and a couple of test servers, which are all VMs.
The client runs under Windows, which, being an OS X user I have to run in a VM, and the other developer I work with runs an XP VM on his 8-core Vista box.
(I also have a seperate VM for running CAD software, but that's not really programming)
It depends on the requirements of the legacy systems. Very often if a system is relient on a certain clock frequency, then it better and morereliable to keep the older OS systems running as Virtulized OS' can do funy things to performance.
If the legacy systems aren't that critical, then go for it! One piece of advice I would give is to ensure that the system works FULLY before chucking out your old 3.11 systems as I have been stung before! To fully perform the testing can cost more money then you might save, but its up to anyone who make the decisions to ensure that is considered.
We use virtualisation for testing out applications on Vista. Or rather customers do the testing and we use virtualisation to reproduce the bugs they complain about.
I guess the thing that would stop me from using lots of virtual instances of my favourite proprietary OS would be licencing. I presume Microsoft would want me to have a licence for every installation, virtual or otherwise?
We use VMWare with a virtual windows XP here at work to run some old development tools with very expensive licenses that don't run at all on Vista. So VMWare saved us about $5000 in licenses.
Since my last machine upgrade I have been running virtualised OS's for a number of tasks. For example I use a different set of Visual Studio plugins for managed and c++ unmanaged development. Some things I found:
Run your vmware setup on a machine with plenty of resources. I'll repeat...plenty of resources! A fast quad and 8GB of memory is what my current machine is running and it runs sweet (warning you need a 64bit OS for the 8GB!).
I wouldn't worry about app performance if your current physical hardware is old (2+ years). With a decent machine I find the virtualized apps run faster than on the legacy hardware!
When upgrading to a new workstation, p2v your old workstation. No need to worry about synergy or a KVM in the transition period any more!
I've used virtualisation so I could take my development environment around with me while travelling. As long as I could install MS Virtual PC, (and the PC/laptop had generous enough RAM) then I could access all my tools, VPN, Remote desktop links, SQL databases etc...
Worked fairly well, just a little slower than I like. I could have carted a laptop around, but found a small portable harddrive to be lighter/easier and just as effective.
However, consulting for several clients - all with different VPN requirements/passwords/databases/versions of frameworks & tools etc, I've found that having a Virtualised support environment for each is well worth it. Then multiple users have access to what is needed when supporting each client - they just need to either remote desktop (or run directly) the virtualised instance.
I've used VMs to handle work-related tasks that I didn't want / couldn't do on the company-issued laptop. Specifically, I needed to have several editions of the JRE running at the same time, which Java doesn't really like.
To get around this, I built several VMs that each ran the one tool I needed in trimmed-down XP instances.
Another thing to consider is that if you have a 5-yr-old server running some app, it's probably going to run just fine on a VM on new hardware. So, if you have a rack of old devices, buying one or two "real" servers, installing something like ESX (I'm most familiar with that tool, though Xen and others exist), then use a physical-to-virtual conversion tool to get those old devices switched to VMs so you can reduce your electricity consumption, management headaches, and worries about a critical device failing and not being able to find hardware for it.
We use VM for legacy apps, and have retired old machines that served up those apps. It eliminated the concern of matching drivers from NT to Win2k3. From a disaster recovery perspective this also helped as we couldn't find boxes to support the old apps at the DR data center.
The likes of VMWare are invaluable tools for browser testing of web applications. You can pretty easily test many combinations of OS and browser without having rank upon rank of physical machines running that software.