mitmproxy - an interactive HTTPS proxy
mitmproxy is your swiss-army knife for debugging, testing, privacy measurements, and penetration testing. It can be used to intercept, inspect, modify and replay web traffic such as HTTP/1, HTTP/2, WebSockets, or any other SSL/TLS-protected protocols.

You can prettify and decode a variety of message types ranging from HTML to Protobuf, intercept specific messages on-the-fly, modify them before they reach their destination, and replay them to a client or server later on.
cli  http  mitm  proxy  tls  debug  webdev  https  pentest 
3 days ago
Ceph - a distributed data storage system
a free-software storage platform, implements object storage on a single distributed computer cluster, and provides interfaces for object-, block- and file-level storage.

Ceph aims primarily for completely distributed operation without a single point of failure, scalable to the exabyte level, and freely available.
storage  distributed  distributedsystems  filesystem 
13 days ago
- A really simple way to move a stand-alone function/class to a worker thread.
- All calls are made asynchronous. Works great with async/await.
- Only 1.01kB gzipped.
JavaScript  WebWorkers 
17 days ago
Rough.js is a light weight (~8k), Canvas based library that lets you draw in a sketchy, hand-drawn-like, style. The library defines primitives to draw lines, curves, arcs, polygons, circles, and ellipses. It also supports drawing SVG paths.
SVG  canvas  sketchy  drawing 
17 days ago
Data Laced with History: Causal Trees & Operational CRDTs
If I could figure out a way to develop auto-merging documents, I’d be able to implement sync and collaboration in my apps over CloudKit while using Apple’s first-party sharing UI—all without having to pay for or manage my own servers. So this became my ultimate research goal: a collaborative iPhone text editing demo that synced entirely over CloudKit. (And here’s a spoiler: it worked!)
CRDT  datastructures  computerscience  algorithm 
17 days ago
Advanced Operating Systems | Udacity
In this course, we will see all the advances that have led to the state-of-the-art operating system that we know today, covering variety of platforms -- cell phones, multi-core, parallel systems, distributed systems, and cloud computing.
learning  courses 
21 days ago
Version SAT
Dependency hell is NP-complete. But maybe we can climb out.
algorithms  versioning  SAT  dependencyManagement 
23 days ago
Paradigm shifts for the decentralized Web | Ruben Verborgh
As separate markets for data and apps emerge, Web development needs to adopt a new shape.
distributedsystems  dweb  decentralization  architecture  webdev 
27 days ago
CQRS Documents by Greg Young
Greg Young created a fantastic PDF document on CQRS that has been around the internet for quite some time.
CQRS  primer 
28 days ago
IPFS: The Decentralized Web Primer
This primer contains a series of Tutorials explaining IPFS, Merkle Trees and the Decentralized Web. It's written and maintained as a gitbook so people can read it in many formats.
ipfs  primer  dapps  p2p  learning  books 
5 weeks ago
Quantum Algorithm Zoo
The Quantum Algorithm Zoo maintains a catalog of all known quantum algorithms – and there are a lot of them! For each algorithm you get the name, speedup, and a short description.
algorithm  quantumcomputing 
6 weeks ago
How to Subvert Backdoored Encryption: Security Against Adversaries that Decrypt All Ciphertexts
Parties cannot simply encrypt ciphertexts of some other encryption scheme, because citizens caught trying to communicate outside the government’s knowledge (e.g. by encrypting strings which do not appear to be natural language plaintexts) will be arrested. The one guarantee we suppose is that the government mandates an encryption scheme which is semantically secure against outsiders: a perhaps reasonable supposition when a government might consider it advantageous to secure its people’s communication against foreign entities.
But then, what good is semantic security against an adversary that holds all the keys and has the power to decrypt?

We show that even in the pessimistic scenario described, citizens can communicate securely and undetectably.
papers  encryption  backdoor  surveillance  steganography  communication 
7 weeks ago
What can a technologist do about climate change? A personal view.
“How do you think the tech community (startup community, or any community) can contribute to tech and/or policy solutions on a global scale?”

The notes below are my attempt to answer that question.
energy  technology  ClimateChange  primer 
7 weeks ago
Feature Visualization
How neural networks build up their understanding of images
ai  deeplearning  machinelearning  visualization  primer  learning  neuralnetworks 
7 weeks ago
MetaMask Hackathon Guide – MetaMask
If you’re new to developing for Ethereum and MetaMask, it can be a daunting task! To make things easier, I’m keeping this article up to date with some useful tips for the first-timer!
MetaMask  Web3  ethereum  primer  tutorial 
8 weeks ago
Introduction to libp2p – Keep Network
Libp2p abstracts the mess of protocols we need to deal with in a decentralized context into a single protocol and handles the punching out of unfriendly networks, negotiating with a variety of gateways, and then effectively connecting with many, many peers.
libp2p  ipfs  p2p  distributedsystems 
9 weeks ago
Inter UI font family
Inter UI is a font for highly legible text on computer screens.
font  typography 
january 2018
Zstandard - Real-time data compression algorithm
Zstandard is a real-time compression algorithm, providing high compression ratios. It offers a very wide range of compression / speed trade-off, while being backed by a very fast decoder (see benchmarks below). It also offers a special mode for small data, called dictionary compression, and can create dictionaries from any sample set. Zstandard library is provided as open source software using a BSD license.
algorithm  compression  zstd  Zstandard  performance 
january 2018
Majority is not Enough: Bitcoin Mining is Vulnerable
We show that the Bitcoin mining protocol is not incentive-compatible.
We present an attack with which colluding miners obtain a revenue larger
than their fair share.
january 2018
Richardson Maturity Model: steps toward the glory of REST
A model (developed by Leonard Richardson) that breaks down the principal elements of a REST approach into three steps. These introduce resources, http verbs, and hypermedia controls.
http  rest  api 
december 2017
Speedment is a Stream ORM Java Toolkit and Runtime
The toolkit analyzes the metadata of an existing legacy SQL database and creates a Java representation of the data model which together with the Speedment runtime allows the user to create scalable and efficient Java applications using standard Java 8 streams without any specific query language or any new API.
java8  java  database  DSL  functional  streaming  ORM 
december 2017
Understanding Ethereum Smart Contracts - Gjermund Bjaanes
This post explains how smart contracts work on the Ethereum Blockchain.

Some technical details in this post are slightly simplified for the sake of clarity, but the concepts are valid.
ethereum  blockchain  smartContracts  primer  learning 
november 2017
Ratpack: Lean & powerful HTTP apps for the JVM
Ratpack is a set of Java libraries for building modern HTTP applications.

It provides just enough for writing practical, high performance, apps.

It is built on Java 8, Netty and reactive principles.
framework  http  java  reactive  netty  jvm 
november 2017
Simple tools to improve your Go code
I’ll go through a list of the ones I find really helpful, please note that this list is not exhaustive.
golang  linter  Programming 
november 2017
A penetration tester’s guide to sub-domain enumeration
Sub-domain enumeration is an essential part of the reconnaissance phase. This blog post covers various sub-domain enumeration techniques in a crisp and concise manner.
dns  pentest  security 
november 2017
Figs | Datalegreya
Datalegreya is a typeface which can interweave data curves with text.
font  typography  visualisation  charts 
november 2017
Git Flight Rules
A guide for astronauts (now, programmers using git) about what to do when things go wrong.
git  cheatsheet  primer 
november 2017
Awesome Go
A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python.
october 2017
vim-gitgutter - Vim Awesome
A Vim plugin which shows a git diff in the 'gutter' (sign column). It shows whether each line has been added, modified, and where lines have been removed. You can also stage and undo individual hunks.
vim  git 
october 2017
Vim After 15 Years | Ian Langworth’s Things of Variable Interest

fzf and fzf.vim for finding files
ack.vim and ag for searching files
Vim + tmux is the key to victory 🔑
ALE is the new Syntastic because it’s asynchronous
…and lots more. Keep reading.
tmux  vim 
october 2017
Logo Crunch - The multi-resolution logo maker
Logo Crunch is a multi-resolution logo maker, it uses computer vision to make your high-res logo legible at lower resolutions. Use it for a website favicon, iOS app icon or Android app icon.
logo  favicon  webdesign  branding 
october 2017
guetzli: Perceptual JPEG encoder
Guetzli is a JPEG encoder that aims for excellent compression density at high visual quality. Guetzli-generated images are typically 20-30% smaller than images of equivalent quality generated by libjpeg. Guetzli generates only sequential (nonprogressive) JPEGs due to faster decompression speeds they offer.
jpeg  compression  guetzli 
october 2017
Five Command Line Options To Hack The Java 9 Module System - blog@CodeFX
With Java 9, you might end up applying more command line options than ever before – it sure has been like that for me. While doing so I had a few insights that might make your life easier.
java  java9 
september 2017
Monads for Go Programmers
Monads are not just used to hide some error handling, but can also be used for list comprehensions and concurrency, to name but a few examples.
golang  monad  functional 
september 2017
Matrix is primarily characterised as a chat protocol. This protocol is designed to link up existing chat solutions such as XMPP (Jabber), IRC or Mattermost.
matrix  chat  irc  xmpp 
september 2017
TCP servers that run like clockwork | Sahil Muthoo
Go is a great language to write networked services. Such services often depend on TCP for their underlying transport. Understanding how to write robust TCP servers is vital. It helps us understand the underpinnings of stuff we build every day. We learn to appreciate the stack we stand on.
golang  tcp  tutorial 
september 2017
USB-C Compliant Cables
Not all usb-c cables are created the same. Benson Leung at Google has reviewed numerous cables, and there are quite a few non-compliant cables. These cables can result in weird, or even dangerous behavior.

If you have a Nexus 6p, Nexus 5x, or a OnePlus 2, I highly recommend using cables from the following list to save yourself trouble. All cables listed below have been reviewed, and are fully compliant with the USB-C standard.
usb-c  usb  hardware 
september 2017
A collection of (mostly) technical things every software developer should know.
learning  primer  Programming 
september 2017
A Complete Guide to Flexbox
The Flexbox Layout (Flexible Box) module (currently a W3C Last Call Working Draft) aims at providing a more efficient way to lay out, align and distribute space among items in a container, even when their size is unknown and/or dynamic (thus the word "flex").
CSS  webdesign  primer 
september 2017
EqualsVerifier even gives you 100% coverage on equals and hashCode methods.
java  testing 
august 2017
a plugin for Gatling that allows running tests with the ZeroMQ protocol
gatling  zeromq  benchmark 
august 2017
A history of branch prediction from 1500000 BC to 1995
This is a pseudo-transcript for a talk on branch prediction given at localhost, a new talk series organized by RC. This talk was given at Two Sigma Ventures on 8/22/2017.
cpu  hardware  compiler  history  optimization 
august 2017
Interface font family
Interface is a font for highly legible text on computer screens.
Download the latest release or try it out in the playground
font  typography 
august 2017
Inno Setup: a free installer for Windows programs
First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability.
august 2017
Effective Tensorflow
TensorFlow tutorials and best practices.
TensorFlow  tutorial 
august 2017
The world in which IPv6 was a good design
Why is IPv6 such a complicated mess compared to IPv4? Wouldn't it be better if it had just been IPv4 with more address bits? But it's not, oh goodness, is it ever not. So I started asking around. Here's what I found.
ipv6  history  networking  internet  QUIC 
august 2017
Why Github can't host the Linux Kernel Community
The problem is that github doesn’t support the way the linux kernel scales out to a huge number of contributors, and therefore we can’t simply move, not even just a few subsystems. And this isn’t about just hosting the git data, that part obviously works, but how pull requests, issues and forks work on github.
kernel  git  github  maintenance  opensource 
august 2017
Understanding the IPFS White Paper part 1
To understand how IPFS works it's a good idea to walk through this white paper step by step. I'll limit this post to chapter 2 of the white paper, having a look at the underlying technologies:

Distributed Hash Tables
Block Exchanges - BitTorrent
Version Control Systems - Git
Self-Certified Filesystems - SFS

OK, here we go!
ipfs  primer  learning 
august 2017
Side Project Marketing
I've been building little software side projects for years, but I've always been terrible at marketing them. I come up with some ideas, forget those ideas, do some random stuff, then lose interest. The goal of this project is to fix that by making marketing as simple as a checklist.
august 2017
A collection of various "awesome lists" for hackers, pentesters and security researchers
pentest  security 
august 2017
« earlier      
3d agile ai algorithm algorithms amazon analytics android angularjs animation api architecture assembly async audio authentication automation backup bash benchmark bestpractices bitcoin blockchain books bootstrap build c c++ canvas charts chat cheatsheet cli cloud cluster cms color compiler compression concurrency containers copyright couchdb courses cpp cpu cryptography css culture data database databases datamining datastructures debian debug deeplearning deployment design designpatterns development diff distributed distributedsystems django dns docker documentation ebook editor education ejabberd email embedded encryption es6 ethereum exploit filesystem floss font framework freeculture functional fuse games gc git github gnu\linux golang google gpg gps gpu graph graphics graphs gui hardware hash haskell history howto html html5 http http2 icons ide image internet ipfs iptables ipv6 irc jabber java java8 javascript jpeg jquery json jvm jwt kafka kernel language latex learning libraries library linux llvm loadbalancing machinelearning maps markdown math messaging mobile monitoring music networking neuralnetworks nginx node.js nosql openpgp opensource openstreetmap optimization p2p papers password pdf pentest performance perl php png postgres postgresql primer privacy programming protocol proxy psychology publicdomain python python3 rails raspberrypi reactive reactjs reference regex rest rpc ruby rust sandbox scala science screencast search security sh shell software sql ssh ssl statistics storage styleguide svg sync sysadmin tcp terminal testing tex tls tools tor torrent tracking tunnel tutorial tutorials typography ui unicode unix usb ux video vim visualisation visualization vm web webdesign webdev websockets wiki windows wireless wysiwyg xmpp zeromq

Copy this bookmark: