I saw this settings on a tweet flood. I did not want to lose them. I copied all of content in here. Thanks @kadirsert
If you are continuously running shell commands on more than one Linux terminal, probably you want all of the shell (mostly bash) prompts to remember any command from any terminal.
With the following environmental variables to in the .bashrc file, you can do it so
Ignoring duplicate entries:
large history size:
This is for a big history file:
Appending commands to history file:
shopt -s histappend
Last but not least, this is for saving and reloading the history after each command is run:
export PROMPT_COMMAND=“history -a; history -c; history -r; $PROMPT_COMMAND”
Talat Uyarer 5 Şubat 2019
Posted In: bash, bashrc, linux, shell
If you get this message when trying to insert data into a PostgreSQL database:
ERROR: duplicate key violates unique constraint
That likely means that the primary key sequence in the table you’re working with has somehow become out of sync, likely because of a mass import process (or something along those lines). Call it a “bug by design”, but it seems that you have to manually reset the a primary key index after restoring from a dump file. At any rate, to see if your values are out of sync, run these two commands:
SELECT MAX(the_primary_key) FROM the_table;
If the first value is higher than the second value, your sequence is out of sync. Back up your PG database (just in case), then run thisL
SELECT setval('the_primary_key_sequence', (SELECT MAX(the_primary_key) FROM the_table)+1);
That will set the sequence to the next available value that’s higher than any existing primary key in the sequence.
Talat Uyarer 29 Ağustos 2017
Posted In: postgresql
The rules for happens-before are:
Program order rule. Each action in a thread happens-before every action in that thread that comes later in the program order.
Monitor lock rule. An unlock on a monitor lock happens-before every subsequent lock on that same monitor lock.
Volatile variable rule. A write to a volatile field happens-before every subsequent read of that same field.
Thread start rule. A call to Thread.start on a thread happens-before every action in the started thread.
Thread termination rule. Any action in a thread happens-before any other thread detects that thread has terminated, either by successfully return from Thread.join or by Thread.isAlive returning false.
Interruption rule. A thread calling interrupt on another thread happens-before the interrupted thread detects the interrupt (either by having InterruptedException thrown, or invoking isInterrupted or interrupted).
Finalizer rule. The end of a constructor for an object happens-before the start of the finalizer for that object.
Talat Uyarer 5 Eylül 2016
Posted In: concurrency, happens-before, java, lock, thread, volatile
hflush: This API flushes all outstanding data (i.e. the current unfinished packet) from the client into the OS buffers on all DataNode replicas.
hsync: This API flushes the data to the DataNodes, like hflush(), but should also force the data to underlying physical storage via fsync (or equivalent). Note that only the current block is flushed to the disk device.
Talat Uyarer 9 Ağustos 2016
Posted In: dfsoutputstream, hadoop, hdfs, hflush, hsync
Use FileChannel.force(boolean) or FileDescriptor.sync() to force data to be persistent on disk. Either of them can work. FileChannel.force use FileDispacther.force and it calls fdatasync or fsync in Java 8.
When you use OutputStream.flush, it does not guarantee the data to be written to disk, just flush it to OS. Better to use FileOutputStream.getChannel().force(true) or FileOutputStream.getFD().sync() to guarantee the persistency, performance might not be good.
Special Thanks to Yongkun. He wrote very good blog post. 
Talat Uyarer 9 Ağustos 2016
Posted In: fdatasync, FileChannel, fsync, java, OutputStream
Good tutorial for Bloom Filter understanding: http://billmill.org/bloomfilter-tutorial/
Bloom filters use case is following:
You have very large data sets that typically don’t fit in memory and you want to check your element it contains or not contains. Obviously It works very well for not contains detection.
if the bloom filter gives a hit: the item is probably inside
if the bloom filter gives a miss: the item is certainly not inside
How can I use in Java. Guava Provide a library for Bloom Filter:
m denotes the number of bits in the Bloom filter (bitSize)
n denotes the number of elements inserted into the Bloom filter (maxKeys)
k represents the number of hash functions used (nbHash)
e represents the desired false
positive rate for the bloom (err) If we fix the error rate (e) and know the number of entries, then the optimal bloom size
m = -(nln(err) / (ln(2)^2) ~= nln(err) / ln(0.6185)
The probability of false positives is minimized when k = m/n ln(2).
Talat Uyarer 6 Ağustos 2016
Posted In: bloomfilter, data structures, probabilistic data structure
On the Terminal,
gsettings set org.gnome.desktop.media-handling automount-open false
Talat Uyarer 29 Temmuz 2016
Posted In: automount, nautilus, phone, ubuntu
The value 31 was chosen because it is an odd prime. If it were even and the multiplication overflowed, information would be lost, as multiplication by 2 is equivalent to shifting. The advantage of using a prime is less clear, but it is traditional. A nice property of 31 is that the multiplication can be replaced by a shift and a subtraction for better performance: 31 * i == (i << 5) - i. Modern VMs do this sort of optimization automatically.
(from Chapter 3, Item 9: Always override hashcode when you override equals, page 48, Joshua Bloch’s Effective Java)
Talat Uyarer 27 Temmuz 2016
Posted In: effectivejava, hashcode, java, string
Snappy is a compression library that can be utilized by the native code.
It is currently an optional component, meaning that Hadoop can be built with
or without this dependency.
Download and compile snappy codecs. or you can install from your distro repo. I installed libsnappy and libsnappy-dev packages from Ubuntu repo. If everything is fine you can use -Drequire.snappy to fail the build if libsnappy.so is not found. If this option is not specified and the snappy library is missing,silently build a version of libhadoop.so that cannot make use of snappy. After than You just need to enter below command:
mvn clean package -Pdist,native -DskipTests -Dtar -Drequire.snappy
If you build snappy and It is located different place you can use this parameters
- -Dsnappy.prefix to specify a nonstandard location for the libsnappy header files and library files. You do not need this option if you have installed snappy using a package manager.
- -Dsnappy.lib to specify a nonstandard location for the libsnappy library files. Similarly to snappy.prefix, you do not need this option if you have installed snappy using a package manager.
- -Dbundle.snappy to copy the contents of the snappy.lib directory into the final tar file. This option requires that -Dsnappy.lib is also given, and it ignores the -Dsnappy.prefix option.
After compiling finished you can find your native libraries
Talat Uyarer 13 Temmuz 2016
Posted In: hadoop, hadoop-native, snappy