Tag Archives: linux

Adding user to Tomcat in Docker

When using official Tomcat server from Docker Hub you will face a problem with opening management UI, because there is no default login or password in that docker image, so the only app management site you can visit is this one:

And because Tomcat doesn’t have user management built-in like other container managers – it loads users and passwords from conf/tomcat-users.xml file, it makes it more complicated to start with Tomcat than with other container managers like Wildfly.

The Tomcat Docker image comes without nano, vi or vim… so you can’t easily edit that file, but hopefully it comes with.. sed. And that’s good enough to add new users and roles to the file! Remember the times when you didn’t see the file you were editing when you when typing, until vi came out of course?

Continue reading

unix logo

UNIX-history source codes on GitLab

I found that there are some people on GitHub that collect source codes from early UNIX ages, like first compilers, first shells, or PDP7-UNIX. Just to made them available in one place (slightly decentralize access to them) – I decided to create gitlab.com account `UNIX-history` for them.

You can find there source codes from 1970, nicely commented and manually formatted, before this all happened.

Also, enjoy this presentation about future of programming:

Insulting sudo mode

Sudo has an easter-egg that’s disabled by default. It can insult you each time you provide incorrect password. Just like that:

[sudo] password for agilob: 
You can't come in. Our tiger has got flu

[sudo] password for agilob: 
You do that again and see what happens...

[sudo] password for agilob: 
You can't get the wood, you know.

[sudo] password for agilob: 
Speak English you fool --- there are no subtitles in this scene.

[sudo] password for agilob: 
I think ... err ... I think ... I think I'll go home

[sudo] password for agilob: 
Where did you learn to type?

[sudo] password for agilob: 
stty: unknown mode: doofus

[sudo] password for agilob: 
Listen, burrito brains, I don't have time to listen to this trash.

[sudo] password for agilob: 
sudo: 3 incorrect password attempts

Continue reading

Omnia Turris – random rainbow colours

Script for Omnia Turris making your router light with random colour every second.

 

 

 

#!/bin/bash
 
colors=('red' 'blue' 'green' 'white');
leds=('lan0' 'lan1' 'lan2' 'lan3' 'lan4' 'pwr' 'wan' 'pci1' 'pci2' 'pci3' 'usr1' 'usr2');
 
while true; do
    for led in "${leds[@]}"
    do
        rand_color=$[$RANDOM % 5]
        rainbow ${led} ${colors[rand_color]}
    done
    sleep 1;
done

To get this quickly working:

  1. login on your Turris router
  2. wget https://gitlab.com/snippets/34184/raw -O random_rainbow.sh
  3. bash random_rainbow.sh &
  4. you can logout now, script will be working in background

Test coverage on GitLab CI in a rust-cargo project

This topic presents who to setup kcov with cargo to get a test coverage for a cargo project, so I just assume you got kcov working in your Linux distribution and you have a project with source code and tests that you can run. I also assume you have gitlab-ci-multi-runner installed. So I will just quickly present who to configure it to use with GitLab CI to get test coverage badge in your new project.

I use my own CI runner, I’m not using shared runners or docker for it. So it’s pretty straightforward, your configuration will differ a bit.

Continue reading

Rust – get user’s home directory

fn main() {
  let mut path: PathBuf = get_app_dir();
  path.push(".config");
  path.set_file_name("properties");
  path.set_extension("ini");
  let str_path = path.to_str().unwrap();
  if str_path.len() != 0 && path_exists(&path) {
    println!("Path {} exists", str_path);
  }
}
 
fn get_app_dir() -> PathBuf {
    let dir: PathBuf = match env::home_dir() {
        Some(path) => PathBuf::from(path),
        None => PathBuf::from(""),
    };
    dir
}
 
pub fn path_exists(path: &PathBuf) -> bool {
    return Path::new(&path).exists();
}

QFakturat – program do zarządzania fakturami, produktami i danymi klientów na Linux

Kilka lat temu, żeby zdobyć trochę doświadczenia poza Java i Ruby, zabrałem się za naukę Qt4.8 i C++. W ramach tego ćwiczenia zacząłem pracować nad aplikacją, która nie istniała wtedy na Linuxa i pewnie do dziś jest tego typu unikalnym programem na pingwina i diabełka.
Aplikacja była pisana na wymogi prowadzenia firmy taty, gdzie z względu kosztów licencyjnych zrezygnowaliśmy ze środowiska Windowsa. W firmie od 6 lat używane są tylko systemy Linuxowe (KUbuntu i openSUSE).

QFakturat był pisany początkowo w Qt4.8 na Linux, jednak z czasem części kodu zostały przepisane na Qt5 oraz dodana została kompatybilność dla systemów *BSD. Nigdy nie próbowałem portować aplikacji na Windowsa ani OS Xa, więc nie jestem w stanie powiedzieć, czy działa.

Screenshot_20160509_150456

Obecna funkcjonalność programu:

  • wystawianie faktur w PDF (i tylko PDF)
  • obsługa kilku sprzedawców
  • zapisywanie/edytowanie/usuwanie klientów
  • zarządzanie produktami
  • automatyczne konwertowanie kwot brutto<->netto<->podatek przy zmianie jednej z wartości
  • spersonalizowane faktury – pozwalają na ustawienie własnego tekstu w stopce faktury i na lewym boku
  • 3 skórki programu
  • walidacja i opcjonalne formatowanie NIPu
  • wysoka elastyczność programu (sam możesz ustawić rodzaje faktu, listę stawek VAT, metody zapłaty, czas na zapłatę czy obsługiwane waluty)
  • zarządzanie produktami i filtrowanie sprzedanych/dostępnych produktów/usług.

Continue reading

What the hell, something broke my packageManager on Android.

Because I work on a laptop, I was experimenting with different wireless adb apks for Android, having a cable under my hand isn’t too handy. After a few tests I started getting that error:

com.android.ddmlib.InstallException: Unknown failure (/system/bin/sh: pm: can't execute: Permission denied)

Didn’t tell me much. I started Googling… No results. Ok, one result… taking me to Gitlab-CI of my project. So I had this before. I didn’t solve it, don’t know why. Probably because it was when I was experimenting with different ROMs on my another device. So I “fixed” it by reinstalling ROM, and it came back.

Not many things where helpful online so I had to find solution myself and here I present it to you, and to future me, when I have this again.

Continue reading

Tworzenie ukrytego serwisu w Tor na Linux

Tor_logo1Stawianie serwera w Tor jest bardzo proste, jednak niewiele osób wie jak to zrobić, wiele osób myśli, że używanie Tora jest jednoznaczne z byciem przestępcą lub handlem narkotykami. No cóż… jest w tym sporo racji, takie możliwości ukrywania swojej tożsamości daje sieć Tor.

W tym poradniku użyję serwera `nginx` i paczki `tor` dostępnej chyba w każdej dystrybucji Linuxa, więc nie powinno być problemu z ich instalacją. Domeny serwerów Tor charakteryzują się końcówką .onion, przykładem dobrej i znanej strony jest serwis noreason, zbierający wszelkiego typu dokumenty/książki, których rząd nie chce żebyś znał.

W tym poradniku pokażę, jak publikować prostą stronę HTLM w Torze. Jeśli potrzebujesz czegoś z PHP/Ruby/Python, odpowiednia konfiguracja serwera i nginxa należy do Ciebie.

Continue reading

Compile BitcoinQt from sources

Building Bitcoin client from sources is a good way to protect yourself from visiting and downloading malicious binary file from the official website. Imagine a group of hackes attacks DNS server so bitcoin.org redirects you to their website, it looks the same, it acts the same, but it contains backdoored Bitcoin-Qt wallet.

You can be smarter and download and compile the client from sources. To do so, just follow some simple steps:
Continue reading

Compile LitecoinQt from sources

Building Litecoin client from sources is a good way to protect yourself from visiting and downloading malicious binary file from the official website. Imagine a group of hackes attacks DNS server so litecoin.org redirects you to their website, it looks the same, it acts the same, but it contains backdoored Litecoin-Qt wallet.

You can be smarter and download and compile the client from sources. To do so, just follow some simple steps:
Continue reading

O stanie systemu Windows na desktopach

Jest to kontynuacja poprzedniego wpisu oraz odpowiedź na bzdurne artykuły fanboyów Windowsa mówiących jaka problemowa jest instalacja Linuxa Ubuntu, Fedory lub SteamOS.

Mam na swoich komputerach różne dystrybucje Linux od kilku lat, zacząłem się trochę nudzić (nie, nic się nie zepsuło… po prostu po latach staje się nudne), zadecydowałem się więc zainstalować Windows 7 (znajomy mi odradził Windows 8 bo podobno nikt jeszcze nie nauczył się używać nowego i jedynego możliwego środowiska graficznego).

Nie postawiłem poprzeczki za wysoko: chciałem system z ładnym UI, zaimportować swoje emaile i używać Maildir, zarządzać multimediami no i może obejrzeć filmy z zewnętrznego dysku. To co na co dzień robię na Linux.

Continue reading

Simple random password generator in bash

One liner:

pass=`cat /dev/urandom | head -2 | tr -cd 'a-zA-Z0-9!@#$%^&*()_+-=][';/.,'`; echo ${pass:4:30}

function in .bashrc:

pass(){
    password=`cat /dev/urandom | head -2 | tr -cd 'a-zA-Z0-9!@#$%^&*()_+-=][';/.,'`;
    echo ${password:4:30}
}

Continue reading

ARM openSUSE missing UTF-8 charmaps problem

openSUSE on Rasbperry Pi has missing package which makes difficult to use irssi or anyother application that have UTF8 on std-in or std-out especially on zsh!

agilob:~/ $ locale a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
POSIX
agilob:~/ $ localedef -v -c -i en_GB -f UTF-8 en_GB.UTF-8
character map file UTF-8 not found: No such file or directory
cannot read character map directory /usr/share/i18n/charmaps: No such file or directory

Login as root:

root:~/  zypper ref
root:~/  zypper in glibc-i18ndata

Continue reading