Someone once told me that a balanced audio connection works because of polarity. I
wish I had a rolled up newspaper so I could swat him with it on the nose. Balanced
systems are used to keep noise and interference out of systems. It is a common myth
that balancing a system involves polarity. It does not. Polarity plays a part in keeping
interference out, but the real reason balanced systems work has to do with impedance.
This type of connection is known as an unbalanced system. There is only one connection
leaving the Op-Amp in device A. The second connection is ground. In device B the signal
is brought in on one leg of the Op-Amp and the the second leg is a replica signal
sourced to ground (or reference). In other words the signal is the same except opposite
(polarity). There is absolutely nothing preventing noise and interference from entering
this system.
This is a balanced input. Notice how the input connector has 3 connections instead
of 2.
This a balanced output. Notice the 2 Op-Amps and 3 connections. The balanced system
has both connections equally referenced to ground. How this prevents interference
is an idea called Common-Mode Rejection (CMR). Because interference hits all three
wires in a cable at once, they will all have an equal level of extra noise. It is
voltage essentially. When the signal enters the Op-Amp at the input it looks at the
ground line and sees what’s on it. It then compares what it sees on the two signal
lines. It kicks out what all three have in common. Hence Common-Mode Rejection.
This is theory though. Not all inputs are perfect, and because all cables have something
called cable capacitance, voltages differ minutely on each wire within the
cable and the rejection doesn’t work as well as the theory states it should. But it
still works pretty darn well. There is a whole science devoted to developing a standard
for getting better CMR. One of my favorite resources is Jensen Transformers’ Bill
Whitlock. He is a freakin genius. Here is his seminar
handbook on balanced and unbalanced connections. This is where it all started
making sense to me.
Enjoy!
In my previous post, I started
talking about using Microsoft technologies over PHP and open source technologies.
There were a couple reasons why I chose to make the move. First, from a development
perspective, everything was object oriented. PHP was just getting started with
OOP at the time, and it wasn’t all that friendly. Second, development time was
generally cut in at least half, because of the built in controls of ASP.NET.
Third, the end result was a more rich application experience for the same reason.
The final reason comes down to the data aspect.
Pulling data from a database in PHP wasn’t easy to do. The built in support
was for MySQL, with very little, if next to nothing for SQL Server. In a lot
of cases that isn’t always a bad thing. MySQL is free. You can’t argue
with that. however, MySQL wasn’t what you would call ACID compliant. Defined,
MySQL did not have the characteristics of being Atomic, Consistent, Isolated,
and Durable. Essentially, when data goes missing, there is nothing you can do
about it. SQL Server on the other hand is very ACID compliant. This is
something you want. Period.
Once .NET 2.0 was released, a whole new paradigm came into play for data in a web
application. It was easy to access! No more, or at least next to very
little boiler plate coding was necessary for data access now. Talk about a selling
point. Especially when the developer in question is 16 going on 17.
Now that I didn’t need to worry about data access code, I could start working on figuring
out SQL. At the time t-SQL scared the crap out of me. My brain just couldn’t
work around datasets. The idea of working with multiple pieces of data at once
was foreign. I understood single valued iterations. A for loop made sense
to me. SELECTs and JOINs confused me. Mind you, I didn’t start Statistics
in math until the following year. Did SQL help with statistics, or did statistics
help me finally figure out SQL? It’s a chicken and the egg paradox.
So here I am, 17 years old, understanding multiple languages, building dozens of applications,
and attending developer conferences all the while managing my education in High School.
Sweet. I have 3 years until the next release of Visual Studio comes out.
It was here that I figured I should probably start paying more attention in school.
It’s not so much that I wasn’t paying attention, it’s just that I didn’t care enough.
I put in just enough effort to skate through classes with a passing mark. It
was also at this point in time that I made an interesting supposition.
Experts tend to agree that people who are programming geniuses are also good at math
and critical thinking or reasoning. Not one or the other, but both. Now
I’m not saying I’m a programming genius, but I suck at math. It was just never
in the cards. But, according to all those High School exams and the psychological
profiling they gather from them, my Critical Thinking and Reasoning skills are excellent.
Top 10% in Canada according to the exam results. My math skills sit around top
20-30% depending on the type.
Neurologists place this type of thinking in the left hemisphere of the brain.
The left brain is associated with verbal, logical, and analytical thinking. It excels
in naming and categorizing things, symbolic abstraction, speech, reading, writing,
arithmetic. Those who live in the left brain are very linear. Perfect
for a software developer.
The supposition I made had more to do with the Pre-Frontal Cortex of the brain.
It does a lot of work, some of which is planning complex cognitive behaviors.
Behaviors like making a list, calculating numbers, abstracting thoughts, etc.
It plans out the processes our brains use to get things done. This is true for
both sides of the brain. So, suppose you are left brain-oriented. You
are predisposed to be good at development. Now, suppose your Pre-Frontal Cortex
is very well developed, more so than the average person. It could be reasoned
that part of being a programming genius is having a well developed Pre-Frontal Cortex.
So why does this make us want to program? Find out in Part
5.