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

= August 6 =

Question Regarding HTML formatting
I have to go add 's and < /p>'s to a really long HTML document, what I'm wondering if is I can get away with doing this:

Here are a few weapons with surprising synergy I’ve discovered throughout the years.

< /p>

< b>4. Sticky Jumper & Persian Persuader< /b>



Because of the Sticky Jumper’s doubled reserve clip, every category of ammo pickup gives you double ammunition, which translates to doubled health. A dropped weapon gives 44 health, a large ammo kit 88. That’s a nice chunk of health back.

< /p>

Pair with the Grenade Launcher for 4 highly damaging shots. When you run out of ammo, Sticky Jumper back to spawn from anywhere and tag a Resupply Locker in seconds!

< /p>

(end example)

It'd be so much easier putting the < /p>'s within the blank lines rather than having to find each line's endpoint in the document. But will it break the code? I have to follow the rules laid out here for the document to display correctly. 98.27.241.101 (talk) 01:02, 6 August 2014 (UTC)


 * Putting them on the next line is fine. If it really is HTML and not XHTML, you can omit them entirely. -- BenRG (talk) 07:53, 6 August 2014 (UTC)
 * Curious though, why is finding endpoints a problem? There are lots of text editors that can find endpoints easily. For example, in Notepad++, you can search for the extended characters. In those cases, you'd search for "\r\n" (or whatever your OS uses), and replace with "< /p>\r\n". --Wirbelwind( ヴィルヴェルヴィント ) 18:08, 6 August 2014 (UTC)
 * Cause I'm a complete rube that has to do it manually with the mouse and scroll bars :( I don't even fully understand how to do what you just said. Does Notepad++ come with a console or something? 98.27.241.101 (talk) 02:32, 7 August 2014 (UTC)

DVD drives (DVD ROM and DVD Writer) turns into CD drives in Windows 7 (64bit)
Hello there, I am having above mentioned problem for quite sometime. I could not figure out how did it happen? I can't play DVD anymore. It can only read software from DVD. I tried updating drivers...nothing. I tried uninstalling and reinstalling...nothing. How can I get back my DVD drives. Please Help? Thank You--180.234.98.5 (talk) 08:59, 6 August 2014 (UTC)
 * If you can still read software from DVD then the problem isn't the hardware or the drivers, it's that you don't have DVD-Video playback software. You could install VLC. -- BenRG (talk) 00:04, 7 August 2014 (UTC)


 * I should have mentioned that my both DVD ROM's and Writer's icon also turned into CD Drive. I am not concerned about playing video on Video playback software. All I want is to get back my DVD's icon as well as their proper functionality.--180.234.104.248 (talk) 19:24, 7 August 2014 (UTC)

Google Play on PC Privacy Issues
Deleted by me, OP, due to my question not being answered.
 * That was quick. Fortunately, if anybody showed up late and knows the answer, nothing much is ever really deleted on Wikipedia. InedibleHulk (talk) 08:01, 7 August 2014 (UTC)

Default search directory when using 'readvec' in PARI/GP
In which directory does PARI/GP look when using ? For example, when I try do do something like, I get an error message saying readvec: error opening input file: 'b158358'. PARIs documentation isn't very helpful in this regard. --  Toshio   Yamaguchi  14:41, 6 August 2014 (UTC)


 * What operating system are you using? If by chance you are using MS Windows, perhaps this item in their FAQ may answer your question. --  Tom N  talk/contrib 03:31, 7 August 2014 (UTC)

Building a Website
I want to build a website that will meet the following criteria:

1) I want to upload either PDF files to serve as the entire viewable page of the website, when activated. 2) I want to be able to insert images that can serve as links to various pages in this website. 3) I want to be able to build this website directly, by either uploading images or PDF files as though they were images, rather than coding, etc. 4) I want to be able to link it to a domain name I have already secured for free, and if this is not possible, then for very little charge.

Does such a thing exist? Thanks!

 DRosenbach  ( Talk 18:53, 6 August 2014 (UTC)


 * People I know use Squarespace for this sort of thing. I haven't used it myself, but they have a free trial, and I think their service will basically do what you want. SemanticMantis (talk) 19:31, 6 August 2014 (UTC)


 * Comparison of free web hosting services also gives a partial list of free services that may do what you want. WegianWarrior (talk) 19:38, 6 August 2014 (UTC)
 * My understanding is that many/most of those are for web hosting, without necessarily giving the user any tools for content design (OP has expressed a desire not to do coding, to me it seems like GUI authorship tools are preferred.) SemanticMantis (talk) 20:56, 6 August 2014 (UTC)
 * Google Sites: https://sites.google.com/ is a decent tool and free. It provides some basic templates as well as free hosting. I've seen other tools that are better but either they only provide the tool and you still have to do the hosting or they aren't free. I'm pretty sure it could handle all the requirements described above. --MadScientistX11 (talk) 16:20, 7 August 2014 (UTC)

How deep should software developers go, when it comes down to understanding lower layers
Should they know something below the OS, like the architecture or go into the instruction set or even deeper? OsmanRF34 (talk) 22:12, 6 August 2014 (UTC)


 * For most applications, no. In fact, they might not even need to worry about the O/S, in some cases.  However, one thing that does seem to come up is the speed of the computer that it will run on.  (If an operation takes more than a second, you might want a working cursor.  If more than 5 seconds, maybe a progress bar.  There can also be the problem that the program is too fast, so you need to add a pause to allow users to read information as it flies by.)


 * Of course, there are other applications where you do need to consider the lower levels, like a device driver.  StuRat (talk) 22:55, 6 August 2014 (UTC)
 * "The speed of the computer" is a bit understated. The developer needs a general overview of the resources that will be available for the program, and the constraints under which it operates. I once wrote some code for an embedded Linux with a compressed file system on flash memory. Unfortunately, that meant that we could only rewrite complete files - no seek and write, and no BSD style file locking (and no mentioning of that limitation in the documentation). That's something one needs to know - it killed our original design for fool-proof transactions on the configuration file. But all that depends on what kind of application one writes, and against which APIs. --Stephan Schulz (talk) 23:12, 6 August 2014 (UTC)


 * I think the OP needs to answer these questions first:
 * What type of software do you plan to write?
 * Who do you expect will use your software?
 * These questions are pretty important: for example, if you plan to make computer tool software, you'd better have a really thorough understanding of computer systems! If you plan to develop casual entertainment webpages, you probably don't need deep knowledge of the inner workings of a computer system, except insofar as that knowledge enriches or enables your work.  Nimur (talk) 16:11, 7 August 2014 (UTC)
 * If you are asking about general application development, say someone working on a business system then I would say absolutely they should NOT know or care about the OS, much less the layers below. In fact for most business systems these days the goal is to design and build things that are OS independent anyway, that is a big goal of Java for example. The only exception I can think of is say for real time systems where you have to have reliable microsecond response time, say weapons systems or artificial hearts things like that. But otherwise no, definitely not. The one thing I would say though is that system level issues are of course critical and often the hardest part of getting software to work. But here I'm not talking about the need to understand or optimize for the specifics of any one operating system but issues about the communications between sub-systems, messaging, interactions between the application and the database, etc. In my experience people often waste a lot of time trying to optimize the wrong thing, it's why testing and metrics are so important, if you have say a very data intensive system most likely the bottlenecks are going to be getting and storing back from the database and worrying about optimizing the business logic may be fairly unimportant, but the most important thing is to be able to have the metrics that tell you where the system is spending it's time rather than guessing. --MadScientistX11 (talk) 16:32, 7 August 2014 (UTC)
 * For most programs, it's good to know at least a bit about what's going on in lower layers to prevent unpleasant surprises. Three very real examples, there are many like these:


 * If you write a program that uses a lot of memory that at some point becomes a lot slower, it's good to know that the operating system may have decided that it should use the harddisk to act as virtual memory. Maybe a small change (like changing the type of the numbers you store) increases the speed a lot.
 * Concatenating strings is very expensive. For many languages, adding "A" to "AAA" means creating space for a 4 character string, and do two copies. Creating a string of 1000 times "A" can be a LOT of work, where there may be a more elegant solution like a StringBuilder which act as a list and increases in size in increasingly big chunks.
 * Even for "managed" languages like the .Net Framework, where the framework usually takes care of releasing parts of memory and other resources your program doesn't need anymore, it doesn't always do that. If you fill a panel with a thousand controls, then remove them, refill the panel, remove them again, etc, the compiler is not able to clean up everything behind your back and the program will crash eventually. Not during testing of course, but when the software is released and angry clients start calling.

Then again, it totally depends on the kind of software. For a device driver, you might need to understand what's happening at the deepest, electron level, like "can this particular wire manage 9600 bit/s without echoing". For a form on a website, you probably need to know about the highest, human level, like "would people understand the asterisk next to a field indicating it needs to be filled".

If you think "knowledge of lower layers" is a good metric to distinguish good programmers from bad programmers, I'd propose another formula. IMHO, experience is worth a lot more in programming than knowing the theory. My hunch as a (small) employer is that this one approaches reality rather well: "years of programming + (years of programming while < 18yr) * 10 + (years spent in college doing computer science) * 0.1 + (years spent coding PHP) * -3 + (has profound knowledge of PRINCE2, is Microsoft Certified something or puts a typing course on CV) * -20". Joepnl (talk) 00:14, 8 August 2014 (UTC)
 * For the record, this is the first time I've ever heard of PRINCE2! I just looked it up, got about 50% of the way through the lede, and ... and I stopped, right there.  I like your equation, Joepnl.  Nimur (talk) 00:44, 8 August 2014 (UTC)
 * Thanks! :) I'm sorry I brought PRINCE2 to your attention, but I'm glad you dealt with the quackery of these busybodies after just a few sentences. Imagine all the people who took it seriously, pay good money to learn all about it, and didn't get a job. Or even worse: all the people who did get a job. Joepnl (talk) 01:26, 8 August 2014 (UTC)
 * Just wondering, what's so bad about PHP (and what would you rather see instead)? 79.3.107.253 (talk) 08:43, 8 August 2014 (UTC)
 * This article explains why PHP is a crime against humanity. Any other language is better. (Personally, Python > VB.Net ≈ C#.Net > Delphi > the rest >>>>>>>>> PHP). Joepnl (talk) 15:08, 8 August 2014 (UTC)
 * That article is great, although it assumes the user is already familiar with the pitfalls. For example, read the Language Operators reference, and try to decipher which equality comparison is relevant for a "juggled type."  Perhaps an enthusiast PHP apologist would like to stand up and defend the language behavior for   ?
 * Or the even more pathological example, which comes from the language documentation itself :


 * My nitpicks with PHP stem more from an (omnipresent) implementation-detail than with the language itself; but because we're not in a purely academic language theory classroom, I don't find it useful to distinguish between a flaw in the language as opposed to a flaw in its only commonplace implementation.
 * Given the choice between writing PHP to generate an HTML page, or writing a server-side CGI program, I can (and do) implement the CGI program as a native executable. At least when my executable program faults, my server's operating system will give me a backtrace, which is better by leagues than the empty HTML page that Apache's mod_php will provide!  I know and understand the motivations, and I can figure out what needs to be fixed - but I'm a battle-hardened programmer! - and I imagine that the novice must face nothing but fear, confusion, and a totally empty screen when "PHP page loads blank"!  One typo, and you're busted.
 * To me, this sort of all-or-nothing behavior doesn't make sense for a hosted, interpreted scripting language whose parser logs are not made available. Contrast that behavior even to mod_py!  Server-side page generation does not need to be so difficult.  Nimur (talk) 16:40, 8 August 2014 (UTC)
 * I actually wouldn't mind a blank screen if something went wrong, there's no need to tell everyone that the password "verysecret" on line 281 wasn't accepted by the database. And maybe, just maybe, the novice would get scared away from PHP and would stop unlearning programming or any other logic he picked up in kindergarten. Btw, the example "a"==0 made me think that some lunatic thought that ASCII should be rearranged (if anything numerical, "a" should be 97, or 10), yet I found that "b"==0 as well. The PHP people made sure that even the documentation is concisely written to confuse people. Joepnl (talk) 01:25, 9 August 2014 (UTC)


 * If you ever have to debug a crash dump from an optimized build of an application, you might like to at least be able to read and understand assembly for your architecture of choice (even if you have to occasionally Google some opcodes). You might want to understand what virtual memory and memory fragmentation are when you start to notice memory leak-free applications running out of memory and crashing before they've even used up everything available to them. You might want to understand how CPU caches work when you start to realize your program is running a lot slower than it ought to as it starts to work on real data. You may want to learn which operations are more expensive than which others when you're trying to make a frequently-called routine as quick as possible. There's a lot of cases where some basic computer architecture knowledge is handy, even in "typical" applications programming, whatever that is. -- Consumed Crustacean (talk) 02:51, 11 August 2014 (UTC)