Archive for the ‘Engineering’ Category

Online Supplementary Mathematics Materials for Machine Learning and Artificial Intelligence Courses

Recently I’ve started to see a lot of questions regarding to the “mathematics tutorials or supplementary materials for Machine Learning and AI” in the online discussions with the emergence of Stanford’s online AI and machine learning courses. As with the internet crowd, I’m going to participate these courses as well and I’ve always found the [...]

Bitwise Operators and Binary Tricks for System Programming

Bitwise operators in most of the programming languages are common and inherited from the C (e.g.: &, |, ^, >>, …). These operations are critical in the low-level programming (for instance for writing drivers). In the beginning of this post I’ll just briefly pass over them and present some tricks using them. As a programming [...]

Importance Sampling

Importance sampling is probably one of the easiest sampling algorithm and one of the most fundamental one as well. The main purpose of it is to  estimate the properties of a particular distribution, while only having samples generated from a different distribution rather than the distribution of interest. Depending on the application, the term may [...]

Writing your own toy OS kernel

Every young programmer/computer scientist (at least the ones I know) has at least one time in their life dreamed about writing their own OS. Because it is one of the most complex computer program that you can write and there is a great challenge plus chance to hack in front of you. I fell in [...]

Scalability Tips for Building Fast Applications

Optimising code performance is known to be the black art and don’t worry about optimisation until you really need it. Hence don’t forget that, “premature optimisation is the root of evil”. Here are some useful points that you should consider while writing your code: You can really increase the speed of hashing by using fast [...]

Advices to a Beginning Graduate Student

Manuel Blum, a computer scientist in CMU has given a great talk  about advices to phd students. There are very nice advices in this talk and they are not only for graduate students but as well as people who like doing research can benefit it. The original source of this article is this talk, I [...]

Should implementing ML algorithms banned for Production Systems?

Nowadays everybody is talking about the how machine-learning algorithms can be useful your business, but now I’ll discuss here how it can harm your business . As a design principle(best practice),   for the sake of security-preservation and efficiency in cryptographic systems, implementation of cryptographic algorithms isn’t recommended for production systems when there is already [...]

Perl Poetry

Yeah again I didn’t bother writing a blog-post myself and thereof I’m putting here an interesting  fragment from Larry Wall’s big Camel (see: judgin’ a book by its cover) book. The forgery in the attendant sidebar appeared on Usenet on April Fool’s Day, 1990. It is presented here without comment, merely to show how disgusting [...]

A Few Interesting Articles from LWN

Neil Brown has written very nice and helpful series of articles about the design patterns used in linux kernel: Linux Kernel Design Patterns Part 1 Linux Kernel Design Patterns Part 2 Linux Kernel Design Patterns Part 3 But recently he has written a great analysis and criticism on the design of UNIX: Ghosts of Unix [...]

Measure Kolmogorov Complexity of a file with the Lazy Man’s technique in *nix

With the gnu ent command you get the entropy of a file in an easy way. For example: 1 2 3 4 5 6 7 8 9 10 11 12 13 caglar@caglar-desktop:/tmp$ cat /dev/urandom | base64 | head -c 1200 > rand.txt caglar@caglar-desktop:/tmp$ ent rand.txt Entropy = 5.982286 bits per byte.   Optimum compression would [...]