🏳️Dr. Dobb's | Good stuff for serious developers: Programming Tools, Code, C++, Java, HTML5, Cloud, Mobile, Testing
drdobbs.com
Software tools and techniques for global software development. Dr. Dobb's features articles, source code, blogs,forums,video tutorials, and audio podcasts, as well as articles from Dr. Dobb's Journal, BYTE.com, C/C++ Users Journal, and Software Development magazine.
Informa
Dr. Dobb's is part of the Informa Tech Division of Informa PLC
* [Informa PLC](https://informa.com/)
* [About us](https://informa.com/About-Us/)
* [Investor relations](https://informa.com/Investors/)
* [Talent](https://informa.com/Talent/)
This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.
**Welcome Guest** | [Log In](javascript:void\(0\)) | [Register](javascript:void\(0\)) | [Benefits](javascript:void\(0\))
Channels _▼_
* [Cloud](/cloud)
* [Mobile](/mobile)
* [Parallel](/parallel)
* [.NET](/windows)
* [JVM Languages](/jvm)
* [C/C++](/cpp)
* [Tools](/tools)
* [Design](/architecture-and-design)
* [Testing](/testing)
* [Web Dev](/web-development)
* [Jolt Awards](/joltawards)
Blogs
-----
[Al Williams](/author/Al-Williams)
December 24, 2014
[6 Comments](https://drdobbs.com/embedded-systems/things-that-go-boom/240169445#disqus_thread)
### [Things That Go Boom](/embedded-systems/things-that-go-boom/240169445)
It is easier to make a safe light bulb than to make a safe explosive.
[Read More »](/embedded-systems/things-that-go-boom/240169445)
[Andrew Koenig](/author/Andrew-Koenig)
December 22, 2014
[1 Comment](https://drdobbs.com/cpp/abstractions-for-binary-search-part-10-p/240169437#disqus_thread)
### [Abstractions For Binary Search, Part 10: Putting It All Together](/cpp/abstractions-for-binary-search-part-10-p/240169437)
After the discussions of the last few weeks, we are finally ready to build our test cases.
[Read More »](/cpp/abstractions-for-binary-search-part-10-p/240169437)
[Al Williams](/author/Al-Williams)
December 19, 2014
[Post a Comment](https://drdobbs.com/embedded-systems/the-touch-of-a-button/240169431#disqus_thread)
### [The Touch of a Button](/embedded-systems/the-touch-of-a-button/240169431)
Of course, I wasn't satisfied with the simple approach, so I added a bit of code to sense swipes much as you would find on a touchscreen phone.
[Read More »](/embedded-systems/the-touch-of-a-button/240169431)
[See all blogs »](/blogs/)
INFO-LINK
[](/)
=====
\-[](//)
TRENDING NOW
============
[RESTful Web Services: A Tutorial](https://www.drdobbs.com/web-development/restful-web-services-a-tutorial/240169069)
=====================================================================================================================
As REST has become the default for most Web and mobile apps, it's imperative to have the basics at your fingertips.
[Why Build Your Java Projects with Gradle Rather than Ant or Maven?](https://www.drdobbs.com/jvm/why-build-your-java-projects-with-gradle/240168608)
====================================================================================================================================================
The default build tool for Android (and the new star of build tools on the JVM) is designed to ease scripting of complex, multi-language builds. Should you change to it, though, if you're using Ant or Maven?
[Developer Reading List: The Must-Have Books for JavaScript](https://www.drdobbs.com/cpp/developer-reading-list-the-must-have-boo/240148421)
============================================================================================================================================
The best books for learning the basics, becoming expert, and and writing complete apps in JavaScript
Articles[](/articles/rss)
-------------------------
[Farewell, _Dr. Dobb's_](/architecture-and-design/farewell-dr-dobbs/240169421)
==============================================================================
[93 Comments](https://drdobbs.com/architecture-and-design/farewell-dr-dobbs/240169421#disqus_thread)
After 38 years of glory, the long run of _Dr. Dobb's_ has come to an end. - [Design](/architecture-and-design)
[Jolt Awards 2015: Coding Tools](/joltawards/jolt-awards-2015-coding-tools/240169420)
=====================================================================================
[1 Comment](https://drdobbs.com/joltawards/jolt-awards-2015-coding-tools/240169420#disqus_thread)
The best tools available for creating, testing, and debugging code. - [Jolt Awards](/joltawards)
[Thriving Among the APIs](/architecture-and-design/thriving-among-the-apis/240169441)
=====================================================================================
[1 Comment](https://drdobbs.com/architecture-and-design/thriving-among-the-apis/240169441#disqus_thread)
You're about to start work on designing and publishing your product's API. Now what? - [Design](/architecture-and-design)
[The Long Death of Project Hosting Sites](/web-development/the-long-death-of-project-hosting-sites/240169394)
=============================================================================================================
[4 Comments](https://drdobbs.com/web-development/the-long-death-of-project-hosting-sites/240169394#disqus_thread)
Last month, Microsoft and Google bypassed their own code hosts to post major code projects on GitHub. The once-favored hosts have begun a long, familiar decline. - [Web Development](/web-development)
[Testing for Failures with Python](/testing/testing-for-failures-with-python/240169387)
=======================================================================================
[Post a Comment](https://drdobbs.com/testing/testing-for-failures-with-python/240169387#disqus_thread)
Writing solid code means knowing that when programs fail, they do so gracefully and predictably. Unit testing verifies this. - [Testing](/testing)
[We Need More Agile IT Now!](/architecture-and-design/we-need-more-agile-it-now/240169361)
==========================================================================================
[1 Comment](https://drdobbs.com/architecture-and-design/we-need-more-agile-it-now/240169361#disqus_thread)
While IT is becoming more Agile, the rate of change in business requires even faster adoption of Agility. - [Design](/architecture-and-design)
[Clarity of Goals: The Most Important Element of Product Success](/architecture-and-design/clarity-of-goals-the-most-important-elem/240169360)
==============================================================================================================================================
[Post a Comment](https://drdobbs.com/architecture-and-design/clarity-of-goals-the-most-important-elem/240169360#disqus_thread)
Complete clarity and constant communication of goals are as important to a product's success as execution, perhaps more so. - [Design](/architecture-and-design)
[Building Node.js Projects in Visual Studio](/tools/building-nodejs-projects-in-visual-studi/240169356)
=======================================================================================================
[Post a Comment](https://drdobbs.com/tools/building-nodejs-projects-in-visual-studi/240169356#disqus_thread)
Developing server-side apps with the popular Node.js framework can now be done with the full support of Visual Studio IntelliSense, debugging, and project management. - [Tools](/tools)
[All Articles »](/articles/archives?startAt=8)
Events of Interest
==================
December 11-12. Washington, D.C. [ModevCon](https://mdc.gomodev.com/)
March 2-6, 2015 London, UK. [QCon London](https://qconlondon.com/)
March 5-8, 2015. Recife, Brazil. [Tropical Ruby](https://tropicalrb.com/)
March 17-19, 2015. Boston, MA. [O'Reilly Software Architecture Conference](https://softwarearchitecturecon.com/sa2015)
March 23-24, 2015. Palo Alto, CA. [Evans Data's 11th Annual Developer Relations Conference](https://evansdata.com/drc/2015/register.php)
April 8-16, 2015. Montreal, Canada. [PyCon 2015](https://us.pycon.org/2015/)
April 27-30, 2015. Baltimore, MD. [11th Software Engineering Institute (SEI) Architecture Technology User Network (SATURN) Conference](https://www.sei.cmu.edu/saturn/2015/)
May 4-8, 2015. Chicago, IL. [Microsoft Ignite Conference](https://ignite.microsoft.com/)
May 12-14, 2015. Zaragoza, Spain.[Protocols Plugfest Europe 2015](https://www.protocolsplugfest.com/europe/)
Videos of Past Events
=====================
September 2014. [Atlassian Summit 2014](https://summit.atlassian.com/archives/2014/keynotes/summit-2014-keynote)
September 2013. [JavaOne](https://www.oracle.com/javaone/sessions/index.html)
June 2013. [JAXConf 2013](https://marakana.com/s/post/1467/jaxconf_2013_video)
May 2013. [Google I/O](https://developers.google.com/events/io/sessions )
October 2012. [JAXLondon 2012](https://www.youtube.com/user/JAXLondonConference)
September 2012. [Strangeloop](https://github.com/strangeloop/strangeloop2012/tree/master/slides/sessions)
July 2012. [Java Language Summit](https://www.oracle.com/technetwork/java/javase/community/jvmls2012-1840099.html)
June 2012. [Google I/O 2012](https://www.drdobbs.com/web-development/google-io-2012-keynote/240003560?queryText=Google)
May 2012. [Atlassian Summit](https://www.drdobbs.com/tools/atlassian-summit/240003558)
May 2012 (paid). [Fluent Conference](https://shop.oreilly.com/product/0636920026846.do)
March 2012. [Multicore World](https://vimeo.com/album/2007822)
July 2011. [JVM Language Summit](https://www.drdobbs.com/jvm/jvm-language-summit---getting-started-gu/231600443)
News Headlines
==============
* **[biicode 2.0 Is Buzzing](/cpp/biicode-20-is-buzzing/240169447)**
* [Tools To Build Payment-Enabled Mobile Apps](/cloud/tools-to-build-payment-enabled-mobile-ap/240169446)
* [Application Intelligence For Advanced Dummies](/tools/application-intelligence-for-advanced-du/240169443)
* [Java Plumbr Unlocks Threads](/jvm/java-plumbr-unlocks-threads/240169442)
* [Parallels Supports Docker Apps](/mobile/parallels-supports-docker-apps/240169438)
* [AppGyver AppArchitect 2.0 Appears](/mobile/appgyver-apparchitect-20-appears/240169436)
* [Google's Data Processing Model Hardens Up](/cloud/googles-data-processing-model-hardens-up/240169435)
* [Did Barcode Reading Just Get Interesting?](/web-development/did-barcode-reading-just-get-interesting/240169433)
* [20x Faster Test Scripting, Seriously](/testing/20x-faster-test-scripting-seriously/240169432)
* [SmartBear Supports Selenium WebDriver](/web-development/smartbear-supports-selenium-webdriver/240169426)
* [Xamarin Editions of IP\*Works! & Integrator](/windows/xamarin-editions-of-ipworks-integrator/240169417)
* [JetBrains Upsource 1.0 Final Release](/jvm/jetbrains-upsource-10-final-release/240169415)
[More »](/news)
Most Popular
------------
[Stories](#) [Blogs](#)
* [RESTful Web Services: A Tutorial](/web-development/restful-web-services-a-tutorial/240169069)
* [Lambda Expressions in Java 8](/jvm/lambda-expressions-in-java-8/240166764)
* [Developer Reading List: The Must-Have Books for JavaScript](/tools/developer-reading-list-the-must-have-boo/240148421)
* [An Algorithm for Compressing Space and Time](/jvm/an-algorithm-for-compressing-space-and-t/184406478)
* [Why Build Your Java Projects with Gradle Rather than Ant or Maven?](/jvm/why-build-your-java-projects-with-gradle/240168608)
* [](/)
* [](/)
* [Read/Write Properties Files in Java](/jvm/readwrite-properties-files-in-java/231000005)
* [Coding the JavaFX TableView](/jvm/coding-the-javafx-tableview/240001874)
* [Easy DOM Parsing in Java](/jvm/easy-dom-parsing-in-java/231002580)
* [C++11: unique\_ptr](/cpp/c11-uniqueptr/240002708)
* [Making HTTP Requests From Java](/jvm/making-http-requests-from-java/240160966)
* [](/)
* [](/)
This month's Dr. Dobb's Journal
-------------------------------
[](/digital/20141022?k=ddjtm&cid=onedit_ds_ddjtm)
[**This month**](/digital/20141022?k=ddjtm&cid=onedit_ds_ddjtm), Dr. Dobb's Journal is devoted to mobile programming. We introduce you to Apple's new Swift programming language, discuss the perils of being the third-most-popular mobile platform, revisit SQLite on Android , **[and much more!](/digital/20141022?k=ddjtm&cid=onedit_ds_ddjtm)**
[Download the latest issue today. >>](/digital/20141022?k=ddjtm&cid=onedit_ds_ddjtm)
Upcoming Events
---------------
[Live Events](#tab_live-events "Live Events") [WebCasts](#tab_webcasts "WebCasts")
No records found
* [Changing Network Architecture Investments](https://networkcomputing.tradepub.com/c/pubRD.mpl?secure=1&sr=pp&_t=pp:&qf=w_defa4434&ch=sbx&cid=SBX_ddj_fture_Webcast_default_home&itc=SBX_ddj_fture_Webcast_default_home&K=SBX_DDJ_FT)
* [Optimizing Your Enterprise IT Architecture to Support Hybrid Work](https://www.interop.com/may24-event?keycode=sbx&cid=SBX_ddj_fture_Webcast_default_home&itc=SBX_ddj_fture_Webcast_default_home&K=SBX_DDJ_FT)
* [Understanding Cyber Attacks on Remote Workers](https://webinar.darkreading.com/1316037?keycode=sbx&cid=SBX_ddj_fture_Webcast_default_home&itc=SBX_ddj_fture_Webcast_default_home&K=SBX_DDJ_FT)
* [Demystifying IT Automation Virtual Event 4/6](https://ve.informaengage.com/virtual-events/itpro-demystifying-it-automation/?code=iwk?keycode=sbx&cid=SBX_ddj_fture_Webcast_default_home&itc=SBX_ddj_fture_Webcast_default_home&K=SBX_DDJ_FT)
* [Ransomware and BEC in the Cyber Threat Landscape: Past vs. Present, Perception vs. Reality](https://webinar.darkreading.com/1317708?keycode=sbx&cid=SBX_ddj_fture_Webcast_default_home&itc=SBX_ddj_fture_Webcast_default_home&K=SBX_DDJ_FT)
[More Webcasts\>>](/webcast/all/more.html?cid=SBX_ddj_fture_Webcast_default_home?itc=SBX_ddj_fture_Webcast_default_home)
Featured Reports
----------------
[What's this?](# "UBM Smart boxes auto deliver premium content that is contextually relevant to the article or site section where it is located")
* [State of ITSM in Manufacturing](https://techlibrary.tradepub.com/c/pubRD.mpl?secure=1&sr=pp&_t=pp:&pc=w_tean83&ch=SBX&cid=SBX_ddj_fture_Analytics_default_home&itc=SBX_ddj_fture_Analytics_default_home)
* [The Foundation for Building Scalable Applications to Fuel Customer Satisfaction and Growth](https://www.informationweek.com/whitepaper/big-data-analytics/big-data/insights-platform-the-foundation-for-building-scalable-applications-to-fuel-customer-satisfaction-and-growth-/436443?keycode=sbx&cid=SBX_ddj_fture_Analytics_default_home&itc=SBX_ddj_fture_Analytics_default_home)
* [The 2021 Security Outcomes Study](https://informationweek.com/whitepaper/cybersecurity/security/the-2021-security-outcomes-study/428733?cid=SBX_ddj_fture_Analytics_default_home&itc=SBX_ddj_fture_Analytics_default_home)
* [State of the Intelligent Information Management Industry in 2021](https://informationweek.com/whitepaper/software/information-management/state-of-the-intelligent-information-management-industry-in-2021/429133?cid=SBX_ddj_fture_Analytics_default_home&itc=SBX_ddj_fture_Analytics_default_home)
* [Why You're Wrong About Operationalizing AI](https://informationweek.com/whitepaper/big-data-analytics/big-data/why-you're-wrong-about-operationalizing-ai/428503?gset=yes&&cid=SBX_ddj_fture_Analytics_default_home&itc=SBX_ddj_fture_Analytics_default_home)
[More >>](/analytics/all/more.html?cid=SBX_ddj_fture_Analytics_default_home?itc=SBX_ddj_fture_Analytics_default_home)
Featured Whitepapers
--------------------
[What's this?](# "UBM Smart boxes auto deliver premium content that is contextually relevant to the article or site section where it is located")
* [Modernize your Security Operations with Human-Machine Intelligence](https://www.informationweek.com/whitepaper/security-management-and-analytics/cybersecurity/modernize-your-security-operations-with-human-machine-intelligence/438993?cid=SBX_ddj_fture_wp_default_home&itc=SBX_ddj_fture_wp_default_home)
* [Get the Gartner Report: SOC Model Guide](https://www.informationweek.com/whitepaper/cybersecurity/security-monitoring/get-the-gartner%C2%AE-report-soc-model-guide/436493?cid=SBX_ddj_fture_wp_default_home&itc=SBX_ddj_fture_wp_default_home)
* [The Impact of XDR in the Modern SOC](https://www.informationweek.com/whitepaper/cybersecurity/security-platforms/the-impact-of-xdr-in-the-modern-soc/436353?cid=SBX_ddj_fture_wp_default_home&itc=SBX_ddj_fture_wp_default_home)
* [5 Reasons To Move your PKI Deployment to the Cloud](https://www.informationweek.com/whitepaper/cybersecurity/security/5-reasons-to-move-your-pki-deployment-to-the-cloud/436303?cid=SBX_ddj_fture_wp_default_home&itc=SBX_ddj_fture_wp_default_home)
* [2021 Gartner Market Guide for Managed Detection and Response Report](https://www.informationweek.com/whitepaper/cybersecurity/endpoint-security/2021-gartner-market-guide-for-managed-detection-and-response-report/436213?cid=SBX_ddj_fture_wp_default_home&itc=SBX_ddj_fture_wp_default_home)
[More >>](/whitepaper/all/more.html?cid=SBX_ddj_fture_wp_default_home?itc=SBX_ddj_fture_wp_default_home)
Most Recent Premium Content
---------------------------
[Digital Issues](/digitaledition/)
**2014**
**Dr. Dobb's Journal*** [November - **Mobile Development**](https://www.drdobbs.com/digital/20141022)
* [August - **Web Development**](https://dc.ubm-us.com/i/350594)
* [May - **Testing**](https://dc.ubm-us.com/i/300036/)
* [February - **Languages**](https://dc.ubm-us.com/i/245989)
**Dr. Dobb's Tech Digest**
* [DevOps](https://www.drdobbs.com/digital/20140813)
* [Open Source](https://www.drdobbs.com/digital/20140626)
* [Windows and .NET programming](https://www.drdobbs.com/digital/20140514/)
* [The Design of Messaging Middleware and 10 Tips from Tech Writers](https://www.drdobbs.com/digital/012914/)
* [Parallel Array Operations in Java 8 and Android on x86: Java Native Interface and the Android Native Development Kit](https://www.drdobbs.com/digital/022614)
**2013*** [January - **Mobile Development**](https://www.drdobbs.com/digital/121712/?cid=ddj_premium_January2013)
* [February - **Parallel Programming**](https://www.drdobbs.com/digital/012213/?cid=ddj_premium_February2013)
* [March - **Windows Programming**](https://www.drdobbs.com/digital/022513/?cid=ddj_premium_March2013)
* [April - **Programming Languages**](https://www.drdobbs.com/digital/032513/?cid=ddj_premium_April2013)
* [May - **Web Development**](https://www.drdobbs.com/digital/042213/?cid=ddj_premium_May2013)
* [June - **Database Development**](https://www.drdobbs.com/digital/052013/?cid=ddj_premium_June2013)
* [July - **Testing**](https://www.drdobbs.com/digital/062413/?cid=ddj_premium_July2013)
* [August - **Debugging and Defect Management**](https://www.drdobbs.com/digital/072213/?cid=ddj_premium_August2013)
* [September - **Version Control**](https://www.drdobbs.com/digital/082613)
* [October - **DevOps**](https://www.drdobbs.com/digital/092313/)
* [November- **Really Big Data**](https://www.drdobbs.com/digital/102113)
* [December - **Design**](https://www.drdobbs.com/digital/111113?k=ddjtm&cid=onedit_ds_ddjtm)
**2012*** [January - **C & C++**](https://www.drdobbs.com/digital/121911/?cid=ddj_premium_January2012)
* [February - **Parallel Programming**](https://www.drdobbs.com/digital/011912/?cid=ddj_premium_February2012)
* [March - **Microsoft Technologies**](https://www.drdobbs.com/digital/021912/?cid=ddj_premium_March2012)
* [April - **Mobile Development**](https://www.drdobbs.com/digital/031912/?cid=ddj_premium_April2012)
* [May - **Database Programming**](https://www.drdobbs.com/digital/042312/?cid=ddj_premium_May2012)
* [June - **Web Development**](https://www.drdobbs.com/digital/052112/?cid=ddj_premium_June2012)
* [July - **Security**](https://www.drdobbs.com/digital/061812/?cid=ddj_premium_July2012)
* [August - **ALM & Development Tools**](https://www.drdobbs.com/digital/072312/?cid=ddj_premium_August2012)
* [September - **Cloud & Web Development**](https://www.drdobbs.com/digital/082012/?cid=ddj_premium_September2012)
* [October - **JVM Languages**](https://www.drdobbs.com/digital/092412/?cid=ddj_premium_October2012)
* [November - **Testing**](https://www.drdobbs.com/digital/102212/?cid=ddj_premium_November2012)
* [December - **DevOps**](https://www.drdobbs.com/digital/111912/?cid=ddj_premium_December2012)
Techweb