Nice GitHub collection of free online e-books

Image

https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md

Algorithms, Programming Languages, anyone can find something useful here.

Free online e-book “JavaScript Allongé”

Image

Why JavaScript Allongé?

JavaScript Allongé solves two important problems for the ambitious JavaScript programmer. First, JavaScript Allongé gives you the tools to deal with JavaScript bugs, hitches, edge cases, and other potential pitfalls.

https://leanpub.com/javascript-allonge/read

O’Reilly Open Books Project – 50+ ebooks available for reading online

Image

O’Reilly put 50+ books online in their openbook section http://oreilly.com/openbook/

Ajax, JavaScript, MySql, Linux drivers to name few topics, every developer will find something useful among the list.

Weekend Programming Challenge – Week #24 – combinatorics

Image

Problem:

Write code which calculate the number of ways you can express positive natural number N as sum of positive natural numbers.

Example:

for N=1 we have 1 way

for N=3 we have 3 ways

1+1+1
1+2
3

etc.

The rules:

You can code the solution in any programming language during the weekend and have to submit it to info@olimex.com latest on Sunday September 15th.

On Monday we will upload the solutions on GitHub https://github.com/OLIMEX/WPC

You can play with your real name or with nick if you want to be anonymous, we will not disclosure your personal info if you do not want to.

Debugging iMX233-OLinuXino with OpenOCD and SJTAG Tutorial

Image

Christian Jann posted wonderful tutorial how to setup OpenOCD and SJTAG to debug iMX233-OLinuXino.

Reading the post I see Christian had no SJTAG and borrowed one from a company, we are going definitely fix this and next week will send him one of our iMX233-OLinuXino-NANO which now is assembling and iMX233-SJTAG so he could continue with his interesting tutorials 🙂

Weekend Programming Challenge Issue #21 – Words Puzzle

Image Dwon the Rbbait-Hloe Aicle was bineinngg to get vrey treid of stintig by her sstier on the bnak, and of hvinag ninothg to do: ocne or tcwie she had peeepd itno the book her steisr was rdniaeg, but it had no peturcis or cennsavoortis in it, `and waht is the use of a book,’ tghohut Aicle `wuothit pcuietrs or ceintsovaron?’ So she was ciirdensong in her own mnid (as wlel as she cloud, for the hot day mdae her feel vrey sepley and spiutd), wethehr the psaurele of minkag a diasy-cahin wuold be wtorh the tourlbe of gnitteg up and pnicikg the disiaes, wehn senddluy a Withe Rbibat wtih pnik eeys ran csloe by her. weird hehehe but still readable 🙂 We got 14 solutions this weekend:

  • Ruby – 3
  • Python – 3
  • AWK – 2
  • C++ – 2
  • C – 2
  • C# – 2

The solutions are on GitHub as usual https://github.com/OLIMEX/WPC/tree/master/ISSUE-21 Have fun and do not forget to participate as there will be new ranking list at Issue-30 and you have chances to get the WPC official T-shirt 🙂

When (X+1==X) is true or how Friday Free Board Quiz became Brainstorm

Image Each Friday we run Quiz on Twitter and give away one of our boards. This runs for more than year now and it very popular. Usually the questions I ask there are related to Hardware to make balance with the Weekend Programming Challenge. Last Friday the question was: “define X in such way that (X+1 == X) is true” my idea was that if X is big enough due to the computer arithmetic precision the statement above will be evaluated as true. so my answer was: #define X 1.0/0.0 The Quiz runs for one hour and for my big surprise this became real brainstorm and I got many correct answers which were not like mine: #define X FLT_MAX float x = 1e20 double X = INFINITY; int a() {static int x=0; return x++;} #define X a() #define X 1|1 #define X 1||1 #define X std::numeric_limits<double>::infinity() var X= 1.7976931348623157E+10308 #define x=log(0) #define X 2 && 1 #define X 1,1 well done! … although I still try to figure out why #define X 1,1 works 🙂

Learn Vim Progressively online tutorial

Image While browsing this weekend I stumbled upon this page http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/ This is one of the best Vim step by step turorials which I have seen. You start with the very basic commands which will allow you to edit some text without knowing all features, then guides you through more and more complex commands which allow you to mastering the Vim use.

Do we really need faster computers to write more bloated software?

Image

It’s crazy how powerful the hardware becomes nowadays, every three to six months the productivity doubles at least in the ARM world.

Now we have 4-core RK3188 Cortex-A9 running at 1.8Ghz, After three months there will be an 8-core new processor, then a 16-core etc.

I start asking myself do we really need such powerful processors? Even A10 a single core Cortex-A8 at 1Ghz is capable of decoding and playing video. Then what the hell you need more? Can you watch 16 videos at same time?

The only consequence  of the powerful hardware I see is that programmers write more and more bloated software on it. They become lazier, because the hardware is fast they do not try to learn algorithms nor to optimize their code – why use quick sort when my computer can sort the array for a microsecond using bubble sort?

This is crazy!

Back in 1980s Borland Turbo Pascal 3.0 was on one 5″ disk and in 39KB. There was minimalistic IDE with editor, Pascal compiler, linker and run-time library, and it was compiling and linking something like 10 000 Pascal lines per second on a humble 386 Machine on 25Mhz!

A few weeks ago we installed Code Composer Studio on a 3Ghz Machine with 4GB of RAM and wrote a simple EMPTY “hello world” for AM3352 just to check if it works with our TMS320-XDS100-V3 JTAG as bare metal programming.

After scratching the HDD for nearly 15 minutes this 1-liner code was successfully compiled!

We couldn’t believe our eyes! The programmer who did this bloatware should be publicly lynched, this is simply ridiculous! I couldn’t imagine ANYONE with common sense of ever considering working with such a compiler, so I called a friend of mine who I know uses CCS because he has no other choice.

He told me that this is absolutely correct and that he and his collegues who work with CCS have developed very bad habits during their work with it. Working with CCS makes him smoke at least two packs of cigarettes per day!

He says that usually their development process is like this: they hit the compile button then go out for coffee or to smoke while the code is being compiled, after 10-20 minutes they go back, run the code and find bugs, then they try to remember what they had changed before they hit the compile button, which, in many cases, they’ve already forgotten 🙂

Here is another blog article for the 50 bytes of source code which takes 4GB to compile.

What the hell is going on with the programming industry?

Free online Machine Learning course CS 229 from Stanford University

Image

This course provides a broad introduction to machine learning and statistical pattern recognition.

Topics include:

  • supervised learning (generative/discriminative learning,
  • parametric/non-parametric learning, neural networks,
  • support vector machines);
  • unsupervised learning (clustering, dimensionality reduction, kernel methods);
  • learning theory (bias/variance tradeoffs; VC theory; large margins);
  • reinforcement learning and adaptive control.

The course will also discuss recent applications of machine learning, such as to robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing.

You can access course materials at http://cs229.stanford.edu/materials.html

Previous Older Entries Next Newer Entries