Představ si, že namaluješ krásný obrázek nebo napíšeš super písničku. Je to tvoje dílo, tvoje nápady, tvoje práce. Ty rozhoduješ, kdo si ho může prohlédnout, kdo si ho může zkopírovat, nebo jestli ho někdo může prodat. Stejně je to i s počítačovými programy. Když někdo vytvoří program, je to jeho "dítě" a má na něj práva. Tomu se říká autorství. A licence jsou jako pravidla, která říkají ostatním, jak mohou ten program používat.
Když někdo vymyslí a napíše program, stává se jeho autorem. Je to jako spisovatel, který napíše knihu, nebo malíř, který namaluje obraz.
Autorství (neboli autorské právo) je zákonná ochrana, která patří tvůrci (autorovi) nějakého díla. Dílem může být kniha, písnička, obrázek, film, ale i počítačový program. Autor má právo rozhodovat, co se s jeho dílem bude dít.
Autorství je důležité, protože:
Když autor chce, aby jeho program používali i ostatní, ale zároveň chce mít kontrolu nad tím, jak ho používají, použije licenci. Licence je jako smlouva, která říká, co smíš a co nesmíš s programem dělat.
Licence programu je soubor pravidel, která určují, jakým způsobem můžeš počítačový program používat, kopírovat, měnit nebo šířit.
Licence jsou důležité pro autory i pro uživatele:
Existuje mnoho druhů licencí, ale pro začátek si ukážeme ty nejzákladnější:
Tyto programy si musíš koupit. Když si je koupíš, získáš licenci, která ti obvykle dovoluje program používat na jednom počítači. Nesmíš ho kopírovat a dávat kamarádům.
Tyto programy můžeš používat zdarma. Autor je vytvořil a rozhodl se, že za ně nebude chtít peníze. Ale i tak platí pravidla – obvykle je nesmíš měnit nebo prodávat.
Tyto programy si můžeš stáhnout a vyzkoušet na omezenou dobu (např. 30 dní) nebo s omezenými funkcemi. Pokud se ti líbí a chceš je používat dál, musíš si je koupit.
To jsou speciální programy. Můžeš je používat zdarma, ale navíc k nim dostaneš i "recept" (zdrojový kód), jak byly vytvořeny. Můžeš je dokonce měnit a vylepšovat a své změny sdílet s ostatními. Myšlenkou je sdílet znalosti a spolupracovat.
V digitálním světě je důležité respektovat práci ostatních. Stejně jako bys nechtěl, aby ti někdo ukradl tvůj výkres, neměl bys ani ty nelegálně kopírovat placené programy, filmy nebo hudbu. Porozumění licencím a autorským právům je základem digitální etiky a pomáhá nám chovat se na internetu čestně a zodpovědně.
Postup:
a) Otevři Microsoft Word nebo Google Docs
b) Vytvoř dokument s názvem: "LICENCE NA MŮJ PROGRAM" nebo "LICENCE NA MOU HRU"
c) Vyplň následující (můžeš si vybrat, zda popisuješ svůj program Scratchem, algoritmus nebo svůj projekt):
Tip: Můžeš použít věty jako: "Děkuji za respektování mé práce" nebo "Baví mě tvůrčí práce a chci ji chránit".
Uložení: Ulož dokument jako PDF a pošli ho svému učiteli jako přílohu.
V profesionálním světě se setkáš s různými standardními licencemi. Je důležité jim rozumět, protože určují, co smíš s programem nebo dílem dělat. Zde jsou nejběžnější typy:
GPL (General Public License) je jedna z nejznámějších open source licencí. Její hlavní myšlenka je "svoboda pro všechny". Pokud použiješ GPL kód ve svém projektu, musíš svůj projekt také zveřejnit jako open source. Je to jako řetěz – svoboda se šíří dál. Linux je nejslavnější příklad softwaru pod GPL.
MIT License je naopak velmi jednoduchá a volná. Říká v podstatě: "Dělej si s tím, co chceš, jen uveď původního autora." Mnoho populárních knihoven (React, Vue.js) používá MIT licenci, protože je přátelská i pro komerční použití.
Creative Commons (CC) jsou licence navržené speciálně pro kreativní díla jako texty, fotografie, hudba nebo videa. Fungují jako "stavebnice" – můžeš kombinovat různé podmínky:
Copyright © je automatická ochrana, která vzniká v okamžiku, kdy něco vytvoříš. Nemusíš nikam nic registrovat – jakmile napíšeš básničku nebo nakreslíš obrázek, máš na něj autorská práva.
EULA (End User License Agreement) je smlouva, kterou "podepisuješ" (obvykle kliknutím na "Souhlasím"), když instaluješ software. Obsahuje pravidla, co s programem smíš a nesmíš dělat.
Autorské právo v České republice je upraveno zákonem č. 121/2000 Sb. (autorský zákon). Tento zákon chrání tvůrce a jejich díla. Pojďme se podívat na klíčové koncepty:
Majetková práva jsou ta, která autor může prodat nebo licencovat. Dávají autorovi právo rozhodovat o tom, jak bude jeho dílo použito:
Majetková práva trvají 70 let po smrti autora. Po této době se dílo stává "veřejným majetkem" (public domain) a kdokoli ho může volně používat. Proto jsou díla Shakespeara nebo Mozarta volně dostupná.
Osobnostní práva chrání vztah autora k jeho dílu a jsou nepřevoditelná – autor se jich nemůže vzdát ani je prodat:
Zaměstnanecké dílo: Pokud vytvoříš software nebo jiné dílo jako součást své práce pro zaměstnavatele, majetková práva má automaticky zaměstnavatel. Ty zůstáváš autorem (osobnostní práva), ale firma rozhoduje o použití díla.
Školní dílo: Když vytvoříš projekt jako student, jsi jeho autorem. Škola má však právo dílo použít pro výukové účely. Pokud by škola chtěla dílo komerčně využít, musí s tebou uzavřít licenční smlouvu.
Softwarové společnosti používají různé obchodní modely. Jako budoucí IT profesionál bys měl znát jejich rozdíly:
Zaplatíš jednou a software vlastníš navždy. Například koupíš Microsoft Office 2021 za 3 500 Kč a můžeš ho používat neomezeně dlouho. Nevýhoda: nedostaneš nové verze, jen bezpečnostní aktualizace.
Platíš pravidelně (měsíčně nebo ročně) a máš přístup k nejnovější verzi. Například Microsoft 365 stojí cca 2 000 Kč/rok. Výhoda: vždy aktuální software. Nevýhoda: přestaneš platit = přijdeš o přístup.
Základní verze je zdarma, ale pokročilé funkce jsou placené. Příklad: Spotify (zdarma s reklamami, bez reklam za předplatné), Canva (základní zdarma, Pro za předplatné).
Jádro software je open source a zdarma, ale rozšíření a enterprise funkce jsou placené. Příklad: GitLab Community Edition je zdarma, GitLab Enterprise je placený.
Jako IT specialista budeš pracovat s open source knihovnami a vytvářet vlastní software. Musíš rozumět licencím na praktické úrovni.
Při vývoji software používáš knihovny a frameworky. Každý má licenci, kterou musíš dodržovat:
| Licence | Můžeš | Musíš | Příklady |
|---|---|---|---|
| MIT | Cokoli | Uvést copyright | React, jQuery, Rails |
| Apache 2.0 | Cokoli + patenty | Uvést copyright + změny | Android, Kubernetes |
| GPL v3 | Cokoli | Zveřejnit zdrojový kód | Linux, WordPress |
| LGPL | Použít v proprietárním SW | Zveřejnit změny knihovny | Qt, FFmpeg |
# pip install pip-licenses
# pip-licenses # Vypíše licence všech balíčků
# Výstup:
# Name Version License
# requests 2.28.0 Apache 2.0
# flask 2.1.0 BSD-3-Clause
# numpy 1.23.0 BSD License
# npm (Node.js)
# npm install -g license-checker
# license-checker --summary
# Python skript pro kontrolu
import pkg_resources
for package in pkg_resources.working_set:
print(f"{package.project_name}: {package.version}")
try:
metadata = package.get_metadata('METADATA')
for line in metadata.split('\n'):
if line.startswith('License:'):
print(f" -> {line}")
break
except:
pass
# Příklad MIT licence pro tvůj projekt
# Vytvoř soubor LICENSE v kořenu projektu:
MIT License
Copyright (c) 2024 Tvé Jméno
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND...
# Kontrola bezpečnostních zranitelností
# pip install safety
# safety check
# npm audit (pro Node.js)
# npm audit
# requirements.txt - fixace verzí
requests==2.28.0
flask>=2.0.0,<3.0.0
numpy~=1.23.0
# .gitignore - co NESMÍ být v repozitáři
*.env
.env
secret_key.txt
config/secrets.yml
Dokončujeme projekt Správce kontaktů. V této kapitole napíšeme licenci a dokumentaci a vytvoříme finální verzi.
Pro náš projekt zvolíme MIT licenci – je jednoduchá, permisivní a široce používaná.
MIT License
Copyright (c) 2024 [Tvoje Jméno]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
# 📇 Správce kontaktů
Jednoduchá CLI aplikace pro správu osobních kontaktů napsaná v Pythonu.
## ✨ Funkce
- ➕ Přidání nového kontaktu (jméno, telefon, e-mail)
- 📋 Zobrazení všech kontaktů
- 🔍 Vyhledávání podle jména nebo telefonu
- 🗑️ Mazání kontaktů
- 💾 Automatické ukládání do JSON souboru
## 🚀 Instalace
```bash
# Klonuj repozitář
git clone https://github.com/tvoje-jmeno/spravce-kontaktu.git
cd spravce-kontaktu
# (Volitelné) Vytvoř virtuální prostředí
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Spusť aplikaci
python main.py
```
## 📖 Použití
Po spuštění se zobrazí menu:
```
========================================
SPRÁVCE KONTAKTŮ
========================================
1. Zobrazit všechny kontakty
2. Přidat nový kontakt
3. Vyhledat kontakt
4. Smazat kontakt
5. Konec
----------------------------------------
```
## 🧪 Testy
```bash
# Nainstaluj pytest
pip install pytest
# Spusť testy
pytest tests/ -v
```
## 📁 Struktura projektu
```
spravce-kontaktu/
├── main.py # Hlavní program
├── models/ # Datové modely
│ ├── kontakt.py # Třída Kontakt
│ └── spravce.py # Správce kontaktů
├── utils/ # Pomocné moduly
│ └── validators.py # Validace vstupů
├── tests/ # Unit testy
├── data/ # Uložená data
├── LICENSE # MIT licence
└── README.md # Tento soubor
```
## 🤝 Přispívání
1. Forkni repozitář
2. Vytvoř větev (`git checkout -b feature/nova-funkce`)
3. Commitni změny (`git commit -m 'Přidána nová funkce'`)
4. Pushni větev (`git push origin feature/nova-funkce`)
5. Otevři Pull Request
## 📝 Licence
Tento projekt je licencován pod MIT licencí - viz soubor [LICENSE](LICENSE).
## 👤 Autor
**[Tvoje Jméno]**
- GitHub: [@tvoje-jmeno](https://github.com/tvoje-jmeno)
- Email: tvuj@email.cz
---
⭐ Pokud se ti projekt líbí, dej mu hvězdičku na GitHubu!
# Finální commit
git add .
git commit -m "Přidána licence a finální dokumentace
- MIT licence
- Kompletní README s instrukcemi
- Projekt je připraven k publikaci"
# Vytvoř verzi 1.0.0
git tag -a v1.0.0 -m "První stabilní verze"
# Nahraj vše včetně tagu
git push
git push --tags
spravce-kontaktu/
├── .git/
├── .gitignore ✅
├── LICENSE ✅ MIT licence
├── README.md ✅ Kompletní dokumentace
├── main.py ✅ Hlavní program
├── models/
│ ├── __init__.py
│ ├── kontakt.py ✅ Třída Kontakt
│ └── spravce.py ✅ Správce kontaktů
├── utils/
│ ├── __init__.py
│ └── validators.py ✅ Validace vstupů
├── tests/
│ ├── __init__.py
│ ├── test_kontakt.py ✅ Testy
│ └── test_validators.py ✅ Testy
└── data/
└── kontakty.json (vytvoří se automaticky)
🏆 PROJEKT DOKONČEN! 🏆