Wikipedia:Reference desk/Archives/Computing/2012 November 28
Computing desk | ||
---|---|---|
< November 27 | << Oct | November | Dec >> | November 29 > |
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. |
November 28
[edit]c puzzle
[edit]Hi ! see the below two programmes.
Programme1:
#include<stdio.h>
#include<conio.h>
void main()
{
int x=20;
float f=20.123;
clrscr();
printf("%f",x);
getch();
}
out put:
0.000000
Programme2:
#include<stdio.h>
#include<conio.h>
void main()
{
int x=20;
clrscr();
printf("%f",x);
getch();
}
out put:
printf:floating format point not linked abnormal programme termination.
My doubts: 1)the printf statement in both the programmes is same.But out put is different.why it happens? 2)is there any effect of the statement "float f=20.123" on the output. please clear my doubt. — Preceding unsigned comment added by Phanihup (talk • contribs) 00:31, 28 November 2012 (UTC)
- Looks like a bad linker, to me, which correctly sees the "float" command as requiring that it link to the floating point module, but fails to see that the "%f" format also requires inclusion of the floating point module in the link list. (It is a bit odd to try to print an integer with a floating point format.) StuRat (talk) 00:39, 28 November 2012 (UTC)
- %f in the printf format string says the corresponding argument is of type double, that is a Double-precision floating-point format number. In the first case you're passing it a float, but in the second you're passing an int. The two aren't compatible, so you get an error. A good compiler can detect this kind of thing: for example, gcc says "warning: format ‘%f’ expects argument of type ‘double’, but argument 2 has type ‘int’" and clang says "warning: conversion specifies type 'double' but the argument has type 'int'" -- Finlay McWalterჷTalk 00:41, 28 November 2012 (UTC)
- He's actually trying to print an integer as floating point, in both cases. In the first case, this produces an incorrect value, and in the second case, an error. StuRat (talk) 00:43, 28 November 2012 (UTC)
- Quite right. It looks like this compiler (Phanihup: what compiler is it? Turbo C??) will omit the float part of the C library when it doesn't see a use of floating point in the source (and it's not smart enough to parse the format string). -- Finlay McWalterჷTalk 00:53, 28 November 2012 (UTC)
- The C99 standard [1] says in 7.19.6.1.9 (PDF page 292): "If any argument is not the correct type for the corresponding conversion specification, the behavior is undefined." Anything is consistent with "the behavior is undefined" so it's allowed to print some number in one case and an error message in another (although it's not the most helpful for debugging). By the way, the string "the behavior is undefined" occurs around 150 times in the standard. PrimeHunter (talk) 02:48, 28 November 2012 (UTC)
- Even if "undefined", one would expect it to behave consistently. StuRat (talk) 03:13, 28 November 2012 (UTC)
- Undefined is undefined. And actually removing the floating point library can be quite useful if one wants to produce a system routine where there is no floating point context. But yes the compiler should check printf formats as this is a very common type of error. Dmcq (talk) 15:29, 28 November 2012 (UTC)
- Even if "undefined", one would expect it to behave consistently. StuRat (talk) 03:13, 28 November 2012 (UTC)
- Couple points:
- The OP is evidently using a very old compiler. But the answer to the "floating point formats not linked" questin is straightforward: see the comp.lang.c FAQ list, question 14.13.
- Passing a
float
value to the%f
format inprintf
is actually not a mismatch. See the FAQ list again, question 12.9.
- —Steve Summit (talk) 03:20, 30 November 2012 (UTC)
- Yes, passing a
float
value to the%f
format is not a mismatch, as float is converted todouble
. However, Phanihup passes anint
argument, notfloat
. --CiaPan (talk) 05:54, 30 November 2012 (UTC)
- Yes, passing a
- The answers are:
- The
float
variable declaration tells the compiler a floating-point library is necessary, so it generates apropriate references. Then the linker attaches the library to your programme. That allows theprintf()
function to interpret%f
format correctly, and that's why the first programme tries to print out some results, and the latter prints the error message. - There's a big difference between how integer values and floating-point values are stored in memory – see Integer (computer science), Double-precision floating-point format.
When you pass anint
value toprintf()
the compiler does not check ifint
type fits%f
requirements. Alsoprintf
, when scanning its printing format string, can't check wether you passeddouble
or not. So it interprets appropriate place in memory, where it expects thedouble
value to be printed out, and interprets yourint
value with Double-precision floating-point format. The result is zero, so the output0.0000
.
- The
- CiaPan (talk) 06:11, 30 November 2012 (UTC)
math word problem
[edit]I've raked 2/3rd's of a yard full of leaves. If I rake 5200 more I'll be 8/9th's done. How many leaves were in the yard ? — Preceding unsigned comment added by 68.37.64.194 (talk) 02:33, 28 November 2012 (UTC)
- Here goes.
- 8 ninths minus two thirds=5200
- 8 ninths minus two thirds=two ninths
- 5200/2*9=23400
- 23400 leaves. Buggie111 (talk) 02:41, 28 November 2012 (UTC)
- Looks good to me, although I'd encourage you to use a variable, such as X, to represent the total number of leaves:
2x 8x ---- + 5200 = ---- 3 9
- Also, once you've determined that X = 23400, you can plug it back in as a check:
2(23400) 8(23400) -------- + 5200 = -------- 3 9
20800 = 20800
- Both sides match, so it checks out. Always check your work. BTW, the Math Desk is the best place for Q's like this. StuRat (talk) 03:21, 28 November 2012 (UTC)
Browser fingerprint
[edit]Besides private mode, disabling javascript and using a common browser, what else can you do to browser privately? PS: I don't want to use something like Tor. Comploose (talk) 15:15, 28 November 2012 (UTC)
- Disable cookies (you can enable only the ones you truly care to have on most browsers) [private mode probably takes care of this], disable Flash (or at least Flash cookies) [no idea if private mode covers this], and avoid looking special according to any criteria at http://panopticlick.eff.org/. You could use a VPN as a proxy. ¦ Reisio (talk) 15:41, 28 November 2012 (UTC)
- Yes, private mode + no javascript cover these points. According to panopticlick what makes me "special" is the user agent and HTTP_ACCEPT Headers. I know that I can change the first at least in Chrome, Firefox and IExplorer. But, I suppose that the most useful way of being private is to provide fake information in all topics that are being collected. Is that possible? This information has to be saved somewhere in the browser. Comploose (talk) 15:55, 28 November 2012 (UTC)
- Fake isn't the goal - generic is. If you fake a combination of things that no one else is running, then you still have a unique identifier. It looks like the paper linked on the panopticlick site gives some common data at the end. Installing a browser version listed on the site and not changing many settings (other than private mode + no javascript) is probably a good start. 209.131.76.183 (talk) 16:02, 28 November 2012 (UTC)
- Also, a plugin that switches between common user agents over time could be interesting. I wouldn't be surprised if something like that exists. 209.131.76.183 (talk) 16:03, 28 November 2012 (UTC)
- Yes, I mean fake constantly, changing the parameters (fonts, cookies acceptance, HTTP_ACCEPT Headers, and so on) that I am supposed to have. That generates chaos. Otherwise, your browser would be the browser that discloses almost no information on the IP range 101.34.yy.xx. Disclosing less than others also makes you unique. Comploose (talk) 16:10, 28 November 2012 (UTC)
- Alternate the use of several browsers, even the exotic ones, do just log-in and log-off before navigating to other pages (which is like telling you are there). And don't get paranoid about it, unless you have a reason for it. OsmanRF34 (talk) 19:25, 28 November 2012 (UTC)
- The safest method I can think of is to use an O/S and browser that boots from a DVD, on a PC with no hard drive. Thus, it would have nowhere to store anything, no matter how hard it tried. Of course, the lack of cookies and such would also make browsing annoying, in that it wouldn't remember any logon IDs, preferences, etc. An advantage is that you would also be virtually virus-proof, and therefore wouldn't need a virus-scanner slowing down everything you do. StuRat (talk) 08:32, 29 November 2012 (UTC)
- That's right regarding safety, but the question was about privacy online. In your scenario, I am afraid that you would "too unique", in the sense that not many others would have exactly the same configuration as you. In both cases, privacy and security, there's no need to get paranoid, the basics (safe passwords, no downloading and running any kind of stuff, updating your system) should be more than enough for most kind of users. OsmanRF34 (talk) 12:09, 29 November 2012 (UTC)
Unexpected JDWP error: 21
[edit]Figured the problem out on my own, it was something unrelated to this one. |
---|
The following discussion has been closed. Please do not modify it. |
I am trying to create a MIDlet in NetBeans 7.2. For some reason this line Here's the XYcoord class, which is defined on an another file in the same package:
|
Regulations on feature set in software comparison articles
[edit]Comparison of BitTorrent clients (edit | talk | history | protect | delete | links | watch | logs | views)
There's an edit warring in the referenced article about whether to include a certain feature into the comparison. I advised them to seek consensus but am unsure of how to seek it in this case. The feature is of course covered in RS'es. And there doesn't appear to be any policies, guidelines or even prior discussions on picking a feature set for comparison. Are there any? — Vano 19:43, 28 November 2012 (UTC)
- The relevant policy is WP:NPOV, but mostly, try to use good judgement and don't go along with people arguing against common sense. You can ask for outside comment at WP:Requests for comment. The reference desk is not actually appropriate for this type of question, which is one of WP:Dispute resolution. 67.119.3.105 (talk) 21:29, 28 November 2012 (UTC)
- I thought it's appropriate to survey on existing practices which is what I did. You gave the answer on this, thanks. — Vano 22:01, 28 November 2012 (UTC)
What's the easiest way to create a local server with proxypass on Windows?
[edit]I have a folder containing html content, and I'd like to serve it from http://somelocalhost. I also want to set up a ProxyPass so that I can define that somelocalhost/xyz could be pointed somewhere else.
On OS X I've always used Apache, but on Windows I'm having a lot of trouble setting it up. Is there something that's even easier that would work out-of-the-box on Windows? Or should I keep plugging away at making Apache work?
Thanks! — Mike 166.186.169.41 (talk) 21:44, 28 November 2012 (UTC)