background preloader

WorkRelated

Facebook Twitter

Calculus on Computational Graphs: Backpropagation -- colah's blog. Posted on August 31, 2015 Introduction Backpropagation is the key algorithm that makes training deep models computationally tractable. For modern neural networks, it can make training with gradient descent as much as ten million times faster, relative to a naive implementation. That’s the difference between a model taking a week to train and taking 200,000 years. Beyond its use in deep learning, backpropagation is a powerful computational tool in many other areas, ranging from weather forecasting to analyzing numerical stability – it just goes by different names.

In fact, the algorithm has been reinvented at least dozens of times in different fields (see Griewank (2010)). Fundamentally, it’s a technique for calculating derivatives quickly. Computational Graphs Computational graphs are a nice way to think about mathematical expressions. To create a computational graph, we make each of these operations, along with the input variables, into nodes. The expression evaluates to . Factoring Paths. Select a Language. Help What is repl.it? It is an online environment for interactively exploring programming languages. The name comes from the read-eval-print loop, the interactive toplevel used by languages like Lisp and Python. How do I start? Once you have selected a language, start by typing an expression into the console on the right side of the screen and pressing Enter.

Your expression will be evaluated in the selected language and its result will be printed. Repeat until satisfied. Can I use variables or other state? Yes! Can I save my session? Yes! Is repl.it open source? Can I use repl.it on my phone or tablet? Yes! How does repl.it work? All code processed by repl.it runs entirely on your computer, with no server-side evaluation. Enter Evaluate the entered command. Shift+Enter Continue to the next line. Tab Indent. Shift+Tab Unindent. Up Previous history item. Down Next history item. Ctrl+Up Move to the line above the cursor. Ctrl+Down Move to the line below the cursor. Ctrl+E Move to the end of the current line.

Free Online Introduction to LaTeX - Part 1: The Basics - Overleaf. Welcome to the first part of our free online course to help you learn LaTeX. If you have never used LaTeX before, or if it has been a while and you would like a refresher, this is the place to start. This course will get you writing LaTeX right away with interactive exercises that can be completed online, so you don't have to download and install LaTeX on your own computer.

In this part of the course, we'll take you through the basics of how LaTeX works, explain how to get started, and go through lots of examples. Core LaTeX concepts, such as commands, environments, and packages, are introduced as they arise. In particular, we'll cover: Setting up a LaTeX Document Typesetting Text Handling LaTeX Errors Typesetting Equations Using LaTeX Packages. Dell-oss/Doradus. Distributed Consensus Reloaded: Apache ZooKeeper and Replication in Apache Kafka. This post was jointly written by Neha Narkhede, co-creator of Apache Kafka, and Flavio Junqueira, co-creator of Apache ZooKeeper. Many distributed systems that we build and use currently rely on dependencies like Apache ZooKeeper, Consul, etcd, or even a homebrewed version based on Raft [1]. Although these systems vary on the features they expose, the core is replicated and solves a fundamental problem that virtually any distributed system must solve: agreement.

Processes in a distributed system need to agree on a master, on the members of a group, on configuration, on the owner of a lock, and on when to cross a barrier. These are all problems commonly found in the design of distributed systems, and the approach of adopting one of these dependencies has been successful because these systems fundamentally solve the distributed consensus problem [2]. Systems solving consensus at their core have been often called “consensus services”. A brief background on consensus ZooKeeper and consensus. Loading Data Into MemSQL.

Now that MemSQL is up and running, we’ll cover how to load data into the database. This guide covers various ways of loading data into the system. We recommend trying option 1, and if that is not sufficient, trying option 2 then option 3. Option 1: Loading Data stored in a file¶ MemSQL supports standard SQL loading constructs. For instance, after creating tbl_name, run: LOAD DATA INFILE 'file_name.tsv' INTO TABLE tbl_nameFIELDS TERMINATED BY '|'LINES TERMINATED BY '\n' For more details see LOAD DATA.

Option 3: Loading from MySQL¶ The popular open source tool mysqldump is a straightforward way to load data from MySQL into MemSQL For example, on a machine with a MySQL database foo, issue the following commands. mysqldump -h 127.0.0.1 -u root --databases foo > foodump.sql You can also dump specific tables by using the –tables option: mysqldump -h 127.0.0.1 -u root --databases foo --tables tbl_name > foodump.sql For instance, suppose foodump.sql contains mysql -h 127.0.0.1 -u root < foodump.sql. Placement New, Memory Dumps, and Alignment - Morning Musings. Generally, in C++ there are three places you can store your data: On the stack (local variables)On the heap (new / delete)In the static data section (static variables) Normally, when using the heap, you would use the following command: Foo* foo_ptr = new Foo(); This would invoke the following actions behind the scenes: Make an operating system call to allocate a chunk of memory of size sizeof(Foo)Manage that memory with the heapCall the constructor of Foo to build an object at that memory locationInitialize foo_ptr with the address of the object Later on, you would call: delete foo_ptr; This would: Call the destructor of FooHave the heap give the memory back to the operating system This is how new and delete work, and most C++ programmers should be familiar with them.

Placement New C++ offers a different “flavor” of new called “placement new”. Placement new has a few specialized uses. The syntax for placement new is: unsigned char memory[sizeof(Foo)]; Foo* foo_ptr = new (memory) Foo(); This outputs: Top 10 Practices for Effective DevOps. Stupid Gopher Tricks. GolangUK 21 August 2015 This talk This talk is about things you might not know about Go.

Some of this stuff you can add to your Go vocabulary. Other things are probably best left for special occasions. Language Type literals (1/2) Here's a familiar type declaration: type Foo struct { i int s string } The latter part of a type declaration is the type literal: struct { i int s string } Other examples of type literals are int and []string, which can also be declared as named types: type Bar int type Qux []string Type literals (2/2) While we commonly use int and []string in variable declarations: It is less common (but equally valid) to do the same with structs: var t struct { i int s string } An unnamed struct literal is often called an anonymous struct.

Anonymous structs: template data A common use is providing data to templates: You could also use map[string]interface{}, but then you sacrifice performance and type safety. Anonymous structs: JSON (1/2) And also decoding: Anonymous structs: JSON (2/2) Libraries. PythonTips/Best Python Resources for Beginners and Professionals.MD at master · yasoob/PythonTips. Developing Backbone.js Applications - By Addy Osmani (@addyosmani) Available free for open-source reading below or for purchase via the O'Reilly store. Pull requests and comments always welcome. Prelude Not so long ago, “data-rich web application” was an oxymoron. Today, these applications are everywhere and you need to know how to build them. Traditionally, web applications left the heavy-lifting of data to servers that pushed HTML to the browser in complete page loads. Think of the Ajax shopping cart which doesn’t require a refresh on the page when adding an item to your basket.

The rise of arbitrary code on the client-side which can talk to the server however it sees fit has meant an increase in client-side complexity. Thankfully, there are a growing number of JavaScript libraries that can help improve the structure and maintainability of your code, making it easier to build ambitious interfaces without a great deal of effort.

Target Audience Acknowledgements Credits Target Version Reading What Is MVC? What is Backbone.js? <! Views. Targeting Monkey. We need a bigger plan! Do you need more than that? Get in touch for a custom plan. We are an agency! We offer volume discount and reseller deals. -> To get in touch, send an email to team@targetingninja.com Is it easy to install? Installing Targeting Monkey is as easy as copying and pasting one line of code. Is it truly only CSS? Yes, a CSS file which is custom generated by our server every time a new user visits your website. Can I use it with A/B Testing frameworks? Yes! Does it work with...? Targeting Monkey is compatible with just about anything, including all back end platforms (Wordpress and the like) and all front end frameworks (like Angular).

Can I access the user's traits with Javascript? Our business plan includes the option to access all data in JSON format. -> For installation instructions, check out our Docs We'd like API access (i.e. Please get in touch for that. Performance Engineering at Realm: How we optimized binary search. Performance Engineering at Realm At Realm, we’re always looking for ways to optimize for speed. This is the story of how we developed our own fast binary search function, with an execution time on average 24% faster than the C++ STL. Why Binary Search? Realm stores data in binary tree structures. For example, suppose Realm was holding objects with the following IDs in a linked list: If you wanted to find the object with ID equaled to 14 then this would require 5 operations or rather O(n) complexity.

One way to speed up this up is to use binary search: “The binary search algorithm begins by comparing the target value to value of the middle element of the sorted array. Instead of a linked list, the objects can be held in a binary tree. The search to identify the object with ID equaled to 14, now only takes 3 operations or rather O(log2(N)) complexity. Given this reliance in Realm, binary search was therefore an obvious thing to try and optimize. Our Test Setup Baseline … and benchmark it: Version 1. Metrics 2.0: an emerging set of standards around metrics. FlatBuffers: FlatBuffer Internals. This section is entirely optional for the use of FlatBuffers. In normal usage, you should never need the information contained herein. If you're interested however, it should give you more of an appreciation of why FlatBuffers is both efficient and convenient. Format components A FlatBuffer is a binary file and in-memory format consisting mostly of scalars of various sizes, all aligned to their own size.

On purpose, the format leaves a lot of details about where exactly things live in memory undefined, e.g. fields in a table can have any order, and objects to some extend can be stored in many orders. Format identification The format also doesn't contain information for format identification and versioning, which is also by design. Versioning is something that is intrinsically part of the format (the optionality / extensibility of fields), so the format itself does not need a version number (it's a meta-format, in a sense).

Offsets We have two kinds of objects, structs and tables. Structs. Advanced Git Log - Filtering the commit history. The purpose of any version control system is to record changes to your code. This gives you the power to go back into your project history to see who contributed what, figure out where bugs were introduced, and revert problematic changes. But, having all of this history available is useless if you don’t know how to navigate it. That’s where the git log command comes in. By now, you should already know the basic git log command for displaying commits. But, you can alter this output by passing many different parameters to git log. The advanced features of git log can be split into two categories: formatting how each commit is displayed, and filtering which commits are included in the output.

Formatting Log Output First, this article will take a look at the many ways in which git log’s output can be formatted. If you don’t like the default git log format, you can use git config’s aliasing functionality to create a shortcut for any of the formatting options discussed below. Oneline Decorating. Draftin. Testing in Go. Solving multi-core Python. [JavaSpecialists 230] - String Substring. The Java Specialists' Newsletter Issue 230 Category: Tips and Tricks Java version: Java 1-9 by Dr. Heinz M. Kabutz Abstract:Java 7 quietly changed the structure of String. Welcome to the 230th edition of The Java(tm) Specialists' Newsletter, written on the Island of Crete in GREECE. NEW: Please see our new "Extreme Java" course, combining concurrency, a little bit of performance and Java 8. String Substring String is ubiquitous in Java programs. Recently, my co-trainer Maurice Naftalin (author of Mastering Lambdas) and I taught our Extreme Java 8 course together, which focuses on concurrency and performance.

In Java 1 through 6, we would see output like this: Hello [C@721cdeff [C@721cdeff However, in Java 7 and 8, it would instead produce output with a different char[]: Hello [C@49476842 [C@78308db1 "Why this change? " String hello = "" + hello_world.substring(0, 5); During our course, the customer remarked that they had a real issue with this new Java 7 and 8 approach to substrings. Kind regards. Code as Craft, Etsy's Engineering Blog. Welcome to CS 61AS! Orion Project Homepage. Open Source Container Cluster Orchestration: How did the Quake demo from DockerCon Work?

Shortly after its release in 2013, Docker became a very popular open source container management tool for Linux. Docker has a rich set of commands to control the execution of a container. Commands such as start, stop, restart, kill, pause, and unpause. However, what is still missing is the ability to Checkpoint and Restore (C/R) a container natively via Docker itself. We’ve been actively working with upstream and community developers to add support in Docker for native C/R and hope that checkpoint and restore commands will be introduced in Docker 1.8. As of this writing, it’s possible to C/R a container externally because this functionality was recently merged in libcontainer.

External container C/R was demo’d at DockerCon 2015: Container C/R offers many benefits including the following: Implementing C/R functionality from scratch is a major undertaking and a daunting task. Phase 1 - External C/R External Bind Mounts AUFS Pathnames Cgroups docker_cr.sh Phase 2 - Native C/R libcontainer, nsinit. Off-CPU Analysis. Measuring low resolution time Off-CPU analysis is a performance methodology where high resolution off-CPU time is measured and studied. This reveals which code-paths led to time spent waiting (blocked), and can be a quick and generic way to root-cause a wide range of performance issues.

Studying off-CPU time differs from traditional profiling, which often samples the activity of threads at a given interval, and (usually) only examine threads if they are executing work on-CPU. Here, the target are threads that, while processing a workload request, have blocked and are context-switched off-CPU. This method also differs from tracing techniques that instrument various applications functions that commonly block, since this method targets kernel functions that perform the blocking, and so doesn't rely on the foresight to instrument all the right application places. I'll summarize profiling techniques for off-CPU analysis, and introduce off-CPU as a metric. Profiling Techniques CPU Sampling # . Soundcloud/cando. Soundcloud/pipeline-generator. Kibana 4 Tutorial – Part 1: Introduction » Tim Roes.

Thoughts on Time-series Databases. Rhuss/aji. Rhuss/aji. Pipefy - The easiest way to manage your business processes and routines. Projects The Hard Way | Coding Projects for Early Coders. Wine with chicken - Wine Pairing for chicken. Jolokia + Highcharts = JMX for human beings. GitHub forking has one big flaw - zbowling blag. Fast Approximate Logarithms, Part I: The Basics | eBay Tech Blog.

ProductSnacks | Bite-sized learning for Product Managers. Portworx. ZenHub 2.0 : Project management, evolved. Watchdog — watchdog 0.8.2 documentation. HIPERFIT. Bootcards documentation. Alebcay/awesome-shell. Jlevy/the-art-of-command-line. Jakubroztocil/httpie. Kiji Project. Security Master data model (includes OTC trade data) - Latest Version - OpenGamma Documentation.

How to model data in Cassandra for last 100 events for a customer. An Advanced Cassandra Data Modeling Guide - Open Source. Cassandra week. ØMQ - The Guide - ØMQ - The Guide. Simple C++11 metaprogramming. S Guides. S Guide to Network Programming. A fork() Primer. GC Tuning Confessions Of A Performance Engineer. Using temporal tables in DB2 10 for z/OS and DB2 11 for z/OS. Accounting for Developers 101 - Google Docs. RocketChat/Rocket.Chat. 1000+ Beginner Programming Projects (x-post /r/programming) : learnprogramming. Martyr2's Mega Project Ideas List! - Share Your Project. Zyantific/zyan-disassembler-engine. Accounting for Developers 101 - Google Docs. Elusive Algorithms – Parallel Scan | Intel® Developer Zone. FpML® Schema LiveSearch (Beta) Index. MemSQL Resources - Fastest SQL Database, MemSQL. Javaslang. Javaslang. Datomic - Home. Lock-Free Data Structures. Exploring Queues.

Getting started with Flowthings - The Python Chat Example - Tutorials - flowthings.io. Work-Bench Blog - The State of the Container – April. DNSMasq Configuration | Lattice. Call me maybe: Aerospike. Where Rust Really Shines - In Pursuit of Laziness. Seaborn: statistical data visualization — seaborn 0.5.1 documentation. Death To C. How to explain the value of replicated, shared ledgers from first principles | Richard Gendal Brown. Settlement-Matrix20040701.pdf. Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and without Compromises. Tsung. Product Hunt Predicts the Tech Hits of 2016 -- NYMag. Jsonnet - The Data Templating Language.

Writing Bug-Free C Code. 40 Key Computer Science Concepts Explained In Layman’s Terms. An Advanced Cassandra Data Modeling Guide - Open Source. Advanced Time Series with Cassandra. Cassandra Data Modeling Best Practices, Part 1 | eBay Tech Blog. Go by Example: Environment Variables. Distributed systems for fun and profit. RethinkDB 2.0 Is Amazing — Rob Conery. Cassandra Data Modeling Best Practices, Part 1 | eBay Tech Blog. An Advanced Cassandra Data Modeling Guide - Open Source.

Ferd.ca -> Awk in 20 Minutes. Learn X in Y Minutes: Scenic Programming Language Tours. Alf Relational Algebra - About. Alf Relational Algebra - Context-aware Database Viewpoints.