Jump to content

Wikipedia:Reference desk/Archives/Computing/2010 July 26

From Wikipedia, the free encyclopedia
Computing desk
< July 25 << Jun | July | Aug >> July 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.


July 26[edit]

Rackmount Voltage Transformer[edit]

   I am seeking a voltage transformer with the following characteristics. Does anyone know of a suitable product?

  1. Converts voltage from 110V-120V to 220V-240V and vice versa.
    The option of stepping-up or stepping-down should ideally be selectable via a switch, lever or button, and the output-voltage should be selectable by using a knob.
  2. Is rackmountable, and preferably consumes no more than six units of rackspace.

   Thank you to everyone in advance.

It is more common to buy individual power supplies for each rack-mountable system that can accept either 110 or 220 V. Some require flipping a switch, while others automatically detect and compensate. Alternately, you could buy a rack-mount UPS. See, for example, this KIN-1000APRM that can accept either 110 or 220 input and can output either. Nimur (talk) 04:31, 26 July 2010 (UTC)[reply]
I currently live in Singapore (which is a high-line country), and I have three machines/appliances in my rack with their own individual 230V Power Supply Units, as well as one Uninterruptible Power System. My specific intent is to be able to continue using my rack equipment without replacing the individual PSUs or the UPS when moving to a low-line country such as the United States or Canada. —Preceding unsigned comment added by Rocketshiporion (talkcontribs) 04:43, 26 July 2010 (UTC)[reply]
Check the nameplates on your other equipment; a LOT of gear from the past 10 years or so is compatible with either 240 or 120 (if you are talking about computer gear the odds are VERY good). --144.191.148.3 (talk) 14:49, 27 July 2010 (UTC)[reply]

0db level[edit]

http://i26.tinypic.com/vp956a.jpg where is the volume knob position for the 0db level here? on my knob its not marked what db levels it represents so its not quite obvious to me how much to turn it up to get to the 0db level thanks —Preceding unsigned comment added by 85.26.241.251 (talk) 10:07, 26 July 2010 (UTC)[reply]

I can't say exactly but it should be just below +4dB (anticlockwise), however volume controls (which are usually rotary potentiometers - at least this one almost certainly is) - can be either:
It's more likely to be a log pot for an audio thing. I would guess somewhere between 3 and 4 O'clock.
If you have the instructions for the device it might give more clues in the tech specs.
Often 0dB is the maximum (unattenuated) volume - as an analogy +4dB is volume 11 , when volume 10 = 0dB . 87.102.43.171 (talk) 21:54, 26 July 2010 (UTC)[reply]

turn off wireless[edit]

If I got a laptop with wireless inside it, can I completely disable all wireless signals from it without physically opening the machine up and removing the wireless component? Does simply "disable hardware" in control panel shut it off (I mean absolutely fully shut off, as in cut all power to the wireless component, not just saying it's off but it still might transmitting random signals) 82.43.90.93 (talk) 10:58, 26 July 2010 (UTC)[reply]

Many laptops have a manual switch that turns off all wireless communication. If yours has, then this is the simple way, but if not then "disable hardware" should work (though I haven't tested this). Dbfirs 12:22, 26 July 2010 (UTC)[reply]
I'm sorry if I wasn't clear in the question, I know there are switches to turn it off, but does it actually really turn it off? Because every laptop I've seen will still report the status of the wireless component when disabled, it's version numbers, manufacturer name etc so there must be communication between the computer and the wireless component, thus the wireless component must still be receiving power, so might still be emitting signals even if they're gibberish and not accessible by other computers. 82.43.90.93 (talk) 12:58, 26 July 2010 (UTC)[reply]
Such a manual "kill-switch" could shut power off to the radio, or to the entire wireless controller peripheral unit (including the radio and its controller). It's more likely that it shuts off power to the RF circuit, rather than the entire peripheral, so your computer can still talk to the wireless card (though it will not be possible to send data, or even to override the analog kill-switch and turn the RF circuit back on, in most cases). So, a laptop with one of these "external" switches is probably safer if you need to guarantee the radio is actually, physically off (and not just in in a "no-data" software mode). Even if that is the case, your laptop may be transmitting RF power at other bands, in the form of EMI noise - so if you really want to be technical, you need to specify an acceptable power-level at all frequencies below which you consider the device to be "silent". If you were to plot the spectrum of a laptop's emissions, you would typically see some noise at around 60Hz from its power supply unit; some noise at around 20 to 100 MHz from its display; more noise around 300 - 1000 MHz from its digital interconnects, disk drive, memory bus; noise at the memory- and CPU- speed, and a big burst of power (probably much more power than any of the previous noise) at the 2.4GHz band (or other bands) if you are using wireless radios like 802.11, BlueTooth, or a wireless mobile broadband system. Most of those components are not intentionally transmitting RF power; and for the most part, the signal levels are very low; but if you need to guarantee that your laptop is not transmitting anything, be sure to consider non-WiFi interference. Nimur (talk) 16:31, 26 July 2010 (UTC)[reply]

'any' and 'in' keywords in sql[edit]

what's the difference? t.i.a. --217.194.34.103 (talk) 13:50, 26 July 2010 (UTC)[reply]

This explains it. --Sean 14:08, 26 July 2010 (UTC)[reply]
According to this in practical terms they differ primarily in how they work with negation (e.g. NOT IN vs. <>ANY return different results). --Mr.98 (talk) 14:09, 26 July 2010 (UTC)[reply]

Exporting Java Project so it can run without eclipse[edit]

I've tried exporting it as a runnable jar file, and it runs fine except for one thing. I have some images in the src folder that, when the project is run in eclipse, appear on screen correctly, but when it's from the jar, they don't display at all. Am i supposed to export as a jar, and if not, what do i export it as? KyuubiSeal (talk) 20:02, 26 July 2010 (UTC)[reply]

Try putting the resources outside of the JAR. Unfortunately, this is a widely-known problem with few desireable workarounds. In general, it is not possible to deploy your resources inside the JAR unless you use some programmatic trickery. The Java ClassLoader that the JAR execution environment uses is not able to load anything except Java classes from the JAR it is in. There are ways to overcome this: IBM Java's OneJAR is (in my opinion, a hack-y) workaround that actually replaces the Java Classloader with a more sophisticated one that can parse JAR files for resources. Or, you can use an "install script" to unpack the JAR resources to regular files (or perform this action manually). If you are worried about tearing out your JVM's classloader and using the OneJAR classloader, (this can do some very strange things to your Java program...), then your alternative is to deploy your application as a JAR file for the program, and unpack a separate resource directory (or JAR file) for the resources. Here is a good tutorial: How to extract Java resources from JAR and zip archives, from JavaWorld. Nimur (talk) 20:24, 26 July 2010 (UTC)[reply]

Ok, i tried making a second jar in the same directory as the first, but it didn't work. If i put it in just a normal folder, it seems to work fine though. Can i just leave it as a normal folder then? KyuubiSeal (talk) 21:02, 26 July 2010 (UTC)[reply]

Yes you may, unless you want to go to great lengths to prevent users from accessing or changing your resources. There's nothing fundamentally wrong with deploying your Java program with a resources folder in this way - in fact, it makes it easier to modify, if your users want to modify icons and images. Many commercial softwares try to make such modification difficult or impossible, by managing the resource directory in a more complicated way. If you want to stuff those resources (images, audio, and so on) inside a JAR (or encrypted JAR), you would need to modify your code. Every place you are using a java.io.File (including implicitly, when you use many of the default Swing or AWT functions to load an image), you would need to replace that with a more generic "Resource Loading" function that chooses to load either as files out of a folder-tree, or as Resources out of a JAR or other resource deployment scheme. If your code is not already managed this way, such a modification might get ugly; the IBM loader I linked above "streamlines" the code modification process, but it is not seamless and can require a lot of effort to handle corner-cases. Nimur (talk) 21:14, 26 July 2010 (UTC)[reply]

Oh good, since the images i'm using are just placeholders till i find something not that pixel-y, it's convenient i can modify them easily. Thanks for the help! KyuubiSeal (talk) 21:20, 26 July 2010 (UTC)[reply]

Perhaps I don't understand the problem you and Nimur are discussing, but surely one can load resources using java.lang.Class.getResourceAsStream()? The following works fine for me (loading foo.jpg which is stored inside the JAR).
Loader.java
example of how to load resources from JAR, example of how not to write nice AWT programs
package fin;

import java.awt.*;
import javax.imageio.*;
import java.io.*;

public class Loader extends Frame {
    static Image image;
    
    public static final void main(String [] args){
	InputStream s = Loader.class.getResourceAsStream("foo.jpg");

	try {
	    Loader.image = ImageIO.read(s); 
	    Loader me = new Loader();
	    me.setBounds(100,100,600,600);
	    me.show();
	}
	catch (IOException e) {
	    System.out.println(e);
	} 
    }

    public void paint(Graphics g){
	g.drawImage(Loader.image,0,0,null);
    }

    public void update(Graphics g){
	paint(g);
    }
}
or am I missing the point entirely? -- Finlay McWalterTalk 21:34, 26 July 2010 (UTC)[reply]
Yes exactly - that is the correct way to obtain the resource out of a JAR. But if the original code did not use that method, (i.e. if it loaded File objects), then the OP needs to go in and manually modify every single resource load. Finlay's code will work whether the resources are in a directory tree inside- or outside- the JAR (as long as it is on the class-loader's path). But if the designer want to package a resource-JAR inside of an executable JAR, they need a more sophisticated ClassLoader that understands how to handle that, like the IBM solution. (I didn't explain that point very well before - most applications will not need that alternate class-loader approach). Nimur (talk) 22:59, 26 July 2010 (UTC)[reply]
If the designer wants to put JARs inside JARs (and bashing them over the head with something doesn't dissuade them) we can get the resource by calling getResourceAsStream() for that inner JAR, using that to construct a ZipInputStream, searching for the desired entry within that, and then loading from there. So the main() of above becomes:
JARs within JARs
this is like Inception, only less predicable
    public static final void main(String [] args){
	InputStream s = Loader.class.getResourceAsStream("resources.jar");
	ZipInputStream zip = new ZipInputStream(s);

	try {
	    do{
		ZipEntry z_entry = zip.getNextEntry();
		if (z_entry==null) break; // resource not found

		if (z_entry.getName().equals("stuff/foo.jpg")){
		    Loader.image = ImageIO.read(zip);
		    Loader me = new Loader();
		    me.setBounds(100,100,600,600);
		    me.show();
		    break; // we found what we came for
		}
    	    } while (true);
	}
	catch (IOException e) {
	    System.out.println(e);
	} 
    }
This sucks a bit, as we mostly need to transit the list for resource each load (unless we're clever). -- Finlay McWalterTalk 00:16, 27 July 2010 (UTC)[reply]
I agree - in a perfect world, you would never need to put a JAR inside another JAR. Strictly from the technical viewpoint, you can unpack the JAR and place its contents in the root of the top-level JAR container. However, there is at least one use-case I can think of: when licensing of a third-party library forbids un-JAR'ing or repackaging its contents. Your options are to deploy it as a separate file or not to use it. But this doesn't preclude storing the unmodified JAR inside your own JAR - giving the seamless appearance of a single file to the end-user, without violating any license about unpacking or modifying the third-party code. Finlay's second example-code is essentially performing 95% of the functionality of the OneJAR library (using much less code of course) for loading resources. However, I think there can be trouble with his approach if trying to execute code loaded from any Java Classes that were loaded by his internal me loader. (There are now two ClassLoader environments - one at the top level of the JVM, and one as an instantiated object). This is why the OneJAR tool is sort of messy and clunky (and much longer than Finlay's sample code). If only loading images and resources, and NOT classes, this is a non-issue. Nimur (talk) 20:05, 27 July 2010 (UTC)[reply]