Wikipedia:Reference desk/Archives/Computing/2006 September 26

Finding public IP address for a remote server?
I am looking for the public IP address for our businesses server. I was just wondering how I would find it, because all I can see is the Private server address.
 * You don't have access to the server itself, do you? Without that, I'm not sure it's possible. If a computer you have access to uses the same proxy/NAT/etc. to the outside world, you could use a site like this. -- Consumed Crustacean (talk) 00:14, 26 September 2006 (UTC)
 * If it's an internal network, you won't have external access unless something special is set up like VPN. If you just want to know the IP of the website, just ping it to get that information from the DNS servers --⁪froth T C  17:13, 26 September 2006 (UTC)

Computer Error.
I'm Wanting to know what can be done when a computer won't play .avi files. It used to, and I was abel to play those files on several players but now when I try to open one (regardles of what player I use) it says there is an err in a MSVFW.32.dll file.


 * msvfw32.dll is the module that contains bitmap compression and decompression routines used for Microsoft Video for Windows. You can download the DLL from various websites (just do a Google search) and place it in the WINDOWS\SYSTEM32 folder. --Canley 01:15, 26 September 2006 (UTC)


 * Also keep in mind that AVIs can be encoded in any one of many codecs, and that msvfw32 may not be the only thing you need. See FourCC and Video codec --⁪froth T C  17:12, 26 September 2006 (UTC)

Oz programming language
Oz language supports many programming paradigms even then what is the reason of low popularity of Oz/Mozart ? Where can I get a good tutorial on it as most of the material on the homepage is not meant for beginner I guess.

Virusscanner BitDefender hangs on Linux installations
I'm trying to remove viruses with the Linux version of BitDefender, but it hangs on every scan of a Linux installation (I have collected several over the years), mostly on different files, such as /etc/bunzip2, /bin/bzip2recover and /bin/readlink. On /bin/readlink it only seems to hang if a previous try hung elsewhere. Or rather I should say it hangs after those files, bedause it gives an 'ok' and then hangs. But the first and weirdest one was /dev/core. Because /bin/readlink took half a minute if it didn't hang, I assumed I might have to wait a bit. After 50 minutes I gave up. I didn't use the disinfect option, so it was just scanning, so I can't imagine what it was doing. The weird thing was that after this, the filesize, which is normally 1024 MB, was increased to 262144.0 GB (!!). Which is a little bit bigger than the partition. :) On another installation the same happened, with exactly that same filesize. This didn't change after unmounting and then remounting, only after a computer restart. This is also the reason I said it hangs on that file and not the next one, but it is all so weird I don't really know how to properly formulate this question. Help! DirkvdM 13:07, 26 September 2006 (UTC)

Link Request
Hello, my name is Malton Schexneider.

I am seeking out link partners that I believe visitors to my website would find interesting and informative.

I recently visited your website and thought it would be a very nice fit for my visitors. I have already instructed my web master to add your link to my website at http://www.livinglongerlookingbetter.com/links.

I am contacting you to see if it is OK to have done so. In addition, I would like to ask if you would please link back to us. If so, please use the linking details below and send me the location of our link on your website.

Our Linking Details: •	Key Word:    Rotaotr cuff, low back pain, ACL, ankle sprain, tennis elbow, neck pain •	Description:   Strategies and tools in treating various musculoskeletal injuries •	URL:    http://www.ospt.net

I hope this can be a way for us to benefit our visitors with excellent content. I look forward to hearing from you soon. Should you have questions, please contact me. Thank you.

Malton A. Schexneider, PT, MMSc (email removed)


 * Wikipedia is not a link repository. It is an encyclopedia.  --LarryMac 15:25, 26 September 2006 (UTC)
 * But he is asking if he can link to us. Which is a yes. — X [ Mac Davis ] ( SUPERDESK | Help me improve  )15:45, 26 September 2006 (UTC)
 * He is also asking us to link back to him. Which is a no.  --LarryMac 15:59, 26 September 2006 (UTC)
 * If he achieves internet notability we'd link to him --⁪froth T C  17:17, 26 September 2006 (UTC)

c++ pass object as function parameter
Say I have a class called matrix. One of it's member variables is called cells and it's a 100x100 two-dimensional array.

Say also that I have a function (not a member function) that does some operation (say addition) on two objects of type "matrix". It would be called like

addUp(matrix1, matrix2);

Now when I do that, does it pass the entire object (including the massive array) by value into addUp, or just it just pass the address of the object or something? How are objects usually passed to a function, by reference?

Thanks --⁪froth T C  17:09, 26 September 2006 (UTC)


 * I think the default is by reference (pointer) but it can be changed. You can read more on it in Wikibooks:C++ Programming/Functions#Arguments. 龙★Ukdragon37★翔talk 17:33, 26 September 2006 (UTC)


 * The default in C/C++ is to pass by value, except for arrays. When passing an array, its name is implicitly converted into a pointer to the first element of the array and that is passed by value.  The end result is that arrays "themselves" can be treated as if passed by reference.  Other objects, including class instances (even of things that look like and/or contain arrays, like your  ), will be passed by value.  However, depending on how   is defined, that may mean different things for the actual data in the array.  If you merely have , that array is part of the object and is copied.  (That case is of course silly, but there could be other members of   too without changing the effect.)  But if you instead have

struct matrix { int rows,cols; double *array;     // allocated with new[] };
 * only those things in the struct get copied, and that includes the pointer  but not whatever it points to (if anything).  If the class chooses, it can define its own rules:

class matrix { public: matrix(int r,int c) : rows(r),cols(c),array(new double[r*c]) {} matrix(const matrix &o) : rows(o.r),cols(o.c),array(new double[o.r*o.c]) { for(int i=0;i<r*c;++i) array[i]=o.array[i]; } ~matrix {delete[] array;}

int getRows {return rows;} int getColumns {return cols;}

double& index(int i,int j) {return array[i*c+j];}

private: int rows,cols; double *array; };
 * In this case (about which I make no claims of completeness, correctness, or robustness), an object, when made as a copy of another, allocates a new array and fills it with the contents of the original (in the copy constructor). Of course, at this point, anything is possible: copy on write, reference counting, garbage collection, etc.  So for your own classes, you'll have to make the determination as to what happens.  It's easy, however, to pass things by reference instead: look at the copy constructor I provided.  The   prevents (so long as everyone is playing nice) the function from modifying its parameter, so you get the encapsulation benefits of call-by-value without the memory overhead.  (I should note that   and   are exactly the same thing, except that in a , declarations before any access specifier are public instead of private.) Does this help? --Tardis 19:47, 26 September 2006 (UTC)


 * So if I call it like addUp(matrix1.array, matrix2.array), assuming of course that array is the only thing that addUp needs, it would simply pass the address instead of copying the data? Unfortunately I also need some other member variables in the objects (the actual class I'm designing has nothing to do with matricies, though it does feature some large variables). I know that I could use something like addUp(matrix1, matrix2) and have the function addUp prototyped as addUp(int &matrix1, int &matrix2) but that makes me uneasy because then matrix1 and matrix2 can be modified from that function. I'm very unfamiliar with C-style pointers and the dereference operator- could these be used to somehow take the address of the objects through the function parameters and then make an undefined local const variable that exists over the same memory space as the object, so that accessing that const would access the object (but it would be unchangable)? If there's no easy one-line solution to this, I'll just *gulp* pass by value but I'd appreciate any advice you can give me. Oh and you said your code copies the matrix if the object is copied.. doesn't it do that anyway? --⁪froth T C  20:18, 26 September 2006 (UTC)


 * If you pass by value, the value gets passed, even if it's an object. (Arrays are pointers, so the pointer is passed, not the values in the array. Objects, on the other hand, are objects.) Passing big objects by value is inefficient if you don't need to change the value. This is why when using &, often "const" is specified, which tells to the user of the function that you won't modify the object (the compiler will stop you from trying to modify it within your function, but you can be evil and get around this with casting). So... yes, what you want to do is possible; your function should be called something like addUp(const Matrix& m1, const Matrix& m2). See this site for a good explanation of how to use const in C++. - Rainwarrior 20:27, 26 September 2006 (UTC)

RUR and par
I can join rur files. How do I use par?


 * Do you mean RAR files? --Canley 06:33, 27 September 2006 (UTC)
 * Yes. I can  decode rar files.   But how do I use the par files that follow?  Thanks
 * Oh, OK, see the article Parchive. There are some links to software which can create/read PAR files. --Canley 04:06, 29 September 2006 (UTC)

PF Usage
What is PF Usage? Mine is 1.41 GB. Is that high? --24.107.18.155 20:19, 26 September 2006 (UTC)
 * Ops. I forgot to log in. --Yanwen 20:23, 26 September 2006 (UTC)


 * Heck yes it's high. See Virtual_memory --⁪froth T C  20:24, 26 September 2006 (UTC)
 * Ok, All of my web browsers just suddenly closed and the PF Usage went down to 325 MB. --24.107.18.155 21:21, 26 September 2006 (UTC)
 * Not logged in again?! --Yanwen 21:22, 26 September 2006 (UTC)


 * Page file usage, a temporary file used by the OS for virtual memory. See Paging and, as mentioned above, Virtual memory for what it is. —Mitaphane talk 23:45, 26 September 2006 (UTC)