background preloader

Blogs

Facebook Twitter

Mcb80x. Hello and welcome to MCB80x! Before we launch, we’d like to share with you our course syllabus and some information that will help manage your expectations in regards to content, scheduling, and capacity. We will have two courses running concurrently: a second version of our first part, MCB80.2x, and a first version of our second part, MCB80.2x. Content and material for MCB80x.1x is currently available and open to you to study at your own pace and an exam period will last from 8/11/14 to 8/24/14. We will open MCB80.2x on September 3rd, 2014, and we will leave registration open throughout the duration of the course, which will end on December 14, 2014. A final interactive exam will be given for MCB80.2x from 12/01/2014 through 12/15/2014 for those of you who have completed the course (see explanation below).

This means that anyone can ‘join’ the course at any time while the courses are running. Some Helpful Terminology Modules or Parts: MCB80x will be released in modules or parts. Textbook. On becoming an expert C programmer. The following is from an EMail message that I sent to to an individual on 12-Apr-2001. You may find this EMail message useful.

The Writer asked: ``I just recently visited your website ... Just wanted to say greetings and ask a simple question: Do you think I stand a chance in the C programming field if I keep it up? Here is my reply: Thank you for your kind words. You asked: ``... YES!! ``Tell me what I should do in order to keep strong feelings towards C.'' Permit me to babble out a few random thoughts ... Write programs for other people. Where possible, openly publish your code, perhaps on your web site. Very important: Support the code that you publish. Start small and work your way up ... Don't be discouraged if nobody (or if only a few people) uses some of your early programs. It is somewhat easy to write a program that works.

Parts of a well written program can be reused or borrowed by other programs. NOTE: This especially applies to short, simple test programs ala ``Hello, world! ''. Laurence Tratt: Parsing: The Solved Problem That Isn't. Updated (2014-10-24): If you find this article interesting, you may be interested in the follow-up article on an editor for composed programs.

Parsing is the act of taking a stream of characters and deducing if and how they conform to an underlying grammar. For example the sentence Bill hits Ben conforms to the part of the English grammar noun verb noun. Parsing concerns itself with uncovering structure; although this gives a partial indication of the meaning of a sentence, the full meaning is only uncovered by later stages of processing. Parseable, but obviously nonsensical, sentences like Bill evaporates Ben highlight this (the sentence is still noun verb noun, but finding two people who agree on what it means will be a struggle). As humans we naturally parse text all the time, without even thinking about it; indeed, we even have a fairly good ability to parse constructs that we've never seen before. The general consensus, therefore, is that parsing is a solved problem. Tokenization. My adventures in CNC robotics. My adventures in CNC robotics Introduction I'm a computer geek by day, but I have always dreamt of something more than just writing code: I hoped to make things that interact with the physical world.

To make it worse, I couldn't convince myself to take the now-popular route of buying the prefabricated robotics kits and putting them together in one of several predetermined ways. Ultimately, I just wanted to learn how to make stuff. Of course, that pipe dream soon collided with reality: I lived in Poland at that time - a country not known for its vibrant maker community - and did not even have access to a machine shop. I have a fairly neat daytime job and two kids, so I can dedicate just several hours every month to this hobby; with barely ~300 hours total, I still feel very much like a novice. Note: if you're more interested in the practical aspects of CNC manufacturing than in a personal story, check out my guerrilla guide to CNC machining instead. 2006: Baby steps And so I bought it. J2ObjC. Building a Forex trading platform using Kafka, Storm and Cassandra. Janusz Slawek October 22, 2014 Janusz Slawek Data Engineer Insight Fellow, 2014 Janusz Slawek, is currently a data engineer and was an Insight Data Engineering Fellow in the inaugural June 2014 session.

Here, he gives a high level overview of the data pipeline that he built at Insight to handle Forex data for algorithmic trading, visualization, and batch aggregation jobs. The foreign exchange market, or forex, is the biggest and the most liquid exchange service in the world with over $4 trillion worth of trades made every day. It is a truly global marketplace that only sleeps on weekends. As a fascinating business that takes its roots from ancient history, forex has continuously advanced with technology over the years. To address this problem, I created a forex trading platform called Wolf. I composed Wolf of a group of services that are shown in Figure 1. Figure 1. Data pipeline for the rule engine: very fast Trading orders are expressed in terms of "if then" rules. Docker in a development enviroment | LinuxMeerkat. A few days ago I wrote a tutorial on how to setup docker and use it between different machines. Now that was a nice first insight on how to jump-start using docker.

It was also a nice way to showcase the possibilities and limitations of Docker. In this post I will give some practical information on how to use docker as a developer. To use Docker for development of software we want mainly three things: Have our source code on the host machine. And for the visual brains out there: As you see in the pic, I am using Ubuntu as my host machine.

The easiest way to have multiple terminas is to use a small tool called nsenter. That installs nsenter on the host machine. In the terminal above, I created a file called TESTFILE. To use xsenter we need the process ID of the container. The string 04fe75de21d4 I gave is the ID of my container. See the TESTFILE there?

Now I want to have a folder on my host computer and be able and access it through a container. Let’s now mount it into the container: What Every C Programmer Should Know About Undefined Behavior #1/3. People occasionally ask why LLVM-compiled code sometimes generates SIGTRAP signals when the optimizer is turned on. After digging in, they find that Clang generated a "ud2" instruction (assuming X86 code) - the same as is generated by __builtin_trap(). There are several issues at work here, all centering around undefined behavior in C code and how LLVM handles it.

This blog post (the first in a series of three) tries to explain some of these issues so that you can better understand the tradeoffs and complexities involved, and perhaps learn a few more of the dark sides of C. It turns out that C is not a "high level assembler" like many experienced C programmers (particularly folks with a low-level focus) like to think, and that C++ and Objective-C have directly inherited plenty of issues from it.

Introduction to Undefined Behavior Translation available in: Japanese Both LLVM IR and the C programming language have the concept of "undefined behavior". For (i = 0; i <= N; ++i) { ... } Nonlinear Regression. Last week I talked about how to figure out if two variables in your data set are correlated, and the week before I talked about fitting a trend line to your data. What happens if you know your data is correlated, but the relationship doesn't look linear? Is there anything that can be done to estimate the trend in the data if it's not linear? Yes, depending on what the data looks like, we can either transform the data to make it linear, or do a polynomial regression on the data to fit a polynomial equation to it. We'll take a closer look at data transformations, and then briefly cover polynomial regression.

The idea with data transformations is to somehow make your data linear. The exponential relationship is probably the most common of these, so lets go through an example of how to transform a set of data that exhibits an exponential trend. The linear trend line is there to show that the data is not really linear. Y = α*exp(ß*x) ln(y) = ln(α) + ß*x Pretty slick. Y = α*x^ß. Blog | Scalability, Part 1: Building on Top - ethereum blog. Over the next few weeks, I am going to make a series of posts that is going to be a large overview of the possibilities for scalability of Ethereum, intending to create a precise understanding of the problems at bay in implementing a scalable cryptocurrency infrastructure, and where the least-bad tradeoffs and sacrifices required to solve those problems might lie.

As a general outline of the form that this series is going to take, I intend to first discuss the fundamental problem with Ethereum 1.0 as it stands, as well as every other cryptocurrency platform in existence, and introduce limited solutions to specific problems that allow for much more efficiency – in some cases increasing efficiency by a constant factor, and in other cases making a more fundamental complexity-theoretic improvement – but only in very specific use cases. Protocol enhancements Image from Batching i = 0while i < msg.datasize: send(msg.data[i], msg.data[i+1]) i += 2. 10 Articles Every Programmer Must Read. Build a Killer Customized Arch Linux Installation (and Learn All About Linux in the Process)

Don't like Windows 8's new interface? Sick of Ubuntu Unity and the new ads that come along with it? Maybe it's time to create your own, ideal operating system with just the features you want. Arch Linux can make it happen: it lets you build your own personal, killer Linux distro from the ground up. If this article looks familiar, it's because we've posted it before! However, Arch recently changed its installation process quite a bit, making our old guide outdated. Due to the popularity of this guide, we've updated it to work with Arch's new process, so we can all keep getting our Arch fix (and hopefully introduce a few new users to the OS of their dreams).

Here's why you may want to use Arch Linux, followed by how to set it up. Who Is Arch Linux Good For? Linux is popular for a number of reasons, but high on that list is the fact that, with Linux, you have a lot more power to tweak your OS to your liking. The key part of this explanation is "intermediate users. " This guide has two parts. Leslie Lamport on Distributed Systems and Precise Thinking. Leslie Lamport is the author of some of the most cited computer science papers and won a Turing Award in 2013 for his seminal work in distributed and concurrent systems.

This is a summary of an interview that Lamport gave to Software Engineering Radio touching themes such as his early work in distributed systems and the importance of precise thinking in programming. The early years Lamport's interview begins reconstructing his discovery that causality, i.e., the notion that one event can coarsely affect another depending on whether or not information from one can physically reach the other, is as important in distributed systems as it is in special relativity. This intuition was the base for his Time, Clocks, and the Ordering of Events in a Distributed System paper, where he came to the realization that any system can be described as a state machine and proposed an algorithm that could implement an arbitrary state machine in a distributed system.

Thinking for programmers. Copenhagen Suborbitals | Copenhagensuborbitals. The Twelve-Factor App. Hello Weave | all about Weave. Weave is an open source software project dedicated to simplifying container-based applications. We very much welcome contributions of all kinds – get in touch via Github or email please. The Weave project currently consists of a software network that enables any Docker-based application to scale across multiple hosts. Unlike existing software networks that provide a shared ‘backbone service’, Weave Network is in effect an ‘embedded’ network.

It is also dead easy to get started with: you don’t even need to understand networking to use it. Plus, you get a lot of really cool features like multi-cloud, multi-hop, security, … check out the README file for an overview. So: welcome to Weave! And to this blog. The purpose of this blog is to talk about all things Weave. Cheers, alexis Like this: Like Loading... Redis cluster, no longer vaporware. Zettio/weave · GitHub. Why Go? When I decided to build Inspeqtor, I had a fundamental choice: what language should I build it in? I’ve worked in Ruby for the last 8 years so it was a natural choice: “use the tool you know best” is never a bad choice when solving your own problem. However I’m not building something for myself: I’m building a product that will be used by thousands of others.

Since Inspeqtor is an infrastructure monitoring tool, it needs to run 24/7 efficiently and reliably. I also want everyone to be able to install and use Inspeqtor with the absolute bare minimum of hassle. This means minimizing third-party dependencies like the Ruby VM itself, gems, etc. Ultimately these requirements led me to two options: Go or Rust. I want to call out two features that make Go so nice to work with: Easy concurrency Modern languages must have a better concurrency story than “thin wrapper around the POSIX thread API”. Full development workflow To paraphrase the poet John Donne: “No programming language is an island”. I just created a Cassandra cluster that spans 3 different network domains, by using 2 simple shell commands. How cool is that? | all about Weave. Today we welcome Yaron Rosenbaum as our first guest on the Weave blog, with a really cool use case!

– alexis Over to you, Yaron.. I needed to create a Cassandra cluster that would span two different cloud providers. There are endless ways to achieve this (simplified) end result, something that’s definitely not new or unique, and has been done numerous times before. The goal of this post is to explain the philosophy behind, and benefits of my proposed approach of using Docker, and a SDN (Software Defined Network). “All problems in computer science can be solved by another level of indirection” (David Wheeler) Why I like to use Docker – enforcing boundaries Drop a pebble in the water: just a splash, and it is gone; But there’s half-a-hundred ripples Circling on and on and on, Spreading, spreading from the center, flowing on out to the sea. Executing a Docker is just a single, simple shell command.

How to exactly achieve this is up to the user, as there are no solid ‘best practices’ yet. Running GUI apps with Docker – Fábio Rehm. I’ve been doing all of my real (paid) work on VMs / containers for a while now but when it comes to writing Java code for some projects for university I still need to move away from using vim and install some full blown IDE in order to be productive. This has been bothering me for quite some time but this week I was finally able put the pieces together to run NetBeans in a Docker container so that I can avoid installing a lot of Java stuff on my machine that I don’t use on a daily basis. There are a few different options to run GUI applications inside a Docker container like using SSH with X11 forwarding, or VNC but the simplest one that I figured out was to share my X11 socket with the container and use it directly. The idea is pretty simple and you can easily it give a try by running a Firefox container using the following Dockerfile as a starting point: docker build -t firefox . it and run the container with: Getting a NetBeans container up and running Future work.

Lwan Web Server. Home — Leandro Pereira. Mathiasbynens (Mathias Bynens) · GitHub. Sourcegraph · GitHub. Complete Archives. You Don't Read Code, You Explore It. Kellabyte. Julia Evans. Scalable distributed data structures for internet service construction. How I Rewired My Brain to Become Fluent in Math - Issue 17: Big Bangs. Parallel In-Place Merge Sort. Linearizability versus Serializability | Peter Bailis.

Www.colorforth.com/POL.htm?html. Counting bytes fast - little trick from FSE. Intersec Tech Talk | Technical thoughts. History.dcs.ed.ac.uk/archive/apps/Whitfield-Thesis/thesis.html. KenCochrane.net. Radio Labs: How we make websites. Steps to create a Vagrant Base Box with Ubuntu 14.04 Desktop (GUI) and VirtualBox. Buck: An Android (and Java!) build tool. Finger Trees - Andrew Gibiansky. The Corner. Gödel's Lost Letter and P=NP | a personal view of the theory of computation. Xubuntu on steroids! What are hedge funds, and what social functions do they serve? | Dan Wang.

I was just asked to crack a program in a job interview ! One Thing Well. HFT in my backyard – Part I | Sniper In Mahwah. Sausheong/polyblog · GitHub. How to Start a Startup. Sam Altman. Josh Haberman: What every computer programmer should know about floating point, part 1. Martint/platform · GitHub. Jrudolph/jcosmos · GitHub. Instagram Engineering. The Guerrilla Guide to Interviewing (version 3.0) Joseph Wilk. Random Lists » A list of amazon questions and answers from glassdoor.

Traders Profit With Computers Set at High Speed. Dynamically Typed Languages. Ilya Grigorik - igvita.com. Amit’s Game Programming Information. Finagle: A Protocol-Agnostic RPC System. SiliconANGLE | Extracting the signal from the noise. Highly Scalable Blog | Articles on Big Data, NoSQL, and Highly Scalable Software Engineering. Cassandra: Up and running quickly in Java using Pelops | Dominic Williams. Mesosphere Docker Developer Tutorial. Coding | The ryg blog. Cross-platform Python Framework for NUI Development. Quanta Magazine - Illuminating Science. The Easy Way of Building a Growing Startup Architecture Using HAProxy, PHP, Redis and MySQL to Handle 1 Billion Requests a Week. About:blog : Torbundlebrowser.org.

The Leadership Philosophy of 3 P's: Passion, Purpose, People | Ekaterina Walter. The New Business of Innovation | MIT Sloan Management Review. 11 Shortcuts For Learning Linux In Record Time. Skimfeed V2 - Tech News Aggregator. The New NSA-Funded Code Rolls All Programming Languages Into One. Setup. Domoticz. Toga: A Python native, OS native GUI toolkit. Part of the BeeWare suite. A Computational Introduction to Number Theory and Algebra. Distributed systems theory for the distributed systems engineer : Paper Trail. Learn. Perspectives on LedgerSMB. Blog. Josephyzhou/github-trending · GitHub. Blog — How we turn $199 Chromebooks into Ubuntu-based code learning machines for kids.

Pozorvlak | Srelipmoc ni esruoc tsrif a. Challenges. Aptitude technical fresher experienced placement papers interview questions and online tests - skillgun. How should I prepare system design questions for Google/Facebook Interview? Le Cloud Blog. What are the ways to utilize 6 months to build skill-set to get hired at Facebook or Google? Introduction to Information Retrieval. Mutexes and Semaphores Demystified. ExercisesList - prep - List of coding exercises - Coding exercises to stay in shape. Why is Concurrent Programming hard? AMPLab – UC Berkeley | Algorithms, Machines and People Lab. Metadata: Spanner: Google's Globally-Distributed Database.