Wikipedia:Reference desk/Archives/Computing/2015 August 4

Computing desk
< August 3 << Jul | August | Sep >> August 5 >
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.


August 4 edit

Skylake questions edit

With Skylake (microarchitecture) expected to be announced soon:

  1. How long will it be before you can buy computers with it?
  2. Will they cost more than current models?
  3. Will they be significant;y faster than current models? Bubba73 You talkin' to me? 04:49, 4 August 2015 (UTC)[reply]

IT careers edit

I want to go in ( IT ), i have never learned anything about IT, no knowledge what so ever, did not do grade 11 12, but i know that i still can study IT as i dont need grade 11 12, but what i dont know is where do i start, can i start with (ADIT) Associate’s degrees in Information Technology — Preceding unsigned comment added by 41.160.10.196 (talk) 07:30, 4 August 2015 (UTC)[reply]

IT careers go from manning a help desk to designing computer chips. What do you want to do? Do you want to help people? Do you want to draw pictures? Do you want to shuffle files around? Do you want to make web pages? Do you want to monitor security logs all day? Whatever you do, it is important to note that you are already stating that you are too special to go to school like everyone who will be looking to hire you. That doesn't make them view you as special. There is no replacement for an education when looking to get hired by someone who has an education. 75.139.70.50 (talk) 13:01, 4 August 2015 (UTC)[reply]

Trying to get apt to work in Fedora 22 edit

After running the following commands to install dpkg and apt:

sudo dnf install dpkg
sudo dnf install apt

and creating /etc/apt/sources.list with the following content:

deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse

and finally

sudo apt-get update

I get the following error:

E: Type 'deb' is not known in on line 1 in source list /etc/apt/sources.list

How to fix this so that I can install packages from .deb repositories on Fedora? Don't tell me to just use dnf, I'm willing to perform a very complicated procedure for this. Czech is Cyrillized (talk) 11:44, 4 August 2015 (UTC)[reply]

Please understand that even when you get apt to run, you will not get what you want. Apt is for dpkg systems. Yum/Dnf is for rpm systems. They do not read one another's files. So, assume you have a program FOO. It is a required file installed by Yum/Dnf for something you installed. Now, you use Apt to install a new program BAR. It required FOO. So, Apt will install the dpkg version of FOO - overwriting the previously installed FOO. That will very likely break the programs that were previously using FOO. Now, it turns out you also installed FOO-devel for something. Apt didn't overwrite FOO-devel, so now you have FOO and FOO-devel of different versions. What about FOO-libs or FOO-extras. You've just trashed your install by mixing repositories. Most Fedora users trash their installs by using multiple Yum repositories. You will be trashing yours even quicker by using Apt. That said - there is an RPM version of Apt called Apt-RPM. You cannot use it to install dpkg files though. So, this comes down to WHY you want to install Apt. You say you want to install a Debian package - which is compiled for Debian, not Fedora. Yes, there is a HUGE difference. Debian and Fedora are both "Linux", but they very different from one another. In my opinion, you should be asking "How can I install XXXXXXX on Fedora?" instead of "How can I get Apt running to install an incompatible program on my Fedora machine?" 75.139.70.50 (talk) 12:58, 4 August 2015 (UTC)[reply]

Format(file extension) to contain 7.1 surround sound audio? edit

  Resolved

Hello everyone. I was wondering what file extension/file format would be used to playback 7.1 surround sound audio. I found the MP3 Surround format that can do 5.1, but what format can do 7.1? I am into music mixing and production. And I am wanting to mix my music in 5.1 surround sound. But I am curious as to what format is used to playback 7.1 audio. I also am curious as to what tools would be used to playback and to write to a 7.1 format on windows. Thanks for your help in advance. —SGA314 I am not available on weekends (talk) 14:08, 4 August 2015 (UTC)[reply]

Well in a pinch mkv is the file format. As for mixing in 7.1, i'm sure the pro production tools from Adobe and Avid would do it, but you're getting into a whole different realm there. A complicated and expensive realm. I'm not aware of any cheap and easy ways to get into 7.1. it's more of a "theater" format than a music format. I own a few HD DVD music disks and even those DVDA only supports up to 5.1 Vespine (talk) 23:19, 4 August 2015 (UTC)[reply]
MKV is just a file container. It can contain codecs support 7.1 audio but then again I suspect you could also put it in AVI without violating most spec since you don't have to worry about B-frames and stuff like that. Okay you may or may not have VBR which can cause issues with AVI, but then again since you don't have to worry about the video, I don't think this it's so much of a concern. (I'm not completely sure if a audio only AVI is compliant but no real reason you couldn't just put a tiny black video.) MP4/M4A is another alternative and more popular than MKV or AVI for audio only files. I think it's the same for multichannel audio although as you mentioned this is normally up to 5.1.

As for audio codecs, AAC allows up to 48.16 channels and some other stuff besides. Then there are the Dolby and DTS codecs. Or you could just use LPCM. I suspect a number of the lossless codecs also support multichannel to some extent (they may or may not have good interchannel compression.)

Nil Einne (talk) 00:01, 5 August 2015 (UTC)[reply]

Ah ok thank you. I am sure if I did a Google search I can find a tool to mix 7.1 audio. Thanks for the explanation. —SGA314 I am not available on weekends (talk) 13:57, 5 August 2015 (UTC)[reply]

If people learn Lisp or Haskell to increase their understanding about how computers work... edit

... why don't they keep using Lisp or Haskell after they got enlighten? --Jubilujj 2015 (talk) 21:59, 4 August 2015 (UTC)[reply]

Because there are pragmatically other more useful programming languages? What kind of answer do you expect? Programming languages all have different pros and cons, most of which actually have nothing to do with learning how a computer works. In fact, it seems to me that NOT needing to understand how a computer works would be an advantage for some programming languages. What programing language someone uses often has nothing to do with how useful or "good" a programing language is, often it's down to other factors like ubiquity, interoperability, backward compatibility etc. Vespine (talk) 23:10, 4 August 2015 (UTC)[reply]
The language is not up to them to decide? Asmrulz (talk) 00:19, 5 August 2015 (UTC)[reply]
If you really want to know how a computer works, forget about learning complex computer languages. Just learn about a very simple computer language like BASIC and learn the following topics. Computer architecture and Processor design and Microprocessor. You should learn how a BASIC source code get converted into Machine Language. You will get a much better understanding of how computer works. 175.45.116.59 (talk) 00:30, 5 August 2015 (UTC)[reply]
Some keep using them after reaching enlightenment. Some don't get enlightened.
Use of Haskell outside an academic environment: [1].
Use of Lisp, quoting someone: "Please don't assume Lisp is only useful for Animation and Graphics, AI, Bioinformatics, B2B and E-Commerce, Data Mining, EDA/Semiconductor applications, Expert Systems, Finance, Intelligent Agents, Knowledge Management, Mechanical CAD, Modeling and Simulation, Natural Language, Optimization, Research, Risk Analysis, Scheduling, Telecom, and Web Authoring" --Scicurious (talk) 00:55, 5 August 2015 (UTC)[reply]
Those two languages seem to me to be so abstract as to actively hide how computers work "under the hood". You need something considerably more low-level...I learned this with MIX - you might try it's successor MMIX. Perhaps even better, why not use an actual (albeit simple) computer? Pick up an Arduino board and start off learning how to turn an LED on and off using machine code. SteveBaker (talk) 05:16, 5 August 2015 (UTC)[reply]
The question makes a false presumption: Functional programming languages have nothing to do with how computers work. They are based on the mathematics paradigm of defining functions without regard for variable values. Computers don't work with functions. They work by shoving values from one form of storage to another. Along the way, those values are manipulated using very low-level functions, such as shifting or adding. While the total function set in modern CPUs is much larger than the old 386, the functions defined are still very rudimentary. If you want to learn how a computer works, you need to program in an assembly language and manually shove the values around in your program. Then, hopefully, you will become enlightened and you will see how your higher-level program in Java or Ruby (or whatever the flash-in-the-pan language of the day is) affects things at a low level. Does declaring that variable inside the for loop actually allocate and deallocate memory every time through the loop? Will that recursive call throw the function on the stack over and over without extra computation? Can all those floating-point divisions be changed into integer division? 75.139.70.50 (talk) 11:52, 5 August 2015 (UTC)[reply]
Actually, come to think of it - if you want the most basic way to learn how computers work, you don't even need a computer! I had an idea many years ago that may help:
http://sjbaker.org/steve/software/hiccup.html
My thought was to teach kids how computers work - by having them emulate what a computer does. They take a bunch of small boxes to represent memory locations, a pocket calculator to function as the ALU and a stack of file cards to simulate the instruction stream. They play at being a (very slow) human-powered computer. I wrote a couple of programs that they can run that produce interesting results within a single 40 minute lesson with a bunch of 8 year olds.
If you really want a gut feel for what a computer does - this is it! I've now heard from half a dozen teachers who tried this with their kids - and they report that it worked and that their kids gained a valuable understanding of how computers do what they do.
SteveBaker (talk) 15:12, 5 August 2015 (UTC)[reply]
Steve, excellent lesson plan; I have a couple of comments. You can guarantee that there's going to be one bright little so-and-so who says "Miss, it should be int main (int argc, char **argv)", and the big take-home I would have had is not so much how computers work, but how slow the speed of light is. Fizeau's experiment next week? Tevildo (talk) 21:15, 5 August 2015 (UTC)[reply]
The return type should be int, not void, but int main() with no arguments is fine. Also, getch() is not standard, and if you use it anyway you should at least include the correct header, which is <conio.h>. -- BenRG (talk) 02:07, 6 August 2015 (UTC)[reply]
The thing is, computers don't work that way any more. Almost all x86 CPUs since the Pentium Pro JIT-compile the x86 opcodes into an internal micro-op language with explicit dependencies that resembles functional-language source code or SSA, and execute it in a demand-driven order that resembles Haskell's relaxed evaluation order. Many RISC architectures are not very sequential even at the assembly language level, because of weak memory consistency, branch delay slots, delayed availability of division results, etc. Optimizing C compilers convert C code into functional code internally (most of them call it SSA, but it's the same thing), and then spit out machine code (you might as well call it bytecode) that gets functionalized again. So it doesn't seem to me that learning the sequential von Neumann execution model buys you much these days. Most programmers only need to understand the difference between constant-time and linear-time and quadratic-time algorithms, and you can teach that in any language. If you want to squeeze out an extra constant factor's worth of performance, you need to understand cache levels and execution ports and instruction decoding, not the unrealistic abstractions provided by Haskell or assembly language. -- BenRG (talk) 02:07, 6 August 2015 (UTC)[reply]
The central advantage of Haskell, at least for my students, is that it teaches them to think clearly about the mathematical structure of the problems they are working on. This is not at all the same as teaching them how computers work. Haskell doesn't really "work" the way computers work. I'm not an expert on computers, but I suspect the best way to learn how computers work would be to learn a language like BCPL, or its grandson, C. RomanSpa (talk) 22:10, 5 August 2015 (UTC)[reply]
I am not sure what the OP had in mind, but learning Lisp or Haskell (or other alternatives like ML) is more about realizing how concepts in computer languages work. --Scicurious (talk) 22:16, 5 August 2015 (UTC)[reply]