Posts

Showing posts from February, 2018

[News] Python's popularity keeps growing

Image
Every year, GitHub publishes some statistics on the most popular languages on its platform, called Octoverse . In 2017, Python was the second most popular language (behind Javascript), with over 1 Million opened pull requests. In the year 2016, it was in third right behind Java. The most forked repository was TensorFlow , written in Python. The Long Term History of the TIOBE index shows also, that there is a growing trend for Python's popularity. Where in 1998, Python's rank used to be at position 26, is it by now in Feb. 2018 at position 4, right behind C++ at the third position, C at the second and Java as the most popular programming language. The TIOBE index is good for developers to check, if their knowledge about programming languages is still up to date, or to check what languages might be useful to learn for the future. How is the TIOBE index being assembled you might ask? Basically, it counts the search engines hits. The selected search engines are the 2

[Python] Machine Learning Intro #1 - Hello World

Image
The Machine Learning Intro series is going to be a series about Machine Learning and will cover the very basics of what Machine Learning actually is and how to implement it using Python. What is SciKit-Learn? SciKit-Learn is a Python module for Machine Learning. It provides simple and efficient tools for data mining, data analysis and various classification, regression and clustering algorithms. So in short - it makes our lives a lot easier dealing with Machine Learning, because we don't have to write all those algorithms by hand. And that's why we will use it here. What is Machine Learning? You can think of it as a subfield of Artificial Intelligence (AI). The algorithm learns from experience and examples - like a human does. So with Machine Learning, you can solve problems you couldn't solve with regular hard coded rules. For example, given the case, you have to write a program that takes images of apples and oranges as input and then it has to

[News] A good year 2017 for Linux

Image
The year 2017 seemed to be a good year for the Desktop Linux market share which has seen a rise to over 3% according to statistics on Net Market Share for operating systems. Net Market Share is a company that collects data from the browsers of site visitors. Their network includes over 40,000 websites. To be fair, this is not the real statistics on how many Linux desktop are around across the globe and perhaps that is not possible. But this is as close as we can get. What's the reason for such a growth? The stats seem to include Chrome OS as Linux since it is based on a Linux Kernel. Chromebooks come pre-installed with Chrome OS and their popularity has grown lately. Usually Chromebooks are lower end devices that have lower prices and are lightwight, so they might be attractive to students and other casual computer users. Chrome OS might not be the only reason for the growth, as popular companies like Dell and HP also have products in their assortment that com

[Python] Passwort cracker for Zip-archives

Image
Do you have a zip-file with a password and you can't remember it? Then let's write a little tool, that tries to recover it. Disclaimer: "Cracking passwords and getting access to files of others without their permission is criminal! This blog post is only for illustrative purposes, to get an insight of how an hacker would probably do it, so you know how to protect yourself against it. This blog post is not meant to seduce you in any way to use it for criminal purposes! So i don't take any responsibility if you use it for criminal purposes, nor do i take any responsibility for the consequences which arise from it. Also, the authors of the linked pages are responsible for their sites and their content, so i don't take any responsibility for that." So, that being said, let's begin. The dictionary attack There are several ways to crack a password, however we will discuss only one of them, the dictionary attack. How does it work? It

[Python] Easy multithreading

Heute möchte ich euch mal einen Weg zeigen, wie es relativ einfach möglich ist, Multithreading in Python zu realisieren. Wie immer, hat Python da schon nützliche Module parat, die nur darauf warten genutzt zu werden. :) Für diejenigen, die nicht genau wissen was ein Thread bzw. Multithreading ist: Crashkurs Multithreading Wird ein Programm gestartet, wird dementsprechend ein  "Prozess"  gestartet, welcher vom  "Prozess-Scheduler"  des Betriebssystems verwaltet wird und die Ablaufumgebung des Programms als Binärcode darstellt. Der Prozess-Scheduler wechselt zwischen allen aktiven Prozessen (also allen laufenden Programmen) hin und her, wodurch der Eindruck entsteht, dass mehrere Programme gleichzeitig laufen. Dem ist jedoch nicht so, denn zu jedem Zeitpunkt, wird immer nur ein Prozess verarbeitet. Bei einem Programm wird i.d.R. immer nur ein Befehl nach dem anderen ausgeführt, das heißt, dass der nächste Befehl solange bis zu seiner Verarbeitung