My OS setup

  • On my Toshiba L-855 (old but gold) laptop:
    1. Linux Mint 18 Cinnamon 3.0, MDM 2.0, a Linux kernel 4.4 and an Ubuntu 16.04 package base.
      • (virt) Debian 8 lxde
      • (virt) Fedora 24 xfce
    2. Windows 10 Anniversary update
  • On my Dell computer, E6600 based (remote):
    1. Windows 8.1
  • On my Linksys WRT54GL router (remote):
    1. TomatoUSB

Possible changes I might make in the future:

  1. Try out (virt) Fedora 24 Cloud edition;
  2. Install (virt) FreeBSD/OpenBSD (haven’t decided yet);
  3. Try to install MacOS on a virtual machine;
  4. Transition from Mint to Fedora as a daily driver (not sure about that one yet);

Linux Mint is my day-to-day OS, I try to keep it bloat-free by doing all my experiments and some of my development on the virtual machines.

I have a Windows installation because one never knows and because we sometimes play games with Lyubomira.

On the remote side (in Bulgaria) there’s a PC that I boot remotely. I do not approve of the choice of OS there. It has caused more time loss than I have saved by not installing something better…

There’s also this Linksys router that’s available 24/7 to me through SSH. I would highly recommend TomatoUSB to anyone who has the compatible hardware.

Apperently, I like playing with VMs, the only reason I don’t have more virtual Operating Systems is because I haven’t had the time to install them.

But what is my Favourite of all? That shall be no else than Fedora 24. I might as well create a whole post explaining why it is the best Linux distro I’ve tried.

infinity-logo_400x400
The best distro so far

 

FLUSH FLUSH FLUSH your iptables

# IPv6

##
 ## set default policies to let everything in
 ip6tables --policy INPUT ACCEPT;
 ip6tables --policy OUTPUT ACCEPT;
 ip6tables --policy FORWARD ACCEPT;

##
 ## start fresh
 ip6tables -Z; # zero counters
 ip6tables -F; # flush (delete) rules
 ip6tables -X; # delete all extra chains

# IPv4

##
 ## set default policies to let everything in
 iptables --policy INPUT ACCEPT;
 iptables --policy OUTPUT ACCEPT;
 iptables --policy FORWARD ACCEPT;

##
 ## start fresh
 iptables -Z; # zero counters
 iptables -F; # flush (delete) rules
 iptables -X; # delete all extra chains

The above code was taken from https://ubuntuforums.org/showthread.php?t=1381516 , thank you Lars Noodén.

So… Lately, I’ve been playing around with kvm virtualization, more about which I will write in another post. Concretely, I have Fedora 24 running httpd and sshd on local address 192.168.122.84

One would assume that I could just write the ip in the host’s browser and access the Apache server? Not so easy. I’ve tried a lot of tutorials and man pages on kvm networking, among which http://www.linux-kvm.org/page/Networking to no avail. So the next day I took a look on the IPtables on both the host and the guest systems, finding out that there is a whole lot of junk there (which I guess is normal for iptables, but we will have to live with that until nftables becomes mainstream). The above code made the output of

iptables -L

shiny and new (while hopefully not breaking anything). But only after I’ve flushed the iptables was I able to ´simply´ connect to the guest with it’s IP.

–UPDATE–

Apparently, iptables flush is needed only on the guest side in order to have access to the virtual server. Nevertheless, always backup your current configuration before making changes to your daily driver.

nothing_true___assassins_creed_by_stumpymcn0legs-d33kgce
This pic somehow describes my iptables now

Disabling IPv6

logo-top

Since the first day we got our own Internet connection in Berlin, I’ve observed the following behavior whenever I try to access something from the net:

The browser/app doesn’t load the webpage/video for about 30 seconds…

Then all of a sudden, the connection is established and Internet flows with 20mbps (what we have paid for).

This basically means that, yes, you can stream 1080p video from two devices at once, but you have to ¨wait¨ for your device to actually connect to the server.

Until one day, I was wget-ing the google-chrome .deb package. As you might know, the wget tool actually tells you what it is doing so I was able to observe the following:

Connecting to … (wget hangs for 30 sec.)

Failed to connect

Connecting to (starts downloading)

Download successful

Aha, it doesn’t take to be a network guy to understand where the problem lies.

A quick:

sudo sh -c 'echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6'

on my Linux Mint (based on Ubuntu, based on Debian) fixed it.

On RH based distributions (eg. Fedora):

su -c "sysctl -w net.ipv6.conf.all.disable_ipv6=1"

These commands are not permanent. They won’t harm your system, because they will be ¨forgotten on the next reboot.¨

An IPtables and a Nftables tutorial to do this is on it’s way now.

On Windows, right click on your connection, properties, unclick IPv6

But that’s not all. On Android:

[root required]

Go to Play Store, install IPv6 Auto Disable, allow root, then [Disable IPv6]

I recommend this to anyone whose Goodgame Empire won’t load properly.

Actually, that’s the recommended way to go until the transition to IPv6 is complete.

Machine Learning on Coursera

A few months ago I registered myself for a course on the Coursera Platform. It’s Machine Learning, thaught by prof. Andrew Ng.
https://www.coursera.org/learn/machine-learning/home/welcome
For the first few weeks I couldn’t keep up with the course’s pace because I had this other course at EdX.org about Python with prof. Grimson which I was doing with Lyubomira. That’s why it was only the last few weeks of the course that I was able to concentrate and catch up on the things that I’ve missed. Nevertheless, I couldn’t complete the course on time, so I “joined another session” – or, in other words, postponed the course’s end, so I can have enought time to complete all the programing tasks.

The course is divided in 11 weeks, each week contains anywhere from ~ 8 to 12 videos with 1 or 2 quizes at the end of the week. Also, each week (except for the first and the last) have a programming assignment, which, I dare say, is quite a challenge, even though the creators try to guide you through the algoriths.

Concretely, what I like about this course is that the videos and the Lecture notes give you this big quantity of theoretical information but in the end it’s you sitting in front of Octave (the programming language) trying to transform your theoretical wisdoms into practical code. Almost nowhere is the course videos/notes do they give you actual code. The only exception is the second week, where they teach you to program in Octave, so that you can do this by yourself later.

There are though, a lot of git repositories that can be easily googled, which have the source code for all of the assignments (Which basically means that these people a breaking their online vows to Coursera as this is against their Code of Conduct). I too, admit to have checked once in a while how my own solution scales up to the others’.

What I am hoping now the most is to not get bored too soon by Machine Learning because there are all of these exciting things that one could learn to do with ML. It’s almost magical, what these algorithms can do.

If I have to define one keyword, one root to all of Machine Learning, right now, that would be:

Statistics


 

Hopefully, I’ll write here some of the things that caught my interest.

 

large-icon