background preloader

Programming

Facebook Twitter

Naming as a Process Archives - Deep Roots. We all know naming is a pain in the ass and you can’t trust the names in your code.

Naming as a Process Archives - Deep Roots

But it doesn’t have to be that way. Many people try to come up with a great name all at once. This is hard and rarely works well. The problem is that naming is design. Here are the things you are typically trying to do all at once while naming: Deciding the things the code should do Deciding which things go […] The two most terrible kinds of names are also the most common: Names that mislead you Important things that are just a part of something else, so they don’t even have a name.

Rust

.NET. C++ Web. Git. PowerShell &etc. Raspberry Pi - Daily Deviations Picture Frame. I have been following the progress of the Raspberry Pi with keen interest for a while now and I’ve finally got one of my own to play with.

Raspberry Pi - Daily Deviations Picture Frame

Over the past couple of weeks I’ve been tinkering with it in the evenings and I’m absolutely blown away by this little device. With a $35 dollar price tag, the RPi is a surprisingly capable computer. You obviously won’t be doing some of the CPU intensive tasks you would be used to on your PC, but its a great way to tinker and learn and maybe find a great practical use for it along the way. Map / Reduce – A visual explanation. Map/Reduce is a term commonly thrown about these days, in essence, it is just a way to take a big task and divide it into discrete tasks that can be done in parallel.

Map / Reduce – A visual explanation

A common use case for Map/Reduce is in document database, which is why I found myself thinking deeply about this. Let us say that we have a set of documents with the following form: And we want to answer a question over more than a single document. That sort of operation requires us to use aggregation, and over large amount of data, that is best done using Map/Reduce, to split the work. Map / Reduce is just a pair of functions, operating over a list of data. From post in docs.posts select new { post.blog_id, comments_length = comments.length }; from agg in results group agg by agg.key into g select new { agg.blog_id, comments_length = g.Sum(x=>x.comments_length) }; Try Your Hand at Quantum Computing With Google's Quantum Playground. Online Learning: A Bachelor's Level Computer Science Program Curriculum (Updated)

Introduction [Update: See also the follow-up post to this piece, An Intensive Bachelor's Level Computer Science Curriculum Program.]

Online Learning: A Bachelor's Level Computer Science Program Curriculum (Updated)

A few months back we took an in-depth look at MIT’s free online Introduction to Computer Science course, and laid out a self-study time table to complete the class within four months, along with a companion post providing learning benchmarks to chart your progress. In the present article, I'll step back and take a much more broad look at com-sci course offerings available for free on the internet, in order to answer a deceptively straightforward question: is it possible to complete the equivalent of a college bachelor’s degree in computer science through college and university courses that are freely available online?

And if so, how does one do so? The former question is more difficult to answer than it may at first appear. Yet, this does not mean that all the necessary elements for such a curriculum are not freely accessible. Introductory Courses. Get a College-Level Computer Science Education with These Free Courses. A New Way For Developers To Work. Problems. The Go Programming Language.

Programming Languages - Hyperpolyglot. Firstround. Andrea Goulet and her business partner sat in her living room, casually reviewing their strategic plan, when an episode of This Old House came on television.

firstround

It was one of those moments where ideas collide to create something new. They’d been looking for a way to communicate their value proposition — cleaning up legacy code and technical debt for other companies. And here they were, face to face with the perfect analogy. “We realized that what we were doing transcended clearing out old code, we were actually remodeling software the way you would remodel a house to make it last longer, run better, do more,” says Goulet.

“It got me thinking about how companies have to invest in mending their code to get more productivity. Today, she’s CEO of Corgibytes — a consulting firm that re-architects and modernizes apps. The most popular definition of legacy code comes from Michael Feathers, author of the aptly titled Working Effectively with Legacy Code: It's code without test coverage. Interpreted Languages: Perl, PHP, Python, Ruby (Sheet One) - Hyperpolyglot. A side-by-side reference sheet sheet one: version | grammar and execution | variables and expressions | arithmetic and logic | strings | regexes | dates and time | arrays | dictionaries | functions | execution control | exceptions | threads sheet two: streams | asynchronous events | files | file formats | directories | processes and environment | option parsing | libraries and namespaces | objects | inheritance and polymorphism | reflection | net and web | gui | databases | unit tests | logging | debugging sheet two: streams | asynchronous events | files | directories | processes and environment | option parsing | libraries and namespaces | objects | inheritance and polymorphism | reflection | net and web | gui | databases | unit tests | logging | debugging version used The versions used for testing code in the reference sheet. show version How to get the version.

Interpreted Languages: Perl, PHP, Python, Ruby (Sheet One) - Hyperpolyglot

Martyr2's Mega Project Ideas List! - Share Your Project. The Programmers Idea Book – 200 Software Project Ideas and Tips to Developing Them – Ebook : The Coders Lexicon. Based on the popular web board thread, created by Martyr2 and viewed by over 350,000 visitors, this new eBook contains hundreds of platform independent programming projects, tips and more.

The Programmers Idea Book – 200 Software Project Ideas and Tips to Developing Them – Ebook : The Coders Lexicon

It features: 200 programming project ideas for all skill levels 10 different project categories Over 100 pages of project ideas Expert tips for tackling each programming project Projects for any programming language (platform independent) Programs that you can get started on in minutes! What is this ebook all about? This new ebook is chock-full of programming project ideas with each project idea featuring a difficulty level (from 1 – 10), detailed description of the project, expert tips for how to think about tackling the project in a general non-platform specific way and suggestions for making the project more advanced. The Coding Survival Guide: Habits and Pitfalls Included FREE Do you know when to use an abstract class vs an interface?

In these ebooks you get: About The Author. Instant 1:1 Help from Expert Developers. Naming is a process, not a single step « Arlo Being Bloody Stupid. Many people try to come up with a great name all at once.

Naming is a process, not a single step « Arlo Being Bloody Stupid

This is hard and rarely works well. The problem is that naming is design: it is picking the correct place for each thing and creating the right abstraction. Doing that perfectly the first time is unlikely. Let’s talk about evolutionary naming. This post is the first in an 8-part blog series. The easiest approach I’ve yet found for finding good names is to progress along a series of regular steps. (click for larger image) MissingNonsenseHonestHonest and CompleteDoes the Right ThingIntentDomain Abstraction At each step, I look at one part of the code, understand one kind of thing that is happening, have an insight, and write it down.

Exercism.io. SORTING. Game Maven from Crunchzilla. <h2>Game Maven from Crunchzilla is an interactive tutorial that lets anyone experiment with coding and write a few games.

Game Maven from Crunchzilla

<p> Game Maven from Crunchzilla uses Javascript. Please enable Javascript if you want to play with Game Maven. Otherwise, Game Maven will not be able to play with you. </p><p></h2> Hello, I'm Game Maven! Learn to code News, Videos, Reviews and Gossip - Lifehacker. Coding for SSDs – Part 1: Introduction and Table of Contents. Introduction I want to make solid-state drives (SSDs) the optimal storage solution for my key-value store project.

Coding for SSDs – Part 1: Introduction and Table of Contents

For that reason, I had to make sure I fully understood how SSDs work, so that I can optimize my hash table implementation to suit their internal characteristics. There is a lot of incomplete and contradictory information out there, and finding trustworthy information about SSDs was not an easy task. I had to do some substantial reading to find the proper publications and benchmarks in order to convince myself that, if I had to be coding for SSDs, I would know what I was doing.

Then I figured that since I had done all the research, it would be useful to share the conclusions I had reached. The most remarkable contribution is Part 6, a summary of the whole “Coding for SSDs” article series, that I am sure programmers who are in a rush will appreciate. My only regret is not to have produced any code of my own to prove that the access patterns I recommend are actually the best.