27 April 2022
26 April 2022
13 April 2022
El software se deteriora
El software no se desgasta, pero sí se deteriora
Software doesn’t wear out, but it does deteriorate.
--Pressman, Ingenieria del Software, 7th ed.
--Software Engineering
07 April 2022
26 March 2022
Julia for Data Analysis
Technical Proofer:
Bogumił Kamiński, Foreword by Viral Shah, December 2022
https://www.manning.com/books/julia-for-data-analysis
24 March 2022
Chassis and Template for Production-Ready Microservices
11 March 2022
Pipeline as Code with Jenkins
03 March 2022
02 March 2022
K8s deployments
A good diagram for k8s deployments
(Nived Velayudhan and Seth Kenlon, CC BY-SA 4.0)
https://opensource.com/article/22/3/visual-map-kubernetes-deployment
31 January 2022
Bloom Filter
Bloom filter is a space-efficient probabilistic data structure for testing if an element is in a Set. It is a space-efficient probabilistic data structure.[1]
It cannot return False negative, nevertheless it can return false positives. So there is a probability that the element belongs to the set but cannot not be acute 100%.[8]
In other words, a query returns either "possibly in set" or "definitely not in set". Elements can be added to the set, but not removed (though this can be addressed with the counting Bloom filter variant); the more items added, the larger the probability of false positives.[1]
Use a hash function to map a key to a bucket. However, it will not store that key in that bucket, it will simply mark it as filled. So, many keys might map to same filled bucket, creating false positives.
Interestingly a Bloom filter can also trade accuracy for space.
An example of a Bloom filter, representing the set {x, y, z} . The colored arrows show the positions in the bit array that each set element is mapped to. The element w is not in the set {x, y, z} , because it hashes to one bit-array position containing 0. For this figure, m = 18 and k = 3. (wikipedia)
A Guava BloomFilter is created by calling the static method create on the BloomFilter class,
passing in a Funnel object and an int representing the expected number of insertions. A Funnel, also new in Guava 11, is an object that can send data into a Sink.[6]
//Creating the BloomFilter
BloomFilter bloomFilter = BloomFilter.create(Funnels.byteArrayFunnel(), 1000);
//Putting elements into the filter
//A BigInteger representing a key of some sort
bloomFilter.put(bigInteger.toByteArray());
//Testing for element in set
boolean mayBeContained = bloomFilter.mayContain(bitIntegerII.toByteArray());
https://github.com/devwebcl/java-samples/tree/master/src/main/java/cl/devweb/guava/bloomfilter
Bad sample where expected elemts is 5 and we insert 100,000, will give too many false positives:
BloomFilter<Integer> filter = BloomFilter.create(
Funnels.integerFunnel(),
5,
0.01);
IntStream.range(0, 100_000).forEach(filter::put);
Funnel
A Funnel describes how to decompose a particular object type into primitive field values. For example, if we had
class Person {
final int id;
final String firstName;
final String lastName;
final int birthYear;
}
our Funnel might look like
Funnel<Person> personFunnel = new Funnel<Person>() {
@Override
public void funnel(Person person, PrimitiveSink into) {
into
.putInt(person.id)
.putString(person.firstName, Charsets.UTF_8)
.putString(person.lastName, Charsets.UTF_8)
.putInt(birthYear);
}
};
- https://en.wikipedia.org/wiki/Bloom_filter
- https://llimllib.github.io/bloomfilter-tutorial/
- https://www.baeldung.com/guava-bloom-filter
- https://www.geeksforgeeks.org/bloom-filters-introduction-and-python-implementation/
- https://github.com/google/guava/wiki/HashingExplained
- https://dzone.com/articles/using-guava-bloomfilter-guard
- https://github.com/bbejeck/guava-blog/blob/master/src/test/java/bbejeck/guava/hash/BloomFilterTest.java
- https://www.i-programmer.info/programming/theory/2404.html
PS: there is a The Invertible Bloom Filter !... ?
Labels
- Algorithm
- Architecture
- Artificial Intelligence
- AWS
- Aymara
- Books
- C
- Certification
- Cheat
- Chess
- Cloud
- Concurrency
- Contest
- Deep Learning
- Design Patterns
- Dijkstra
- Eclipse
- Errata
- Functional
- Gaming
- Haskell
- Java
- Julia
- Knuth
- Kubernetes
- Latex
- Linguistics
- Linux
- Log4j
- Mac OSX
- Magazines
- Math
- Maven
- Memories
- Microservices
- Miscellaneous
- Networking
- OCI
- Performance
- Programming
- Puzzle
- Python
- Quotes
- RegExp
- Retro
- Security
- Software
- Software Engineering
- Sports
- Spring
- Tech Review
- Tomcat
- Unsolved
- Web Services
- Weblogic
My Blog List
-
I viaggiatori Della Sera (1979)5 months ago
Books & Reading
Blog Archive
-
▼
2026
(
15
)
- ► May 31 - Jun 7 ( 2 )
- ► May 24 - May 31 ( 2 )
- ► May 17 - May 24 ( 1 )
- ► Mar 29 - Apr 5 ( 2 )
- ► Mar 8 - Mar 15 ( 1 )
- ► Mar 1 - Mar 8 ( 1 )
- ► Feb 15 - Feb 22 ( 1 )
- ► Feb 1 - Feb 8 ( 2 )
- ► Jan 25 - Feb 1 ( 1 )
-
►
2025
(
25
)
- ► Dec 21 - Dec 28 ( 2 )
- ► Nov 16 - Nov 23 ( 2 )
- ► Oct 12 - Oct 19 ( 2 )
- ► Sep 21 - Sep 28 ( 1 )
- ► Sep 7 - Sep 14 ( 2 )
- ► Aug 24 - Aug 31 ( 1 )
- ► Aug 17 - Aug 24 ( 1 )
- ► Jul 6 - Jul 13 ( 2 )
- ► Jun 22 - Jun 29 ( 1 )
- ► Jun 1 - Jun 8 ( 1 )
- ► May 25 - Jun 1 ( 2 )
- ► May 11 - May 18 ( 1 )
- ► Apr 27 - May 4 ( 1 )
- ► Apr 6 - Apr 13 ( 1 )
- ► Mar 16 - Mar 23 ( 2 )
- ► Feb 16 - Feb 23 ( 1 )
- ► Feb 9 - Feb 16 ( 1 )
- ► Feb 2 - Feb 9 ( 1 )
-
►
2024
(
10
)
- ► Dec 15 - Dec 22 ( 1 )
- ► Dec 1 - Dec 8 ( 1 )
- ► Nov 17 - Nov 24 ( 1 )
- ► Oct 20 - Oct 27 ( 1 )
- ► Oct 13 - Oct 20 ( 1 )
- ► Apr 21 - Apr 28 ( 1 )
- ► Mar 24 - Mar 31 ( 3 )
- ► Jan 7 - Jan 14 ( 1 )
-
►
2023
(
15
)
- ► Dec 10 - Dec 17 ( 1 )
- ► Sep 10 - Sep 17 ( 1 )
- ► Aug 13 - Aug 20 ( 1 )
- ► Jul 9 - Jul 16 ( 1 )
- ► Jun 18 - Jun 25 ( 2 )
- ► Jun 4 - Jun 11 ( 1 )
- ► May 28 - Jun 4 ( 2 )
- ► May 21 - May 28 ( 1 )
- ► Mar 12 - Mar 19 ( 1 )
- ► Feb 19 - Feb 26 ( 1 )
- ► Jan 15 - Jan 22 ( 3 )
-
►
2022
(
22
)
- ► Nov 27 - Dec 4 ( 1 )
- ► Oct 16 - Oct 23 ( 1 )
- ► Aug 21 - Aug 28 ( 1 )
- ► Jul 17 - Jul 24 ( 1 )
- ► Jun 5 - Jun 12 ( 1 )
- ► May 22 - May 29 ( 1 )
- ► May 15 - May 22 ( 1 )
- ► Apr 24 - May 1 ( 2 )
- ► Apr 10 - Apr 17 ( 1 )
- ► Apr 3 - Apr 10 ( 1 )
- ► Mar 20 - Mar 27 ( 2 )
- ► Mar 6 - Mar 13 ( 1 )
- ► Feb 27 - Mar 6 ( 2 )
- ► Jan 30 - Feb 6 ( 1 )
- ► Jan 23 - Jan 30 ( 1 )
- ► Jan 9 - Jan 16 ( 2 )
- ► Jan 2 - Jan 9 ( 2 )
-
►
2021
(
26
)
- ► Dec 19 - Dec 26 ( 1 )
- ► Dec 12 - Dec 19 ( 1 )
- ► Nov 7 - Nov 14 ( 1 )
- ► Sep 12 - Sep 19 ( 1 )
- ► Sep 5 - Sep 12 ( 1 )
- ► Aug 8 - Aug 15 ( 1 )
- ► Aug 1 - Aug 8 ( 2 )
- ► Jul 25 - Aug 1 ( 1 )
- ► Jul 18 - Jul 25 ( 2 )
- ► Jul 11 - Jul 18 ( 1 )
- ► Jul 4 - Jul 11 ( 1 )
- ► Jun 27 - Jul 4 ( 2 )
- ► Jun 6 - Jun 13 ( 1 )
- ► May 30 - Jun 6 ( 1 )
- ► May 9 - May 16 ( 1 )
- ► May 2 - May 9 ( 1 )
- ► Apr 4 - Apr 11 ( 1 )
- ► Feb 14 - Feb 21 ( 1 )
- ► Feb 7 - Feb 14 ( 1 )
- ► Jan 24 - Jan 31 ( 3 )
- ► Jan 10 - Jan 17 ( 1 )
-
►
2020
(
47
)
- ► Dec 20 - Dec 27 ( 1 )
- ► Dec 6 - Dec 13 ( 2 )
- ► Nov 29 - Dec 6 ( 3 )
- ► Nov 1 - Nov 8 ( 1 )
- ► Oct 25 - Nov 1 ( 1 )
- ► Oct 18 - Oct 25 ( 2 )
- ► Oct 11 - Oct 18 ( 1 )
- ► Sep 27 - Oct 4 ( 1 )
- ► Sep 20 - Sep 27 ( 1 )
- ► Sep 13 - Sep 20 ( 1 )
- ► Sep 6 - Sep 13 ( 1 )
- ► Aug 30 - Sep 6 ( 2 )
- ► Aug 16 - Aug 23 ( 2 )
- ► Aug 2 - Aug 9 ( 1 )
- ► Jul 26 - Aug 2 ( 1 )
- ► Jul 19 - Jul 26 ( 2 )
- ► Jul 5 - Jul 12 ( 1 )
- ► Jun 14 - Jun 21 ( 1 )
- ► May 31 - Jun 7 ( 3 )
- ► May 17 - May 24 ( 2 )
- ► May 10 - May 17 ( 1 )
- ► Apr 19 - Apr 26 ( 2 )
- ► Mar 29 - Apr 5 ( 2 )
- ► Mar 15 - Mar 22 ( 2 )
- ► Mar 8 - Mar 15 ( 1 )
- ► Mar 1 - Mar 8 ( 1 )
- ► Feb 23 - Mar 1 ( 1 )
- ► Feb 16 - Feb 23 ( 2 )
- ► Feb 9 - Feb 16 ( 1 )
- ► Feb 2 - Feb 9 ( 1 )
- ► Jan 26 - Feb 2 ( 1 )
- ► Jan 19 - Jan 26 ( 1 )
- ► Jan 12 - Jan 19 ( 1 )
-
►
2019
(
57
)
- ► Dec 29 - Jan 5 ( 1 )
- ► Dec 15 - Dec 22 ( 1 )
- ► Dec 1 - Dec 8 ( 2 )
- ► Nov 24 - Dec 1 ( 1 )
- ► Nov 17 - Nov 24 ( 1 )
- ► Nov 10 - Nov 17 ( 1 )
- ► Nov 3 - Nov 10 ( 1 )
- ► Oct 20 - Oct 27 ( 1 )
- ► Oct 6 - Oct 13 ( 1 )
- ► Sep 29 - Oct 6 ( 1 )
- ► Sep 22 - Sep 29 ( 2 )
- ► Sep 15 - Sep 22 ( 1 )
- ► Sep 8 - Sep 15 ( 7 )
- ► Sep 1 - Sep 8 ( 6 )
- ► Aug 25 - Sep 1 ( 4 )
- ► Aug 18 - Aug 25 ( 2 )
- ► Aug 4 - Aug 11 ( 1 )
- ► Jul 14 - Jul 21 ( 1 )
- ► Jun 30 - Jul 7 ( 1 )
- ► Jun 16 - Jun 23 ( 2 )
- ► Jun 2 - Jun 9 ( 1 )
- ► May 26 - Jun 2 ( 1 )
- ► May 5 - May 12 ( 3 )
- ► Apr 28 - May 5 ( 1 )
- ► Apr 21 - Apr 28 ( 1 )
- ► Apr 7 - Apr 14 ( 1 )
- ► Mar 24 - Mar 31 ( 2 )
- ► Mar 17 - Mar 24 ( 1 )
- ► Mar 10 - Mar 17 ( 1 )
- ► Mar 3 - Mar 10 ( 1 )
- ► Feb 24 - Mar 3 ( 2 )
- ► Feb 10 - Feb 17 ( 2 )
- ► Jan 13 - Jan 20 ( 2 )
-
►
2018
(
75
)
- ► Dec 30 - Jan 6 ( 2 )
- ► Dec 23 - Dec 30 ( 1 )
- ► Dec 16 - Dec 23 ( 2 )
- ► Dec 9 - Dec 16 ( 3 )
- ► Dec 2 - Dec 9 ( 3 )
- ► Nov 25 - Dec 2 ( 3 )
- ► Nov 18 - Nov 25 ( 3 )
- ► Nov 11 - Nov 18 ( 4 )
- ► Nov 4 - Nov 11 ( 2 )
- ► Oct 28 - Nov 4 ( 2 )
- ► Oct 14 - Oct 21 ( 2 )
- ► Sep 30 - Oct 7 ( 2 )
- ► Sep 23 - Sep 30 ( 1 )
- ► Sep 16 - Sep 23 ( 1 )
- ► Aug 26 - Sep 2 ( 1 )
- ► Aug 12 - Aug 19 ( 2 )
- ► Aug 5 - Aug 12 ( 1 )
- ► Jul 29 - Aug 5 ( 1 )
- ► Jul 22 - Jul 29 ( 1 )
- ► Jul 8 - Jul 15 ( 3 )
- ► Jul 1 - Jul 8 ( 2 )
- ► Jun 24 - Jul 1 ( 3 )
- ► Jun 17 - Jun 24 ( 2 )
- ► Jun 10 - Jun 17 ( 8 )
- ► Jun 3 - Jun 10 ( 4 )
- ► May 27 - Jun 3 ( 2 )
- ► May 6 - May 13 ( 1 )
- ► Apr 29 - May 6 ( 1 )
- ► Apr 8 - Apr 15 ( 2 )
- ► Apr 1 - Apr 8 ( 2 )
- ► Mar 25 - Apr 1 ( 1 )
- ► Mar 11 - Mar 18 ( 1 )
- ► Mar 4 - Mar 11 ( 1 )
- ► Feb 18 - Feb 25 ( 2 )
- ► Jan 28 - Feb 4 ( 1 )
- ► Jan 21 - Jan 28 ( 1 )
- ► Jan 7 - Jan 14 ( 1 )
-
►
2017
(
33
)
- ► Dec 31 - Jan 7 ( 1 )
- ► Dec 24 - Dec 31 ( 2 )
- ► Dec 17 - Dec 24 ( 1 )
- ► Dec 10 - Dec 17 ( 1 )
- ► Dec 3 - Dec 10 ( 1 )
- ► Nov 26 - Dec 3 ( 3 )
- ► Nov 19 - Nov 26 ( 1 )
- ► Nov 5 - Nov 12 ( 1 )
- ► Oct 29 - Nov 5 ( 4 )
- ► Oct 15 - Oct 22 ( 1 )
- ► Oct 8 - Oct 15 ( 2 )
- ► Oct 1 - Oct 8 ( 1 )
- ► Aug 20 - Aug 27 ( 2 )
- ► Jul 9 - Jul 16 ( 1 )
- ► May 7 - May 14 ( 3 )
- ► Apr 30 - May 7 ( 1 )
- ► Mar 19 - Mar 26 ( 1 )
- ► Mar 12 - Mar 19 ( 2 )
- ► Feb 26 - Mar 5 ( 1 )
- ► Feb 12 - Feb 19 ( 2 )
- ► Jan 8 - Jan 15 ( 1 )
-
►
2016
(
32
)
- ► Dec 25 - Jan 1 ( 1 )
- ► Nov 27 - Dec 4 ( 2 )
- ► Nov 20 - Nov 27 ( 1 )
- ► Nov 6 - Nov 13 ( 1 )
- ► Oct 30 - Nov 6 ( 1 )
- ► Oct 23 - Oct 30 ( 1 )
- ► Oct 16 - Oct 23 ( 3 )
- ► Sep 4 - Sep 11 ( 1 )
- ► Aug 7 - Aug 14 ( 2 )
- ► Jul 24 - Jul 31 ( 1 )
- ► Jun 26 - Jul 3 ( 1 )
- ► May 22 - May 29 ( 1 )
- ► May 15 - May 22 ( 1 )
- ► May 1 - May 8 ( 1 )
- ► Apr 3 - Apr 10 ( 1 )
- ► Mar 20 - Mar 27 ( 1 )
- ► Mar 13 - Mar 20 ( 2 )
- ► Mar 6 - Mar 13 ( 1 )
- ► Feb 28 - Mar 6 ( 3 )
- ► Feb 21 - Feb 28 ( 2 )
- ► Jan 24 - Jan 31 ( 1 )
- ► Jan 10 - Jan 17 ( 2 )
- ► Jan 3 - Jan 10 ( 1 )
-
►
2015
(
18
)
- ► Dec 27 - Jan 3 ( 1 )
- ► Nov 29 - Dec 6 ( 1 )
- ► Nov 1 - Nov 8 ( 2 )
- ► Oct 18 - Oct 25 ( 1 )
- ► Oct 11 - Oct 18 ( 2 )
- ► Sep 13 - Sep 20 ( 3 )
- ► Jul 5 - Jul 12 ( 1 )
- ► Jun 21 - Jun 28 ( 1 )
- ► May 31 - Jun 7 ( 1 )
- ► Mar 15 - Mar 22 ( 1 )
- ► Mar 8 - Mar 15 ( 3 )
- ► Mar 1 - Mar 8 ( 1 )
-
►
2014
(
18
)
- ► Dec 28 - Jan 4 ( 1 )
- ► Dec 7 - Dec 14 ( 1 )
- ► Nov 16 - Nov 23 ( 1 )
- ► Nov 2 - Nov 9 ( 1 )
- ► Oct 5 - Oct 12 ( 1 )
- ► Sep 14 - Sep 21 ( 3 )
- ► Sep 7 - Sep 14 ( 1 )
- ► Aug 31 - Sep 7 ( 1 )
- ► Aug 17 - Aug 24 ( 1 )
- ► Jul 27 - Aug 3 ( 1 )
- ► Jun 29 - Jul 6 ( 1 )
- ► Jun 15 - Jun 22 ( 1 )
- ► Jun 8 - Jun 15 ( 1 )
- ► May 25 - Jun 1 ( 1 )
- ► Feb 9 - Feb 16 ( 1 )
- ► Jan 5 - Jan 12 ( 1 )
-
►
2013
(
22
)
- ► Dec 29 - Jan 5 ( 2 )
- ► Dec 22 - Dec 29 ( 1 )
- ► Nov 17 - Nov 24 ( 1 )
- ► Nov 10 - Nov 17 ( 2 )
- ► Oct 27 - Nov 3 ( 1 )
- ► Sep 22 - Sep 29 ( 1 )
- ► Sep 15 - Sep 22 ( 1 )
- ► Sep 8 - Sep 15 ( 1 )
- ► Aug 25 - Sep 1 ( 1 )
- ► Jul 28 - Aug 4 ( 1 )
- ► May 5 - May 12 ( 2 )
- ► Apr 7 - Apr 14 ( 3 )
- ► Mar 31 - Apr 7 ( 2 )
- ► Mar 3 - Mar 10 ( 1 )
- ► Jan 20 - Jan 27 ( 1 )
- ► Jan 13 - Jan 20 ( 1 )
-
►
2012
(
24
)
- ► Dec 16 - Dec 23 ( 1 )
- ► Oct 28 - Nov 4 ( 1 )
- ► Oct 21 - Oct 28 ( 1 )
- ► Sep 23 - Sep 30 ( 2 )
- ► Sep 9 - Sep 16 ( 1 )
- ► Sep 2 - Sep 9 ( 1 )
- ► Aug 26 - Sep 2 ( 2 )
- ► Jun 24 - Jul 1 ( 2 )
- ► Jun 17 - Jun 24 ( 1 )
- ► May 13 - May 20 ( 1 )
- ► May 6 - May 13 ( 2 )
- ► Apr 22 - Apr 29 ( 2 )
- ► Apr 15 - Apr 22 ( 4 )
- ► Mar 25 - Apr 1 ( 1 )
- ► Feb 26 - Mar 4 ( 1 )
- ► Jan 29 - Feb 5 ( 1 )
-
►
2011
(
14
)
- ► Nov 20 - Nov 27 ( 1 )
- ► Nov 6 - Nov 13 ( 1 )
- ► Oct 30 - Nov 6 ( 1 )
- ► Oct 23 - Oct 30 ( 3 )
- ► Sep 25 - Oct 2 ( 1 )
- ► Sep 4 - Sep 11 ( 1 )
- ► Aug 28 - Sep 4 ( 1 )
- ► Jul 3 - Jul 10 ( 1 )
- ► May 15 - May 22 ( 1 )
- ► May 8 - May 15 ( 1 )
- ► May 1 - May 8 ( 1 )
- ► Feb 20 - Feb 27 ( 1 )
-
►
2010
(
19
)
- ► Dec 26 - Jan 2 ( 1 )
- ► Dec 12 - Dec 19 ( 2 )
- ► Dec 5 - Dec 12 ( 2 )
- ► Nov 21 - Nov 28 ( 1 )
- ► Sep 19 - Sep 26 ( 1 )
- ► Aug 22 - Aug 29 ( 1 )
- ► Aug 1 - Aug 8 ( 2 )
- ► Jun 27 - Jul 4 ( 1 )
- ► Jun 6 - Jun 13 ( 1 )
- ► May 23 - May 30 ( 1 )
- ► May 16 - May 23 ( 4 )
- ► Feb 28 - Mar 7 ( 1 )
- ► Jan 31 - Feb 7 ( 1 )
-
►
2009
(
16
)
- ► Dec 13 - Dec 20 ( 1 )
- ► Oct 4 - Oct 11 ( 1 )
- ► Sep 27 - Oct 4 ( 1 )
- ► Aug 23 - Aug 30 ( 4 )
- ► Aug 16 - Aug 23 ( 1 )
- ► Aug 2 - Aug 9 ( 1 )
- ► Jul 19 - Jul 26 ( 1 )
- ► Jul 12 - Jul 19 ( 1 )
- ► Jun 21 - Jun 28 ( 1 )
- ► Jun 14 - Jun 21 ( 1 )
- ► Jun 7 - Jun 14 ( 1 )
- ► Apr 19 - Apr 26 ( 1 )
- ► Feb 8 - Feb 15 ( 1 )
-
►
2008
(
10
)
- ► Dec 28 - Jan 4 ( 1 )
- ► Nov 30 - Dec 7 ( 1 )
- ► Nov 23 - Nov 30 ( 1 )
- ► Oct 26 - Nov 2 ( 2 )
- ► Sep 28 - Oct 5 ( 1 )
- ► Sep 21 - Sep 28 ( 1 )
- ► Sep 7 - Sep 14 ( 1 )
- ► Jun 8 - Jun 15 ( 1 )
- ► Jan 20 - Jan 27 ( 1 )
-
►
2007
(
8
)
- ► Sep 23 - Sep 30 ( 1 )
- ► Jul 29 - Aug 5 ( 2 )
- ► Jun 17 - Jun 24 ( 1 )
- ► Apr 8 - Apr 15 ( 1 )
- ► Mar 18 - Mar 25 ( 2 )
- ► Mar 11 - Mar 18 ( 1 )
-
►
2006
(
10
)
- ► Dec 17 - Dec 24 ( 1 )
- ► Dec 3 - Dec 10 ( 1 )
- ► Nov 19 - Nov 26 ( 1 )
- ► Oct 15 - Oct 22 ( 1 )
- ► Sep 3 - Sep 10 ( 1 )
- ► Jul 30 - Aug 6 ( 1 )
- ► Jun 25 - Jul 2 ( 1 )
- ► Jun 18 - Jun 25 ( 1 )
- ► May 28 - Jun 4 ( 1 )
- ► Mar 26 - Apr 2 ( 1 )




