Wikipedia:Reference desk/Archives/Computing/2012 March 26

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Computing desk
< March 25 << Feb | March | Apr >> March 27 >
Welcome to the Wikipedia Computing Reference Desk Archives
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.


March 26[edit]

Blocking time-wasting sites in IE8?[edit]

I am really bad at getting off the "fun" internet (WP included) and getting work done. I use IE most of the time, and I've yet to find a good website blocker for it. I'd like it to be able to allow me to use the websites on the block list for certain amounts of time (like 5 minutes out of the hour or something), and I need it to be able to block something like "http://en.wikipedia.org/w/" instead of just "http://en.wikipedia.org" (in this example, this is so that I can read but not edit, because editing's where the time gets sucked). Basically, I'm looking for the Firefox extension Leechblock's capabilities, but for IE. Oh yeah, and it needs to be free. Does anyone know of any good ones? - Purplewowies (talk) 01:33, 26 March 2012 (UTC)

Why not just use Firefox + the extension you like? RudolfRed (talk) 01:42, 26 March 2012 (UTC)
Because I can't get Firefox to work right on this computer. Besides, (on other computers) I never use Firefox to edit WP (I don't know why, I just don't), and this is where I waste a great deal of my time when I'm supposed to be doing other things. Even if I could get Firefox to work, I'd probably just switch over to IE for a lot of stuff, especially stuff like Wikipedia editing (I just prefer to edit in IE :-/). - Purplewowies (talk) 02:02, 26 March 2012 (UTC)
FACESLAP! I just figured out what was stopping Firefox from working correctly and got it working better than it has in a year. Then I almost facepalmed again when it said Leechblock wasn't compatible with my new version of Firefox. But I got it working again. I'm still curious as to if there's anything similar for IE, though. - Purplewowies (talk) 04:13, 26 March 2012 (UTC)

One way to prevent the wasting of too much time on IE is to prevent the running of IE. (I've done this to my own computers.) -- Hoary (talk) 14:34, 26 March 2012 (UTC)

I haven't been able to find a solution to this problem specifically for IE. In addition, though, to Leechblock for Firefox, there is StayFocusd for Chrome. However, for a belt-and-braces approach to this, you could use Get Shit Done. Basically it modifies your computer's 'hosts' file, making it impossible to visit blacklisted sites from any browser on your machine. There's a relatively friendly guide to getting it up and running here, although be warned, it does involve using the command line and Python (programming language). Since it means modifying relatively important parts of your computer's workings, I can only recommend this method if you are confident in 'messing around with computers'. - Cucumber Mike (talk) 19:32, 26 March 2012 (UTC)
Note that this won't help the OP block specific parts of a website. And the OP probably should block secure.wikimedia.org for completeness. One option if they do want to use the hosts it to use some alternative site like the mobile site (and put up with the limitations) for reading. Note howevers it may be possible to overide hosts blocks simply by using the IP with some sites. (You'd also need to make a script or something and then put these in your scheduled tasks or whatever to make the restriction time based.) Nil Einne (talk) 21:50, 26 March 2012 (UTC)
[1] may be of interest although I'm not sure if it allows to block specific parts of a site (I'm not sure how it works since it's able to block for all browsers, it may need to block DNS lookups and perhaps IPs). The site does give other suggestions. I also can't say if the program is safe since I haven't looked in to it. This commercial service [2] may also do this, although I'm not sure what it is or how it works. Some parental control apps also seem to have the feature [3], [4], [5] (4/5 questions), [6], [7] (not sure), [8] (not sure) although again I have no idea if they meet the OPs requirements or how they work or even if they are safe. (Vista and 7 have parental controls but the time limits seem to be limited to login times.) [9] also has some suggestions.
You could also set up a router with a transparent HTTP and HTTPS proxy (or a non transparent one and block all HTTP/HTTPS not going thru the proxy) and then set it up to block certain websites and parts of websites at defined times. You could even install some sort of secure cabinet to put the router in (I'll likely need to be at the point of entry of the internet line so you can't just connect it to something else) and depending on what else you need, perhaps make attempts to block any secure or uncertain traffic not going thru the proxy (to try to stop VPN usage) or anything that isn't detected as HTTP/HTTPS and then also block any HTTP/HTTPS sites which allow proxying. Of course no matter how strict you make it, likely you can still get around it and there's also the risk finding a way around it may become a goal in itself so if that level is necessary, you probably should seek different help.
Nil Einne (talk) 22:28, 26 March 2012 (UTC)

Windows 7 libraries?[edit]

Are there enough advantages in the Windows 7 library feature to make it worthwhile to take time to figure it out AND put up with the visual clutter of another level of storage? Or just get rid of them? Advice please. Thanks. Wanderer57 (talk) 05:21, 26 March 2012 (UTC)

Personally I would get to know it. It searches your entire hard drive for simlar types (e.g. Music will look for all music files) and display it all in one place. This is good if you downloaded a song from a friends website, and you cant remember where you saved it. Mrlittleirish 10:01, 27 March 2012 (UTC)

How do I register the domain ear.th?[edit]

I was surprised to see that no one has yet registered ear.th so I tried to on GoDaddy. I couldn't seem to find a way to register a .th on there.

Is there a special process to get a .th domain? How much is the cheapest rate for buying new .th domains?

"Ear.th" and other similar sites would be highly coveted by naturalists and environmentalists so I just wonder whether the domain name just hasn't crossed the minds of those behind such causes. --Tergigress (talk) 08:14, 26 March 2012 (UTC)

You can't directly buy a .th address - like .uk, you need a second-level domain in front of the .th address, like .co.th or .or.th. .th is also administered quite strictly - you need to actually run an organisation in Thailand with the same name as the domain you want to buy. Unless you run a company called "Ear" in Thailand, you'd be out of luck. Smurrayinchester 09:00, 26 March 2012 (UTC)
I suspect that publishing the idea hear means that someone in Thailand will be rushing to set up a company and do just that .... -- Q Chris (talk) 09:42, 26 March 2012 (UTC)
It would still have to be ear.co.th (or ear.or.th if it was a non-profit), which doesn't seem like a very useful domain hack. Smurrayinchester 11:14, 26 March 2012 (UTC)
I know nothing of the application process, but it sounds like if you have ~$185,000 upfront and $25,000 per year, you can potentially apply to purchase the .earth (or pretty much any) top level domain. See Generic_top-level_domain#June_20.2C_2011_vote_on_expansion_of_gTLDs. -- 140.142.20.101 (talk) 18:02, 26 March 2012 (UTC)
You could apply but to have any hope of success you need a lot more then just the money [10] [11]. In any case, it sounds like there may be at least one competitor for .earth [12]. (As mentioned in our article, check out [13], [14] [15] to see if anyone else emerges or ICANN in April to see who applied.) Nil Einne (talk) 22:33, 26 March 2012 (UTC)

Movie image distortion[edit]

What is the name of the type of distortion seen in the dark areas of the following two images and what causes it?

http://i40.tinypic.com/av29ly.jpg

http://i42.tinypic.com/358nwyc.jpg

Thanks! — Preceding unsigned comment added by 193.224.66.230 (talk) 15:43, 26 March 2012 (UTC)

That is called quantization distortion, which is caused by a limited level resolution in low luminance levels during video encoding. Edokter (talk) — 18:24, 26 March 2012 (UTC)
And depending on how trained your eye is, you will also see some motion compensated blocking due to interframe coding. Nimur (talk) 18:34, 26 March 2012 (UTC)
Strictly speaking, blocking is due to block-transform intraframe coding. (In this case, the smallest discernible block size is 8x8, so the transform in question is likely DCT.) Motion compensation has the effect of blurring block edges.--Itinerant1 (talk) 21:02, 27 March 2012 (UTC)
...Right. It can also show up as an offset block; in other words, a clearly-defined block-edge that is not aligned to the (e.g.) 8x8 grid. Those can be hard to pick out from the background, but in pathological cases, you'll see a real boxy-looking glitch that isn't aligned correctly. You can also help train your eye to pick out linear superpositions of the discrete cosine transform basis set; for low-bitrate regions, you will typically see one single dominant component, rather than a well-represented superposition of many elements. This is by design; other-than-principle components are discarded to save bits, which is where we get the "loss" in "lossy compression." Aren't codecs fun?! I think they should begin training students in codec programming by their 3rd or 4th grade math classes - it will leapfrog their understanding of advanced numerical calculus, with an easy-to-understand practical application that everyone enjoys! "Compress this Youtube video... for homework!" Nimur (talk) 17:50, 28 March 2012 (UTC)
Those pics aren't too bad, if I turn the brightness up to max on my monitor I can make out the background. However, I've had some on streaming video so bad that nothing can help them. StuRat (talk) 21:04, 26 March 2012 (UTC)

Full virtualization of x86[edit]

Popek and Goldberg's requirements for virtualization are said to exclude x86 from being fully virtualizable but I don't see this as correct because a computer is able to model anything given enough resources and proper programming. What prevents x86 from being fully virtualizable and how does it do it? --Melab±1 18:49, 26 March 2012 (UTC)

What does "fully virtualizable" mean? VirtualPC, VMWare, and many others have offered x86 virtualization for 15+ years now. RudolfRed (talk) 19:44, 26 March 2012 (UTC)
Yes and as our Popek and Goldberg virtualization requirements, Full virtualization and x86 virtualization say, the extensions introduced in around 2005-2006 arguably provide full virtualisation including meeting the Popek and Goldberg requirements. I guess you can come up with some definition that the x86 doesn't meet but we need more to go on then 'Popek and Goldberg's requirements for virtualization' when our own article says the x86 does meet them now. These articles also offer some explaination of why it's held that x86 did not meet the requirements before then, so I think we also need more explaination for why the OP is confused about that point as well. Nil Einne (talk) 20:07, 26 March 2012 (UTC)
What I don't understand is why the x86 ISA without virtualization extensions is not fully virtualizable. --Melab±1 02:39, 27 March 2012 (UTC)
Here, we're including only instruction-for-instruction virtualization, in which the real processor executes the same instructions as the virtual processor, only interrupted when the instruction it's executing would interfere with the real machine. It's the reason VMWare, etc. are so incredibly fast. Therefore (apparently), they sacrificed correctness in order to do this, at least until recently. Paul (Stansifer) 02:53, 27 March 2012 (UTC)
I don't think the real processor executes the virtual processor's instructions. Otherwise how would it work when the virtual processor is not running on a x86 system? RudolfRed (talk) 03:10, 27 March 2012 (UTC)
Popek and Goldberg would not count that as efficient virtualization according to their definition. They are talking about a fairly specific scenario that doesn't cover everything that is popularly called virtualization. KarlLohmann (talk) 03:22, 27 March 2012 (UTC)
These programs only work on an x86 machine. If you want to virtualize between different processors, you have to resort to emulation, which is much slower.Paul (Stansifer) 12:48, 27 March 2012 (UTC)
That doesn't make sense to me. "Instruction-for-instruction virtualization" sounds redundant. How can there be any different kind of virtualization? --Melab±1 19:49, 27 March 2012 (UTC)
Consider the entire set of steps needed to execute one instruction. Typically, this means "load an instruction from memory, decode its operation code; load its operand values from memory or register; perform the operation; store the result in the correct location." (This is a very "first-order" approximation of a RISC instruction pipeline. In fact, an x86 pipe is much worse). Now let's zoom in on one single sub-part of that cycle: "fetch" - (IF) - the part where we "load one instruction from memory." How do you do this operation? Well, you have hardware that reads the program counter; increments its address by one; sends a command to memory (checking whether the data is available in the L1 cache, then the L2 cache, then the L3 cache, then RAM, then triggering a soft-interrupt to a system-routine to activate the swap); and waits for the result. That's a lot of steps for just the first fraction of one single hardware instruction!
Let's momentarily zoom in on the pointer-arithmetic portion of Instruction Fetch. We can naively rely on the machine to perform pointer; but what if your memory layout is different? (Bear in mind - x86 is a CPU architecture, not a system architecture! Two x86 machines can have different memories). To rigorously model a memory, we must create a software model for memory, and for the memory control circuitry. To perform each IF transaction, we must execute an address-addition, perform a load, and then conditionally branch on the result of the emulated cache. Let's leave aside virtual memory, which must also be virtualized!
If you perform the easy-way-out "virtualization," you are assuming that the virtual machine's fetch-logic is identical to the hardware. If you perform the latter, you require tens, or perhaps (let's be realistic!) hundreds of thousands of actual instructions to correctly model a generalized memory-transaction. That means, perhaps, a 106 slowdown between the true hardware and the emulated hardware, but it allows you to model any arbitrary type of computer architecture. And for the sake of hammering in this point: we still have only virtualized the first portion of an "IF" - approximately 5% of one single hardware instruction - on a simpler machine than x86.
In practice, VMs used for system-virtualization can't afford that. Only computer system designers perform such gate-level verification, to guarantee bit-exactness between the software-simulation and the actual hardware circuitry; but they don't try to use such systems to virtualize application servers. This type of virtualization is bit-exact - this is the "inefficient" (but robust and complete) virtualization Popek and Goldberg referenced. Nimur (talk) 21:08, 27 March 2012 (UTC)
In other words, you have the choice between having a program simulate a processor (slow) and just running the virtualized code and intercepting any attempts to do anything that affects the machine as a whole and only simulating those (tricky, but fast). Paul (Stansifer) 19:07, 28 March 2012 (UTC)
So virtualization is like a process that stands by and watches the "virtual" process execute directly and intervenes when it does something breaks away from its isolated environment. Yeesh, I thought virtualization included the execution of instructions with software. Could such a system be constructed to be a little more flexible in what it emulates/virtualizes? --Melab±1 02:38, 29 March 2012 (UTC)
It doesn't run alongside; it sets up traps for the cases where the virtualized machine is about to get into trouble. What do you mean by "flexible"? Paul (Stansifer) 20:28, 29 March 2012 (UTC)
By flexible I mean one that can adapt to the hardware it is running on instead of the single model system described by Nimur. --Melab±1 23:57, 30 March 2012 (UTC)
If you want fast virtualization, the answer is no. The reason that it works is that the overwhelming majority of instructions that the guest machine executes go through unimpeded. If the architecture of the guest machine is different than the host, the cost of detecting and managing the differences would be prohibitive. The only hope would be to translate the instructions ahead of time. Due to the nature of machine code, I believe this is impractical.Paul (Stansifer) 00:54, 31 March 2012 (UTC)
Here are a few things you may enjoy reading about, Melab:
  • Valgrind, a memory emulator
  • OpenRISC, a free and open-source RTL definition of a simple CPU
  • VCS, part of Synopsys's Design Compiler; a very expensive tool that you will need if you want to run gate-level RTL simulations of systems (e.g., bit-exact CPU virtualization), on an x86 system.
    • Cver, a free-software alternative to VCS that is, unfortunately, almost completely non-functional.
If you are interested in system-emulation, you may want to research soft microprocessors available for several FPGA and PLD programming boards; I highly recommend the Altera Cyclone DE-2 and its descendants, which are powerful enough to emulate 32-bit CPUs at the gate-level. These hardware boards cost around $300, and come with all the software tools you need to emulate soft-CPUs; these small computer/PLD boards are orders of magnitude cheaper than a Synopsys license that will run on your "PC" computer. Nimur (talk) 21:28, 27 March 2012 (UTC)

Wordpress Question![edit]

Hi, I downloaded my blog from Wordpress.org in my uncle´s computer, and i want to know if i can update my blog from any computer or does it have to be my uncle´s?

You'll need to install wordpress onto a server. Once that's done you should be able to log into it from anywhere. APL (talk) 20:20, 26 March 2012 (UTC)