Wikipedia:Reference desk/Archives/Computing/2012 March 6

Source: Wikipedia, the free encyclopedia.
<
Computing
Computing desk
< March 5 << Feb | March | Apr >> March 7 >
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.


March 6

Ethernet Ports' IP Addresses

Good Afternoon!

  In a computer with multiple Ethernet ports, does each network interface (i.e. Ethernet port) have its own IP address, or does the computer have a single IP address which is shared by all of the network interfaces?

Thank you, RefDeskers!

07:15, 6 March 2012 (UTC)

Normally each port has its own IP address.
In a corner case the addresses might theoretically be the same. E.g. a router between separate subnetworks, and the router has the same private IP address on each. Such a configuration might cause problems, though, such as an ambiguity with the bind(2) system call. 88.112.59.31 (talk) 08:58, 6 March 2012 (UTC)[reply]
Oh goodness, where to begin. Every ethernet capable device has a 48 bit MAC address, each of which should be unique (like a serial number; although you can fake them, so they're no good for authentication). Those devices may connect to an IP enabled device, in which case they could possibly be assigned an IP address.
What you're talking about works on layers of abstraction... ethernet is below TCP which is below IP which is below HTTP, etc. There's a lot of those layers. And your question is mixing up about 3 of them. So while my answer is correct, I worry you may be wondering about something else... Shadowjams (talk) 09:00, 6 March 2012 (UTC)[reply]
As a supplement to the links that Shadowjams provided, the article OSI model gives an explanation about the different layers of abstraction that Shadowjams is referring to. --NorwegianBlue talk 10:09, 6 March 2012 (UTC)[reply]
Thank you for that link. I couldn't think of it at the time... I wrote my answer... OSI model is the perfect article to start with. Shadowjams (talk) 20:01, 6 March 2012 (UTC)[reply]

Vector animation

Does there exist some kind of software that would let someone define animation similar to how a vector image is described and then export the animation using a variety of parameters like length of the video, frames per second, and pixel density? --Melab±1 04:08, 6 March 2012 (UTC)[reply]

Yes, that's how Flash works, and there are other vector animation formats as well. Looie496 (talk) 06:05, 6 March 2012 (UTC)[reply]
That is not entirely what Flash was made in mind for. --Melab±1 03:02, 7 March 2012 (UTC)[reply]
Why do you say that? It's perfect for animation and Adobe Flash Professional is actually used to make animated films and television shows shown on networks like Nickelodeon. You can actually define the movie entirely in code, if you prefer. Another good tool is Toon Boom Studio. If you need 3D vectors then you're better off using a tool like 3Ds Max or Maya.—Best Dog Ever (talk) 03:24, 7 March 2012 (UTC)[reply]
You can always generate an animated SVG, then screen capture it (or convert? I don't know of any converters though). - Jarry1250 [Deliberation needed] 12:43, 6 March 2012 (UTC)[reply]
There is SVG animation, you need to know some xml, there are lot of tutorial out there... IDK about external links but.. this might help 190.60.93.218 (talk) 12:47, 6 March 2012 (UTC)[reply]
I don't think it is capable of complex animation. --Melab±1 03:15, 7 March 2012 (UTC)[reply]
Screen capture would reduce the quality and I don't trust all the software to work together properly for something like that. --Melab±1 03:03, 7 March 2012 (UTC)[reply]

Programming Languages

What programming language are programming languages written in? For example, what is BASIC written in? And what is that language written in? And so on? Thanks. Eiad77 (talk) 05:45, 6 March 2012 (UTC)[reply]

Eventually you get down to
machine language. A step above that is assembly language. StuRat (talk) 06:00, 6 March 2012 (UTC)[reply
]
What you are really asking is what language the compiler or interpreter for each language is written in. The answer is that it varies -- I think C is probably the most common choice, though. In fact, modern C compilers are themselves written in C. In the very beginning, compilers or interpreters for languages such as BASIC or FORTRAN were written in assembly language. Looie496 (talk) 06:01, 6 March 2012 (UTC)[reply]
So is an
instruction set the lowest level of a computer language? Eiad77 (talk) 06:20, 6 March 2012 (UTC)[reply
]
For all practical purposes, yes. Microcode is a level still lower, but there's no longer any connection with a programming language as it's usually understood.-gadfium 08:18, 6 March 2012 (UTC)[reply]
The language itself is defined using a programming language specification, which might be a mathematical description, a description in a natural language, or a reference implementation (e.g., a compiler that other compilers are expected to conform to). Implementations of the language (compilers or interpreters, for example) are initially written in a language that has already been implemented for the platform - but once you have a working implementation, you can write a compiler/interpreter in the language itself - this is called bootstrapping. This is popular as it means you only need knowledge of the one language to understand and help develop the implementation. 130.88.73.65 (talk) 11:21, 6 March 2012 (UTC)[reply]
Historically many were written in a combination of C and yacc/lex. The Glasgow Haskell Compiler is written in Haskell. CPython (the default Python implementation), Perl 5[1] and the earliest Java compiler are written in C. --Colapeninsula (talk)
I don't really see the difference between a self-hosting compiler than a not self hosting compiler... 190.60.93.218 (talk) 16:32, 6 March 2012 (UTC)[reply]
For most purposes there isn't any. It's only when you get into questions like "What programming language do I write a compiler in?" does the property matter. If you have a self-hosting compiler system, you don't need any other external systems in order to make changes to and re-write the compiler. - Also, as no one has mentioned it yet, the essay
Reflections on Trusting Trust (direct link) is an interesting read on the topic. Although the main point on trust is ancillary to the current topic, there's a good overview of what goes into bootstrapping a compiler - that is, how you introduce/encode a new programming concept into a compiler. -- 71.35.120.88 (talk) 16:56, 6 March 2012 (UTC)[reply
]
Bootstrapping (self-hosting) is often done out of an attitude of self-reliance, or as a form of
dogfooding. It requires extra effort (since you need at least a basic implementation in some other language to get started), but it does mean that the team building the compiler only has to think about one language. Paul (Stansifer) 19:47, 6 March 2012 (UTC)[reply
]
Thanks for all the answers everyone, it's much appreciated. Eiad77 (talk) 20:20, 6 March 2012 (UTC)[reply]

Clocks inside my computer, changing time

Hello, Wikipedians

Some software can have its use restricted time-wise. Is there any 'clock' inside my computer which such software synchs up to? I'd like to change any such clock, ie change the date, but have no idea how to do this on my own. If you know of any techniques I would be very thankful!

Thank you in advance. 83.108.140.82 (talk) 17:14, 6 March 2012 (UTC)[reply]

Changing the system time usually requires admin privileges. In all probability the person (boss? teacher? parent?) who has placed time-restrictions on your computing would not have given you such privileges, as it would make it ridiculously easy to circumvent those controls (but you knew this). Even if you changed the time, most modern OSes are set to update it automatically via
Sham 17:44, 6 March 2012 (UTC)[reply
]
Furthermore, using an invalid system time will break network and security services. For example, an SSL certificate or a Kerberos ticket is only valid during a period of time ... which must be mutually agreed on by both sides! Now that modern operating systems are highly network-enabled and highly secure, these issues may impede basic system functionality; so it's sometimes critical to have your system clock set to a correct time. You can read anecdotal stories of some of the ways a system, e.g., Windows, will break: here's an MSDN blog called SSL and System Time written by a Program Manager at Microsoft. I can attest to seeing similar "weird unexplainable system errors" when I have tried to muck with my system clock on other platforms, including Ubuntu and Red Hat Linux, and Solaris; and of course, I rely on Kerberos for authenticating my Mac to my home network. So, such problems due to "faked system time" can occur on almost any networked operating system. Nimur (talk) 19:16, 6 March 2012 (UTC)[reply]
Keeping in mind the above warnings, in Windows you normally double click on the time in the lower, right corner to bring up a full clock and calendar. If you have the proper privileges, this is where you change the time or date. StuRat (talk) 19:31, 6 March 2012 (UTC)[reply]
Isn't this another case to use Linux, which lets you do with your computer that (you own) rather than what Microsoft allows you to do? On linux, one simply syncs and its remains in perfect time until the seas boil dry/ or that astroid hits/ or what ever..--Aspro (talk) 19:41, 6 March 2012 (UTC)[reply]
That's not really a valid point. On Linux, if you are not a computer administrator (
date
. This is entirely a matter of "are you the system administrator," not "is your system's kernel open-source." And, as I have pointed out above, even if you are the system administrator, incorrectly setting your system-time will break other services, especially network and security services.
Along the same lines, your hardware's real-time clock accuracy is independent of your operating system; whether you run Linux, Windows, or NetBSD, your hardware clock will drift at whatever rate its hardware tolerances and the laws of physics dictate. This is the motivation for
network time protocol, or for using a secondary clock source. Running Linux is not sufficient to keep your clock "in perfect sync," which is why most Linux distributors pre-install an NTP sync service, ntpd. In fact, on Ubuntu, the system is pre-installed with ntpd openntpd_3.9p1+debian-1_i386, a Debian-provided port of OpenNTPD, which is not part of Linux at all; it is pulled from the OpenBSD project. Nimur (talk) 20:46, 6 March 2012 (UTC)[reply
]
OK. So, I should have said running a Linux distribution with ntpd installed. But one can instal that oneself. Linux doesn't stop you. I've just checked my clock time against a radio clock and is spot on still and nothing seems broken, so please don't try to confuse me with computer science- I just want an Operating System that works, instead of an OS that works - just. 'Linux' is open source, so yes, I can make it do what I want (-when I suss out how that is), It does not deny me those rights and sudo is often all I need. And as for having to edit the Windows registry...@#✻ !!!– forget it!--Aspro (talk) 21:43, 6 March 2012 (UTC)[reply]
What is your point? Various protocols, independent of operating system choice, require synchronized clocks. Windows 7, at least, has NTP synchronization enabled by default, and the ability to do so has been around for much longer. Any wider discussion of the relative merits of the two operating systems is irrelevant to the discussion at hand. 131.111.255.9 (talk) 06:15, 7 March 2012 (UTC)[reply]
There was a time when software was offered free (often on a 5.25" floppy glued to the front of a magazine) for a limited period of time, after which you had to pay for a code which you could enter for further access. (See Shareware and Crippleware for a little more on this topic.) Failure to enter the code would prevent the software from working, unless you worked out that you could just re-set the date on the computer and 'fool' the software that you were still in the grace period. Unfortunately, I believe that software manufacturers have got wise to this since the days when men were men and disks were floppy, and this no longer works. I'm sure there is probably some other way around these limits, but I'm not going to find it for you. - Cucumber Mike (talk) 21:28, 6 March 2012 (UTC)[reply]

Free Web Based/Hosted Bug Tracker

I'm about to release a fairly detailed tool for a game (Dwarf Fortress if you care), and I'd like to have a system setup where people could submit bugs or feature requests. All of the bug tracker software I found required that I download it and host it, which isn't an option for me at the moment. Is there something out there where I could register, create a new application, and then invite others to come and issue bugs/feature requests? Thanks! Chris M. (talk) 21:55, 6 March 2012 (UTC)[reply]

If it's open source you could check out
google code, both have issue/bug trackers. However I don't think they have free host options for non open source projects. Vespine (talk) 22:00, 6 March 2012 (UTC)[reply
]
It is going to be open source, do you happen to know if I can restrict a project on github so that I'm the only one who can update the source? I don't mind if others view or use my source for their own purposes, but I'd like to be able to control the code completely if possible. Thanks! Chris M. (talk) 22:28, 6 March 2012 (UTC)[reply]
By default, you are the only one with write permissions to your repo. Of course others can clone it, and they can submit requests for you to pull their changes back into yours, but you're not going to find your copy changing behind your back. 131.111.255.9 (talk) 06:06, 7 March 2012 (UTC)[reply]
You can always ask them just to email you bug reports. Not as good as a proper bug tracking system, of course, but it is free. StuRat (talk) 22:07, 6 March 2012 (UTC)[reply]
I'm going to be releasing it on a forum so there will be the option of just posting messages to let me know of bugs. It's partially something for myself, or any dedicated users who want to help test extensively.
Out of curiousity, what does it do? It doesn't happen to be a version of Dwarf Therapist that works on Linux, does it? Actually, wait, if it is that, lie and say that it's something else. Paul (Stansifer) 23:00, 6 March 2012 (UTC)[reply]
It's a complete rewrite World Viewer that works with the newest version along with some cool new features. Chris M. (talk) 02:14, 7 March 2012 (UTC)[reply]