Tag Info

Hot answers tagged

140

I will start from the lowest level that might be relevant (I can start from even lower level, but they are probably way too irrelevant), starting from Atom, to Electricity, to Transistors, to Logic Gates, to Integrated Circuits (Chip/CPU), and finishes at Assembly (I'd assume you are familiar with the higher levels). In the Beginning Atom Atom is a ...


53

Second screen, no other answer possible. Booting you make once a day, so you can gain 1 minute, + maybe a few minutes in filesystem access (depending of your files usage). Switching between windows, searching some closed (or not) window behind others consumes more time (you are making it multipe times / hour; according to RescueTime "On average men switch ...


51

Though they have their own internal IT team, they have asked me on what will be the hardware requirements for the live servers eg. RAM, 32 bit or 64 bit. Perhaps they figure that as the developer, you have more insight into the app's requirements than they do. You've presumably been running the application and know how much memory it requires under ...


40

Really, there is absolutely no reason to exempt developers from having anti-virus software on their machines. And overwhelmingly many reasons to require it. Most of the disadvantages you mention can be addressed by telling the anti-virus software that your development folder (the one tied to your code repository) is a trusted location. After we had done ...


31

A lot of really early work was done with 5-bit baudot codes, but those quickly became quite limiting (only 32 possible characters, so basically only upper-case letters, and a few punctuation marks, but not enough "space" for digits). From there, quite a few machines went to 6-bit characters. This was still pretty inadequate though -- if you wanted upper- ...


29

No. Nobody understands what's going on at the hardware level. Computer systems are like onions -- there are many layers, and each one depends on the layer underneath it for support. If you're the guy working on one of the outer layers, you shouldn't care too much what happens in the middle of the onion. And that's a good thing, because the middle of the ...


26

On developer machines? Yes because developers tend to download all sorts of things (both related and unrelated to work). On build machines, it's also important simply to protect yourself. It would really stink to deploy/ship your code only to find that it has a virus once it makes it to its destination.


25

First off, not all requirements are hard requirements, but rather the minimum supported hardware. If someone has less than the minimum, it may run - but not optimally, or it may not run at all. In either case, its not a supported system and the problems you have are your own. The simplest way to get hardware requirements is guess. The developer looks at ...


20

Development needs a LOT of space. We use VM images as units of configuration management for developer setups. Once you've copied the VM onto your machine you start it, update the source code from the VCS and you're running. No futzing with developer setups. Each VM image is about 20Gb. 4-5 of those. i.e. we generally need 100 to 120Gb Gb Mind you, they ...


20

CPU (its memory controller specifically) can take advantage of the fact that the memory is not mutated Advantage is, this fact saves compiler from using membar instructions when data is accessed. A memory barrier, also known as a membar, memory fence or fence instruction, is a type of barrier instruction which causes a central processing unit (CPU) ...


19

If you are on linux, you should be able to set up a "cd device" that is just a named pipe. Your api writes to the "device" and you hook the other end up to a program that lets you see what it does/convert it to a disk image. Lots of options there. See this article for info on named pipes. Kevin's answer is far easier IMO.


16

The existing answers focus on ISA changes. There are other hardware changes, too. For instance, C++ commonly uses vtables for virtual calls. Starting with the Pentium M, Intel has an "indirect branch predictor" component which accelerates virtual function calls.


15

is it my responsibly to let them know of the any specific hardware requirements which may impact the performance of the project? It is responsibility of a product provider (your company, in this case) to define minimum requirements for the successful product operation. As a responsible person within your company; it might be tech-lead of the project ...


15

In the context of the paper you linked, the words "micro-coded machine" would almost certainly refer to a Lisp Machine. At the time Lisp was beginning to get a foothold, it was hoped that it would be run (in the general case) on machines that were designed specifically to execute Lisp instructions, rather than computers with a more general instruction set ...


14

There are actually several reasons. First and probably foremost, the data that's stored in the instruction cache is generally somewhat different than what's stored in the data cache -- along with the instructions themselves, there are annotations for things like where the next instruction starts, to help out the decoders. Some processors (E.g., Netburst, ...


14

Be VERY careful here. I was recently deployed to a customer where everyone in the IT department had their VM essentially for the same reason - to enable them to have lower end PCs on the desk and then to remote into the VM and do their normal work. The experience there was not pretty. At least once per week we were running extremely slow for various ...


14

The keyword for thinking about these things is abstraction. Abstraction just means deliberately ignoring the details of a system so that you can think about it as a single, indivisible component when assembling a larger system out of many subsystems. It is unimaginably powerful - writing a modern application program while considering the details of memory ...


14

Intel had 5 pipeline stages in its original Pentium architecture. The number of stages peaked at 31 in the Prescott family, but decreased after that. Today, in the Core series II processors (i3, i5, and i7), there are 14 stages in the processor pipeline. Microarchitecture Pipeline stages P5 (Pentium) 5 P6 (Pentium 3) 10 P6 (Pentium ...


13

In my experience you get one of the following Whatever the guy you're replacing had (battered version of what everyone else has) Whatever they had in their tech stock (slightly less battered version of what everyone else has) If they had nothing to give you they would buy something new, but then manager type will see it and say "that's better than mine, ...


13

This is an excellent question. To tackle your answer one language at a time; Vietnamese Vietnamese is not using ideographic characters anymore, but its Latin set is quite wide: look at the example to see how many diacritics it uses: Tiếng Việt, hay Việt ngữ, là ngôn ngữ của người Việt (người Kinh) và là ngôn ngữ chính thức tại Việt Nam. Đây là tiếng ...


12

It can, but likely won't lead to a problem. It's just economics. If the vast majority of people lose the ability to understand the underlying architecture, and there is still a huge NEED to understand the underlying architecture, then the ones who do will have jobs and get paid more, while those who don't will only have jobs where that is not needed (and ...


12

There is no effective offline software protection for Java code. jad and 30 minutes of a decent Java coder is all what's needed to rip the "is dongle present" part of your code. Which means if you spend more than a few seconds of development time implementing it, it's probably not worth it. There could exist hardware devices which can be used to run vital ...


12

First of all, computers come with specialized hardware. Every laptop and desktop computer sold for quite a few years now has a specialized co-processor, a Graphics Processing Unit, that handles visual-processing algorithms, such as video and gaming applications require. Very large computers (e.g., "supercomputers", IBM's System Z family) have a variety of ...


11

Looks like this was discussed already on Stack Overflow. BTW, my personal opinion: two monitors is far better than one large one for productivity. Oh, and for the record, I don't like the super high resolution of 30" screens. I have good eye sight, but the font size ends up way too small at 2560x1600 and can be very tricky to change across all applications ...


11

I don't know the technical details, but apparently if an app (or the OS) is not optimized for hyper-threading, hyper-threading can actually decrease performance. Even Intel recommends turning it off in this case: The following desktop operating systems are not recommended for use with Hyper-Threading Technology. If you are using one of the ...


11

The Intel 8086 instruction set includes a variation of "ret" which adds a value to the stack pointer after popping the return address. This is useful for many Pascal implementations where the caller of a function will push arguments onto the stack before making a function call, and pop them off afterward. If a routine would accept e.g. four bytes' worth of ...


11

Stock hardware basically means "not customized," as you surmised. Which customizations it refers to depends on the context. In the context of the paper, it means a computer which is not micro-codable. Micro code is to machine code as assembly is to a high-level language. It breaks down each instruction into smaller parts. On most processors, the ...


11

It's important to distinguish between 64-bit architectures in general and the 64-bit architectures we commonly see. In an abstract sense, a 64-bit architecture just gives you wider registers (bigger numbers and more addressable memory). Looking at concrete examples of architectures, you see that the 32 to 64-bit jump was used as an opportunity to make ...


10

Yes I've worked on an app which performed better when running on a machine with HT disabled. What happened was, the original code would create twice as many as threads when run on a hyperthreaded machine (which you'd assume is sort of the whole point of HT). However, the throughput of those threads was very sensitive to the amount of cache available to the ...


10

If you've done assembly, then there are really only two or three layers left to understand: Logic gates, which is how logic is implemented via moving electrons - here it does become an electronics quesion CPU and system design, which is how logic gates are composed to form a CPU and connected with RAM and peripherals. Modern CPUs are extremely complex, but ...



Only top voted, non community-wiki answers of a minimum length are eligible