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