Dev environment for linux (Mainly KDE and python)

Post on 21-Apr-2017

883 views 3 download

Transcript of Dev environment for linux (Mainly KDE and python)

Dev Environment for Linux

(Mainly for KDE&Python)

By: Assem Chelli

- Software engineer at ioGrow

- Founder of Alfanous.org

- Contributor at many open source projects: OWASP OWTF, XAPIAN...

- assem.ch @ gmail.com

- assem_ch @ twitter

- assem-ch @ Github

- bigother @ stackoverflow

Who am I?

What is this presentation about?- There is no standard environment

- Those are Suggestions , not Rules

- I will talk Mainly from a Python developer point of view

- Underlined and Bold the tools I use personally

Objectives- Efficiency

- Lightness

- Customization

- Updates in time

- Easiness

- Stability

- Clarity

Choosing Distribution- Debian

- Ubuntu and derivatives

- Fedora and derivatives

- Suse (Alliance with Microsoft)

- Arch-linux (Rolling-release)

Choose a well-known one and Customize anything you want!

Choosing Desktop- Unity (notification problem)

- Gnome Shell (notification problem)

- KDE

- Gnome fallback forks (MATE, CINNAMON ...)

- LXDE

- XFCE

- ...

Terminals- Konsole

- Gnome-Terminal

- Terminator

- Yakuake

- Guake

Command-line tools VS

Graphical tools

Text Editors- VIM

- Emacs

- Sublime

- Geany

- Gedit / Kate

- Nano

Interpreters / Compilers / DebuggersPython:

- python

- iPython

- Bpython

- IDLE

C/C++: gcc

...

Version Control- Git --local-branching-on-the-cheap

- Hg

- SVN, CVS

- TFVC

Version control tools- gitk, gitg, qgit

- Git-cola

- SmartGit

- Git-gui

Diff tools- Kdiff3

- Kompare

- diff

Search & Replace tools- find / grep / sed

- locate

- Kfind

- Kfilereplace

DocumentationNote: keep offline documentation when possible

- Command: man

- Command: pydoc

- Zeal (Dash-alternative)

- Pdf Search

- Stack Overflow

- youtube-dl to download video tutorials

TODO list tools- Tasque (KDE)

- GToDo (gnome)

- iKog (terminal)

- Github issues

- EMACS org-mode

- ...

IDEs : Integrated Development Environments - Jetbrains

- PhpStorm

- WebStorm

- PyCharm

- CLion

- RubyMine

- Eclipse with extensions- PyDev

- Netbeans

- Vim with extensions

- EMACS with packages

- Spyder (Scientific Python )

Using IDEs: Advantages and DisadvantagesAdvantages:

- Less time and effort- Enforce project or company standards- Project management

Disadvantages

- Learning curve- A sophisticated IDE may not be a good tool for beginners- Will not fix bad code, practices, or design

Browsers- Chrome

- Firefox Developer Edition (Multi-processing)

- Opera

- IE 11 (wine)

Browser extensions- Adblock

- GetPocket

- BetaSpeed

- ...

Email Readers- Mutt ( too complicated)

- Kmail (too slow)

- Evolution

- Thunderbird

Calendars- Google Calendar

- Evolution

- KOrganizer

Chat messengers- IRC

- Konversation

- Xchat

- Quassel

- + botbot history

- Slack & alternatives - + Browser notification

- + Email notification

- + History

- General chat- Pidgin

- Kopete

- Skype

KDE Desktop / Activities

MISC- A virtualization tool for simulating other OSes (eg. VirtualBox)

- An RSS reader like akregator or RSSOwl

My tool set ( Python + web dev) - OS&Desktop: Ubuntu / KDE

- Editors: VIM / Sublime

- Terminals: Konsole / Yakuake

- Version Control: Git +Git-cola

- Interpreter: pbython

- IDEs: PyCharm pro edition

- Browsers: Chrome / Firefox Dev +getpocket

- Email reader: Thunderbird

- Calendar: Google Calender (integration with KDE)

- RSS reader: Akgregator

- Chat: Konversation / pidgin / skype

Important tips- Avoid social networking because it’s the main source for

Procrastination.

- Keep it clean, Keep It Simple Stupid

- Avoid over-customization

- Choose always the best tools and focus on them

Questions? Additions?assem.ch @ gmail.com

assem_ch @ twitterassem-ch @ Github

bigother @ stackoverflow