Apple’s sleek $49 Mac keyboards can be hacked and infected with keystroke loggers and impossible-to-detect rootkits, according to a security researcher presenting at this year’s Black Hat/DEFCON conferences.
“Suppose you are working on a feature branch copied from your trunk. During the development process you regularly merge ”all” new changes from trunk to your branch so that the branch stays in “synch” with the work occurring on trunk. When you eventually merge your branch back to trunk, that is called a reflective (or cyclic) merge. This type of merge is problematic for Subversion, let’s look at why.”—Submerged - Subversion Blog - Subversion merge reintegrate…
By Tom White
ISBN 10: 0-596-52197-9 | ISBN 13: 9780596521974
Apache Hadoop is ideal for organizations with a growing need to process massive application datasets. Hadoop: The Definitive Guide is a comprehensive resource for using Hadoop to build reliable, scalable, distributed systems. Programmers will find details for analyzing large datasets with Hadoop, and administrators will learn how to set up and run Hadoop clusters. The book includes case studies that illustrate how Hadoop is used to solve specific problems.
Hadoop: The Definitive Guide helps you harness the power of your data. Ideal for processing large datasets, the Apache Hadoop framework is an open source implementation of the MapReduce algorithm on which Google built its empire. This comprehensive resource demonstrates how to use Hadoop to build reliable, scalable, distributed systems: programmers will find details for analyzing large datasets, and administrators will learn how to set up and run Hadoop clusters.
* Commented out code are not comments - Use version control, don’t track code changes by commenting them out. Commented out code is schizophrenic code.
* Let your reputation and code precede you - If you work on open source projects, blog, and work your network, you will get more job offers even when you aren’t looking for a job than people that are looking for a job and just email out resumes.
* Don’t make excuses for code, let it speak for itself - You are paid to find solutions using code, not find excuses for your code. ‘It worked on my machine’ is not a solution. You will not ship out your computer to the client with the application.
* Don’t take code personal - Don’t take code reviews personally, it is not about you but a business feature and the overall performance of the application.
* Your code is your career legacy - For years after you leave, those that will maintain your code will either curse you or thank you.
* Coding does not equal programming - Writing code is not the same thing as software development, one requires thought while the other does not. Just like playing with your iPod does not make you a musician.
* Code is about learning - Moore’s Law states that technology doubles every 18 months, you should keep up. If you are not learning you are doing it wrong. Every project is an opportunity to learn.
* Code is communication - People will read the code you write. Use best practices and common design patterns and idioms. Strive for simplicity over impressing the monkey on your back. Your code should communicate clearly and concisely it’s intent. Code talks, bugs walks!
* It is not the tools that make a developer - Know your tools and use them to their full power but don’t use them as a crutch! Switching between IDEs should not stop you on your tracks because you can’t find the correct code generation wizard. Michelangelo was a great artist with nothing more than a chisel and a slab of marble.
* Don’t trust your code - Trust in your coding abilities does not replace repeatable testing. Don’t trust your code, assumptions, or users.
* Code is not written in Latin - Code is not dead once the application ships. Code is always refactored, modified, re-used, and evolving. Your greatest strength is not writing mountains of new lines of code but maintaining, refactoring, and herding existing code into performing business requirements as per an agreed specification.
* Respect the API - Your API is a contract others will depend on. Keep the API clean and explicit! The least amount of methods you expose is less testing and maintenance and documentation that you need to maintain.
* Code outlives it’s intention - As much as you would like, writing your application from scratch in the latest programming language or framework will not benefit the number of end users that for one reason or another are stuck with the current version of the software. Code can outlive it’s original intention, design for extensibility and adaptability.
* Code means different things to different people - In the end, to end users code simply means the ability to do what they expect.