Wikipedia:Reference desk/Archives/Computing/2014 May 22

Computing desk
< May 21 << Apr | May | Jun >> May 23 >
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.


May 22 edit

Where is Android Recovery stored and how to backup the stock one? edit

I've learned enough about Windows side for years, but to Android I am newbie. Before I do some experiment with my Android phone, I need to make sure I can restore it to its original state.

The Linux terminology makes my head fuzzy. I want to know what exactly the Android Recovery's files are stored on. Currently I think of it as the ROM on PC's motherboard, which allows me to configure motherboard settings when I boot the computer, with no hard drive involve because the files it uses do not located on the HDD.

To make a system image of the OS (nandroid or whatsoever), I must have administrative privilege (root or whatsoever) and then install (flash or whatsoever) a Custom Recovery like ClockworkMod. Then, from within the Custom Recovery, I can make a system image which allow me to restore the OS. But how to backup the stock Recovery? I found very little information about it on Android forums.

The final question is, what will happen to the device if the Recovery fails for some reason (provided that the OS still operate)? Will the device brick? -- Livy (talk) 02:36, 22 May 2014 (UTC)[reply]

Working with .jar files edit

I had a .jar file which was working fine until I updated my Java to the latest version, post which it mysteriously stopped working. Now nothing I do can open those files for some reason. Trying to open the .jar file in my internet browser has failed as well. Does anybody know where I might be going wrong? La Alquimista 04:43, 22 May 2014 (UTC)[reply]

try running in command line "java -jar file.jar" and see if there are any error messages — Preceding unsigned comment added by Elendal (talkcontribs) 01:19, 24 May 2014 (UTC)[reply]

Why is ROM considered to be a primary memory inspite of not loosing its data when the power supply is truned off? edit

Do any one have any idea? — Preceding unsigned comment added by Zonex shrestha (talkcontribs) 06:14, 22 May 2014 (UTC)[reply]

Because it is also random access. Primary memory needs to be fast and random access; that's what makes it primary. See Primary memory#Primary_storage. I remember the days when the operating system and BASIC were stored in ROM in some computers, and a spreadsheet and a word processor were also in ROM, so the long startup times that "Windoze" needs to load from secondary to primary memory were avoided. I'm not saying that everything was better then, but there are some advantages in having startup programmes already in primary memory (ROM), and this configuration is still used in many devices. Dbfirs 07:07, 22 May 2014 (UTC)[reply]
I'm very curious, Dbfirs: on which computer platform did you work with ROM-based application software?
To the OP: who considers ROM to be primary memory? Is this description coming from a specific book or author? Nimur (talk) 14:54, 22 May 2014 (UTC)[reply]
The BBC Master was the classic example with its paged ROMs (and EPROMs also worked -- I recall writing an EPROM to come up with the name and address of the school (the owner) and configuring the machine to display this at power-on, but it was rather a waste of an EPROM and easily removed unless superglued in place). Would you not consider ROM to be primary memory? It is "directly accessible to the CPU" in the same way as RAM. I agree that one normally thinks of RAM, not ROM, when referring to primary memory on modern computers. Dbfirs 16:56, 22 May 2014 (UTC)[reply]
Besides, these days, "ROM", "ROMs" or "roms" usually means commercial computer or console games from the 1980s or 1990s, regardless of what format they were really published on, none of which were actual ROM memory. JIP | Talk 18:13, 22 May 2014 (UTC)[reply]
I think ROM (as in "memory projected into the CPU's address space alongside RAM") is secondary (hence I think Nimur's question as to who actually considers ROM primary.) Registers and cache(s) would be primary, as they require no interfacing at all. The OP's question makes two false assumptions, that ROM is primary and that "primariness" is a matter of whether the memory's volatile or permanent. Also, strictly speaking, the terms ROM and RAM both refer to different aspects of memory ("readonliness" and access type), so something can be both read-only and random access (CD-ROMs) or rewriteable and sequential (tapes). Personally, I'm not sure how much sense the terminology makes with today's super complex hardware logic (DDR, DMA, hyper-this and multi-that), anyway Asmrulz (talk) 18:54, 22 May 2014 (UTC)[reply]
Indeed, the terminology is faulty, because it dramatically oversimplifies. "Read-only" memory implies memory that cannot be erased.... but how is that enforced? Hardware protection - like a one-time programmable fuse - is sometimes still modifiable. Sometimes it requires special modes, privileges, or additional hardware. So, "read-only" as an adjective presents us with a false dichotomy, when in actual fact there is a spectrum of hardware mechanisms that progressively make it more difficult to modify stored data. The same is really true of "random access." Modern DDR RAM has a seek time, and this is to say nothing of caches external to the memory! You can find the address timing parameters on the datasheet for the memory! Again, there is a false dichotomy between serial-access and random access. In actual fact, storage lies along a spectrum ranging from uniform access time for every addressable word, to very different seek times based on address access patterns. Compound this by all our extra complexities, like virtual addressing that has become nearly universal on almost all CPUs... so, when an introductory textbook uses terminology like "ROM" and "RAM" as absolute definitions, they're somewhat guilty of the lie to children-method of education.
Regarding "primary" memory... I used to work on non-uniform memory access "supercomputers." My primary memory was different for each thread! I also programmed in the CUDA language for the Nvidia GPGPU memory architecture. I could rearchitect my memory layout at runtime! Today, I write software for a digital signal processor that most of my clients call a "piece of hardware." If you ask most engineers familiar with my platform, my primary memory doesn't even exist, because "hardware" can't run software! It is a source of confusion to many colleagues, all who are well-educated engineers. So once again, "primary" memory presents us with a very authoritative-sounding adjective, but in actual fact, the idea is very subjective. Nimur (talk) 14:46, 23 May 2014 (UTC)[reply]
Asmrulz, if you think that, then you'd better change the article to which I linked which says "Primary storage (or main memory or internal memory), often referred to simply as memory, is the only one directly accessible to the CPU. The CPU continuously reads instructions stored there and executes them as required." Registers and cache constitute fast primary memory, but Random Access Memory (both RAM and ROM) make up slower primary memory because they are directly accessible via the memory bus. I agree that the terminology might be less appropriate for modern hardware, but I disagree with your confusion of ROM with CD-ROM (just as I would not confuse RAM with CD-RW). CDs are not random access at byte and word level. (I realise that you were not really confusing these, just using the words differently.) "ROM" was traditionally used to refer only to the random access memory that is non-volatile but connected directly to the bus just like RAM. Dbfirs 19:47, 22 May 2014 (UTC)[reply]
it says so in my language (primary: registers, secondary: RAM, tertiary: disk drives as opposed to primary: registers and RAM, secondary: disk drives, tertiary: tape libraries). I had read that article prior to my response. I don't know where the difference stems from. As to ROM/RAM, I just remarked that (if you spell out the acronyms) they refer to different aspects of memory. I think CD's not being random access at byte level has nothing to do with anything, they're random access as opposed to tapes. RAM isn't bit-random access on any processor because you have to mask the bits by hand. RISC processors don't allow reading individual bytes from addresses not divisible by 2 or by 4, or they (or the compiler) introduce a runtime penalty, hence the necessity of such things as padding. Flash has a granularity of some Kb as seen by the controller. Anything (almost:)) can be made any granularity by introducing new abstraction layers, it's just that with CD-ROMs noone bothered to make them byte-readable in hardware Asmrulz (talk) 07:09, 24 May 2014 (UTC)[reply]
Yes, I think there are differing classifications in different texts, so the concept is flawed, as explained by Nimur above. I was using the classification used in Wikipedia, and usual in the UK. My point was that ROM (traditional usage of the acronym, not expanded to other types of "Read-Only") is connected to the memory bus and addressable at the byte or word level, so it should be in the same group as RAM (traditional usage, not general "random access at track level"). We all agree that volatility is not the issue here, and that serial access (tapes) come in the last group, with random block access (disc drives & thumb drives) in the next higher group. We disagree on whether to split the highest group into two, putting registers and cache higher than ROM and RAM. My view is that these are all directly addressable at byte or word level, with only a speed difference. Dbfirs 08:14, 24 May 2014 (UTC)[reply]

(.*)\|([\s]*)ParamName([\s]*)=([(.)-[\|]]*)ParamValue(.*) edit

Hi! Shoulnd't it match if the text contains

|ParamName= [[ParamValue

or

|ParamName = [[ParamValue

or

|ParamName =[[ParamValue

or

|ParamName=[[ParamValue

or

|ParamName= otherParam,[[ParamValue

and so on, but not

|ParamName= otherParam | otherParamName= [[ParamValue

? Thanx!--Ulisse0 (talk) 09:47, 22 May 2014 (UTC)[reply]

Your question seems to relate to regular expressions. I'm not very good at that sort of thing, but I know that, at the level of detail you are asking, specific behavior will depend on the specifics of your system. Are you using this through bash or perl, or even within vim or emacs, or somewhere else? More info and context will help you get better answers. SemanticMantis (talk) 14:39, 22 May 2014 (UTC)[reply]
Hi, sorry for the incomplete info.. .NET C# Regex class actually --Ulisse0 (talk) 15:08, 22 May 2014 (UTC)[reply]
I believe that the .Net regular expression implementation matches the ECMA-script (aka JavaScript) regex implementation, which is very close to the Perl regular expression syntax, which in turn is pretty much the de facto standard for many implementations. Looking at the expression that you supplied, I see a few problems.
  • There appears to be an extra "]" in the part between "=" and "ParamValue". The first "]" will end the "[...]" character group. The second "]" will be treated as an ordinary character to be matched. The "*" will apply to the "]", not the preceding "[...]" as I suspect that you intended.
  • There is no provision for spaces after the "=". You have included the fragment "[\s]*" elsewhere, which by the way could be simplified as "\s*".
  • The "[...]" group specifically includes the "|" character, but I believe your intent is to not allow it between between "=" and "ParamValue". If that is your intent, you might do better to use a negated character group "[^...]", which will match any character except those specified. For example "[^|]" will match any character except the vertical bar. use "[^|]*" to match any sequence of zero or more such characters.
  • Unless you have a need to match and capture everything before and after the "|ParamName= [[otherParam]]" string (and its variants), you can eliminate the leading and trailing "(.*)".
I suggest that you try one of the online regular expression testers like http://www.freeformatter.com/regex-tester.html to see how different variations of your regular expression behave. -- Tom N talk/contrib 23:51, 22 May 2014 (UTC)[reply]
Given your rather unhelpful first question... I think you're not escaping your [] when you need to. .NET regex follows the modern perl version and the egrep one too (with some tiny exceptions) and you're not escaping your character class sigils. Shadowjams (talk) 07:15, 23 May 2014 (UTC)[reply]
Ok, thanx, so the key chars must be escaped not only in pattern but in text also.. I thought that with ([(.)-[\|]]*) I coulda matched sequences of any char except for pipes but spaces included --Ulisse0 (talk) 16:43, 23 May 2014 (UTC)[reply]
After taking another look at the "([(.)-[\|]]*)" portion of your expression, I now understand that you were trying to define a sequence of zero or more "([...]*)" of any character "(.)" except "-" a vertical bar "[\|]". However, you can't nest character classes that way, and the "-" does not function as a set subtraction as you have expected. The correct syntax for what you want is "[^|]*". Note that the "|" need not be escaped within the "[...]" group, because it has no special meaning in that context, but you can still do so. A general rule of thumb is that escaping a special character will remove any special meaning, if that character has one has one. Escaping an ordinary character (letter or digit) will give it a special meaning, if such a meaning has been defined. -- Tom N talk/contrib 01:38, 24 May 2014 (UTC)[reply]

Copy and paste edit

This is a question about the "copy and paste" procedure. (If it matters at all, this refers to the Windows 8.1 operating system.) When I want to do a "copy and paste", this is what I do: I right-click the mouse; select the text I want to copy; select copy; go to the new destination location; right-click the mouse again; select paste. Or, an alternative way is that I use the Control-C and Control-V commands. So, here is my question. When I select "copy" – or when I hit Control-C – the text that I copy is "stored" somewhere in the memory of the computer (I assume). Then, when I select "paste" – or when I hit Control-V – the computer pastes the text that is in the computer's memory. If I hit Control-V several times (let's say, five times, for example), the text gets pasted five different times. I can go to as many documents or locations as I want, and keep hitting Control-V and the text that is stored in memory gets pasted as many times as I desire. So, my question is: after I have done the first "paste", is there a way to clean or clear the memory of the computer, so that that text is no longer stored for any subsequent paste commands? If I want to copy and paste the text only once, and no more than that, how can I clear that text out of the memory so that a subsequent Control-V command will not paste the text again? Thanks. Joseph A. Spadaro (talk) 22:03, 22 May 2014 (UTC)[reply]

Under normal circumstances, the buffer only holds one thing. So the usual way to "clear" it, (for example if you were copy/pasting sensitive data) is just to copy something completely innocuous. (Like the word "the")
However, there is actually a way to completely clear it. In older versions of windows there was a clipboard viewer that had a clear button, in Win7 and beyond you can follow these instructions.
74.113.53.42 (talk) 22:12, 22 May 2014 (UTC)[reply]
Thanks. Is that link working? It doesn't seem to work for me. And, yes, I want to actually clear the memory. As opposed to copy/paste a second text message (like an innocuous "the"). Thanks. Joseph A. Spadaro (talk) 22:49, 22 May 2014 (UTC)[reply]
Would copying a blank space work for you? -- Jack of Oz [pleasantries] 23:35, 22 May 2014 (UTC)[reply]
Thanks. No, I'd rather not copy a new innocuous piece of text (like "the") or even copy a blank space. Basically, I want to avoid the hassle/inconvenience of doing a second copy/paste to clear out the first copy/paste. I assumed there was some very easy button/click/command that does this. But, I guess not? Joseph A. Spadaro (talk) 20:05, 23 May 2014 (UTC)[reply]
The site referenced by 74.113.53.42 seems to have some obscuring feature that prompts the user to start clicking on "things" before content will be revealed. In my opinion, such sites are best avoided. I found a similar description of the same solution at howtogeek.com. -- Tom N talk/contrib 00:40, 23 May 2014 (UTC)[reply]
Why are you interested in it clearing the memory? Windows' internal memory procedures [in this case] are practically speaking random. So, why are you interested? Most of what you copy paste will be a miniscule fraction of your actual RAM let alone your virtual ram. And most Office programs, and many other windows-centric programs, will store large clipboard files in temp, and occasionally provide a warning to you if closing the controlling program would lose them. Shadowjams (talk) 07:13, 23 May 2014 (UTC)[reply]
Thanks. No, I am not concerned with taking up RAM or memory space. Here is my concern. Sometimes, I copy/paste ... and the text info is stored in the computer. Then, later on (by mistake), I might hit "paste" again ... or I might hit "paste", mistakenly thinking that there was different text stored in the copy command. As a result, I often find myself "pasting" the wrong text / wrong information. Sometimes (for example, when doing many emails), I quickly hit "paste", then quickly hit "send". The "send" is just a quick reflex. Then, I notice that I sent that person the wrong pasted text. It can be embarrassing or simply an inconvenient hassle to have to email a second time and say "ignore my first email; this is what I really meant to send you". So, sometimes, I "catch" this mistake too late, after I had already hit "send". So, I had assumed that there was a very quick one-step click or button or command that would quickly and easily erase/clear the stored memory of the "copy command". Then, I would just – as an automatic reflex – get in the habit of always clearing after I do my first "paste". Hope this explanation makes sense? Thanks. Joseph A. Spadaro (talk) 20:11, 23 May 2014 (UTC)[reply]
You could write a new program to clear the clipboard at any time you want - on a timer, or after every "paste" event, for example. Here are instructions (for programmers): Clipboard Operations, from MSDN. But unless you are able to modify the programs that you normally use, you cannot force those programs to clear the clipboard after each paste operation. Nimur (talk) 15:02, 23 May 2014 (UTC)[reply]
I can think of one scenario, where you are using somebody else's PC and don't want them to know. In that case, you should do a paste first, to find out what they had in the buffer, do your own cutting and pasting, then put their text back in the buffer at the end of the session. (This reminds me of Nineteen Eighty-Four, where the spy removed a speck of dust left by Winston Smith on his journal, read it, then replaced the speck of dust.) Of course, there will be lots of other records that the PC was used, and you'd need to clean up all of those, too. StuRat (talk) 15:55, 23 May 2014 (UTC)[reply]
If you're security conscious, you may simply want to erase any sensitive data to prevent the back bad guys from reading it. As you may recall the Target security breach and Heartbleed involved the bad guys actually reading what's stored in RAM. A Quest For Knowledge (talk) 16:38, 23 May 2014 (UTC)[reply]
...and now the back guys are doing it too ? :-) StuRat (talk) 12:22, 26 May 2014 (UTC) [reply]

Thanks, all. This process is way more complicated than I thought it would be. I had assumed there would be a quick, easy, convenient one-step click or button or command that would just quickly and easily erase the stored text. I was envisioning something like when I right-click on the desktop, a list pops up, and I hit "refresh" (for example). But I guess there is not a quick easy way to do this? Thanks. Joseph A. Spadaro (talk) 20:21, 23 May 2014 (UTC)[reply]

@Joseph A. Spadaro:, these instructions [1] should only take ~5 minutes to perform (similar to steps described at links above) and when you're done, you will have a right-click contextual menu item that says e.g. "clear clipboard" and does so. This is not a built-in feature of Win8, but if you are willing to spend a few minutes, you will have easy access to that feature. SemanticMantis (talk) 22:06, 23 May 2014 (UTC)[reply]
Good point. Maybe I will try that method. Thanks. Joseph A. Spadaro (talk) 17:30, 24 May 2014 (UTC)[reply]
A long while ago, back in the days of Windows 95 and XP, there seemed to be many 'clipboard management' utilities that you could download for Windows from places like download.com or came on the disks that were given free by some computer magazines. Once installed, they usually sat there, taking up space in your notification area. I've not looked, but maybe such a thing is available for newer versions of Windows (Vista, 7, 8, 8.1) that would probably still work on your Windows 8.1. An alternative approach might be to simply undo any accidental paste operation - ctrl-z usually does the trick. Astronaut (talk) 08:02, 24 May 2014 (UTC)[reply]

Thanks, all. Joseph A. Spadaro (talk) 18:23, 26 May 2014 (UTC)[reply]