Wikipedia:Reference desk/Archives/Computing/2014 August 26

From Wikipedia, the free encyclopedia
Computing desk
< August 25 << Jul | August | Sep >> August 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.


August 26[edit]

Corrupted volume[edit]

People may argue that I shouldn't use TrueCrypt because it's not supported anymore. I'm already looking for alternatives. This is not the point now. Today, TrueCrypt crashed when one USB flash drive was still mounted. Now the drive seemed to be corrupted. This drive was fully encrypted, so you can't get the files without the correct password. However, the password still works. Mounting and dismounting is still possible. It's just when I want to access the already mounted drive, I am asked to format it, meaning that all data would be lost. I canceled the process and received another error message which says that the path is invalid and that I should check if the drive was damaged. I looked for similar issues on the Internet, but all reports I have found dealt with the problem of TrueCrypt not being able to recognize the password anymore, which is not the same case as mine. I start doubting that this doesn't have to do with TrueCrypt at all. So if you are not familiar with this program, can you give me some general advice on how to recover corrupted USB flash drive and retrieve the data? --2.245.244.103 (talk) 00:15, 26 August 2014 (UTC)[reply]

If TrueCrypt allows you to mount the volume with your password then it's not a TrueCrypt problem any more, if it ever was. You should mount the volume, ignore the suggestion to format it, and recover data from it as though it was unencrypted. PhotoRec is a popular tool for this. You could also try running chkdsk on it, though that might fail immediately if Windows can't even recognize the file system (which seems to be the case, since it's asking you to format it).
Incidentally, unless it's actually responsible for corrupting this volume, I think there's no reason to stop using TrueCrypt. Version 7.1a isn't going to stop working, and I think it has a large enough user base to survive in the long term. The auditing project is still active as well. -- BenRG (talk) 04:47, 26 August 2014 (UTC)[reply]
You were right. Chkdsk didn't work, it said that the filesystem is RAW. I'm using PhotoRec now, but I don't know if I'm supposed to let the program search on the USB flash drive itself or on the mounted volume. --2.246.3.119 (talk) 18:32, 26 August 2014 (UTC)[reply]

Really Basic C++ Question[edit]

I feel really stupid asking this, but, I have the following:

Code
#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	char *x = new char[10];

	ifstream infile("a.dat", ios::in | ios::binary);
	infile.read(x, 10);

	for (int i = 0; i < 10; i++)
	{
		cout << x[i];
	}

	getchar();
	return 0;
}

I just wanted to make sure I could read bytes out of a file correctly before doing anything more involved. However, no matter what ten bytes I stick in the file, the console spits out ten "=". I'm sure I'm missing something really really obvious, any help would be appreciated. I haven't done anything in C/C++ for a very long time and never had much experience with it. Thank you for any help:-)Phoenixia1177 (talk) 02:13, 26 August 2014 (UTC)[reply]

You aren't checking for errors! What if the infile constructor failed to open a file? What if read(char*, streamsize) failed? What should your program do? In fact, you're probably hitting exactly such an error (probably because your executable can't resolve the path to "a.dat", or perhaps there is a file permissions problem). So, your print routine is just spewing uninitialized junk data that's in the array - which is basically whatever junk happened to be on the heap at run time. Your operating system is apparently just sane enough to fill that location with 0x3D ('='), at least for now; and your program is happy to print it!
You should check for error codes; for example, you can check ios::rdstate is one such scheme. The C++ purist might actually prefer to use structured exception handling (i.e., a try/catch block) instead of calling functions and checking state. In fact, this is one of the general commentaries from The C++ Programming Language: the C++ programmer should strive to use such higher-level C++ design paradigms, rather than to try to cram the C++ standard library into C programming patterns. (This dictum, incidentally, is exactly why C purists find C++ so offensive).
Nimur (talk) 02:59, 26 August 2014 (UTC)[reply]
Yep, I'm actually really ashamed at the moment - I left off any error checking because I figured it was basic and just wanted to make sure I had the idea correct and could add checking in when I was writing actual code for something. Of course, I saved a text file as a.dat, so it was a.dat.txt and, hence, error. I'll never go the quick route again, even if trying to just check a concept - thank you, I feel like an ass.Phoenixia1177 (talk) 03:09, 26 August 2014 (UTC)[reply]
While we're at it: never forget that new in C++ will not clear the memory it allocates. If you want to zero it out, (or initialize it to any particular value), you need to do so explicitly: either implement such behavior in an custom class constructor, or call an appropriate function to clear the data. This is especially important, because your example usage treats the data as a zero-terminated character string. (Real C++ purists would chomp on you for using char* instead of std::string!) These are the sort of "gotchas" of compiled program code in low level languages like C++ and C... this sort of bug commonly bites programmers who are used to working in more managed environments (like Ruby or Java).
Tonight, you got 0x3D. Tomorrow, you might get some other junk. When you send your code out for testing at the end of the week, you might get all zeros, and the behavior may look normal to your technician team, who sign off on it as a pass.... and two weeks from now, your code has what we call a heisenbug. Stop the antipattern in its tracks: initialize your data before using it! Nimur (talk) 03:16, 26 August 2014 (UTC)[reply]
new will zero-initialize primitive types if you put () at the end (new char[10]() for example). But in general you shouldn't use new at all. Even if you want a C array, it would be better to write char x[10]; (uninitialized) or char x[10] = {0}; (zero-initialized). -- BenRG (talk) 04:57, 26 August 2014 (UTC)[reply]
C++11 introduced terrifying new uniform initializer syntax, allowing you to simplify your array example even further. Leaving out parentheses is legal and compilable; adding parentheses changes program behavior; adding curly braces changes behavior again; mixing both changes behavior yet again! Declare a template, or a class, or a function, elsewhere in your code, and the behavior of this exact same, still-syntactically-valid line changes again in an entirely different way. Yosef Kreinin comments on this terrifying syntax in his humorous but very well-informed C++ Frequently Questioned Answers, on Constructors.
BenRG suggests "in general you shouldn't use new at all;" of course there are some exceptions where you really should. Along the same line of reasoning, allow me to suggest: in general you shouldn't use C++ at all; of course, there are a very few exceptions where you really must. Nimur (talk) 06:03, 26 August 2014 (UTC)[reply]
Thank you both for your help (in both threads), I was working from an example that used "new" (in that case they had a file of undetermined length, I just picked 10 just to remove an element and make sure I could make it work); why shouldn't you use "new", or what should you do instead in the more general case?Phoenixia1177 (talk) 14:12, 26 August 2014 (UTC)[reply]
You shouldn't use new because anything allocated with new has to be freed with delete, and it's easy to get that wrong in more complicated code. If you forget to call delete, call it too early, or call it more than once, your code will fail in a hard-to-debug way (see C dynamic memory allocation#Common errors). In contrast, declarations like int x;, int x[10];, or std::vector<int> x(10); automatically free all of their storage when the identifier x goes out of scope (see automatic variable). For arrays whose size is determined at run time, std::vector<int> x(size); is the way to go. If you need an array to survive beyond the scope of its creation (which is surprisingly rare), you can use std::make_shared.
Nimur's most recent post doesn't have anything to do with your question; he's just ranting because he doesn't like C++. I have some complaints about C++, but they're mostly about things inherited from C (like the above memory allocation problem) that C++ makes better (by introducing std::vector, for example).
One thing from his post that might be worth explaining is that expressions can be parsed totally differently depending on whether an identifier denotes a type or not. This is also true in C, where, for example, x * y; is a variable declaration if x is a type and a multiplication otherwise. Java inherits some of the ambiguous syntax, but its parser just guesses instead of checking the symbol table, as a result of which a few expressions like (Integer) -1 and (Integer) ++x will fail to compile. In C++ it gets very complicated because of nested scopes (the :: operator), but you can mostly ignore that unless you're writing a C++ compiler. -- BenRG (talk) 18:02, 26 August 2014 (UTC)[reply]

Are the IPs under dial-up.telesp.net.br really dial-up?[edit]

The reason I ask is because I'm seeding an Ubuntu distro on Bit Torrent, there's this IP under the domain of dial-up.telesp.net.br downloading faster than some of the broadband IPs, and I was wondering if that's really a dial-up user or if Telesp just hasn't gone to the bother of updating the rDNS for the said IP. 71.3.50.110 (talk) 02:14, 26 August 2014 (UTC)[reply]

Windows 8: In IE, tasks not listed at bottom[edit]

Sometimes, when I am using a laptop running Windows 8, I have an IE session that doesn't display a list of tasks at the bottom of the page and doesn't have the close and minimize buttons in the top right. The real annoyance is not having the task bar at the bottom. To switch tasks, I have to do Ctrl-Alt-Delete and bring up the Task Manager. Is there a less tedious way to bring up the tasks and switch out of a task? (It is true right now in Wikipedia, by the way.) Robert McClenon (talk) 03:02, 26 August 2014 (UTC)[reply]

Are you referring to desktop IE or Windows IE? Anyway in either event you should still be able to use the standard windows shortcut keys, e.g. alt+tab to switch tasks, and the Windows key to bring up the start menu/screen.
Alt-Tab does work, but brings up too many things, and I will have to get rid of some of them. The Windows key does work, but it gets a menu, not a way to switch to (for instance) a spreadsheet. As noted below, F11 works. What is metro F11? Robert McClenon (talk) 16:09, 26 August 2014 (UTC)[reply]
I mean what is Metro IE? Robert McClenon (talk) 16:48, 26 August 2014 (UTC)[reply]
If you're using the metro IE, there's no way to get the task bar with metro apps in stock Windows 8 AFAIK, although you can use the metro task switching interface (moving mouse to the left top). If you're using Windows 8 update 1 you can enable the task bar in Metro apps. However it still autohides and you have to move your mouse to the bottom of the screen, except this feature is know to sometimes be unreliable [1]. (Using Windows key+T is probably a better way to ensure the taskbar shows up in Metro apps after enabling in Windows 8.1 update 1.) Anyway, I'm not sure I'd recommend metro IE over desktop IE unless you have a touch interface which it sounds like you don't, you may want to remove it from the Start screen to avoid confusion. I'd still recommend updating to Windows 8.1 if you have administrative rights of the computer. (It should show up in the Windows Store.)
If you're using desktop IE, you've probably entered to the full screen mode all major browsers have. Try pushing F11 to exit the fullscreen mode.
Nil Einne (talk) 07:48, 26 August 2014 (UTC)[reply]
I tried F11. That works. Thank you. What is the difference between desktop IE and Windows IE? However, now that you answered my question F11 is my friend (not on Facebook, which I don't use). Robert McClenon (talk) 16:09, 26 August 2014 (UTC)[reply]

.CTG files[edit]

My Canon PowerShot produces a "M0100.CTG" file on its memory card, and just as is noted by the contributors at this page, it keeps the images all in order, preventing the camera from starting over the numbering when I dump images onto the computer: if my last photo was IMG_1111.JPG, the first one after the dump will be IMG_1112.JPG, even if I deleted 1111. Do other camera manufacturers have files comparable to .CTG, and/or other ways of accomplishing the same task? If my Nikon D3200 (purchased in April) has such a feature, I've not found it yet. While I wouldn't mind help getting the Nikon to do this, I'm more interested in attempting to introduce information about .CTG (and related systems, if they exist) into Wikipedia, as it doesn't appear at CTG, and we don't appear to have anything about it on any other page. Nyttend (talk) 04:08, 26 August 2014 (UTC)[reply]

My lumix just counts, it doesn't use a file on the memory card. I guess it uses Flash within the camera itself. It is possible to adjust the number from within the setup pages, but it is hard work. -- 82.44.187.221 (talk) 08:59, 27 August 2014 (UTC)[reply]
The Nikon D3300 has an option for it, idk about the 2300 because I don't know if they have the same firmware. Go to settings, go to setup menu, and there will be a setting marked "file number sequence" that can be turned off and on. Off means it will not save your numbers when you dump your memory card. On means it will all the way to 9999 and then start over. [2] on page 90. KonveyorBelt 02:00, 28 August 2014 (UTC)[reply]

Is something wrong with Google Images?[edit]

Over the last several hours or so, whenever I try to search for anything on Google Images (and it doesn't matter what my search query is), a substantial portion of the search results are replaced with the image of a car crash in a country which uses Cyrillic script. What the heck is going on here? Is anyone else experiencing this same problem? 69.120.134.125 (talk) 08:26, 26 August 2014 (UTC)[reply]

I did a search for Kate Mara. All I got were images of a lovely woman. Dismas|(talk) 08:39, 26 August 2014 (UTC)[reply]
Others are apparently experiencing this too. -- Finlay McWalterTalk 10:07, 26 August 2014 (UTC)[reply]
Google tests changes on a small fraction of searches before rolling them out to everyone, and it's possible you were one of the unlucky few. It's also possible that a glitch corrupted the database of some of the image search servers. Either way, I don't know why it would affect all of your searches for hours, instead of a small random sample of everyone's searches. You could try clearing your cookies. -- BenRG (talk) 20:34, 26 August 2014 (UTC)[reply]
No, it was reported on NPR yesterday - for a period of about 30 minutes ALL Google image searches were returning one of only two pictures - one being that car crash, I forget what the other one was. Seems like a system-wide bug. It should have fixed itself within 30 minutes. SteveBaker (talk) 19:00, 27 August 2014 (UTC)[reply]

How to embed flowchart in Wiki[edit]

Hello, I want to ask you, how can I embed flowchart in wiki article? I don't want to do it vie screenshot or image I want to embed the flowchart directli to the article. Is that possible? If it is, please provide me information how it can be done.

Thanks in advance.

Denitca Kostadinowa

I'm not sure what exactly you want to do. A flow chart is an image, so why not embed it as such? I would recommend DOT (graph description language) to create them, and then embed them as PNG. Can you clarify why that's not working for you? --Stephan Schulz (talk) 11:33, 26 August 2014 (UTC)[reply]
Maybe a method for using plain text markup that wiki can render into flowcharts on the fly is desired? For instance in your DOT example, the specified graph still needs some other rendering software. I think that would be neat, but I don't know if it's possible. There are LaTeX packages that can render graphs (e.g. tikz, examples here [3]), and the <math> tags support most basic LaTeX, but I can't tell from Help:Displaying_a_formula if that method would be supported -- my guess is not. SemanticMantis (talk) 14:15, 26 August 2014 (UTC)[reply]
Flowchart editor Dia (software) is a good program and can export diagrams in SVG, the preferred vector format for Wikipedia. --Mark viking (talk) 16:34, 26 August 2014 (UTC)[reply]

VB.NET list of currently open documents into a combobox[edit]

Hi,

I am looking for a way for my VB.NET program to list all of the document that the user has open in a combobox so that they can select one for saving. I can find all sorts on how to list processes etc, but nothing on how to list the actual documents. Essentially if the user has Doc1.docx, Doc2.docx, Doc3.docx (and perhaps other unrelated programs) the combobox would just list the three documents, and the program would then be able to do stuff with that document. Answers in VB.NET if possible please :) 194.205.13.211 (talk) 13:03, 26 August 2014 (UTC)[reply]

List of stable hardware configurations?[edit]

Some websites compile lists of hardware that works well with Linux and Apple products have the advantage of the software developers and hardware engineers working with fewer and better defined scenarios. Is there some list of PC hardware configurations that work well together with Windows (e.g. 7)? When I say work well, I mean everything does exactly what it's supposed to and the system is thoroughly stable. I'm interested in consumer gaming-level PCs, not enterprise workstations or servers. It helps that I don't want/can't afford to be at the bleeding edge. --129.215.47.59 (talk) 16:23, 26 August 2014 (UTC)[reply]

I think the problem is that each product is tested with the O/S alone, but not in combo with everything else on the PC. For example if they leave something running permanently in background that only uses 1% of the PC's memory, they think that's fine. But what happens when you have 100 such programs running in the background ? StuRat (talk) 18:14, 26 August 2014 (UTC)[reply]
Windows overwhelmingly dominates the PC OS market and every hardware manufacturer tests extensively with it, so I think a list analogous to the Linux and Mac OS lists would be meaningless. You should probably just buy the most widely used hardware (because it gets the most real-world testing) as long as the customer reviews are good. I think it's unusual for otherwise reliable components to fail in certain combinations, though I guess it's possible, especially between components that are directly connected to each other (e.g. the motherboard and everything else).
A few things that will significantly improve stability if you can afford them: more and larger fans (and good case airflow), ECC RAM (unfortunately difficult, for reasons explained on that page), RAID, and perhaps underclocking. -- BenRG (talk) 18:44, 26 August 2014 (UTC)[reply]
While I don't disagree with most of what is said above, Microsoft do maintain a fairly comprehensive and official hardware compatibility list. Vespine (talk) 23:01, 26 August 2014 (UTC)[reply]

Knowledge Based System Question[edit]

Hi, can anyone help me in these question?

What is Knowledge Base System (KBS) and evaluate the roles of data, rules and structure components in Knowledge Base (KB). Explain briefly how knowledge is managed by gathering, organizing, refining and disseminating the information which referring to knowledge life cycle (KLC). Illustrate human readable concept such as Microsoft Troubleshooter and machine readable in medical diagnostic perceptions. You may explain further on other examples under both concept mentioned above.

Please do your own homework.
Welcome to Wikipedia. Your question appears to be a homework question. I apologize if this is a misinterpretation, but it is our aim here not to do people's homework for them, but to merely aid them in doing it themselves. Letting someone else do your homework does not help you learn nearly as much as doing it yourself. Please attempt to solve the problem or answer the question yourself first. If you need help with a specific part of your homework, feel free to tell us where you are stuck and ask for help. If you need help grasping the concept of a problem, by all means let us know. StuRat (talk) 16:30, 26 August 2014 (UTC)[reply]

Hello again all and @User:StuRat. Okay, so got the replacement adapter today (and it fits). The people were very good about it, they sent me a postage paid label and a full refund (Paypal) and then I ordered it again from a different company.

Anyway, I need some more hand holding. It is working ... sort of. I plugged it in. I went to the TV input screen and saw it was recognizing a new signal and switched to it and an Apple desktop background popped up on the TV. Hallelujah! But, my desktop did not pop up there just one of the desktop background pictures, and not the desktop screen background I have actually set on my computer but another--I think it's the default one, or I am assuming that.

Anyway, I started a movie using Quicktime, nothing; I go fullscreen, nothing. I try with VLC, nothing; I go feel screen, nothing. I then try with Wondershare Player nothing; I go feel screen and boom, it starts playing on the TV. So something's working... but... no audio (not from the TV, though my computer is playing it, but I can't watch the movie on the TV with tinny audio from the other side of the room).

So I guess my questions are, first, how do I get the TV to understand the audio? I thought HDMI carried the entire signal. Second, why is only one player working for this; any ideas how to fix that. And anything else you can think of that might be relevant. Please understand that I am sophisticated and at the same time very ignorant. I understand to switch the TV's input. I have three Apple players. But all my knowledge of this stuff is totally surface deep.--108.46.97.218 (talk) 23:22, 26 August 2014 (UTC)[reply]

I am not an Apple user, but I will try to help. For your picture, your TV is being treated as the second monitor in a dual monitor setup. Currently, it appears that your TV is is being treated as an extension above, below or to the side of your primary screen. There should be a way to drag your video window from your primary to your secondary monitor. You can also set up the video to function in Mirror mode, where both monitors display the same image. Take a look at this article for instructions on changing the setup. Mirroring is discussed about two-thirds of the way down.
As for the audio, if you have an older iMac (mid-2009 or earlier), this article seems to indicate that it may not support audio out on the mini display port connection. If you have a later model, that same article indicates that it should support display port audio. The next step is to check your audio settings System Preferences -> Sound -> Output and see if there is an option to change your sound output from internal speakers to your TV. See this YouTube video. I hope this helps. -- Tom N talk/contrib 02:21, 27 August 2014 (UTC)[reply]
Thank you Tom! I found nothing about mirroring I could use but yes, it was as simple as going to sound in preferences, when I am connected "Sony TV" pops up there and can be selected. I can now watch movies on my TV--only using the Wondershare Player in full screen mode. Does anyone have any idea why it only works with that program and how to make it work with others?--108.46.97.218 (talk) 12:53, 27 August 2014 (UTC)[reply]
I agree with Tcncv, and I'd look at where you change screen resolution to try to change the display mode for your TV. If you can't find it, I suggest you try moving your mouse pointer off each edge of your screen and watch to see if it shows up on the TV. Note that the resolution may be different on the two displays, meaning you might only have a small area of one edge common to both, or the two displays could even be laid out diagonally from each other, so run the pointer along the entire border, zigzagging on and off. Once you understand the layout, you can hopefully drag any video player, while NOT in full screen mode, onto the TV. However, the player is likely to snap entirely onto one display or another, so it may take some practice to get it to snap to the TV.
As for why only one player works now, apparently that player interprets FULL SCREEN MODE to mean on ALL displays, while the others take it to mean the current display only. StuRat (talk) 17:20, 27 August 2014 (UTC)[reply]
Have a look at the System Preference/Displays option. It should show your two different screens positioned inside a larger virtual display. You can move windows between the two screens just by dragging the top window bar in the correct direction so it goes outside one window and onto the other.--Salix alba (talk): 21:50, 27 August 2014 (UTC)[reply]

Wow! If I tried to figure that out I would not have in a million years. Yes, when I move my cursor to the right side of the screen it disappears off that edge and scrolls off onto the TV screen, and yes also, I can drag a Quicktime or VLC window (while in smaller size) to that screen and it appears there, control it on that screen, maximize it there, and play a movie. Never would have thunk it. And oh yes, I can also go to displays and change which side of the screen it is and mirror it. My DVD burner is going to start gathering dust. Excellent. Thank you everyone!--108.46.97.218 (talk) 23:23, 27 August 2014 (UTC)[reply]

You're quite welcome, glad we could help ! I'll mark this Q resolved. StuRat (talk) 02:55, 28 August 2014 (UTC)[reply]
Resolved