Jump to content

Wikipedia:Reference desk/Computing

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 70.49.170.168 (talk) at 06:09, 24 November 2015 (→‎Ad blockers). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Welcome to the computing section
of the Wikipedia reference desk.
Select a section:
Want a faster answer?

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.
See also:

November 19

Disguised characters?

This morning I came across some disruptive editing involving a user copying and pasting content to "new" titles of existing articles that appear to the naked eye as having the same title. I am assuming that (some) of the characters are different on an encoded level. What are the differences? I'd appreciate some tips on how I could examine them to see the differences for myself in the future. Below are the blue links to our actual articles, and the red links to the identical-seeming page titles that were created:

Thanks--Fuhghettaboutit (talk) 01:33, 19 November 2015 (UTC)[reply]

cf Homoglyph -- Finlay McWalterTalk 01:39, 19 November 2015 (UTC)[reply]
As to comparing the two - ideally there's be some web service, but I'm not aware of one. I wrote this little Python3 script for this job:
#!/usr/bin/python3
# -*- coding: utf-8 -*-

# paste the two strings you want to show into these two variables:
s="The Game (rapper)"
t="Тhе Gаmе (rарреr)"

import unicodedata

for c,d in zip(s,t):
    print ("{:s} {:s} U+{:04x} U+{:04x} {:s} {:30s} {:30s}".format(c,
                                                                   d,
                                                                   ord(c),
                                                                   ord(d),
                                                                   "!" if c!=d  else " ",
                                                                   unicodedata.name(c),
                                                                   unicodedata.name(d),
                                                               ))
which for the first two titles you mentioned will show:
T Т U+0054 U+0422 ! LATIN CAPITAL LETTER T         CYRILLIC CAPITAL LETTER TE    
h h U+0068 U+0068   LATIN SMALL LETTER H           LATIN SMALL LETTER H          
e е U+0065 U+0435 ! LATIN SMALL LETTER E           CYRILLIC SMALL LETTER IE      
    U+0020 U+0020   SPACE                          SPACE                         
G G U+0047 U+0047   LATIN CAPITAL LETTER G         LATIN CAPITAL LETTER G        
a а U+0061 U+0430 ! LATIN SMALL LETTER A           CYRILLIC SMALL LETTER A       
m m U+006d U+006d   LATIN SMALL LETTER M           LATIN SMALL LETTER M          
e е U+0065 U+0435 ! LATIN SMALL LETTER E           CYRILLIC SMALL LETTER IE      
    U+0020 U+0020   SPACE                          SPACE                         
( ( U+0028 U+0028   LEFT PARENTHESIS               LEFT PARENTHESIS              
r r U+0072 U+0072   LATIN SMALL LETTER R           LATIN SMALL LETTER R          
a а U+0061 U+0430 ! LATIN SMALL LETTER A           CYRILLIC SMALL LETTER A       
p р U+0070 U+0440 ! LATIN SMALL LETTER P           CYRILLIC SMALL LETTER ER      
p р U+0070 U+0440 ! LATIN SMALL LETTER P           CYRILLIC SMALL LETTER ER      
e е U+0065 U+0435 ! LATIN SMALL LETTER E           CYRILLIC SMALL LETTER IE      
r r U+0072 U+0072   LATIN SMALL LETTER R           LATIN SMALL LETTER R          
) ) U+0029 U+0029   RIGHT PARENTHESIS              RIGHT PARENTHESIS             
So that shows the first letter of the two strings is different (with a !) and you see that while the "good" one is a normal ASCII/Latin 'T', the other is a Cyrillic letter that, in many fonts, resembles a T but isn't one. -- Finlay McWalterTalk 02:04, 19 November 2015 (UTC)[reply]
Thanks Finlay. I'm surprised there no common and easy resource to examine these – which leaves people like me, who are quite unable to say "I just whipped up a python script", in the dark!--Fuhghettaboutit (talk) 03:52, 19 November 2015 (UTC)[reply]
This Cisco technical document, Homoglyph Advanced Phishing Attacks, notes that these kinds of characters are used as part of a very modern and increasingly-common security attack: the IDN homograph attack. The Cisco page also has links to some additional resources, including scripts and detailed explanations. Nimur (talk) 06:38, 19 November 2015 (UTC)[reply]
If you copy the URLs that link to the false titles and paste them in a text editor, you'll find that Тhе Gаmе (rарреr) is actually %D0%A2h%D0%B5_G%D0%B0m%D0%B5_(r%D0%B0%D1%80%D1%80%D0%B5r) and List оf dесеаsеd hiр hор аrtists is List_%D0%BEf_d%D0%B5%D1%81%D0%B5%D0%B0s%D0%B5d_hi%D1%80_h%D0%BE%D1%80_%D0%B0rtists in percent encoding. IE and Edge will display the URLs as such. --Paul_012 (talk) 15:57, 19 November 2015 (UTC)[reply]

Why FOLLOW sets doesn't contain epsilon?

Could anyone give an intuitive explanation for the reason why FOLLOW sets doesn't contain epsilon?It might be better if you can also provide an example.JUSTIN JOHNS (talk) 09:10, 19 November 2015 (UTC)[reply]

I haven't studied this stuff in a long time, but it's not clear to me what ε in a FOLLOW set would mean. A nonterminal X can either expand to 0 terminals or to 1 or more terminals; in the former case, ε is in FIRST(X), and in the latter case, the leftmost terminal is in FIRST(X). The substring generated by a nonterminal X can either be at the end of the string or not; in the former case $ is in FOLLOW(X), and in the latter case the leftmost following terminal is in FOLLOW(X). Maybe the role you're imagining for ε in FOLLOW sets is actually filled by $. -- BenRG (talk) 14:24, 19 November 2015 (UTC)[reply]
This was pretty incomprehensible to someone not familiar with the terminology. I'm hazarding a guess that the relevant article is LL parser. --NorwegianBlue talk 13:27, 20 November 2015 (UTC)[reply]

Does the LL parser tells anything about 'why epsilon is not included in FOLLOW sets'?I think no.JUSTIN JOHNS (talk) 06:30, 23 November 2015 (UTC)[reply]

Can a string be accepted during parsing if the input is exhausted but productions are yet to derive?

I would like to know whether a string can be accepted if the input gets exhausted but there are productions still to derive.Also I would like to know can such an issue occur in parsing?JUSTIN JOHNS (talk) 10:12, 19 November 2015 (UTC)[reply]

A string is accepted if and only if it can be generated by the grammar. If you're talking about a situation where the string is "abc", and the parser's state looks something like "a b c . X Y", then the string will be accepted iff both X and Y can generate the empty string. -- BenRG (talk) 14:26, 19 November 2015 (UTC)[reply]

Swelling of old lithium-ion batteries

I've always regarded it to be common knowledge that swelling of old lithium-ion batteries is a normal effect resulting from degradation as they age. This effect has been consistently exhibited in all the old batteries I've discarded over the past ten years, and using the "spin test" to determine that a battery has passed its prime also appears to be common knowledge among acquaintances. However, a Google search today only gives results that say swollen batteries are a dangerous situation resulting either from misuse or malfunction, and that they should be discarded immediately, with no mention of it being part of the normal ageing process. What gives? --Paul_012 (talk) 16:11, 19 November 2015 (UTC)[reply]

Spin test? [1] 220 of Borg 17:48, 19 November 2015 (UTC)[reply]
"Malfunction" may just be another word for normal "degradation as they age". This also applies to people. :-) StuRat (talk) 18:44, 19 November 2015 (UTC)[reply]

Spin test: a battery that is a cylinder...

  -
 | |
  -

...on its side will not spin well, but a battery that is slightly barrel shaped...

  -
 ( )
  -

...will spin very well.

What the spin test does is to identify batteries that are only slightly swollen -- not enough to see with your eyes.

A tiny bit of swelling is not exactly "normal" but it also isn't all that uncommon and it isn't worth worrying about.

What a tiny bit of swelling usually means is that your system either has a tiny bit of overcharging or a tiny bit of overheating.

References:

--Guy Macon (talk) 19:31, 19 November 2015 (UTC)[reply]

Lithium-ion battery convenience link.
That link I added above seemed to apply more to the little flat batteries in mobile phones, but I can see how it would still work. There are of course cases where the battery is grossly swollen, and can explode, or catch fire. Apparently on some laptops battery swelling causes the trackpad button/s to misbehave. [2]
Paul 012, it may be helpful if you can give the exact Google search you did. 220 of Borg 00:00, 20 November 2015 (UTC)[reply]
Google for lithium batteries loose lithium aging. It is in research how lithium batteries "loose" the lithium by aging. --Hans Haase (有问题吗) 11:29, 21 November 2015 (UTC)[reply]

November 20

Are there any classful public IPv4 address in use anymore.Which servers in which countries are using them.Are US gov agencies using these addresses.Cannot find answer by websearch.If a private network uses IPv6 will there be any added advantage.103.18.168.149 (talk) 07:47, 20 November 2015 (UTC)[reply]

IP address classes haven't existed since 1993. As for the IPv6 connection, it's best to just read the article and look at the differences with IPv4. One certain advantage is that the network will be futureproof. --71.119.131.184 (talk) 08:31, 20 November 2015 (UTC)[reply]

But networking texts like forouzan stallings mention and describe about classful ipv4 without mentioning the 1993 transition.willsomeone please give pointers that describe the transition was achieved in diffent countries .Please elaborate or give a source.Do they mention classful addressing to eplain subnetting103.18.170.20 (talk) 15:15, 20 November 2015 (UTC)[reply]

IP Address classes has to do with assigning IP blocks. They are not assigned by class anymore. Class is gone and has been for over a decade. Now, many people incorrectly use the term "class" to refer to the size of an IP block. It does create confusion for those who actually know what an IP class is. 209.149.115.177 (talk) 16:06, 20 November 2015 (UTC)[reply]
The texts you refer to are by authors' names and not title or edition, so it is difficult to tell if you are working from outdated information (which I suspect is the case). Try reading this Wikipedia article for more info - Classful network. Owlster59 (talk) 16:18, 20 November 2015 (UTC)[reply]

Thanks for your guidance.103.18.169.5 (talk) 16:42, 20 November 2015 (UTC)[reply]

November 21

reading / writing a file with javascript

Hi, I'm trying to write a simple game in html/css/javascript and want to be able to read / write the score, etc to/from a file, is this at all possible? I know that visualbasic scripting has Scripting.FileSystemObject. Any help/comment would be appreciated.

(ps. I have no option to google or download stuff from other sites.) — Preceding unsigned comment added by Bejacobs (talkcontribs) 11:01, 21 November 2015 (UTC)[reply]

Javascript in a web browser doesn't have untrammelled access to the user's file system, as this would be a massive security problem. The new File API allows users to grant limited access to some pages, although (because it's new) support for it is patchy. If you just want persistent storage on the client (e.g. to save state, which can be recovered the next time someone plays the game) you can use the localstorage API or even just store what you need in a cookie. -- Finlay McWalterTalk 11:09, 21 November 2015 (UTC)[reply]
If, on the other hand, you were writing in Javascript but on the server rather than the client, environments like NodeJS have a filesystem API. -- Finlay McWalterTalk 11:12, 21 November 2015 (UTC)[reply]
If you're only needing a small amount of information to be saved (less than 4096 bytes), then you can store it in a JavaScript cookie that you can create, write, read and destroy using the document.cookie interface (see: THIS for a good HOWTO document). You do need to add an expiry date to the cookie or the browser will delete it when you leave that web page - but you can set that date decades into the future and reset it each time the game is played - so it's not likely to be a problem.
The actual information will be squirreled away someplace by the browser, so it won't appear as an obvious file in the user's file system...and if you play the game on a different computer, you won't see your high score from the first session. For those reasons, storing the information in a database on the server is a much better way to go...but for a learning exercise in JavaScript, and if you don't want much more than the user's name, game preferences and a high score table - then you can certainly use a cookie. SteveBaker (talk) 13:51, 21 November 2015 (UTC)[reply]
Oh - you said you couldn't get to other sites (not even W3Schools?!?! http://www.w3schools.com -- YIKES!) - so I guess you'll need an actual example. I've added comments to the W3Schools example (I didn't test this - so I hope I didn't screw up - but it is pretty simple):
function setCookie(cname, cvalue, exdays)
{
  // cname is the name of the data (a text string),
  // cvalue is the value of that data (a text string)
  // exdays is the number of days until the cookie 'expires'
  //         (eg make exdays be 3652 for ~10 years!)

  var d = new Date();
  d.setTime(d.getTime() + (exdays*24*60*60*1000));
  var expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + cvalue + "; " + expires;
}


function getCookie(cname)
{
  // cname is the name you gave to the date in 'setCookie'
  // the return value is the 'cvalue' you gave to 'setCookie'
  // it returns the empty string if you didn't create the cookie
  // yet (eg the first time you played the game).

  var name = cname + "=";
  var ca = document.cookie.split(';');
  for(var i=0; i<ca.length; i++)
  {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1);
      if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
  }
  return "";
}

So when the program starts up you can use 'if (getCookie("highscore")=="") setCookie("highscore","0",3560) ;' - to check that the cookie exists and set the highscore to zero if it doesn't. Then at the end of each round of the game, 'var myHighScore = parseInt(getCookie("highscore"));' to fetch the previous high score and 'if (myCurrentScore > myHighScore) setCookie("highscore", myCurrentScore, 3560);' at the end of each round to save it.
SteveBaker (talk) 14:09, 21 November 2015 (UTC)[reply]

The ″cookie″ option is a good alternative. Thanks for helping me out. Bejacobs (talk) 18:22, 21 November 2015 (UTC)[reply]

C language to machine code

Couldn't detect answer from Google... what langauge stands between C to machine code?... In Windows Os or Linux Os? is it one of the assembly languages? Or anything else? if at all? 176.12.141.2 (talk) 19:30, 21 November 2015 (UTC)[reply]

It depends on the compiler - the intermediate language article lists some. -- Finlay McWalterTalk 19:36, 21 November 2015 (UTC)[reply]
It also depends on the question. From a user-level, C is typically translated to machine code. There almost always is an intermediate step to assembly language, which is just a mnemonic form of machine language - there is a 1-to-1 correspondence between assembler instructions and machine instructions. As Finlay wrote, most modern compilers have a front-end translating to an intermediate representation, which then can be transformed and optimised before it's finally translated to the machine-specific language. But this intermediate language is usually neither directly manipulated by humans nor directly executed by a machine. --Stephan Schulz (talk) 20:44, 21 November 2015 (UTC)[reply]
"...there is a 1-to-1 correspondence between assembler instructions and machine instructions." That's frequently not the case. Many (most?) modern assemblers have all kinds of bells and whistles like macros, optimization, data typing, and even things like support for object-oriented programming (see assembly language). Of course no one is (usually) forcing you to use these features, but you can't assume by default that each assembler instruction maps to a single ISA instruction. --71.119.131.184 (talk) 05:42, 22 November 2015 (UTC)[reply]
It depends on how you define "instruction": There should be a 1-to-1 correspondence between the actual opcode mnemonics and the opcodes themselves (at least, this has been the case for every processor I've worked with). The other "bells and whistles" like data typing and macros use pseudo-instructions that are only meaningful to the assembler. OldTimeNESter (talk) 21:19, 23 November 2015 (UTC)[reply]
Using the GNU C compiler, you get the choice. If you compile using "gcc -o foo foo.c" then 'foo' will be in a binary machine code. But if you compile using "gcc -S foo.c" then you'll get a file called 'foo.s' which in assembly code. But if you grab a copy of Emscripten then you can compile C code into JavaScript!
None of that has anything to do with operating systems by the way - I can do all of those things with GNU C under Windows, Linux or MacOS.
In practice, under most operating systems, you go straight from C to machine code - just because going to assembly code and then assembling that in to machine code is a pointless waste of time. However, I have on occasion had reason to believe there was a bug in the compiler - and generating human-readable assembly code was an invaluable way to figure out what was going wrong. Sometimes, it's useful to compile very short C subroutines to Assembly language in order that you can hand-optimize them when the compiler isn't doing a good job of it...although I haven't had a need to do that for about 20 years - because compilers generally write better assembly code than I do.
There are some notable exceptions to that - I often need assembly-coded inserts into C++ programs when running on a microcontroller like Arduino because some low level hardware operations can't be written in C or C++. In such cases, I write a nice 'wrapper' function in C++, compile it with the '-S' option to get the assembly code, then hand edit it to put in a couple of lines of assembly code to do something very specific (eg turning interrupts on and off).
SteveBaker (talk) 21:05, 23 November 2015 (UTC)[reply]

My phone contacts disappeared even though I had never synced them with iCloud. Is there any way to get them back?"

I have an iCloud account but I never use it. I wanted to eliminate it from my iPhone. But I didn't remember my password, so I tried to turn off the option o syncing my phone contacts with the iCloud account. But I have never synced it. So I turned it off. It showed a message saying that all my contacts that had been synced with iCloud would be eliminated. And all my phone contacts disappeared EVEN THOUGH I had never synced them with iCloud. Is there any way to get all those contacts back?

Posted on behalf of a user without www access by μηδείς (talk) 23:13, 21 November 2015 (UTC)[reply]

Sometime when you plug an iPhone into a PC with iTunes, it will back up the contents. This could be restored if it existed. Graeme Bartlett (talk) 09:51, 23 November 2015 (UTC)[reply]
Thanks, my friend actually thought of that solution immediately, but the phone involved belonged to someone else. At this point I've been asked to close the thread, with thanks, as hopelessly as academic. μηδείς (talk) 20:09, 23 November 2015 (UTC)[reply]
Resolved

November 22

Help with PGP

I am so confused. Okay, so I am trying to learn how to set up and use PGP. I downloaded the GPG Suite. I was attempting to follow the instructions here but I'm lost. I am on a Mac, running Snow Leopard (10.6.8). I successfully installed the program. I then set up a new email account as I want to have an anonymous one to use for encypted messages. I set up one at ghostmail.com. I then followed the instructions and used that email address as the one the instructions show on the first screenshot at the PGP program help page. I entered the email address I set up, hit generate key and it worked as shown.

I then went to the next step of "Your first encrypted mail". There's where I got completely lost. First they tell you "All you need for this first test is a sec/pub key in GPG Keychain matching the mail address used in Mail.app." I have no idea what mail.app is. After fumbling about for about a half hour, I got the idea that it may be the mail program through my Mac -- since when you search finder for "mail.app" it comes up. I've never used that once in my life (I use all web based mail directly), but I am guessing that there's some way to set an online mail server to go through that program? Anyway, I fumbled about some more attempting this. I went through the steps to set up that mail program to feed to the email I set up. On the first screen it says:

Full Name:
Email Address:
Password:

Respectively, I put in something random for my name (since I'm trying to set up something anonymous), put in the ghostmail email address, and for the password, I used the password I set up for that ghostmail account. When I clicked continue, the next screen then says "account type" and "POP" is filled in, but I could choose, in a dropdown, IMAP, Exchange 2007 or Exchange IMAP. I left POP in. It asks me to fill in "incoming mail server" so I put in the ghostmail address again (the user name and password fields below those were still populated with the ghostmail name and password I had entered). I then click continue and it says every time "The POP server "NAME@ghostmail.com" is not responding. Try checking the network connection..."

I have no idea if this is even what was meant when the help page told me to go to "mail.app", and if I'm even close to on the right track, I need handholding.--108.46.96.158 (talk) 04:02, 22 November 2015 (UTC)[reply]

It's too late now, but Wikipedia has an article on Mail.app (or a redirect, anyway).
GhostMail's help page says they don't support external email clients. If you plan to use this email account only to send and receive GPG messages, you can sign up with an ordinary email provider (that supports IMAP), since the client-side GPG encryption will protect your emails even if the provider has lousy security practices (if you do it right). An email provider that supports POP/IMAP/SMTP will tell you the appropriate server names (often imap.provider.com and smtp.provider.com). You should probably pick IMAP over POP. Basically you are on the right track but you were doomed to failure because GhostMail doesn't support Mail.app. -- BenRG (talk) 06:23, 22 November 2015 (UTC)[reply]
Good answer! To clarify one bit: When you are asked for the "incoming server", the system expects a server address (either an IP address or, more typically nowadays, a hostname), not an email address. A hostname has no "@" and in this case, typically 3 dot-separated parts, as in Ben's examples. --Stephan Schulz (talk) 08:20, 22 November 2015 (UTC)[reply]
Backing up a bit, there are two completely different ways of using email these days:
  1. Traditionally, you used an email client, dedicated to the task of sending and reading email. The client talked to a mail server using a protocol also dedicated to the task; the two best-known ones are POP and IMAP. (Even more popular, though no one ever thinks about it and I don't know what it's called, is whatever protocol Microsoft Outlook uses to talk to Microsoft's Exchange and other servers.)
  2. These days, many people use web mail. You use an ordinary web browser, talking to a webserver somewhere using ordinary http or https. The webserver does whatever it takes to render pages showing your mail, and letting you compose your mail, in HTML (with, these days, heavy dollops of CSS, JavaScript, and other modern web technologies).
Now, it sounds like you'd like to use #2. But it sounds like GPG is all set up for #1. When it asked you to set up mail.app (and when you tried to), you were setting up an email client. It wanted you to enter the address of the mail server (one that speaks POP or IMAP), but there's not actually one of those in your picture. —Steve Summit (talk) 12:44, 22 November 2015 (UTC)[reply]


November 23

Convert SVG to JPEG or other format

Is there a good way to convert an SVG file to a format such as JPEG and retain the quality? I've done this many times by doing a screenshot, but that loses a lot of quality. I've just tried four things I found on the internet and they all give very poor results. What can I do that will retain quality? Bubba73 You talkin' to me? 00:37, 23 November 2015 (UTC)[reply]

SVG is for vector graphics, and often has simple lines and hard transitions. This is not good for JPEG - you might want to go with something like PNG. For most of these jobs, ImageMagick is very good. I've never used it with SVG (afair), but it s among the formats listed as supported. Just install it and type "convert myimage.svg myimage.png" and it will do its magic. --Stephan Schulz (talk) 01:14, 23 November 2015 (UTC)[reply]
Thanks. I just tried that on Windows 10 and it was running, but then gave an error message: "ImageMagick Studio library and utility programs has stopped working. A problem caused the program to stop working correctly..." Bubba73 You talkin' to me? 01:56, 23 November 2015 (UTC)[reply]
Well, despite the error message, it did actually convert it to a PNG, but the resolution is poor. Bubba73 You talkin' to me? 01:58, 23 November 2015 (UTC)[reply]
Does ImageMagick have a parameter that sets the resolution during the conversion ? StuRat (talk) 02:09, 23 November 2015 (UTC)[reply]
I don't know about Windows, but yes, ImageMagick convert does have about a zillion options, listed at http://www.imagemagick.org/script/convert.php. Try convert -density 300 myimage.svg myimage.jpg, and maybe throw -antialias in there. Careful - as far as I know, the order of files and options is significant, so you want to set the density before the file name ("sample at that density"). --Stephan Schulz (talk) 07:44, 23 November 2015 (UTC)[reply]
Open the svg file in Inkscape and use "save as". Select "Cairo .PNG" or "Extended metafile .EMF". Both can be opened in Windows paint (Windows 7). Then save as jpeg. --NorwegianBlue talk 07:22, 23 November 2015 (UTC)[reply]
It would be better to keep it as a PNG unless you have to use JPEG. JPEG is designed for photographs (the P of the acronym) and does a terrible job on line art. -- BenRG (talk) 07:33, 23 November 2015 (UTC)[reply]
Yes, I'll link Vector graphics, raster graphics and Rasterisation for good measure.
You absolutely cannot convert SVG to JPEG, PNG, BMP, GIF or any other raster format without losing some quality - period. In SVG, a circle has an origin and a radius - and that's about it. In a raster format, you have an explicit list of pixels stored somehow. The centers of those pixels are at integer coordinates - and that can't ever represent a circle perfectly because PI isn't a rational number.
So, any effort to convert SVG (or any other vector format) into JPEG (or any other raster format) is 100% guaranteed to lose precision. The real question here is how much precision you actually need - once you know that, you can do the conversion and get a result that's precise enough to at least meet the precision that you need. If you're going to display your SVG-converted-to-JPEG image full-screen on a monitor that's 1900x1200 pixels, then you're going to need an image that's at least that resolution. If it's only going to be displayed on an iWatch then a mere 400x400 would be overkill. But if you then expect to be able to zoom that image without it getting blocky - then you'll need more resolution. If you're going to send your image off to a print shop and have them make a 50 foot tall poster with pixels so small that it doesn't look blurry - then you may need 50,000 x 50,000 pixels.
SVG will never be blocky, no matter how big you blow it up...but since the display device you're using uses pixels (almost certainly) then the price you pay is that the image has to be re-rendered every time it's displayed. The cost of doing that may become rather extreme if you have a very complex image.
SteveBaker (talk) 20:50, 23 November 2015 (UTC)[reply]

November 24

Ad blockers

I have heard people complaining about ads that appear while they are surfing the internet, online. In response, I have heard others say "Well, just get an ad blocker. That will solve your problems." So, what exactly is an ad blocker? What does it do, exactly? How do I get one? Where do I find them? Are they free or do I need to pay for them? Thanks. 2602:252:D13:6D70:D08A:A57B:D028:8C8 (talk) 03:43, 24 November 2015 (UTC)[reply]

Well, you could start by reading ad blocking. --70.49.170.168 (talk) 06:09, 24 November 2015 (UTC)[reply]