Wikipedia:Reference desk/Archives/Computing/2011 November 21

From Wikipedia, the free encyclopedia
Computing desk
< November 20 << Oct | November | Dec >> November 22 >
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.


November 21[edit]

I think I have a trojan[edit]

I am using AVG 2012, but it won't remove it completely, what can I do? What program can I get to remove it? I don't have any money, so it would have to be free.Luciferwildcat (talk) 00:22, 21 November 2011 (UTC)[reply]

This is a screenshot of one of the pages that shows up
Use Spybot first. If you don't pick anything up at first, you may need to run it in safe mode. You may want to install Microsoft Security Essentials as well and do a scan. Probably also want to make sure your browser's up to date, or chuck on [Google Chrome]]. Nevard (talk) 00:35, 21 November 2011 (UTC)[reply]

Lucifer, that is just a website trying to get you to click a button. ¦ Reisio (talk) 07:26, 21 November 2011 (UTC)[reply]

If I have firefox, how can I check for updates? And is spybot and microsoft security essentials free? And where can I download them? — Preceding unsigned comment added by Luciferwildcat (talkcontribs) 09:12, 21 November 2011 (UTC)[reply]

The Mozilla Firefox article has relevant links. As for the other two programs, which are indeed free. Nevard (talk) 10:50, 21 November 2011 (UTC)[reply]
They are not completely free though, the spy one only removes 100 items, but detected 1480, and if I wanted the rest removed I had to pay up. If I uninstall and reinstall 15 more times will it work 100 at a time? Essentials didn't remove anything, but its from Microsoft so obviously a piece of shit. In any case they did remove some bugs so thanks for the advice.Luciferwildcat (talk) 07:33, 22 November 2011 (UTC)[reply]
You might want to make sure you actually downloaded Spybot, using the official site linked from the article would be a good idea. As are the two suggestions from Smartse. Nevard (talk) 08:02, 22 November 2011 (UTC)[reply]

Malwarebytes and SUPERAntiSpyware are also worth using if the previous tools don't get rid of it. Alternatively, you could install ubuntu and probably not need any AV software SmartSE (talk) 12:28, 21 November 2011 (UTC)[reply]

Purge everything related to the wifi connection in Ubuntu[edit]

My Wifi connection gets lost every 1 minute (and reconnects within seconds). I don't know exactly where the problem is. How can I reinstall everything related to the wifi? (in Ubuntu). Quest09 (talk) 15:15, 21 November 2011 (UTC)[reply]

Have you asked at Ubuntuforums yet? They're pretty knowledgeable about problems like this. If you ask them, you'll need to provide more information, such as when it stopped working (was there a major installation at the time?) Magog the Ogre (talk) 16:47, 21 November 2011 (UTC)[reply]

CompTIA certification[edit]

Where should I start to get A+ certified? I have a degree in computer science so many of the topics will be easy for me. Magog the Ogre (talk) 16:55, 21 November 2011 (UTC)[reply]

If you haven't seen it already, knowledgebuster.com lets you take practice tests for the CompTIA. You might be surprised, though, as the questions are not necessarily stuff you would learn on a traditional Comp Sci course (I failed a couple of practices). You will need to take the test through one of the registered test centres, run by Pearson or Prometric. These may be based in FHE colleges (community college in the US?) or in private companies. College-run tests may be subsidised, but you might have to do the whole course. Private companies will either just let you turn up and do the exam, or will run a short course aimed at getting you to pass the test (rather than learning more generally). Private companies may cost more. You will need to book your test through one of the above sites - check both as they list different testing centres. If you've done any of the Microsoft certifications, the process is quite similar. --Kateshortforbob talk 14:17, 22 November 2011 (UTC)[reply]
So.... there's no way for me to download something and study it on my own? I do have an old computer or two laying around IIRC that I could take apart if necessary. Magog the Ogre (talk) 01:47, 23 November 2011 (UTC)[reply]
I happen to have a CompTIA A+ Certification. I also studied computer science in college and found it was of little help in earning my certification, as computer science emphasizes programming with a light overview of hardware. The A+ exam emphasizes hardware and software configuration. The first thing I'd do is download the exam objectives here and here and then print them out. Then, I'd Google all the terms listed and check them off once you have a good understanding of what they mean, what their speed is, their voltages, their pin layouts, etc. I also watched some video tutorials from CBT Nuggets and VTC, although those cost money. I've also heard good things about TestOut tutorials. I also read this book: [1]. It's a great book.--Best Dog Ever (talk) 03:36, 23 November 2011 (UTC)[reply]

Can SQL SELECT combine items from several rows?[edit]

I have a database with a structure like this:

 Table1UID  Identity  Date           Value
   00001    ABC       01.01.2011     43
   00002    DEF       02.01.2011     28
   00003    GHI       05.01.2011     37
   00004    ABC       05.01.2011     49
   00005    JKL       08.01.2011     28
   00006    GHI       09.01.2011     40
   00007    ABC       12.01.2011     42
   00008    MNO       23.01.2011     31

The Table1UID is unique, while the "Identity" field is non-unique. I want to make a selection that collects all (or at least several, see below) occurrences of the same "Identity" in the same row of the selection.

Identity  Table1UID1   Date1       Value1  Table1UID2   Date2        Value2   Table1UID3  Date3        Value3
   ABC    00001        01.01.2011     43   00004        05.01.2011     49     00007       12.01.2011     42
   DEF    00002        02.01.2011     28   NA           NA             NA     NA          NA             NA
   GHI    00003        05.01.2011     37   00006        09.01.2011     40     NA          NA             NA
   JKL    00005        08.01.2011     28   NA           NA             NA     NA          NA             NA
   MNO    00008        23.01.2011     31   NA           NA             NA     NA          NA             NA

I suppose I may have to put a limit to how many items I want to combine; say I want to collect the values corresponding to the first, the last, and the "middle" Table1UID (whichever way "middle" is easiest implemented). Is it possible to do this with SQL SELECT, and if so, how? I'm using Microsoft Access (ancient version), but could switch to MySQL if that makes it easier. Thanks, -NorwegianBlue talk 19:41, 21 November 2011 (UTC)[reply]

I can imagine very cludgey ways to do this involving lots of embedded SELECT queries that abuse the FIRST and LIMIT parameters to try and get successive iterations of the same values and poke them into a row, but it strikes me that this would be a very clunky way to do this (and likely to fail with regards to when there is only a first and not a second), which indicates that there's probably a smarter approach than this. But I'm not an SQL guru so I'll defer to others on that point. If you're using Access, though, my inclination would be to go about things differently, using VBA to construct this sort of thing, just because it'll be less apt to go belly-up when you hit all of those NAs... ---Mr.98 (talk) 21:27, 21 November 2011 (UTC)[reply]
You can almost do it with group_concat (MySQL - similar functions in other engines). You'd use: select Itendity, group_concat(Table1UID, Date, Value) from YourTable group by Identity. The catch is that the group_concat comes out as one column with comma-separated values. Of course it is rather each to explode a comma-separated value in a wrapper query to turn them back into independent columns. -- kainaw 21:34, 21 November 2011 (UTC)[reply]
If I were to do it as SQL, I imagine creating 3 temporary tables would be the way to go, where:
1) The first table has columns Identity, Table1UID1, Date1, and Value1 and contains the first occurrence of each Identity when sorted by Table1UID.
2) The second table has columns Identity, Table1UID2, Date2, and Value2 and contains the first occurrence of each Identity when sorted by Table1UID1, which is not in the first table.
3) The third table has columns Identity, Table1UID3, Date3, and Value3, and contains the first occurrence of each Identity when sorted by Table1UID1, in the reverse order, which is not in the first or second table.
Then the only ugly thing remaining to deal with would be Identities in the first table which aren't in the second or third tables. You might want to update the second and third tables to add the "NA" for any Identity present in the first table, but absent in those tables. After this prep, the final SELECT statement should be straightforward. StuRat (talk) 22:19, 21 November 2011 (UTC)[reply]
For a solution specific to MS SQL Server 2008 & later, you can use the ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...) to group and sequence the rows. Those partial results can then be wrapped up as a Common Table Expression (CTE) using a WITH clause that precedes a final select which selects and joins the contents of each column. The number of column groups would be fixed though. Generating a result with a dynamic number of column groups would likely require some dynamic SQL. For the three column case, you would have something like:
       DECLARE @Table1 TABLE(Table1UID INT, [Identity] VARCHAR(100), [Date] DATE, Value INT);
       INSERT @Table1
       VALUES 
           (1, 'ABC', '2011/01/01', 43),
           (2, 'DEF', '2011/01/02', 28),
           (3, 'GHI', '2011/01/05', 37),
           (4, 'ABC', '2011/01/05', 49),
           (5, 'JKL', '2011/01/08', 28),
           (6, 'GHI', '2011/01/09', 40),
           (7, 'ABC', '2011/01/12', 42),
           (8, 'MNO', '2011/01/23', 31);

       WITH CTE1 AS (
           SELECT col = ROW_NUMBER() OVER(PARTITION BY [Identity] ORDER BY Table1UID), *
           FROM @Table1
       )
       SELECT
           C1.[Identity],
           Table1UID1 = C1.Table1UID, Date1 = C1.[Date] , Value1 = C1.Value,
           Table1UID2 = C2.Table1UID, Date2 = C2.[Date] , Value2 = C2.Value,
           Table1UID3 = C3.Table1UID, Date3 = C3.[Date] , Value3 = C3.Value
       FROM CTE1 C1
       LEFT JOIN CTE1 C2 ON C2.[Identity] = C1.[Identity] AND C2.col = 2
       LEFT JOIN CTE1 C3 ON C3.[Identity] = C1.[Identity] AND C3.col = 3
       WHERE C1.col = 1
       ORDER BY C1.[Identity];
-- Tom N (tcncv) talk/contrib 01:24, 22 November 2011 (UTC)[reply]
Did you give it a run ? If so, I'd like to see your results. StuRat (talk) 03:58, 22 November 2011 (UTC)[reply]
Here are the results I get from the above. Except for a few formatting details and the limitation of being a fixed layout, this appears to match the OP's request.
Identity Table1UID1 Date1 Value1 Table1UID2 Date2 !Value2 Table1UID3 Date3 Value3
ABC 1 2011-01-01 43 4 2011-01-05 49 7 2011-01-12 42
DEF 2 2011-01-02 28 NULL NULL NULL NULL NULL NULL
GHI 3 2011-01-05 37 6 2011-01-09 40 NULL NULL NULL
JKL 5 2011-01-08 28 NULL NULL NULL NULL NULL NULL
MNO 8 2011-01-23 31 NULL NULL NULL NULL NULL NULL
Although I'm using Microsoft SQL Server, the common table expression and window functions like ROW_NUMBER() appear to be more widely implemented than I originally realized. -- Tom N (tcncv) talk/contrib 06:29, 22 November 2011 (UTC)[reply]
Thanks a lot! Unsurprisingly, the code failed miserably with my ancient (2000) Access version. I installed Microsoft Express 2008 server and management studio, and managed to run the SQL statement after having created a new empty database, by right clicking on its icon, and selecting "new query". I pasted the SQL statement into the edit window, and pushed the execute button (exclamation mark). The table that you showed appeared below the SQL code. However, the table "Table1" did not appear to have been created, as I thought it would have been (does the code only create a temporary Table1?). I found the output of the query in the tree control, but not where I expected (it was under "Databases/System databases/master/tables/dbo.Query", not under the database that I had created). I'll need to experiment a bit more, but that will have to wait till tomorrow evening! Thanks again for getting me started! --NorwegianBlue talk 22:02, 22 November 2011 (UTC)[reply]
The DECLARE @table1 TABLE(...) statement is used to define a "table variable" in SQL Server, and such tables are automatically dropped when execution of the current script completes. It can be thought of as a more convenient, but less powerful alternative to a temporary table (see [2]). What you are looking for is a persistent table which you can create using CREATE TABLE Table1 ( ... ). Changing the first statement to create a persistant table and replacing all remaining references to "@Table1" with "Table1" will give you a running script. Note that you need only create and populate the table once. -- Tom N (tcncv) talk/contrib 00:46, 23 November 2011 (UTC)[reply]
Thanks a million! Works perfectly now! --NorwegianBlue talk 19:41, 23 November 2011 (UTC)[reply]
Resolved

convert GIF to FLV[edit]

I need to do a one-time conversion of a 7-second animated gif to flv. I have Photoshop and Roxio, but they don't seem to do it. I downloaded two free programs, but neither would do it without paying. (Well one wouldn't do anything and the other put words over it and the image was slanted 45 degrees.)

Is there an easy, no-cost way to do this for one time for a small GIF? Bubba73 You talkin' to me? 22:30, 21 November 2011 (UTC)[reply]

The first reply in this question tells you how to do it, using ImageMagick and then ffmpeg. I tried it and it worked fine. Use the -r option to ffmpeg to set the framerate of the resulting FLV. -- Finlay McWalterTalk 22:53, 21 November 2011 (UTC)[reply]
What about native Windows software? Bubba73 You talkin' to me? 00:19, 22 November 2011 (UTC)[reply]
Those are native Windows software. -- Finlay McWalterTalk 01:16, 22 November 2011 (UTC)[reply]
With difficulty, I got ImageMagick, but it doesn't do anything except load the file, allow you to save it or print it, and a couple of things - no conversion. With even greater difficulty I got ffmpeg. I did the command line just as the "answer" says, but it gives the error message: "unknown input format: 'gif' ". Bubba73 You talkin' to me? 02:59, 22 November 2011 (UTC)[reply]

The file is for a student art contest. The student made a 7-second GIF animaton that won at the county level. Now it is to go to the state level, but the state requires flv. The student doesn't know how to make it an flv. My wife is coordinating it at the local level and sending the local winners on to the state competition. She asked me to convert it from GIF to FLV. I've spent about an hour and a half, I can't do it, so I have to give up. Bubba73 You talkin' to me? 04:11, 22 November 2011 (UTC)[reply]

If you can put the GIF online, I'm sure someone would be willing to do the conversion for you. Email to gifconversion@reisio.com if you like. ¦ Reisio (talk) 05:22, 22 November 2011 (UTC)[reply]

FLV sent. ¦ Reisio (talk) 06:33, 22 November 2011 (UTC)[reply]

Thanks, but when I unzipped it, all it played was 7 seconds of black, which is what I got with two of the other conversions. Could there be a problem with the GIF file? Bubba73 You talkin' to me? 15:47, 22 November 2011 (UTC)[reply]
Whoops, when I was playing it back in the default Windows Movie Player, it was showing 7 seconds of black. My wife tried it with Real Player and it worked! Thanks!! Bubba73 You talkin' to me? 16:01, 22 November 2011 (UTC)[reply]
Resolved

You guys should check out VLC sometime. ¦ Reisio (talk) 18:29, 22 November 2011 (UTC)[reply]