Top 5 Most Influential Programming Books Ever

The following question was raised on StackOverflow back in 2008: What is the single most influential book every programmer should read? If you could go back in time and tell yourself to read a specific book at the beginning of your career as a developer, which book would it be. The question has become one of the most popular question on Stackoverflow and the users have voted for their favorites books. Here are the results: Code Complete: A Practical Handbook of Software Construction Widely considered one of the best practical guides to programming, Steve McConnell’s original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices—and hundreds of new code samples—illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes […]

Drawing Charts in Android with AChartEngine Library

AChartEngine is a charting library for Android applications that currently supports the following chart types: line chart area chart scatter chart time chart bar chart pie chart bubble chart doughnut chart range (high-low) bar chart dial chart / gauge combined (any combination of line, cubic line, scatter, bar, range bar, bubble) chart cubic line chart They announced that new chart types would be added in future release (Current version is 0.7.0). You can follow the updates for the library on Google Code or Facebook at http://www.facebook.com/achartengine. You can download the aChartEngine library on Google Code. You can also download some demo code such as TemperatureChart.java which display the following chart with just 100 lines of code including comments. Here’s the code (TemperatureChart.java) to display the Chart above:

Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and […]

LinuxCon 2011 Presentation: Introduction to Python Programming Language

The third LinuxCon 2011 presentation is “Intro to Python” by Peter Krenesky, Lead Software Engineer at OSU Open Source Lab. Abstract: This presentation is a Python programming language tutorial with basics of Python including none, strings, formatting, data structures (tuple, list, dict, slices, etc…), classes (methods, inheritance, initializers, etc…), if statements, iterations and more. If you want to download the presentation slides, please go to Intro to Python and use the download button on top of the Slideshare presentation. If it does not work, you may also download a copy here or here. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. www.cnx-software.com

ARM TechCon 2011: Software & System Design Schedule

ARM Technology Conference (TechCon) 2011 will be hosted in Santa Clara on the 25-27 October 2011. There will be many events and classes related to Chip Design and Software & System Design. The Software & System Design events will take place on the 26th and 27th October 2011. Here’s the schedule for Software & System Design events for the 26th of October: Time Class Track 11 am The 2012 Compute Subsystem Creating Smarter Systems 11 am Practical Cortex Debugging: Serial Wire Viewer and ETM Tracing Developing/Debugging 11 am Integrating a CMOS Imaging Sensor into an ARM-Based Embedded Application Human Interface Design 11 am Embedded IPv6 – Now is the time Networking & Connectivity 11 am RSA & AES Libraries protected against side-channel attacks Safety & Security 11 am Introduction to the ARM Architecture The Fundamentals of ARM 12 pm Optimizing SoC development through a common design foundation Creating Smarter Systems […]

New Revision of C++ Programming Language: C++11

The Final International Draft standard (FCD) was unanimously approved on August 12th, 2011. The standard should be published this year. The draft name of the standard is C++0x, but since it will be published this year, it should probably renamed C++11, and if there are delays in its publication it could well be renamed to C++12. You can download the 1334 pages “Working Draft, Standard for Programming Language C++” to get the full details. If you don’t feel like going thru that massive document, but still want to learn about C++0x, I recommend you check the C++0x FAQ on Bjarne Stroustrup (The creator of C++) homepage. Here are some the new features and improvements: initializer-lists – Initializer lists are not just for arrays any more uniform initialization syntax and semantics template aliases (previously know as template typedef) rvalue references defaulted and deleted functions variadic templates auto – deduction of a type from […]

Compile with ARM Thumb2 to Reduce Memory Footprint and Improve Performance

ARM claims that Thumb-2 instructions (for ARM Cortex cores and all ARMv7 processors) provides performance improvements and code size optimization: Thumb-2 technology is the instruction set underlying the ARM Cortex architecture which provides enhanced levels of performance, energy efficiency, and code density for a wide range of embedded applications. For performance optimized code Thumb-2 technology uses 31 percent less memory to reduce system cost, while providing up to 38 percent higher performance than existing high density code, which can be used to prolong battery-life or to enrich the product feature set. Thumb-2 technology is featured in the  processor, and in all ARMv7 architecture-based processors. Dave Martin (Linaro) has recently posted a message entitled “ARM/Thumb-2 kernel size comparison” on Linaro mailing list:

The results provided by Linaro at not as high as those claimed by ARM, but a 20% code size reduction is still impressive. If you want to use Thumb2 to compile […]

C Code to get MAC Address and IP Address

Function in C to return the MAC Address:

Function in C to return the IP Address:

Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. www.cnx-software.com

Installing Linaro ARM Cross Toolchain on Ubuntu

You can easily install Linaro arm cross-compiler on Ubuntu 10.04 (Lucid), 10.10 (Maverick) and 11.04 (Natty) as follows: sudo apt-get install gcc-arm-linux-gnueabi This will install Linaro cross-toolchain version 4.4 on Ubuntu 10.04 and 10.10, and version 4.5 on Ubuntu 11.04. You can check the installation worked by checking the cross-compiler version jaufranc@CNX-TOWER:~$ arm-linux-gnueabi-gcc -v Using built-in specs. Target: arm-linux-gnueabi Configured with: ../src/configure -v –with-pkgversion=’Ubuntu/Linaro 4.4.4-14ubuntu4′ –with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs –enable-languages=c,c++,fortran,objc,obj-c++ –prefix=/usr –program-suffix=-4.4 –enable-shared –enable-multiarch –enable-linker-build-id –with-system-zlib –libexecdir=/usr/lib –without-included-gettext –enable-threads=posix –with-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.4.5 –libdir=/usr/lib –enable-nls –enable-clocale=gnu –enable-libstdcxx-debug –enable-objc-gc –disable-sjlj-exceptions –with-arch=armv7-a –with-float=softfp –with-fpu=vfpv3-d16 –with-mode=thumb –disable-werror –enable-checking=release –program-prefix=arm-linux-gnueabi- –includedir=/usr/arm-linux-gnueabi/include –build=i686-linux-gnu –host=i686-linux-gnu –target=arm-linux-gnueabi –with-headers=/usr/arm-linux-gnueabi/include –with-libs=/usr/arm-linux-gnueabi/lib Thread model: posix gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu4) You can also install the latest version 4.5 (recommended) on Lucid and Maverick: sudo add-apt-repository ppa:linaro-maintainers/toolchain sudo apt-get update sudo apt-get install gcc-4.5-arm-linux-gnueabi If you are using an ARM platform running Ubuntu 10.10 or higher, you could also use the native GCC compiler. sudo apt-get install […]

Exit mobile version