Falcon - A modern high-performance web server for Ruby, supporting HTTP/2 and HTTPS out of the box.
Falcon is a multi-process, multi-fiber rack-compatible HTTP server built on top of async, async-io, async-container and async-http. Each request is run within a lightweight fiber and can block on up-stream requests without stalling the entire server process. Supports HTTP/1 and HTTP/2 natively.
ruby  http  http2  http-server  server  gem  github  library 
4 hours ago
Awesome asynchronous I/O for Ruby.
Several years ago, I was hosting websites on a server in my garage. Back then, my ADSL modem was very basic, and I wanted to have a DNS server which would resolve to an internal IP address when the domain itself resolved to my public IP. Thus was born RubyDNS. This project was originally built on top of EventMachine, but a lack of support for IPv6 at the time and other problems, meant that I started looking for other options. Around that time Celluloid was picking up steam. I had not encountered actors before and I wanted to learn more about it. So, I reimplemented RubyDNS on top of Celluloid and this eventually became the first stable release.

Moving forward, I refactored the internals of RubyDNS into Celluloid::DNS. This rewrite helped solidify the design of RubyDNS and to a certain extent it works. However, unfixed bugs and design problems in Celluloid meant that RubyDNS 2.0 was delayed by almost 2 years. I wasn't happy releasing it with known bugs and problems. After sitting on the problem for a while, and thinking about possible solutions, I decided to build a small event reactor using nio4r and timers, the core parts of Celluloid::IO which made it work so well. The result is this project.

In addition, there is a similarly designed C++ library of the same name. These two libraries share similar design principles, but are different in some areas due to the underlying semantic differences of the languages.
ruby  async  async-io  io  gem  github  library  c++ 
4 hours ago
Twitter
The iPhone XS is faster than an iMac Pro on the Speedometer 2.0 JavaScript benchmark. It's the fastest device I've…
from twitter_favs
4 weeks ago
Auto-squashing Git Commits
git commit --fixup
git commit --squash
git  rebase  convention  fixup  squash 
5 weeks ago
GopherCon 2018 - Allocator Wrestling
A whirlwind tour of the Go memory allocator and garbage collector, with tools and tips on how to optimize.

* The allocator and garbage collector are pretty ingenious!
* Single allocations are fast but not free
* The garbage collector can stop individual goroutines, even though STW pauses are very short
* A combination of tools is essential to understand what's going on: benchmark with GC off
* use CPU profiler to find hot allocations
* use memory profiler to understand allocation count/bytes
* use execution tracer to understand GC pattern
* use escape analyzer to understand why allocations happen
garbagecollection  golang  architecture  gc  overview 
7 weeks ago
Hammerspoon
This is a tool for powerful automation of OS X. At its core, Hammerspoon is just a bridge between the operating system and a Lua scripting engine. What gives Hammerspoon its power is a set of extensions that expose specific pieces of system functionality, to the user.
automation  mac  osx  lua  scripting 
7 weeks ago
vmxdev/tkvdb: Trie key-value database
Trie (radix trie in fact) key-value database

tkvdb is an embedded database library for key-value data. It is similar to Berkeley DB, LevelDB or SQLite4 LSM.

Keys are always sorted in memcmp() order.
database  key-value-store  trie  data-structures  radix-tree  c  programming  github 
8 weeks ago
Twitter
The next chapter: after a 1.5 year "sabbatical" at , I'm thrilled to announce that I'm rejoining in…
from twitter_favs
8 weeks ago
Twitter
One of the things that surprised me most teaching this week was how useful it was to share my contact sheets - fill…
from twitter_favs
july 2018
Twitter
The rain finally let up and a family of red foxes went hunting for food. D850 & 600mm + X2 @ 1/640, f/8,…
from twitter_favs
july 2018
diasks2/pragmatic_segmenter: Pragmatic Segmenter is a rule-based sentence boundary detection gem that works out-of-the-box across many languages.
Pragmatic Segmenter is a rule-based sentence boundary detection gem that works out-of-the-box across many languages.
nlp  sentence  ruby  segmented  rule-based  github  library 
july 2018
Twitter
The main reason not to visit Antarctica: Once you've been, you can't stop thinking about it.
from twitter_favs
june 2018
dgryski/go-simstore: simhash storage and searching
go-simstore: store and search through simhashes

This package is an implementation of section 3 of "Detecting Near-Duplicates for Web Crawling" by Manku, Jain, and Sarma,

http://www2007.org/papers/paper215.pdf

simhash is a simple simhashing library.
simstore is the storage and searching logic
simd is a small daemon that wraps simstore and exposes a http /search endpoint
This code is licensed under the MIT license
simhash  golang  github  code  library 
june 2018
Twitter
The 2K cover we deserve 🙌
from twitter_favs
june 2018
A Neat Trick For Compressing Networked State Data « The blog at the bottom of the sea
For instance, if you had a large struct of data containing information about all the players in the world, projectiles, enemies, and other game objects – and you wanted to send this information to a specific player so their game client could render the world appropriately / do collision detection / etc.

It goes like this:

1) Get the initial state and send it (compressed).
2) When it’s time to send an update to the state, XOR it against the previous state, compress that result and send it.
3) Rinse and repeat.

The magic here is in the assumption that the state as a whole isn’t going to change much from update to update. If this assumption is true, when you do the XOR against the previous state, you are going to end up with a lot of zeroes, which compress very nicely, making for a small data payload.
algorithm  compression  hack  cool-trick  tricks 
june 2018
Search / Information Retrieval Ranking Metrics
Information Retrieval metrics:

Useful Resources:
* http://www.cs.utexas.edu/~mooney/ir-course/slides/Evaluation.ppt
* http://www.nii.ac.jp/TechReports/05-014E.pdf
* http://www.stanford.edu/class/cs276/handouts/EvaluationNew-handout-6-per.pdf
* http://hal.archives-ouvertes.fr/docs/00/72/67/60/PDF/07-busa-fekete.pdf
Learning to Rank for Information Retrieval (Tie-Yan Liu)

- mean_reciprocal_rank
- r_precision
- precision_at_k
- average_precision
- mean_average_precision
- dcg_at_k
- ndcg_at_k
code  python  ranking  ranking-metrics  metrics  dcg  ndcg  cg  rank 
may 2018
Machine Learning Crash Course  |  Google Developers
A self-study guide for aspiring machine learning practitioners
Machine Learning Crash Course features a series of lessons with video lectures, real-world case studies, and hands-on practice exercises.
machinelearning  ai  google  tensorflow  course  video  class  lectures 
may 2018
fast.ai NLP · Practical NLP
Today we’re releasing our paper Universal Language Model Fine-tuning for Text Classification (ULMFiT), pre-trained models, and full source code in the Python programming language. The paper has been peer-reviewed and accepted for presentation at the Annual Meeting of the Association for Computational Linguistics (ACL 2018).

This method dramatically improves over previous approaches to text classification, and the code and pre-trained models allow anyone to leverage this new approach to better solve problems such as:

Finding documents relevant to a legal case;
* Identifying spam, bots, and offensive comments;
* Classifying positive and negative reviews of a product;
* Grouping articles by political orientation;
…and much more.
nlp  deeplearning  machinelearning  python 
may 2018
On Bifunctor IO and Java's Checked Exceptions
The Bifunctor IO data type is a hot topic in the Scala community. In this article however I'm expressing my dislike for it because it shares the same problems as Java's Checked Exceptions.
scala  functional  programming  java  io  bifunctor 
may 2018
C Primer
This is not a theoretical C language specifications document. It is a practical primer for the vast majority of real life cases of C usage that are relevant to EFL on todays common architectures. It covers application executables and shared library concepts and is written from a Linux/UNIX perspective where you would have your code running with an OS doing memory mappings and probably protection for you. It really is fundamentally not much different on Android, iOS, OSX or even Windows.

It won't cover esoteric details of “strange architectures”. It pretty much covers C as a high level assembly language that is portable across a range of modern architectures.
tutorial  programming  reference  c  introduction 
may 2018
google/randen: Fast backtracking-resistant random generator (pending publication).
What if we could default to attack-resistant random generators without excessive CPU cost? We introduce 'Randen', a new generator with security guarantees; it outperforms MT19937 and pcg64_c32 in real-world benchmarks. This is made possible by AES hardware acceleration and a large Feistel permutation.
random  rng  random-number-generator  google  algorithm  security  github  cpp  c++ 
may 2018
narqo/psqr: P-Square Algorithm in Go
Go implementation of The P-Square Algorithm for Dynamic Calculation of Quantiles and Histograms Without Storing Observations.

The algorithm is proposed for dynamic calculation of [..] quantiles. The estimates are produced dynamically as the observations are generated. The observations are not stored, therefore, the algorithm has a very small and fixed storage requirement regardless of the number of observations.
quantile  golang  algorithm  github 
may 2018
« earlier      
activerecord admin advice ai ajax algorithm algorithms analysis analytics animation anomaly-detection apache api apple applications architecture articles audio automation bash benchmark bestpractices blog book books browser business c c++ cache chart cheatsheet cli clustering cocoa code color command commandline community comparison compression concurrency concurrent configuration console cs css css3 data database datamining datastructure debugging deeplearning deployment design designpatterns development distributed distributed-architecture distributed-system documentation dom dsl ebook editor education erlang example filesystem flash framework free freeware fun functional gem generator git github go golang google googlecode graph graphics gui guide hack hacking hacks hash hashing hosting howto html html5 http idiom introduction ios iphone java javascript jquery json language layout learning library lifehacks links linux list lists log mac machinelearning macosx management math media memory merb metaprogramming mobile monitoring mysql network networking nlp nosql objective-c oop opensource optimization osx parallel parser patterns performance photography photoshop plugin postgresql presentation probability productivity programming protocol prototype python queue redis reference research resources rest ruby ruby1.9 rubyonrails scala scalability scm scripting search security server shell similarity software spark sql statistics stats storage stream string syntax sysadmin system terminal test testing text time timeseries tips tools tree tricks tutorial tutorials twitter ui unix utilities video visualization web web2.0 webdesign webdev webdevelopment webframework webkit webservices wiki wikipedia windows xml

Copy this bookmark:



description:


tags: