I wanted to describe and show here some mockups of applications, but… I won’t 😛 I’ve started to setting up the environment, then creating a release for old application, then checking if everything is properly set up, then… just write some code. And continue reading Python 101 book. It’s very basic, but it has already give me some ideas, so it’s worth reading.
I’ve set up the environment using Python 3.5.3 and PyQt 5.8.0 and wrote some code for displaying image from selected directory.
I’m using Python in version 3.5.3 and PyQt5 in version 5.8.0.
As I wrote in the previous post, I’ll continue writing an application for managing photos. What is the starting point then?
There is none. I’m using OS X and I have only preinstalled Python in version 2.7.
1. prepare env with Python 3 and PyQT (4 or 5)
requirements.txt with required modules and libraries
3. use virtual env for simplicity and usability
Photochooser was my first attempt to Python application, so the code is very messy. It has no single test written. You can see it on GitHub, but there is nothing to boast 😉
1. learn Python a little bit (I’m reading Python 101 by Michael Driscoll)
Here it comes again – the awesome programming contest Daj Się Poznać (some people use the English name: Get Noticed), created by Maciej Aniserowicz. I participated last year creating a very simple game with Python and PyQT – you can find the whole process of creating the game here (it’s in Polish, though).
In fact, this blog was created as a result of that contest. Some people convinced me that writing blog in English is a better idea and gives me more opportunity to share knowledge. They were right 🙂 This post, for example, has almost 4k views and 50 upvotes on Reddit! Crazy.
Ok, I won’t be original – this year I want to use Python and PyQT again. Not for a game – Unity3d is a better choice – but for a desktop application. Application for managing photos. You always have millions of photos every year. Do you view them? I don’t. Ok, from time to time, but very rarely. But I like to view my wedding photo album – several dozens of the best shots. Millions of photos with dozens of duplicates and crappy ones or a couple of the best shots?
If only exists some application for simple managing photos…
This is a simple tutorial how to set up Selenium test with PHPUnit and phantomjs for easy and fast testing.
Today I wanted to learn something about Selenium. It’s very popular testing tool for any application that can be launched using a web browser, regardless of programming language or technology. I don’t know it very much, in fact, I know only how to set it up and write the simplest test 😉 But I want to share my today’s experiences because I cannot find any simple tutorial and had to glue together scripts, setting and libraries from all across the internet 😉
If you don’t like reading tutorials and want rather dig into example code I created the repository on GitHub where you can find everything I talk about here.
I use git for about 3 years. First I knew only how to use it with PhpStorm –
cmd + t to update branch,
cmd + k to commit and push changes. To make new branch I used menu and let the IDE do the work. It was fine until I heard about
squash. I heard that it is often used when you contribute to someone’s repository. Maintainer of the repo often want clean history – if you want to contribute you must make pull requests with only one commit. And you may do it using squash.
It was a bit too much for me at that time:
push --force. No thanks 😉
Some time later a couple of people in my company started to use git more. They started to make squashes, rebases and so on. So if they wanted to use it I had to learn it too.
Lets talk about Git hooks. You’re using Git, right? No? But… you have to! Seriously, go to git-scm, GitHub or whatever and check it out.
In Git you have 3 types of files: tracked, ignored and untracked.
Tracked ones are simple – they’re just files you’ve added to the repository. This might be your application’s code. Ignored ones are also simple – if you don’t want to have any file you can add it to
.gitignore file and you will have it locally but not in the repository. This might be any vendors you can easily install and don’t need to store them in your repository.
But untracked files are a little bit more complicated. These are files you’ve just created and didn’t specify what to do with them. Are those useful and should be added, or are they just temporary files or vendors? They might be also autogenerated files and this post is really about them.
It was a while since the last post. At first, I had no idea what to write about. My post about string performance comparison was quite a success, so everything seems to go pretty well.
But from about one and a half months I simply… don’t code at all! It’s because we have significant changes in our company. Teams started to be interdisciplinary, that means to developers joined marketing, analysis, communication guys. And I was responsible for helping people understand the change. In fact, I was true, full-time Scrum Master…
This blog post will contain useful information for those, who want to start developing in Symfony without setting up a server (like apache or nginx) or installing docker.
PHP from version 5.4 has built in server. You can run it by executing in console
php -S 127.0.0.1:8000 in your projects directory. When you go to this address (of course you can change the port and 127.0.0.1 to localhost) you’ll see the main page of your project.
I was challenged in my last post to deeper check performance of strings. I think it will be quite interesting to test out some cases and say which way of using strings is the best.
In this post, I will check several string usages in PHP 5.6 and PHP 7.
To simplify testing I created a simple function which gets 2 arguments: an array of callable functions to compare (as many as you want) with names to display in summary, and a number of loops to test the function…
As you may know, in PHP you can use single and double quotes for strings. These two lines are equal:
$str1 = "some string";
$str2 = 'some string';
// $str1 === $str2 returns true
The only difference here is handling variables placed inside quotes. Let’s look at this simple example:
$name = "John";
$str1 = "Hello there $name";
$str2 = 'Hello there $name';
echo $str1; // gives Hello there John
echo $str2; // gives Hello there $name
As you can see in double quotes variables are processed and in single quotes they aren’t.
But which one should I use?