My view was always that people shouldn’t use arduinos for simple tasks that can be completed by some discrete logic chip or a 555 timer. I have even resorted to believing people that do this is stupid and have even said it indirectly once or twice. The truth is that I am the one in the wrong and there are many other people thinking the same thing and hopefully with the aid of this post I will be able to convince at least a person or two otherwise.
Why do I believe that I was wrong? Because the arduino is just a tool nothing more nothing less. If someone wants to use a arduino or an raspberry pi , let them. Logic gates is just a tool , if someone wants to use , let them. Analogue circuits is just a tool , if someone wants to use , let them. Why do I need to know how an astable transistor network works if I want to blink an LED? The point remains is that we humans make tools for our selves and continually improve them. That is all an arduino is. the same goes for an raspberry pi. Sure its not the most cost effective way to do things , or is it? How many tasks can a micro controller complete versus what a 555 can do? Each iteration of electronics adds another layer of abstraction. This school of thought that the person does not know enough need to stop. The person knows enough if the project was a success or something new was learned along the way.
The only counter argument I can think of is in production scenarios. Where the cost out weighs the difficulty of using the correct technology. If you are a novice trying to mass produce something i would rather suggest you ask for an second opinion and then continue with your product.
At the end of the day the price to obtain knowledge is almost always justifiable , else we wouldn’t have gone to the moon and would not have built the large hadron collider. Also if the person really are interested in how electronics works they would learn it when they want to.
We all know that a simple password is stupid and that we all should use secure passwords that is long , contain lower case , upper case numerical and non alphanumerical characters. The trouble with this is , that unlike computers , we humans don’t have very good long term memory at all and we usually have lots of passwords to remember[xkcd]. Some people decide to use password storage utilities. KeePass is an excellent example of this. Hack a Day even decided to implement a hardware based password storage utility [link].
One day listening to my lecturer rant on how brute force is not plain brute force anymore and that it now uses giant lists and even tries to common substitutions for words. He suggested that a password need not be longer than 5 letters , one upper case , one lower case , a number and two other symbols. For example $5pS7- . This is not hard to remember at all . But what happens when you want to remember 10 such passwords. It quickly becomes a mess of random chars. My solution is simple. Use a simple pass phrase and encrypt it for each site. In other words you have a base password , which is always the same, and a static algorithm that makes each password unique. For the algorithm to make a password unique you must use information regarding the place you try to log into.
Heres an example: lets chose a completely random the base word such as “outvoting”. And now we chose a random piece of information. In this case , lets chose the length of the name of the site we log on to. For wordpress it would be 9 and gmail it would be 5. Lastly we need an algorithm. Lets say our algorithm will replace the nth to (nth + 3) letters of our base phrase with 3&0 . So for gmail we would get outv3%0ng and for wordpress it would become &0tvotin3 . I wrapped the replacement once it exceed the length of the base phrase. if we logon onto Hack a Day we would use 0utvoti3&. Thats it!
I find this method very easy to remember and although it may be cumbersome at the start , later you will find yourself entering your passwords just as fast as if you were typing from memory. For the site information there is quite a few data points you could use including length of name , color of logo/background basic shape of logo , vowels and etc. Anything you can easily see from the site you log onto forms good data. And the realm of algorithms to apply is nearly infinite. One tip is to make sure your resulting password meets though password requirements or you may not be able to use this technique on all your accounts if you don’t. Worst case if someone guesses your password is that one account will be compromised. Unless they get very very lucky and guess your algorithm and data point (which you should also keep private). Basically you only need to remember three things namely : A base phrase , datapoint and a modification algorithm.
One thing that often happens to me is that while explaining a slightly technical subject to a noob is that they would interrupt me and blatantly say they are an idiot. This act just completely pisses me off. They are actively using the excuse of being an idiot. I once had someone visit me while i was coding and he looked to the screen and said that he will never be able to code. I told him i would teach him the basics and he just stood up and left saying that hes not smart. Why do we live in a world where it is an justifiable excuse to be stupid? It is seen as some sort of disability and like all disabilities you are expected to feel sorry for them. I say bullshit with this. I understand not everyone is a genius and not everyone can be an engineer , but that certainly is no excuse to not think. Its like saying I will never be as fast as Usain bolt and thus i will never try to even walk..