Thursday, November 29, 2012

Short Circuit

So lately I have been getting more and more interested in doing more and more DIY projects. I have been so deep in the pure software world for a while i am looking to get into the physical computing domain a bit more.

For anyone that has similar interests, here are some sites that I find helpful:

How to Build a Robot Tutorial - Society of Robots
Arduino - HomePage
Instructables


Still kind of brain storming what I want to make as my first project. Probably a small simple robot to do the basics, like vacuum my floor.

Give me some inspiration - what cool DIY electronics have you built?



Double Checked Locking Singleton Pattern

The Singleton Design Pattern is one of the most used patterns for providing a single instance of an object. It is thought to be made Thread-Safe by having Double-Check Locking eliminate the possibility of having 2 instances of the object made by 2 separate threads. While this is true, it does still allow a possible memory exception. The following paper http://erdani.com/publications/DDJ_Jul_Aug_2004_revised.pdf shows that when looking to use a Singleton, there are alternatives that provide better thread safe protection.




Computer Science vs IT

Most people assume that all "computer people" are all the same. They all do the same work all the same way.  For those that do care to know the difference, the work they do is related and sometimes does overlap but there definitely is a subtle difference.

According to Wikipedia the definitions of each are

(IT)Information Technology -   In a business context, the Information Technology Association of America has defined information technology (IT) as "the study, design, development, application, implementation, support or management of computer-based information systems".[5] 

http://en.wikipedia.org/wiki/Information_technology

(CS)Computer Science - Is the scientific and practical approach to computation and its applications. A computer scientistspecializes in the theory of computation and the design of computational systems

http://en.wikipedia.org/wiki/Computer_science

What this means is that IT is typically geared towards a specific organization and the systems that support it. This includes but is not limited to networking infrastructure, email systems, databases, security systems, application development, data retrieval, and data manipulation.

CS is a more scientific approach to computation in the sense that it works alot more with the mathematical and data algorithms to find the most efficient way to do something. it looks to find novel innovations to computation to achieve new results. This can range from developing a new processor, to devising a new search algorithm, performing simulations. Some sub categories that are part CS is Artificial Intelligence, Computer Architecture, Computer Vision, Robotics, Compilers, and Network Architecture.

Id like to think that for the most part is that IT professionals learn how to best utilize and improve existing Technology while Computer Scientists work on developing new Technology.

Both may require programming so in that capacity they are similar but how, when, and why may differ greatly between the two. Purely Theoretical Computer Scientists may only speak in mathematical notation never really programming.

Both serve specific needs but those needs are very different. So ultimately its pretty inaccurate to lump Electrical Engineers, Computer Scientists, and Information Technology professionals into a single umbrella of IT.