21 karma · joined May 17, 2010
Pay could be higher or lower, you will almost certainly take a cut initially but there are plenty of high paying embedded development jobs.
You could do it legally (in the US) by paying a token amount and getting a part 90 business license or possibly by using MURS frequencies instead of FRS/GMRS.
I was party to one of these a couple of years ago and if we had received good legal advice early it would have been much less expensive in the long run.
Then you can concurrently learn a programming language (IMHO based on your post, Python might be a good place to start).
You might also take a look at CSound which is a dedicated environment and programming language for sound synthesis. The CSound documentation pages also have references to a wide variety of other available systems (like Max and Reaktor).
If you are going to ultimately create audio apps for the iphone then I don't think you can avoid C/C++/Objective C but you will have an easier time doing the sound synthesis experimentation in an environment tailored to that function.
I wouldn't want to drop it though...
POE would be nice for new builds where the cabling is not a problem but I don't think it is practical for anything you would want to retrofit into an existing residential structure.
If I had to bet, 6lowpan is probably going to be the winner in the wireless IOT fabric arena.
What microcontroller/board/etc is best depends totally on your application. Do you need low power, do you need processing power, do you need a significant web management interface?
I have chosen the STM32 ARM line and 6lowpan using atmel zigbee chips but your mileage may vary.
Determining the private key given the public key in RSA-2048 requires factorizing large blocks of very large numbers which is not practical given current computing hardware. People are working on "smart" attacks that solve the factorization problem from a theoretical math angle instead of a brute force computational approach and there is some consensus that RSA-2048 may be broken in the next few years. A transition to Elliptic Curve Cryptography (ECC) is underway and RSA has never been approved for Suite-A or Suite-B encryption which might lead one to believe that the NSA has known about the weakness of RSA for a long time.
http://www.hermanmiller.com/content/hermanmiller/english/pro...
Note that a good portion of the learning curve for AVR or other microcontroller assembler is learning the hardware environment and learning about interrupts, execution environment setup, etc etc. None of this is particularly useful for malware analysis on x86 hardware.
If you are going to analyse malware under Android/etc then ARM is not such a bad idea. The PI or the BeagleBone are excellent platforms for getting started. Be aware that ARM assembler is a bit of a beast and is probably not a good first architecture to learn.
Be aware that if they file a complaint you will have to have a lawyer licensed to practice in the state where the complaint is filed (PITA).
If is far from impossible to implement, but it would be messy.
IMHO try/catch blocks for this kind of retry logic would have to be very small in scope to be practical and maintainable. Any significant complexity in the scope of the try block (multiple nested functions, etc) is going to create two very tightly coupled sets of code non-obviously separated in the source. This kind of pathological coupling is evil.
Since the scope should be kept small, I would always opt for comprehensive sanity checking before the operation rather than complex, oddly coupled code that is almost impossible to test.
On the code end, how would the exception code know what failed and what to twiddle to fix things? The logic associated with the exception code would be extremely complex and tightly coupled to the "downstream" code. It would make much more sense to validate things before performing operations you know might fail to reduce the chances that an exception would occur. Remember that executing the throw portion of an exception is extremely expensive. Exceptions should only be used for exceptional cases, not as a flow control mechanism for a common execution path.