uncategorized

I’ve been trying to update Gradle in my React Native PDF repository from the quite old version 2.2, to version 7.3, when I got the error Could not find method implementation() for arguments.

I’ve tried searching online and testing several suggestions, but most of them didn’t work.
Only after I’ve decided to update the, now deprecated JCenter repository, I’ve found the solution to this problem.

I’ve replaced jcenter() in my gradle.build file with mavenCentral(), like this:

1
2
3
4
5
6
7
8
9
buildscript {
repositories {
mavenCentral()
}

dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
}
}

Thinking that the maven central is the de-facto standard for Java packages, I hoped everything will work correctly with the current setup.
However I kept getting the same error.
When I checked the maven central, I’ve found that the last build for android tools was from 2017!
Obviously, that would not be compatible with the lastest Gradle.

It looks like Google have stopped updating the Maven repository and this package should now be downloaded from their own - Google repository.
After updating the gradle.build with the following settings, the error was resolved:

1
2
3
4
5
6
7
8
9
buildscript {
repositories {
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
}
}

As a web software developer, you will often face problems like setting up various servers, be it web servers like Apache, nginx or Litespeed, or the working environment for a scripting language like PHP and Node.js. This setup brings a lot of compatibility and security issues with it. In the recent years, Docker has established itself as the “to-go” solution, when setting up a local or remote working environment. While on the local developer’s machine, it’s as easy as doing brew install docker or apt install docker, when it comes to creating a real live production server, it’s not that simple. Usually production servers should not be running any software as a root (administrator) user, to avoid security issues, and this is how Docker is started by default - with full system privileges. As you can imagine, having an insecure application in an enterprise environment is not desirable. Now there is a setup for Docker called “rootless mode”, that allows running the software with another user, that has restricted privileges. I will be showing how to install Docker + Docker Compose using terminal commands and automate the process, using Ansible - a server configuration tool.

Read More

Not long ago, I’ve complained how revolut is degrading their service.

Yesterday I’ve found it’s even worse than expected. The last email that I received, stated that the free limit for payments and withdrawals was 2000 BGN (around 1000 EUR),
however, the email that came recently showed that they have silently lowered the limit 5 more times - down to 450.

As a reminder, there is currently a BGN 450 limit on free monthly ATM withdrawals on our Standard plan. After this, you begin paying a 2% fee.

Read More

Today i’d like to show you how to make Logstash Docker container output its operation to a log file inside the container. I’m writing specifically about this, because the official Logstash documentation is a bit vague and unless you know how Java (the language ELK stack is written in) logging with the third party library log4j2 works, you might struggle with this issue like me.

Read More

Previously I’ve written a post explaining the benefits of using Revolut over a traditional bank. Well not anymore. This time i will be writing why i’ve decided not to use Revolut anymore - simply because it will not be worth it anymore.

Aside from the annoying emails wanting you to upload a new ID document and photo every couple of months, the only other information i am subscribed to receive from Revolut is their policy updates. This is how their last email looks like:

Read More

1ST SIGNING PERIOD1ST PAYMENT DAY2ND SIGNING PERIOD2ND PAYMENT DAY
April 20201-8 Apr28 Apr9-22 Apr20 May
May 20207-8 May27 May11-22 May15 Jun
June 20201-3 Jun22 Jun4-22 Jun15 Jul
July 20201-3 Jul22 Jul6-27 Jul18 Aug
August 20203-5 Aug25 Aug6-24 Aug11 Sep
September 20201-2 Sep17 Sep3-26 Sep15 Oct
October 20201-6 Oct28 Oct7-26 Oct17 Nov
November 20202-5 Nov25 Nov6-24 Nov15 Dec
December 20201-4 Dec22 Dec7-21 Dec21 Jan
January 20216-8 Jan28 Jan12-22 Jan16 Feb
February 20211-3 Feb24 Feb4-22 Feb11 Mar
March 20211-2 Mar17 Mar3-26 Mar15 Apr

This is the beginning of my C# development series of articles. As such, i will make a classic “Hello, World” example application.

I am going to use Microsoft Visual Studio 2019 Community edition to write and compile my C# code. Right now it’s free for everyone and if you’re on Windows, i recommend downloading and installing it - it will make your life a lot easier. You can download it from here. If you are on Mac, there is a Visual Studio version for that. If you’re on Linux - you can download Visual Studio Code from the same page.

Read More

Hey everyone.
Recently i decided to get into development of native mobile apps using React Native.
React requires a Ruby gem called Cocoapods, which on it’s side requires GCC (Gnu C Compiler) to compile and install properly.
If the GCC is not configured properly, it will result in the error “configure: error: C compiler cannot create executables”.

To fix this error we will need 3 things:

  • Install XCode
  • Install XCode command tools
  • Configure XCode to use the installed command tools correctly

You can Install XCode by downloading it from the App Store.

Installing the command tools can be done by executing the following command in the terminal

1
xcode-select --install

If you have an old version of the command line tools, you can update them with the following command:

1
2
sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

As a last step, you have to open XCode, go to the menu “XCode->Preferences”, the “Locations” tab and choose an item from the dropdown menu near “Command Line Tools”, as shown in this image:

After that you can run “pod install” again and you’ll be greeted with a happy green “Pod installation complete!” message.

The tenth generation of iPhone - iPhone 7 and iPhone 7+ were released on 16th September 2016 and now being three years old. Succeeding the iPhone 6 and iPhone 6 Plus as flagship devices, they were a huge success. Despite being the first iPhone to remove the headphones jack, they were some of the most selling devices well into 2018. Overcoming most of the shortcomings of the previous model, the iPhone 7 and iPhone 7 Plus are incredibly well designed phones and are absolutely worth buying even in 2019 - 3 years after their initial release. Usually after such period of time, most other phones become irrelevant and outdated, which definitely is not the case here.

Read More

What do you get when you register for a Monese card:

✔︎ UK account number and sort code
✔︎ Additional Eurozone account
✔︎ Fast UK transfers
✔︎ Instant Monese to Monese transfers
✔︎ Direct Debits
✔︎ Google Pay support
✔︎ Apple Pay Support
✔︎ In-app card lock/unlock
✔︎ Export statements
✔︎ High-end security
✔︎ Highly rated customer support from real humans
✔︎ The all-singing, all-dancing Monese app

How to get €15 and more by using Monese

  1. Download the Monese application and register an account using this link https://shogo.eu/2rjKloP
  2. When asked, enter the following referral code: MILEN617
  3. Order your free Monese debit card
  4. Add €15 to your account
  5. You will receive €15 the first time you make a purchase using your debit card
  6. Bonus: you can withdraw your money at any time without fees.