My objective is to create a script (or a Jenkins job) which remotely uninstalls, installs(.msi) on Windows VMs from a Linux machine.  I'm new to windows stuff so here I am,  I'm currently ssh'ing to Windows VMs using paramiko in python and executing commands in Win command prompt (cmd).   For uninstall - msiexec /q /x "App.msi" /qn.  It doesn't work sometimes.  Opening a program(as administator) - I'm scheduling a task using Windows Task scheduler which doesn't open the program as admistrator but does show UI. (Will run at the correct time if VMs timezone changes)  Alternative was  "C:\PathtoProgram.exe" but it the program only shows up in Task manager without any UI which is necessary.  ip = device['hostname'] ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip,22,DEFAULT_WINDOWS_LOGIN,DEFAULT_WINDOWS_PWD)  #Uninstall Current Build cmd = 'msiexec /x "setup.msi" /qn' helptext = "Uninstalled %s on %s" % (current_version, ip) uninstall_current_build(ssh, cmd) time.sleep(3)  #Downloads new build from URL download_url = json.loads(build_version).get("downloadUrl") cmd = 'curl -o setup.msi %s' % (download_url) helptext = "Downloaded %s on %s" % (current_version, ip) execute_ssh_command(ssh, cmd, helptext)  #Install new Build cmd = 'msiexec /i "setup.msi" /qn' helptext = "Installed %s on %s" % (current_version, ip) execute_ssh_command(ssh, cmd, helptext)  #Open Program vm_time = (datetime.utcnow() + timedelta(minutes=1)).strftime("%H:%M") cmd = 'SCHTASKS /CREATE /SC ONCE /TN "OpenTask" /F /TR "\Path\To\program.exe"" /ST %s' % (vm_time)     stdin, stdout, stderr = ssh.exec_command(cmd)   def execute_ssh_command(client, command, helptext):     stdin, stdout, stderr = client.exec_command(command, get_pty=True)     for line in iter(stdout.readline, ""):         print(line)     print(helptext)   Is there a better or cleaner way to do this?
msiexec is command prompt software that installs an  program. But I have found that you can install an MSI file from the command line by just typing in the name of the MSI file on the command line.  But in order to uninstall the MSI file, it seems you have to call the msiexec program and give it a /x or /uninstall.  How can I uninstall an MSI from the command line without using the msiexec routine?
How do I install pillow in Ubuntu 16.04 LTS? I went to  for installing Pillow since the original PIL is a discontinued project and so now not so good to use. But, in the table support for Ubuntu 16.04 LTS is unmentioned. It appears neither in , or in .     Further, just installing pillow is said to be not enough. There are some dependencies that should be installed first which is also unmentioned for Ubuntu 16.04 LTS. Would the installation steps for Pillow for python 3 given for 14.04 LTS be OK for Ubuntu 16.04 LTS?  If not, How do I install pillow in 16.04 LTS for Python 3.6? (There is support for Python 2.) Best way to parse command line arguments in C#? When building console applications that take parameters, you can use the arguments passed to Main(string[] args).   In the past I've simply indexed/looped that array and done a few regular expressions to extract the values. However, when the commands get more complicated, the parsing can get pretty ugly.    So I'm interested in:   Libraries that you use Patterns that you use   Assume the commands always adhere to common standards such as . R raster: masking a raster by polygon also remove cells partially covered? I want to mask out a raster based on the values of a polygon: i.e., set to NA all values of the raster that are not covered by the polygons. However, it seems that raster::mask() masks out cells (i.e. set them to NA) even if they are partially covered?  This is similar to the question: , but unlike crop(), mask() does not have the snap="out" option.   Check: here the right point of the triangle touches a cell, yet that cells is masked out.   library(raster) library(sp)  r &lt;- raster(xmn=1, xmx=5, ymn=1, ymx=5, nrows=4, ncols=4) r[] &lt;- 1:length(r)  Sr1 = Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2))) Sr2 = Polygon(cbind(c(4.1,4,2),c(2,3,2)))  SpP = SpatialPolygons(list(Polygons(list(Sr1), "s1"), Polygons(list(Sr2), "s2")), 1:2)  plot(mask(r, SpP)) plot(SpP,  add=TRUE) Summation of natural number set with power of $m$ Who knows about the summation of this series: $$\sum\limits_{i=1}^{n}i^m $$  where $m$ is constant and $m\in \mathbb{N}$?  thanks Is there some way to get explorer to generate thumbnails without actually having to navigate and scroll through every folder?  All I could get was a command prompt script that would load an explorer window for all subfolders, however only images that were visible would have thumbnails created. Is it theoretically possible that every person in this village has a different jar of coins? A village has about $1$ million residents. Suppose each resident has a jar with $100$ coins in it.Two jars are considered to be “equivalent” if they have the same number of 10c, 20c, 50c, $\$$1 and $\$$2 coins in them. How many different (i.e. nonequivalent) jars of coins exist? Is it theoretically possible that every person in this village has a different jar of coins?  I understood that if we have $k_1$ 10 coins in the jar where $k_1$ is between $0$ and $100$ inclusive, then there are $100-k_1$ coins of other denominations in the jar. Likewise, we also have $k_2$ 20c coins in the jar where $k_2$ is between $0$ and $100$ inclusive, so the combined number of 50c, $\$$1, and $\$$2 coins in the jar is $100-k_1-k_2$. And we always have some $k_1, k_2, k_3, k_4, k_5$, let's say, so that the sum of those $k$'s is $100$.  I got stuck since I don't know how to 'compare' the number of coins in jars for different residents. Why does this not work with an imaginary exponent? Bevel not...beveling properly I'm taking a course and the instructor has beveled an edge and I cannot get the same result. My bevel only bevels on segment on one side then the rest, about 4 or 5 segments bevel on the other side. Other words the bevel is not beveling evenly on the top of a cylinder. Pictures below Why is it difficult to differentiate between  and ? Is it because we don't clearly understand how both of these phenomenon takes place?   My thoughts: From an answer to one of my earlier question  I could understand that light waves behave differently when it strikes a slit which is of several times bigger than its wavelength and when it strikes a slit of size comparable to it its wavelength.In the former case the different points on the slit acts as wave-front sources producing circular wave fronts which interfere to form the diffraction pattern but in the later case plane wave-front striking a slit after passing through it forms circular wave-fronts and two such wave-fronts from two different slits interfere to form the interference pattern. But, I'm not satisfied by that because I don't get any intuition about points on the slit acting as wavefront sources. So, what is actually happening? Would it help if you jump inside a free falling elevator? Imagine you're trapped inside a free falling elevator. Would you decrease your impact impulse by jumping during the fall? When? What are the differences between Factor Analysis and Principal Component Analysis? It seems that a number of the statistical packages that I use wrap these two concepts together. However, I'm wondering if there are different assumptions or data 'formalities' that must be true to use one over the other. A real example would be incredibly useful. What article should be used in the following sentence?     He was English by [a/the/] blood.   I feel there should be a zero article here, but I was taught that the zero article is impossible in English. Network-wide HTTPS: It's time How to check that a cubic polynomial is irreducible? I want to argue that argue that $\pi(\alpha)=\alpha^3+3\alpha+3$ is an irreducible polynomial over the finite field with 5 elements $\mathbb{F}_5$. My approach was just to check that $\pi$ has no roots in $\mathbb{F}_5$. Is this right? When I log in on a Windows 8 machine for the first time with my Microsoft Account (by providing an e-mail address), a new user folder is created:  C:\Users\dzinx_000   In previous versions of Windows, I could choose the name of this folder (it was equal to my username). As I use the commandline often, it is quite annoying to me.    Can I somehow rename it to dzinx?  Does simply renaming the folder break everything? How can I make Chrome open bookmarked pages in new tab by default? Current situation:  I am currently browsing a page (say, www.google.com). I want to open a bookmarked page (say, www.bing.com), but I want to keep the current page (Google) opened. I need to click on new tab, then click on the bookmark for Bing. Alternatively, I can right click and open Bing in new tab.  But I want none of those because why click twice when one is enough?    What I want:  I am currently on Google. I want to open Bing, so I click on the bookmark and Bing opens in a new tab. Google remains open.    I am aware of a duplicate question linked . However it didn't really provide a satisfactory answer. Changing every link to javascript breaks the icon and is a pain to do; middle clicking doesn't really work because I'm on a laptop and the touchpad does not support middle clicking. I hope there is an extension for Chrome that can redefine this behavior to the way I want. A hidden setting in Chrome would be even better but I doubt Chrome offers that. How do I change the mode of perspective? I'm working on a scene that, currently, is much more convenient when the view is.. not the correct perspective. There's a word for this, but I have no idea how to phrase it and my tries to look it up has all come up with weird results. (usually directions on how to make your view point from a certain direction) This has probably already been answered here, so please bear with me; I just cannot find anything that has to do with the problem I'm having. I drew a photo to make it easy: (excuse my crappy mouse-drawing skills)  Thanks! I am trying to route a pic32 chip to a  chip and having a bit of a hard time getting all 17 address lines and all 8 data lines connected. I am trying to tie the first 16 address pins to portB pins 0-15 and the data pins to portD 0-7.  After thinking about it for a while I realized that I am probably making my life more difficult by trying to line up rb0 with a0, rb1 with a1, etc. All I really want to be able to do is write a 16 bit value to portB and have the majority of the address loaded and ready. If I make pin assignments based on ease of routing, the logical address will be different between the mcu and the ram, but it should at least be consistent. Since nothing else needs to communicate with the RAM, I don't think it will be a problem if the mcu asks for address 0x101 and the RAM gives it address 0x110.   However, I wonder if it is a good idea. If there is some structure internal to the RAM designed to make sequential reads more efficient, or something like that, then I may want to go to the trouble of routing them 1:1. The pins arrangement on both chips fees somewhat random to me, so it would make it a lot easier on me if I could ignore the particular numbers. Is there any good reason why I should or should not do that? How can I install themes in Lubuntu? about://(null) popup? I encountered a popup similar to this one this morning while checking the weather report at  in Safari, though I have not been able to reproduce it.  The title is "about://(null)" and the text "Why you no play Candy Crush!!"  The popup occurred twice.  I tapped Cancel both times.  I suspect the source of this is rogue JavaScript in an ad network, judging from the fact that the screenshot below shows it in an ad-supported application, and when I saw it, I was on an ad-supported website.  My phone is not jailbroken.  I'm wondering if anyone is able to identify the source of the popup definitively.  Speculation is running rampant on Apple's support communities and elsewhere, from push notifications (delete Facebook and all your games!) to carrier notifications (which don't work on iPod Touches…), and my gut tells me little of it is helpful.  But I could also be very wrong.  (This is not my screenshot; it comes from .)    UPDATE 1: The Candy Crush people have this to say, but I'm not (yet) convinced there's actually something installed that is to blame:   UPDATE 2: Just reproduced it in the iOS Simulator while clicking around woodtv.com, but I'm not sure how to track it down further from here.