Wikipedia:Reference desk/Computing
of the Wikipedia reference desk.
Main page: Help searching Wikipedia
How can I get my question answered?
- Select the section of the desk that best fits the general topic of your question (see the navigation column to the right).
- Post your question to only one section, providing a short header that gives the topic of your question.
- Type '~~~~' (that is, four tilde characters) at the end – this signs and dates your contribution so we know who wrote what and when.
- Don't post personal contact information – it will be removed. Any answers will be provided here.
- Please be as specific as possible, and include all relevant context – the usefulness of answers may depend on the context.
- Note:
- We don't answer (and may remove) questions that require medical diagnosis or legal advice.
- We don't answer requests for opinions, predictions or debate.
- We don't do your homework for you, though we'll help you past the stuck point.
- We don't conduct original research or provide a free source of ideas, but we'll help you find information you need.
How do I answer a question?
Main page: Wikipedia:Reference desk/Guidelines
- The best answers address the question directly, and back up facts with wikilinks and links to sources. Do not edit others' comments and do not give any medical or legal advice.
September 22
array assignment with fewer characters
is there a way to do
G[]={247570,280596,280600,249748,18578,18577,231184,16,16}
in fewer characters (same effect)? in C/C++
( I mean like maybe it's possible to assign one big hexadecimal number somehow or some other trick. We're just optimizing for source code space here, not readability.)— Preceding unsigned comment added by 89.132.116.35 (talk) 15:46, 22 September 2013 (UTC)
- Are you concerned with this specific array full of magic numbers, or are you interested in a general solution? In either case, some of your numeric constants can be represented in hexadecimal, using fewer characters than in decimal. If you help us understand your motive, we might be able to offer a better targeted solution. Generally, it is not helpful to reduce source-code length as measured by number of characters. Nimur (talk) 15:48, 22 September 2013 (UTC)
- Note that the original poster is talking about this code -- Finlay McWalterჷTalk 15:56, 22 September 2013 (UTC)
- Ah, that makes much more sense in context. If this is an exercise in recreational program obfuscation, certain silly tricks might be in order, like replacing usage of the array by a simple polynomial; and so on. Some code obfuscation algorithms can actually optimize for smallest source-code size, and produce equivalently-functional, but shorter, source-code as output. After briefly scanning that code and its explanation, I doubt I could make it much shorter - at least, not without a lot of effort, and at the expense of a good deal of portability.
- As a goofy example, you can (without loss of generality) represent a nine-element array of integers as a nine-term polynomial (or fewer, if you choose your constants wisely). This process is explained in detail in the curve fitting article. Of course, you have to design for minimal floating point error and assume the target computer rounds and calculates in the standard way, lest your integer constants get nudged off by a few bits when you calculate and cast them! It is probable that the representation of a nine-term polynomial is longer than a nine-element array of integer constants, but it depends on the coefficients you need. And there are alternatives to polynomials: in fact, a whole branch under the science of wavelet transformation is specifically dedicated to the mathematical study of minimal representations of arbitrary arrays of constants (signals) through the clever construction of transform domains. If a little error is acceptable, you can get orders-of-magnitude reductions in code size, which is (not coincidentally) the means by which modern image compression works. Now, in the example above, the numeric constants form a very low resolution bitmap image (with one bit per pixel), representing the positions of spheres in a world geometric model. Lossy compression is not great for low-bit-depth, low-resolution images. But if the world representation needed a longer array, the tradeoffs would start to look pretty good. Nimur (talk) 16:19, 22 September 2013 (UTC)
Wow, Nimur, what a detailed response. But this isn't the mathematics desk and I really was just interested in some kind of syntax in C/C++ or simple cheap trick that would shorten the assignment. For example, maybe there is a way to take a string "lkjr3lkjfsdf" and get those numbers, or hexadeciaml, or some other trick. The point is if you want to keep the array, but reduce the number of bytes to assign like so "={247570,280596,280600,249748,18578,18577,231184,16,16}" are there any cheap tricks to do so in C/C++? Things like hexadecimal, or character arrays, or anything else you can think of.... 178.48.114.143 (talk) 18:13, 22 September 2013 (UTC)
- I've been playing on this problem for fun... and so far, I can not contrive a legal C program that uses correctly represents {247570,280596,280600,249748,18578,18577,231184,16,16} in fewer characters. I have tried a polynomial fit, and a recursive function, and a few variations of boolean and bitwise logic; it is easy to generate the constants, but the code takes more space. My next step is to try a Karnaugh map, as the process of trial and error is not yielding results. Nimur (talk) 22:55, 22 September 2013 (UTC)
- Okay. I had to dig up espresso (it's been a long time!), because I wasn't able to minimize this one by hand. And I had to use this variant of the source-code from the University of Manchester (the antiquary Berkeley copy gave me compiler trouble); even the variant from Manchester used restrict as a variable name, which my C99 compiler treats as a keyword. (So, if you're following along at home, either disable C99 mode on your compiler, or replace all instances of "restrict" with some other variable name in unate.c).
- Then I used this as my input function - (the espresso-representation of the array constants, and their array indices, in binary):
.i 5
.o 19
0000 -0111100011100010010
0001 -1000100100000010100
0010 -1000100100000011000
0011 -0111100111110010100
0100 -0000100100010010010
0101 -0000100100010010001
0110 -0111000011100010000
0111 -0000000000000010000
1000 -0000000000000010000
- In other words, five input bits (for array index 0 through 8); and 19 output bits, because there are 19 bits in the longest represented numeric constant, the rest being "-" or do not care bits. I ran espresso on my input file ...which gave me output:
.i 5
.o 19
.p 9
-000- 0000000000000010000
0101- 0000100100010000001
0010- 1000100100000001000
0001- 1000100100000000100
0110- 0111000011100000000
0---- 0000000000000010000
0100- 0000100100010000010
0000- 0111100011100000010
0011- 0111100111110000100
.e
- ... in other words, a nine-element boolean logic expression; or, almost no reducible complexity whatsoever. Translating that back into the C programming language, I got a string that is significantly longer than the array of nine constants; the first few elements being:
((k>0&&k<8)?0x40:0)+((k^0xA)|k^0xB)?0x4881:0 // ... and so on; already too long by the third term, and painstakingly difficult to do correctly.
- Now, we can't say we've proven that the string is best representable as a magic number sequence; in fact, it's nearly impossible to prove anything about the minimally-complex representation of a string; but we can say that we've thrown a lot of manual effort and computational horsepower at the problem and not made any headway towards a shorter string.
- A few things I noticed during my experimentation: the a character and the e character glyph could be rendered slightly differently, such that one is a rotation of the other. The k glyph could be truncated so that it is only eight pixels tall, instead of nine. These single-pixel changes would make the entire problem much more tractable without affecting the human readability of the output. As it stands, neither I nor my computer were able to losslessly compress that nine-element array at all. The obvious solution is to represent it as the ASCII characters aek - but again, if you've been following along at home, you'll readily see why that representation, though shortening the constants-array, actually requires increasing the total length of the program. Nimur (talk) 00:11, 23 September 2013 (UTC)
- I can easily represent the OP's array of magic numbers with different chracters, making the whole thing take up about 50% less space. However, as Nimur points out above, you would then need to write a function to turn that back into the magic numbers when you need to use them. Overall, that will make the program longer. If you had more magic numbers to represent in this way, you might eventually be able to get back the space you spent on the extra function. Astronaut (talk) 16:40, 23 September 2013 (UTC)
- I can't look into the source code that uses it right now, but if it can be modified to handle rotating the bitmap, then it can be arranged as 19 8-bit characters rather than 9 32-bit words (only 19 bits were used of each word, and the 9th is discarded by realizing it is identical to the 8th, or just throwing it out because it doesn't change the result much). The values are:
char G[]={96,146,146,146,252,0,0,124,146,146,146,28,0,0,255,32,80,136,4};
- or
char*G="`\x92\x92\x92\xfc\0\0|\x92\x92\x92\x1c\0\0\xff P\x88\x04";
- That's too long, but a big part of the problem is all of the hex codes. The high bit is set a lot, which makes it unprintable in ASCII. Mirroring the order of the bits gives
char*G="\x06III?\0\0>???8\0\0\xff\x04\n\x11 ";
- If you can refactor the code to work with data in that format, it is a bit smaller. Katie R (talk) 18:00, 23 September 2013 (UTC)
Thanks for the valiant effort, guys! 178.48.114.143 (talk) 22:58, 23 September 2013 (UTC)
- I was just able to look at the link that Finlay McWalter linked earlier. I haven't tested it, but it looks like changing
if(G[j]&1<<k)
- to
if(G[k]&1<<(8-j))
- will let you use my second string representation. You add 4 characters there, but trim 15 off of the declaration of G. You also need to change the for loop to initialize j to 8 instead of 9, although this throws out the last row as mentioned in my last comment. Katie R (talk) 19:01, 24 September 2013 (UTC)
- I need to stop looking back at this question. I enjoy esoteric/obfuscated/constrained programming far too much... Here's the idea that I just had for trimming more space. Drop the declaration of G entirely, then use this for the lookup:
if("\x06III?\0\0>???8\0\0\xff\x04\n\x11 "[k]&1<<(8-j))
- I think that saves 18 characters overall. There are probably other bits of the code where characters can be trimmed, but trimming down that declaration has to be about the biggest. Another consideration is that the code was designed to fit on a business card, so some parts of it may have been written the way they are just to make it so endlines can fit in the right places. Katie R (talk) 14:44, 25 September 2013 (UTC)
How to handle very large arrays
Assume that I am using an interpreted programming language where array indexes start at zero. Given an array of millions of items and a function that does integer arithmetic, the program has to get array[f(x)-1] for a million different values of x. Would it be more efficient to give the array an empty zeroth element and have the program get array[f(x)] instead of repeatedly subtracting 1 from x? Is the answer different for different programming languages or are there other factors to consider (besides the additional memory for storing the empty zeroth element)? — Preceding unsigned comment added by 116.14.196.239 (talk) 19:47, 22 September 2013 (UTC)
- It should be slightly faster to do that. That eliminates a million subtractions and wastes just one array element out of a million+. But the million subtractions might only take a fraction of a second anyway. The cost of that subtraction could be a lot less than the cost of the function, depending on what the function is. Bubba73 You talkin' to me? 20:26, 22 September 2013 (UTC)
- Your way of thinking about this problem is 21 years out of date. For all but the tightest computational kernels on tiny windows of data, details of how many instructions are needed are in practice of secondary importance at best. For almost any operation on data sets with "millions of items", the overwhelming performance criterion of note is likely to be cache locality. Incrementing an integer held in a register is something CPUs are already ludicrously fast at, and its presence or absence will not yield a measurable time differential. -- Finlay McWalterჷTalk 21:46, 22 September 2013 (UTC)
- Indeed, memory access is by far the dominant factor in most programs. For large arrays where many of the elements are zero (for example) you might benefit from using sparse array techniques. These can dramatically reduce the amount of memory needed for the array - and improve cache occupancy. The additional CPU time required to access them will typically be less than the cache hit improvement. But this depends dramatically on how much of your array is zeroes (or some other known value). SteveBaker (talk) 22:13, 22 September 2013 (UTC)
- (ec) In fact, there is a specific instruction in most computer architectures for many variations on the theme: pointer dereference with offset is such a common operation, it usually executes exactly as fast as a pointer dereference with zero offset; and for all practical purposes, consumes exactly the same amount of energy per instruction (because the granularity of logic clock-gating is too coarse to turn off the pointer-offset ALU execution unit). In the Intel 64 instruction set, the pointer-offset can be 64-bits long, meaning that RAM is really randomly addressable. Every single pointer-offset can be anywhere else in memory; nowadays, there is no such thing as a short- or long- (alternately, near- and far-) pointer. Immediate-operands can be 64-bits long for free. If you want faster code, investigate algorithm changes first; and then micro-optimize by investigating commonplace instruction-set enhancements like Intel's AVX vector instructions (or the equivalent vector set for your favorite non-Intel processor); but don't imagine the array offset calculation is even relevant to the execution performance. It isn't. Nimur (talk) 22:20, 22 September 2013 (UTC)
- Like noted above, it shouldn't make a difference. However, you did mention that it is an interpreted language. In that case it really depends on the nature of the interpreter, but I doubt it changes much. The best way to answer the question is to write a program that times the operation done both ways so you have hard data on the subject. The biggest rule about making tweaks for optimization is don't do it on a hunch - wait until you're actually seeing performance bottlenecks caused by the code, then use measurements to back up your choice of changes.. Katie R (talk) 14:10, 23 September 2013 (UTC)
- I don't really trust any of those answers. If the language is totally interpreted on the fly -- i.e., each line of code has to be reparsed every time it is encountered -- then parsing is likely to be the most important time-factor. Looie496 (talk) 17:57, 24 September 2013 (UTC)
- If the interpreter is well-engineered, it will either pre-compile/pre-parse; or use a just in time compiler or similar intermediate representation. For example, CPython, Java HotSpot, and MATLAB have included these optimizations for many years. Only a naively-designed interpreter will re-lex the input text at each loop iteration.
- Ultimately, the performance problem is not bottlenecked by calculation of a data element's address in memory. In languages like python, performance is bottlenecked because the memory is laid out inefficiently - large, complex data types are used to provide high level language features wrapping each primitive data element. This is intentional: a python programmer cannot* and does not want to manage memory at the logical or physical level. Instead, higher language abstractions of data structures are used. So, an array in python is not a contiguous chunk of memory treated as a sequence of primitive data types; it is really a special type of
linked listlist of pointers with indexing; you can see what it looks like in memory by consulting the Python-C language binding reference (for the canonical reference implementation of the interpreter). if you write software wherein performance is actually tied to memory management and layout, high-level abstract languages are not the right tool for the job. - *Actually, using ctypes, a python programmer can manipulate data, within the logical memory space of its process; but native Python arrays do not do this.
- Nimur (talk) 11:23, 25 September 2013 (UTC)
- Python lists are arrays, not linked lists, but they are arrays of pointers (like a QList, but without efficient prepend()), so you have poor locality for the individual elements. (This could in theory be true only of CPython; the closest thing I could find to documentation that requires it is CPython-specific.) --Tardis (talk) 12:56, 25 September 2013 (UTC)
- Thanks. I looked at the object representation and saw pointers to structs, and jumped the gun calling it a linked list. It is in fact a growable array of pointers to structs. That is a subtle but very important correction. Nimur (talk) 17:43, 25 September 2013 (UTC)
- Python lists are arrays, not linked lists, but they are arrays of pointers (like a QList, but without efficient prepend()), so you have poor locality for the individual elements. (This could in theory be true only of CPython; the closest thing I could find to documentation that requires it is CPython-specific.) --Tardis (talk) 12:56, 25 September 2013 (UTC)
- Cpython implements the abstract list type, as you describe, as an array of object pointers. Jython is very similar - it uses a java.util.ArrayList (in jython/src/org/python/core/PyList.java) which internally also uses an array of pointers. But Jython has a crucial difference, at least when running on HotSpot - HotSpot's collector reorders the heap based on referential locality, with the intention of improving cache performance. Similarly IronPython, which runs on the .NET runtime, uses an array of object references (IronPython/Runtime/List.cs); I think the CLR also reorders objects in memory with an eye to improving cache hit statistics. -- Finlay McWalterჷTalk 13:09, 26 September 2013 (UTC)
September 23
fatal error
in my PC when i am tring to open my skype account fatal error is appearing how can i remove fatal error? — Preceding unsigned comment added by 117.201.210.161 (talk) 02:47, 23 September 2013 (UTC)
- What exactly does the error say? Then users familiar with these messages may be able to diagnose the problem for you. --.Yellow1996.(ЬMИED¡) 02:52, 23 September 2013 (UTC)
- The pleas from software developers the world over. When you see an error, read what it says and report that along with what you were doing at the time. Not just that you 'got an error'. Astronaut (talk) 14:54, 24 September 2013 (UTC)
- 90%+ of errors can be fixed by copying and pasting the exact message into Google and searching in my experience. Thanks ツ Jenova20 (email) 10:21, 25 September 2013 (UTC)
Laptop Woes
Me again, in a shocking turn of events, my laptop is deceased (I would need to replace the motherboard and the screen, and it's simply not worth spending that much on an old computer when I could just buy a new one for the same price). This, along with my research on Mac and realizing how overpriced (substitute: out of my price range) they are, I starting looking for another system. I had always heard that Lenovo made a great, performance minded, rugged laptop. With my future in traveling, and using my computer on the go in who-knows-what situations (I foresee a lot of outdoors / toss it on huge counter type situations), this seems extremely appealing. I found this Lenovo G500s Touch... And I like what I see. Is this just me being easily impressed, or is this a good, sturdy laptop that can handle some video editing, business type software, and League of Legends when I get free time? I really like the processor speed, the 1TB of HD storage, and the easily upgrade-ready RAM (if I need to upgrade from 6GB). What makes me nervous is in reviews I keep running across something about the Ethernet being outdated, and I have no idea what that means. Also, I'm not sure whether the graphics are good or not, it's an Integrated Intel HD 4000. And the Bluetooth enabled is freakin awesome. It seems the webcam is also kinda low-end, but that is a non-issue for me. --Hubydane (talk) 14:09, 23 September 2013 (UTC)
- Perhaps the main thing to think about is whether the battery life meets your needs. The description says "up to 5 hours", but in my experience that means "usually less than 3 hours". Looie496 (talk) 14:43, 23 September 2013 (UTC)
- I would be okay with that, normally I back and forth between outdoors and inside, so I'd be able to charge if it became a problem. All of my LoL playing would be on charge, as well as a healthy chunk of the video editing. Off charge would be more the business programs and video showing, and that's if I don't have a tablet on me. After reading some reviews, DVD playback reached 3 hours 7 minutes, and I don't foresee my needs to go beyond the playbacks demands for any extended amount of time. And I could always buy an aftermarket battery if the need were to ever arise.--Hubydane (talk) 14:51, 23 September 2013 (UTC)
- Note that batteries lose capacity as they age. I dislike having to carry extra stuff around, so I would go for longer battery life out of the box. --Stephan Schulz (talk) 21:29, 28 September 2013 (UTC)
- I would be okay with that, normally I back and forth between outdoors and inside, so I'd be able to charge if it became a problem. All of my LoL playing would be on charge, as well as a healthy chunk of the video editing. Off charge would be more the business programs and video showing, and that's if I don't have a tablet on me. After reading some reviews, DVD playback reached 3 hours 7 minutes, and I don't foresee my needs to go beyond the playbacks demands for any extended amount of time. And I could always buy an aftermarket battery if the need were to ever arise.--Hubydane (talk) 14:51, 23 September 2013 (UTC)
September 24
How does closed-source "work"?
The article on proprietary software doesn't seem to explain the actual mechanisms used to keep software closed. Web-searching hasn't helped me either. All that anyone seems interested in is the economic and philosophical questions about open-vs-closed source.
So is there a standard cryptographic protocol, or what? Does some part of the computer have to constantly decrypt input from the software, and if so, does this add to the processing time of anything? Do Windows and Mac do it the same basic way? ± Lenoxus (" *** ") 18:01, 24 September 2013 (UTC)
- You might start by reading how compilers work. On modern computers, it is common to distribute software in a form that a machine can easily run - as a binary executable program; but in that form, the software is prohibitively difficult for an ordinary human to meaningfully read, modify, or understand. If you dive into details, it is actually non-trivial to distinguish between "source code" and "machine code." For example, have a look at the way that the Free Software Foundation defines "source". Nimur (talk) 18:08, 24 September 2013 (UTC)
- I think "prohibitively difficult" is a bit strong: the ROM hacking community has created very detailed reconstructions of certain video games, for example. I do agree that the time cost of disassembling and modifying a compiled program is the primary enforcement mechanism for "closed source." OldTimeNESter (talk) 20:10, 26 September 2013 (UTC)
- Basically it is a combination of (a) copyrighting the source coding in a way that forbids reuse, (b) not making the source code available to the public, and (c) requiring the developers to sign nondisclosure agreements forbidding them from disclosing information about the source code. Looie496 (talk) 18:18, 24 September 2013 (UTC)
- You might also want to read about code obfuscation. Closed-source code is not necessarily protected in any way beyond what Looie496 has described. It can be decompiled by a determined attacker. Obfuscation makes this more difficult by removing all the human-readable information. Encryption gives a higher level of protection but I think is rarely used in commercial software because of the complexity, and because once it's in the public domain it can be hacked. You would need a secure hardware platform to make it really difficult to crack. --Heron (talk) 08:18, 25 September 2013 (UTC)
- Code obfuscation refers to obfuscating whatever readable code there is, usually either perl hackers one upping eachother or javascript code trying to disguise what it does. Once code is compiled that's a whole other story, and I don't think most people would ever use the term "obfuscation" to apply to that. Shadowjams (talk) 04:17, 27 September 2013 (UTC)
- You might also want to read about code obfuscation. Closed-source code is not necessarily protected in any way beyond what Looie496 has described. It can be decompiled by a determined attacker. Obfuscation makes this more difficult by removing all the human-readable information. Encryption gives a higher level of protection but I think is rarely used in commercial software because of the complexity, and because once it's in the public domain it can be hacked. You would need a secure hardware platform to make it really difficult to crack. --Heron (talk) 08:18, 25 September 2013 (UTC)
September 25
Scanner won't open
We had a power outage while I was scanning photos. Now when I click the icon on my computer the scanner won't open. What should I do? It's an Epson Stylus DX 7400. Thank you.--Jeanne Boleyn (talk) 07:42, 25 September 2013 (UTC)
- Could it have been damaged by a surge when the power came back on, or does it have a surge protector? Does it work at all? If so, are you able to open it (old school) by hand/manually? Im far from an expert on ccanners and printers, just trying to get more information. Thanks ツ Jenova20 (email) 10:16, 25 September 2013 (UTC)
- It could very well have been damaged by a surge however it lights up when I turn it on. The window where it says open works but the window to scan photos does not appear.--Jeanne Boleyn (talk) 10:28, 25 September 2013 (UTC)
- You could try uninstalling and reinstalling the software that came with the scanner. There is a chance that some file it uses during the scanning process got corrupted by the power failure. Katie R (talk) 13:11, 25 September 2013 (UTC)
- If it occured during scanning, maybe the scanner head did not return to it's start position? Ssscienccce (talk) 13:20, 25 September 2013 (UTC)
- Yes I had just started scanning when the power went out. Would it be wise to unstall then reinstall the programme?--Jeanne Boleyn (talk) 13:55, 25 September 2013 (UTC)
- Maybe check the printer/scanner first, as I understand it, the DX7400 can be used as a copier on it's own (without a pc attached). If that still works then you know that the scanner is ok. If it doesn't work, it's no use to reinstall software. Ssscienccce (talk) 14:57, 25 September 2013 (UTC)
- Also try turning everything off, removing the data cable and reseating it at each end, then starting everything back up again, in the usual order. StuRat (talk) 15:25, 27 September 2013 (UTC)
Imbed link into a photo
I am planning to upload photos to one of the online sharing places (like bigstock, imageporter etc.) but I want the entire picture to link to a 3rd party website, is there a way to host your image on one of the photoshare sites and also control what happens (taking them to a URL you specify) when a viewer doubleclicks on it? Thanks in advance for any and all assistance. Market St.⧏ ⧐ Diamond Way 09:32, 25 September 2013 (UTC)
- It would be easy for them to support that, but usually they don't, because a mechanism of that sort is far too easy to use to trick people into going to evil (or spammish) web pages. Looie496 (talk) 15:38, 25 September 2013 (UTC)
- If we are interpreting the question to mean that the user wants the image hosting site itself, when viewed directly on their site, to link to a specific address, then yes, Looie's statement is correct. However, this question can also be interpreted as a user asking how to make an image link to an external website (i.e. IMG SRC and A HREF). Are you coding this website yourself with pure HTML? If so, you would want to get the address of the image file that you've uploaded to a hosting site, and the site you want to link to, then use this code:
<a href='[link to your external site]'><img src='[link to your image]'></a>
- Does that answer your question? -- 140.202.10.134 (talk) 16:27, 25 September 2013 (UTC)
- Yes if you want the picture hosted on the image site, but when you click on it there then the picture takes you to a 3rd party site... generally this is restricted as Looie points out. The best way to check and see if this is allowed is to contact the desired image hosting site directly; and then ask if this is possible and if so, how to keep it within their terms and conditions. --.Yellow1996.(ЬMИED¡) 23:01, 25 September 2013 (UTC)
- Thank you everyone, and thank you for explaining the different ways one could and could not do this, I very much appreciate the breadth and depth of the responses. I will attempt to use your suggestion 140.202.10.134 but yes it seems that Yellow1996 and Looie may be correct, thou possible it may be a feature most hosting sites deliberately turn off. Market St.⧏ ⧐ Diamond Way 04:29, 26 September 2013 (UTC)
- Yes if you want the picture hosted on the image site, but when you click on it there then the picture takes you to a 3rd party site... generally this is restricted as Looie points out. The best way to check and see if this is allowed is to contact the desired image hosting site directly; and then ask if this is possible and if so, how to keep it within their terms and conditions. --.Yellow1996.(ЬMИED¡) 23:01, 25 September 2013 (UTC)
iTunes Match copying my music to my new Toshiba Laptop
Can I do It? I purchased iTunes Match for about £22 recently and all my music that I have collected on my Dell Windows XP PC over the years can now be easily accessed from my new iPad4. But I can't find a way to access my music on my Toshiba Laptop or my Samsung Galaxy S3 Smartphone without using cables and cards. Please don't shout if I have bought a complete set of incompatible kit. I can live with it for another couple of years if need be. And then practice Caveat Emptor. Thanks 80.6.13.178 (talk) 19:27, 25 September 2013 (UTC)
- iTunes Match works on all your iOS and OS X devices, and also on your Windows PC. You need to download iTunes 10.5.1 or later on your Mac or PC, and then log in to your account. If you're in the UK, everything should work normally; in some parts of the world, you can double-check availability. Nimur (talk) 20:40, 25 September 2013 (UTC)
September 26
Windows 8 & Chrome
Band new Lenovo G500s running W8, and I actually really like it, after I crested the learning curve. However, when I was downloading applications to get the computer set up like I wanted, I noticed that in Google Chrome when I would click a download link, it would process like a download was starting, take you to the "thank you" page, etc., but it wasn't doing what I expected. Sometimes it would show the download at the bottom of the screen, but when I would try to click it, nothing happened. Other times it wouldn't even show up at the bottom, and other times it wouldn't even show up in the downloads section of chrome. The things that did show up in the downloads section I was unable to open, show in folder, or anything. The only way I could open the installation programs, etc. that I had downloaded was to search for downloads from the start screen, then run them that way. I then switched to IE to see if it gave me the same problem, and it IE worked like a dream, ran downloads and everything. Is this a problem with the away Chrome interacts with W8, or is it a setting that was imported from my W7 chrome that is messing things up? Any input is appreciated, thanks!--Hubydane (talk) 15:04, 26 September 2013 (UTC)
Ctrl-Alt-Del - Gates remark
A few days ago Bill Gates said that Control-Alt-Delete was a mistake, that he wanted one button to do that function, see the last paragraph of Control-Alt-Delete#History. But in those days, Control-Alt-Del immediately rebooted the computer. Is it a good idea to have a single key, which could be pressed accidentally, to reboot the computer - causing you to lose your work> Bubba73 You talkin' to me? 22:24, 26 September 2013 (UTC)
- I certainly don't think so!!!
- Think of how often people inadvertently hit keys such as CapsLock etc. I can't even imagine the horror of having an instant reboot button! --.Yellow1996.(ЬMИED¡) 23:00, 26 September 2013 (UTC)
- If I read the article correctly, I believe he was referring to using it to log in, not to reboot. Mingmingla (talk) 00:22, 27 September 2013 (UTC)
- Yes, that's correct. He was not talking about a single button to reboot the computer. Looie496 (talk) 00:29, 27 September 2013 (UTC)
- Maybe things are a little confused. Ctrl-Alt-Del was to reboot the IBM PC - you didn't log in to a PC, in those days. He talked about the IBM keyboard design, and that was long before Windows. Bubba73 You talkin' to me? 00:54, 27 September 2013 (UTC)
- Let's look at the actual quote:
- "Basically because when you turn your computer on, you’re going to see some screens and eventually type your password in, you want to have something you do with the keyboard that is signalling to a very low level of the software—actually hard-coded in the hardware—that it really is bringing in the operating system you expect,” Gates said. “Instead of just a funny piece of software that puts up a screen that looks like your login screen and listens to your password and is able to do that.
- ”So we could have had a single button, but the guy that wanted to do the IBM keyboard design didn’t want to give us our single button.,and so we programmed at a low level... it was a mistake.”
- It wasn't about a reboot. Mingmingla (talk) 03:40, 27 September 2013 (UTC)
- Let's look at the actual quote:
- Many laptops have a key next to the keyboard to shut it down. I rarely accidentally press mine. It's just important to keep it a reasonable distance away from more frequently used keys. It's very convenient to have and it's easier to use than having to go the Start menu..—Best Dog Ever (talk) 07:58, 27 September 2013 (UTC)
- Bubba, back then log-ins were mostly only used if your PC was connecting to a "workgroup" or some other similar network thing. You're correct that individual home computers usually didn't need to log-in, so you'd rarely, if ever, see the whole "Press Ctrl-Alt-Delete to Log-In" screen. APL (talk) 14:22, 27 September 2013 (UTC)
- It was OK using a weird combination like Ctrl-Alt-Del to reboot machines running DOS and Windows versions running in DOS. The mysterious thing was why the same key combination become used to log on in the Windows versions that came from OS/2 - NT, XP and onwards. It was a totally different action, using the same key combination. Never did understand that. HiLo48 (talk) 08:48, 27 September 2013 (UTC)
- This is speculation, but I believe it's because the interrupt vector for Ctrl-Alt-Del already pointed to code that did most of the initialization tasks you would want in a login program, and left the machine in a suitable state for a new user. OldTimeNESter (talk) 12:37, 27 September 2013 (UTC)
- Having once had a work PC under the desk with the reset button at the perfect height to hit accidentally with my knee (until I turned it around), I can tell you how incredibly annoying that is. I also think the CAPS LOCK key needs to be moved away from the letter A, as I accidentally hit CAPS LOCK at least once a day, and have to rewrite my sentence each time. Heck, I'd be fine with disabling CAPS LOCK completely, and holding down either shift key whenever I want caps. StuRat (talk) 15:21, 27 September 2013 (UTC)
September 27
Google Chrome
What is Google Chrome's revenue model? Every second thing you download on the Internet, you have to make sure you don't have it piggybacked onto it by accident. Now they're running ads in practically any TV program - no legitimate company does that any more; it's reserved for free credit report scams, pay-to-win video games, overpriced insurance companies that want to spy on your car. So what's their game? The NSA can't possibly be paying them that much, can it? Wnt (talk) 06:48, 27 September 2013 (UTC)
- Evidently you aren't paying attention, quantitatively, to the relative sizes of government and private sectors in the twenty-first century! Nimur (talk) 12:59, 27 September 2013 (UTC)
- Why would the NSA pay them when they can already take their information for free?
- Their Chrome strategy could be as simple as offering it for free. Google makes money from advertising after all. If they have a higher amount of users on their browser, then they can control how much advertising they make money from and how much advertising the customer sees. Google make money either way. Thanks ツ Jenova20 (email) 08:38, 27 September 2013 (UTC)
- Their revenue model is simple:
- Provide a browser
- Monitor (with varying privacy safeguards) what people do with the browser
- Target adverts to them which are likely to be relevant to their interests.
- Whether (as a consumer) you see this as a problem or a service (since relevant adverts can actally be useful) is up to you. I'm sure there used to be some way of showing which targeted categories they'd put you in, but I can't remember it offhand now...
- Also, it allows them to ensure that their online platforms work well on their own browser, and hopefully force the competition to make their browsers better. Since their entire business is the internet, more people browsing more websites more quickly is a very good thing for them, and making the bowsers beter helps a lot with that. And it helps with brand recognition, which encourages you to use their other services if you have Chrome installed (giving them even more data to tailor the ads with). MChesterMC (talk) 09:08, 27 September 2013 (UTC)
- Yeah I've noticed this too. Just the other day I discovered that I had Chrome installed from who-knows-when, which came with who-knows-what... Actually I just went and checked; I have apparently had Chrome since August 2009! Does that mean it's been autoupdating this whole time or do I just have an ancient version? If the former, then I'm going to uninstall since I am unlikely to ever use it. --.Yellow1996.(ЬMИED¡) 16:18, 27 September 2013 (UTC)
- How does someone using Google Chrome have ads targeted to them based on their interests? Wnt (talk) 16:33, 27 September 2013 (UTC)
- Google sees what kinds of things you search for etc. then throws up ads based on that data. IIRC they only collect this data while you are logged into your google account. This kind of goes with the ads that target you based on your location (collected by seeing your IP address; so I guess you could avoid that by using a proxy.) --.Yellow1996.(ЬMИED¡) 17:24, 27 September 2013 (UTC)
Locked SD Card
I recently opened a new San disk SDHC card from its cover and tried to write data to it. Both Ubuntu and windows & says that my card is locked. I use a laptop with built in SD card reader.
- I tried putting the lock tab in both positions and the result is the same.
- While sliding the tab several times, some sort of thin wire like piece dislodged from the slit into which the tab is set it could have been just dust.
Searching the internet shows that the tab does not block writing by any electrical means and that the reader senses only the position of the tab. Is it the same for ALL SD cards?. has anyone here some experience with Sony laptop on board SD card readers? 117.231.49.142 (talk) 14:17, 27 September 2013 (UTC)
usb standard question
was there a good reason at the time of inventing the first USB standard, to make it such that a usb male can plug in easily and unobtrusively into a female ethernet jack? 178.48.114.143 (talk) 15:04, 27 September 2013 (UTC)
- It was probably just a coincidence; I can't think of any good reason they would do that. --.Yellow1996.(ЬMИED¡) 17:29, 27 September 2013 (UTC)
- Well there is a reason, for example external plastic cases for laptops or computers might not have to be redesignned: just the ethernet could be replaced by USB in the same location on the motherborad. Was this the thinking? Likewise maybe some kind of tooling fit both. Like, "what horse's ass came up with the railway guage" parable... 178.48.114.143 (talk) 23:03, 27 September 2013 (UTC)
CMD unicode issues in using Pywikipediabot
Hi. I just installed the pywikipediabot framework, and am past the user config and login steps. (No, the bot is not for en-wp, and yes I have a bot flag.) The problem I'm facing is that neither cmd nor bash (git bash) seem to support unicode fonts. So while I can input non-ascii characters, I can't actually see them in the CLI. cmd shows boxes and bash shows question marks instead. I've tried adding fonts for cmd using regedit per [1] but the added font (Lohit Devanagari) doesn't show up in the properties even after the reboot.
Also, I couldn't find anything about fixed width fonts for indic scripts anywhere. Are there any in existence that are freely available and which would work with cmd/bash?--Siddhartha Ghai (talk) 21:41, 27 September 2013 (UTC)
- This seems to be a deficiency of Win32 console (not of cmd.exe or bash, which use it for its display). Firstly, have you taken the steps described at meta:Manual:Pywikibot/Windows? Next, you may have better results forcing the utf-8 code page using the chcp command (to the unsupported-but-allegedly-works page 65001), apparently by doing:
chcp 65001 > nul && python yourscript.py
Installing a new graphics card
If this isn't the right place for this, could you please point me to a place where I could get help?
I want a new graphics card, but I'm not great when it comes to computer hardware. My concerns are manyfold. I want a new card because:
- When this computer was built for me, the graphics card was the one old component from my old computer that got re-used.
- The old card now overheats so much that I have to play everything on lowest possible graphics settings in order for my computer to run without restarting itself.
I know why it overheats; it's because I haven't cleaned it properly in forever. But to clean it, I have to get it out, which is something I've never actually managed to do myself. And I figure if I'm taking it out - well, its life is probably shortened already by these overheats, so why not replace it entirely? I really hate going inside the guts of a computer, so maybe this will forestall having to open it up again.
But I have several lack-of-knowledge problems, and I'm hoping you can help.
- I can't figure out how to get this card out. It's an Nvidia GT430 and apparently it clips in somewhere at the bottom, but...Well, I can't figure it. I tried Googling but I get nothing but endless reviews from 2011. I'd be surprised if anyone knew offhand, but where could I find out how to actually get the card out?
- I have been informed in the past that some cards plug into the computer's power source while some just draw their power from the motherboard. I know my card doesn't plug into anything other than the motherboard. I'd very much like it if my new card was the same. I'd also want it to draw a similar level of power, since I don't know how much extra power my computer can spare.
- I don't know if there will be any compatibility issues with...well, anything. With regards to new cards, is there anything I should be looking out for? What might it be incompatible with, if anything?
- Are there any other concerns I should have when choosing a new graphics card? Any way I can find something that would suit me? Any suggestions?
Thank you for your time. 86.181.64.123 (talk) 23:04, 27 September 2013 (UTC)