“What programming language should I learn ?” is a question often asked by people new to software development. The answer is always “it depends”. But for embedded systems, it seems C language is a must as you can see in the chart below (Source: “The 2011 Embedded Market Study” by Embedded.com). For the 2011 survey, 1886 respondents from across the embedded industry answered that their embedded project was mostly programmed in C language (62%), followed by C++ (22%), assembler (5%) and Java (2%). The other languages were all under 1%. 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
200 C# Programming Video Tutorials
Last month, 200 Android Development Video Tutorials by TheNewBoston had been uploaded to ChangingTheUnknown Youtube channel. They have now prepared another playlist with 200 C# programming video tutorials for beginners in C#. To give you an idea of what you would learn, here are the titles of the first 10 tutorials: Introduction and Installing C# 2010 Changing Forms Properties Showing MessageBoxes Variables Changing Properties With Code If Statements More on If Statements If Statements pt 3 Switch Statements Mathematical Operators You can watch the first tutorial: “C# Beginners Tutorial – 1 – Introduction and Installing C# 2010” below. 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
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
** * Copyright (C) 2009, 2010 SC 4ViewSoft SRL * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.achartengine.chartdemo.demo.chart; import org.achartengine.ChartFactory; import org.achartengine.chart.BarChart.Type; import org.achartengine.model.RangeCategorySeries; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine.renderer.SimpleSeriesRenderer; import org.achartengine.renderer.XYMultipleSeriesRenderer; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.Paint.Align; /** * Temperature demo range chart. */ public class TemperatureChart extends AbstractDemoChart { /** * Returns the chart name. * * @return the chart name */ public String getName() { return "Temperature range chart"; } /** * Returns the chart description. * * @return the chart description */ public String getDesc() { return "The monthly temperature (vertical range chart)"; } /** * Executes the chart demo. * * @param context the context * @return the built intent */ public Intent execute(Context context) { double[] minValues = new double[] { -24, -19, -10, -1, 7, 12, 15, 14, 9, 1, -11, -16 }; double[] maxValues = new double[] { 7, 12, 24, 28, 33, 35, 37, 36, 28, 19, 11, 4 }; XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); RangeCategorySeries series = new RangeCategorySeries("Temperature"); int length = minValues.length; for (int k = 0; k < length; k++) { series.add(minValues[k], maxValues[k]); } dataset.addSeries(series.toXYSeries()); int[] colors = new int[] { Color.CYAN }; XYMultipleSeriesRenderer renderer = buildBarRenderer(colors); setChartSettings(renderer, "Monthly temperature range", "Month", "Celsius degrees", 0.5, 12.5, -30, 45, Color.GRAY, Color.LTGRAY); renderer.setBarSpacing(0.5); renderer.setXLabels(0); renderer.setYLabels(10); renderer.addXTextLabel(1, "Jan"); renderer.addXTextLabel(3, "Mar"); renderer.addXTextLabel(5, "May"); renderer.addXTextLabel(7, "Jul"); renderer.addXTextLabel(10, "Oct"); renderer.addXTextLabel(12, "Dec"); renderer.addYTextLabel(-25, "Very cold"); renderer.addYTextLabel(-15, "Cold"); renderer.addYTextLabel(-5, "Quite cold"); renderer.addYTextLabel(5, "OK"); renderer.addYTextLabel(15, "Decent"); renderer.addYTextLabel(25, "Warm"); renderer.setMargins(new int[] {30, 70, 10, 0}); renderer.setYLabelsAlign(Align.RIGHT); SimpleSeriesRenderer r = renderer.getSeriesRendererAt(0); r.setDisplayChartValues(true); r.setChartValuesTextSize(12); r.setChartValuesSpacing(3); r.setGradientEnabled(true); r.setGradientStart(-20, Color.BLUE); r.setGradientStop(20, Color.GREEN); return ChartFactory.getRangeBarChartIntent(context, dataset, renderer, Type.DEFAULT, "Temperature range"); } } |
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 […]
200 Android Development Video Tutorials
If you’ve ever wanted to learn how to develop applications for Android but reading books bores you, you now have the chance to teach yourself Android software development with 200 video tutorials (about 20 hours). The videos have been uploaded to ChangingTheUnknown Youtube channel and can be accessed via TheNewBoston – Android playlist. To give you an idea of what you’ll learn, here are the titles of the first 10 tutorials: Download and Install the Java JDK Installing Eclipse and Setting up the ADT Installing Android SDK and Set up Emulator Setting up an Android Project Overview of Project and Adding Folders Introduction to Layouts in XML Creating A Button in XML and Adding an ID Setting up Variables and Referencing XML ids Set up a Button with OnClickListener Using setText method for our button You can watch the first tutorial: “Android Application Development Tutorial – 1 – Download and […]
LinuxCon 2011 Presentation: Embedded Systems
The fourth presentation entitled “Embedded Systems” was presented by Tim Harder, developer at OSUOSL (Oregon State University Open Source Lab) on the 16th of August 2011 at LinuxCon 2011. Abstract: This presentation deals with software development for Embedded Systems especially focusing on Linux and open source. It describes current software development challenges such as fast software life cycle and memory footprint issues, lists several open hardware projects (Beagleboard, Pandaboard, Bug Labs, Gumstix), microcontrollers (Arduino and TI MSP430), different operating systems (Android, Meego) and toolchain build tools (Buildroot, Yocto) for embedded systems. It also explains specific challenges to embedded software development such a the numerous number of hardware platforms and software & hardware tools. Finally, it deals with the cross-compilers, emulators (e.g. qemu) and debugging tools (gdb, jtag, serial console, etc…). If you want to download the presentation slides, please go to Embedded Systems and use the download button on top of […]
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
How to Write and Submit a Linux Kernel Patch
Greg Kroah-Hartman has a very good tutorial about writing and submitting a patch to the Linux kernel. The video is over 1 year old but this is still relevant. The materials for this tutorial are available via git: git clone git://github.com/gregkh/kernel-tutorial.git Alternatively, you can also download a copy of the presentation slides. The actual presentation is divided into 6 parts: git basics (git branch, git clone…) Kernel coding style (Details can be found in Documentation/CodingStyle) Fixing a file (with scripts/checkpatch.pl scripts) Generating a patch (with git -diff) Email the patch (with scripts/get_maintainer.pl and git send-email) Q&A If you want to skip the git basics and kernel coding style parts (although I don’t recommend it), fast forward to 13:33. All patches by in the linux kernel are checked by at least 2 persons. Before submitting a patch, you’ll have to make sure of the following (Checklist): Kernel builds with patch applied […]