background preloader


Facebook Twitter

The C Book - Table of Contents. Cosette: An Automated SQL Solver. By Shumo Chu and Alvin Cheung This document discusses how Cosette checks equivalence of SQL queries, and how to use Cosette web API to build your own tool.

Cosette: An Automated SQL Solver

Table of Contents 1. The Cosette Language The get a flavor of the Cosette language, Let’s start with a simple Cosette program: schema s1(x:int, y:int, ??) 2.1 Schema To use Cosette, we start by defining a schema for the tables that we will query on. Schema s1(x:int, y:int, ??) Here s1 can contain any number of attributes, but it has to at least contain integer attributes x and y. If Cosette concludes that two queries with symbolic attributes are equivalent, then they are equivalent regardless of what those symbolic attributes are instantiated with. 2.2 Table We next declare tables using the defined schemas. Table a(s1); declares a table with schema s1. 2.3 Query After declaring schemas and tables, we can now write the queries to be checked.

Query q1 `select (x.x + x.x) as ax from a x where x.x = x.y`; 2.4 Symbolic Predicates schema s(??) 2.5 Verify. The Elements of Spy-le: Lessons from the CIA’s classified guide to good writing. Algorithm, Single linked list sorted. How to Set the Technical Direction for Your Team. I’ve found that one of the keys to a productive and happy development team is when every member of the team understands (1) the technical direction of the team, and (2) how the work they’re currently doing contributes to that direction.

How to Set the Technical Direction for Your Team

Because of this, one of my key roles as a senior developer is helping teams establish a clear technical direction, as well as a plan for how to get there. After several years working at Amazon, one thing that continually stands out to me is the genius of Amazon’s Leadership Principles. At some other large companies where I’ve worked, their version of leadership principles or corporate values were just a set of vague statements or buzzwords printed on posters and hung somewhere in the office. Most people ignored them and carried on with their daily work. However, at Amazon, we live and breathe the leadership principles and refer to them frequently in daily conversation. Welcome to The Linux Kernel’s documentation — The Linux Kernel documentation. Introducing Winston - Event driven Diagnostic and Remediation Platform. Netflix is a collection of microservices that all come together to enable the product you have come to love.

Introducing Winston - Event driven Diagnostic and Remediation Platform

Operating these micro services is also distributed across the owning teams and their engineers. We do not run a central operations team managing these individual services for availability. What we do instead is to invest in tools that help Netflix engineers operate their services for high availability and resiliency. Today, we are going to talk about one such tool recently built for Netflix engineers - Winston. C++ TCP Proxy Server - By Arash Partow. Description The C++ TCP Proxy server is a simple and high performance utility using the ASIO networking library, for proxying (tunneling or redirecting) connections from external clients to a designated server.

C++ TCP Proxy Server - By Arash Partow

Some of the tasks the TCP Proxy Server can be used to easily and efficiently accomplish are as follows: Limit the number of client connections to the server Load balance client connections between multiple server instances Provide IP or connection time based filtering and access control mechanisms Inspect (log), filter or otherwise modify data flowing between the clients and the server.

68 Resources on creating programming languages. Vedenin/useful-java-links: A list of useful Java frameworks, libraries, software and hello worlds examples. GitHub - MaximAbramchuck/awesome-interview-questions: A curated awesome list of lists of interview questions. Feel free to contribute! Why the “volatile” type class should not be used — The Linux Kernel documentation.

How I Start. Go is meant to be simple, but sometimes the conventions can be a little hard to grasp.

How I Start.

I’d like to show you how I start all of my Go projects, and how to use Go’s idioms. Let’s build a backend service for a web app. Setting up your environment The first step is, of course, to install Go. You can use the binary distribution for your operating system from the official site. . $ go version go version go 1.3.1 darwin/amd64. Structure and Interpretation of Computer Programs, 2e: Top. GitHub - Netflix/gradle-template. Bash. 10 Useful Rescue and Recovery Tools for Linux. As a system administrator, one tool that should never leave your hand luggage is a System recovery disk because you can never be sure of when you will experience a system failure or boot error.

10 Useful Rescue and Recovery Tools for Linux

These are rescue disks featuring diagnostic and cracking tools for Linux that will help you to bounce back from such situations: 1. Hiren’s Boot CD Dubbed, “a first aid kit for your computer”, I doubt you will see a list of System rescue CDs without this one. It is arguably the most popular application which includes lots of tools for drivers, partitioning, antivirus and anti-malware, backup, and defragmentation.

Building and shipping Raspberry-flavoured Microservices · Patrick's Blog. 14 Dec 2016 If you’re like me, then you love reading and discussing papers, blogs and books on distributed systems.

Building and shipping Raspberry-flavoured Microservices · Patrick's Blog

But all theory is grey. It comes a time when you want to take things in your own hands and start putting the latest and hottest tools and frameworks into action. That’s exactly what has happened to me by the end of the last winter term and finally resulted in a individual project I worked on over the past few months. It all started with some RaspberryPis.. At our system engineering course in winter term 2015/16, I worked on a project along with two fellow students of mine. More is always better: building a cluster with Pies. So you have written the uber-pro-web-application with a bazillion of active users.

More is always better: building a cluster with Pies

But your requests start to get out of hand and the Raspberry Pi under your desk can’t handle all the pressure on its own. Finally, the time for rapid expansion has come! If you have already containerized your application, the step towards clustering your software isn’t that hard. In this post, we want to shed some light on management tools you can use to handle a cluster of Docker nodes. First let’s get a short overview of what we really need in order to come up with a resilient and fault tolerant cluster: WikiLeaks. 2.


Act normal If you are a high-risk source, avoid saying anything or doing anything after submitting which might promote suspicion. CPython internals: A ten-hour codewalk through the Python interpreter source code. The ANTLR mega tutorial - Federico Tomassetti - Software Architect. Simple File Hosting - Terminals Are Sexy. Markdown Presentations For Developers on GitHub, GitLab and Bitbucket - GitPitch. GitHub - shagunsodhani/papers-I-read: A-Paper-A-Week. Adventures in /usr/bin and the likes - Dormammu's Blog. I just love Linux!

Adventures in /usr/bin and the likes - Dormammu's Blog

For me it makes interacting with your computer fun and educational. I think if someone needs to learn about the core principles underlying an operating system and hardware, Linux is a great place to start. As we all know interacting with Linux is achieved mostly through programs (commands). One of the things which differentiates Linux and the *nix based systems is the command line and the concept of pipes. Combining the input and output of programs provides a very powerful platform for manipulating data. Developing for Developers – Tools, techniques, and theory for measuring and improving the power and performance of developers and their code. Hey all – I apologize for the (extremely) long period of no updates, I’ve been prioritizing other things. I’ve been accepted this Fall to begin my Ph.D. at University of California, Berkeley. Since I won’t be at Microsoft any longer, I’ve started a new blog with a new focus and more regular updates called Papers… We’re entering an era where CPU clock speeds will soon cease to scale upwards and instead CPU manufacturers are planning to put more and more independent cores on a chip.

Intel plans to release an 80-core chip within 5 years. Consequently the research community is setting their eye on the manifold barriers to writing correct… Most computer scientists are familiar with the P = NP problem, which asks essentially whether we can verify more problems in polynomial time than we can solve. Untitled. Arduino Create. How To Unlock Netflix Hidden Categories - The Bro Talk. You need to login in order to like this post: click here Do you ever feel Netflix has limited categories to offer you? Many of us spend hours browsing through all the titles displayed just to end up not watching anything.

Well, the truth is that Netflix only shows you what they think you might want to watch. This is all based on an algorithm that uses what you have previously or regularly watch. But of course, there are ways around this to fully unlock all the categories. To access any hidden category you need to log in to your Netflix account and click on browse then click on any existing category it shows. “NetFlix And Chill” just got better….Enjoy!

Form handling · webapp-with-golang-anti-textbook. <form action="/add/" method="POST"><div class="form-group"><input type="text" name="title" class="form-control" id="add-note-title" placeholder="Title" style="border:none;border-bottom:1px solid gray; box-shadow:none;"></div><div class="form-group"><textarea class="form-control" name="content" id="add-note-content" placeholder="Content" rows="10" style="border:none;border-bottom:1px solid gray; box-shadow:none;"></textarea> File: <input type="file" name="uploadfile" /><br> Priority: <select name="priority"><option>---</option><option value="3">High</option><option value="2">Medium</option><option value="1">Low</option></select></div></div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">Close</button><input type="submit" text="submit" class="btn btn-default" /></div></form> <input type="radio" name="gender" value="1">Female <input type="radio" name="gender" value="2">Male <input type="radio" name="gender" value="3">Other Note Javascript.

Continuous Deployment With Helm, Deis Workflow, and Wercker. 21 Apr 2016 in Deis Workflow, Helm, Wercker, Continuous Deployment Deis Workflow is currently in beta. But what is it like to work with? Well, I created an example repository on GitHub to demo some functionality. Using this example, we'll build a simple, multi-tier web application using Helm, Deis Workflow, and Wercker for continuous deployment. When we finish, we'll have: GitHub - deis/example-guestbook-wercker: A simple PHP app for Deis PaaS, with back-end and wercker integration. Russ Bishop - Functors, Applicatives, and Monads in Plain English. Creating JVM language [PART 5] - Adding 'class' scope. Sources The project can be cloned from github repository. The revision described in this post is 50e6996a4faf8d5b469d291a029be05f9e6c9520. Parser rules changes In previous post I mentioned few things I would like to add to the language.

The first one is going to be obviously a class scope. Load any data source to Amazon Redshift. About the Confluent Platform — Confluent Platform 2.0.1 documentation. 60East Technologies. Scalable I/O: Events- Vs Multithreading-based. Everything begins with a refresher reading of my fundamental papers – yes, I use a set of papers and books as reference material. Master-less Distributed Queue with Postgres and PG Paxos.

The following post is contributed by 8Kdata (link is external). Knowledge base. Wercker - dev center. Linda Rising - Patterns Almanac. GitHub - machinezone/tcpkali: Fast multi-core TCP and WebSockets load generator. How to Learn Advanced Mathematics Without Heading to University - Part 1 - QuantStart. I am often asked in emails how to go about learning the necessary mathematics for getting a job in quantitative finance or data science if it isn't possible to head to university. This article is a response to such emails. I want to discuss how you can become a mathematical autodidact using nothing but a range of relatively reasonably priced textbooks and resources on the internet.

While it is far from easy to sustain the necessary effort to achieve such a task outside of a formal setting, it is possible with the resources (both paid and free) that are now available. We'll begin by discussing the reasons for wanting to learn advanced mathematics, be it career-driven, to gain entrance into formal education or even as a hobby. We'll then outline the time commitment required for each stage of the process, from junior highschool (UK GCSE equivalent) through to postgraduate/research level work. In this particular article we will consider the first year of an undergraduate course.

Channels Are Not Enough or Why Pipelining Is Not That Easy. Channels Are Not Enough. Set Auth Code. Gatling Project, Stress Tool. Mountebank - over the wire test doubles. Architecture Archives. Development Boards. Probonopd. Otoolep/rqlite: Replicating SQLite using the Raft consensus protocol. Inference: International Review of Science. Wdesk by Workiva. GitHub - kampsy/gwizo: Next generation Native Go implementation of the Porter Stemmer algorithm with powerful features. Paperwork/install.debian.markdown at stable · jflesch/paperwork. GitHub - tylertreat/Flotilla: Automated message queue orchestration for scaled-up benchmarking. GitHub - src-d/go-git: A low level and highly extensible git client library. C String Creation.

You often need to create a string in C. It's important to use the appropriate standard library functions for this, as this avoids a number of common error prone cases. This document shows how a modern C program would best do this. Read the manual pages for the mentioned functions to learn more. You should use the patterns described here.

If you find a need to call strcpy() yourself, it's probable you're writing error prone code and one of the mentioned interfaces would be simpler. Pick the least powerful interface below that solves the problem at hand. Creating a string of unbounded length The common case is needing to construct a string whose length could be arbitrary. Strdup /* Portability: POSIX 2001 */ #include <string.h> char *strdup(const char *str); The strdup() function combines strlen(), malloc() and strcpy() and makes it really simple to duplicate an existing string. free() the pointer when done. strndup The strndup() function creates a copy of a prefix of the input string. Asprintf. Spf4j – Spf4j (Simple performance framework for java)

1. Overview. GitHub - brunchboy/afterglow: A live-coding lighting controller, building on the Open Lighting Architecture with Clojure and bits of Overtone. How We Teach Programming, and Where We're Going Wrong. On the heels of President Obama's recent pledge to increase funding for computer science education in U.S. schools, I worry about the future of education in the discipline.

Without a doubt, teaching students how to program is a must for ensuring that the United States can modernize its workforce and compete on a global scale. However, the ways in which programming is taught in schools often lacks real grounding, and effort needs to be made in order distance general education in computer science from the training given to computer scientists.

The purpose of learning how to code is not to become an expert programmer (just as learning mathematics is not for the express purpose of creating mathematicians), but is to allow people to recognize when a little bit of simple programming can save a huge amount of time and effort. Let’s build a modern Hadoop — Pachyderm Data. Cluster Management. NetBSD Blog. Preshing/junction. Private servers for teams. Today we’re announcing private servers for teams. Every team account now has access to a private server just for team members. It can easily be adopted by existing teams, and is the default during new team creation. Using one of our team servers will isolate your chat on a dedicated, private server that only your team members can join. This frees up popular channels and nicknames for you to use, and helps avoid any spam or network troubles afflicting large public IRC networks. Safeplug: Safe, Secure, Anonymous Web Browsing From any Device.

Bring more Tor into your life. GitHub - caesar0301/awesome-public-datasets: An awesome list of high-quality open datasets in public domains (on-going). Pingendo - web authoring with comfort. Bootstrap Studio. Hoytech. Sign in or Register. Facebook/folly. Kv Design Language — Kivy 1.9.2-dev0 documentation. A blog to accompany a series of talks that I will be giving in 2014 – 2015 about adaptive learning. The importance of tuning your thread pools. Java in 2015 - Major happenings - Java Advent. High performance Archives - Java Advent. Science. Faunadb/faunadb-jvm. DataGrip: Your Swiss Army Knife for Databases and SQL.

How I wrote a self-hosting C compiler in 40 days. GitHub does dotfiles - Webpro/awesome-dotfiles. Designing a search system for log data — part 3 - Vallified. Derekparker (Derek Parker) Functional Programming on Flipboard. Stardog 4: The Manual. Going Reactive: An Architectural Journey - with Matthias Käppler. Multimedia on Linux Command Line: wget, PdfTK, ffmpeg, flac, SoX. Stream Processing with Apache Flink. Development Environments. Static Site Generators. Analytics, Data Mining, and Data Science.

Learn Git Branching.