Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

-=[ D3v0p5 4 H4ck3rZ ]=- @090h

Slide 3

Slide 3 text

WHOAMI • Just another coder • Started to code with BASIC @ school in 2000 • Got PC after #1 place @ local coding Olympics between schools • Working as hacker @ hlsec.ru • Like to write some code 4 PHUN&PWN • keybase.io/090h [email protected] twitter.com/090h github.com/0x90

Slide 4

Slide 4 text

Programming languages I have known and loved • Basic – school @ Georgievsk • Pascal/Object Pascal – Kuban State Technological University kubstu.ru • C/C++/C# – self education • Assembler x86/x64/ARM/MIPS – self education • Python – self education if coding_world.evaluating: self.continue_education() or die()

Slide 5

Slide 5 text

My first coding machine

Slide 6

Slide 6 text

My first IDE

Slide 7

Slide 7 text

When I was young…

Slide 8

Slide 8 text

15 years of coding • OS: Windows, Linux, OS X, Android, iOS • IDE: Delphi, MS VS, Eclipse, JetBrains, Atom.io • Compilers: VC, MASM, FASM, SDCC, GCC, LLVM • Debuggers: SoftIce, OllyDBG, WinDBG, WinAppDbg, vivisect, r2 • Disassemblers: using cracked IDA since 3.7, DeDe, IDR, r2 • Decompilers: various for VB/.NET/Java/Python/Ruby • VM: VMWare, VBox, Parallels, QEMU, Docker/LXC, XEN, KVM • VCS: CVS -> SVN -> HG/GIT • Tons of helpful tools for DEVELOPMENT & BUILD & DEPLOYMENT

Slide 9

Slide 9 text

Developer environment • Shell • Compiler/Interpreter • Version control system • IDE • Dependencies solving tools • Virtualization • Solutions for code testing • Deployment tools • Project template solution

Slide 10

Slide 10 text

Shell *NIX WORLD: • ZSH • OH-MY-ZSH/PREZTO • TMUX/TMUXINATOR/TMUXP WiNDOWZ: • CMD.EXE/POWERSHELL • CONEMU

Slide 11

Slide 11 text

ZSH + PREZTO + TMUX

Slide 12

Slide 12 text

Compiler & Interpreter Compiler • LLVM for new projects • GCC for old projects and embedded devices • Make/Cmake to build Interpreter • Python 2.7 for old projects • Python 3.5 for new projects

Slide 13

Slide 13 text

Version Control System • GIT for hardcore power (subrepo, hooks) • HG (mercurial) for beginners • Github.com for public releases • Bitbucket.org for private • … or Kalithea for personal GIT • Use SSH keys and/or HW based 2FA with Ubikey (10x 2 VOS) • Don’t forget to create .gitignote/.hgignore

Slide 14

Slide 14 text

IDE • MS Visual Studio for windows projects. No way. • Atom.io for small projects (easy but powerful) • JetBrains XXXXXX for XXX programming language • Try to do everything in PyCharm (VCS, VM, DB, Deps, Deploy)

Slide 15

Slide 15 text

Dependencies SYSTEM DEPENDENCIES: • Windows: chocolatey -> Forget about next, next, finish • Linux: apt-get/pacman/yaourt • OS X: macports (brew sucked a lot with packages for SDR) PYTHON DEPENDENCIES: • Pip [pip freeze > requirements.txt] [pip install -r requirements.txt] • Virtualenv + requirements.txt in the past • Pyenv = Python versioning + Virtualenv + req

Slide 16

Slide 16 text

Virtualization Changed the world: • Internet: VPS hosting • System coding (BSOD @ VM) • Administration: VM templates, snapshots, backups • information security: try to escape from hypervisor • VM 4 DEV + VM 4 PROD • IaaS, PaaS, SaaS, MaaS, CaaS & XaaS • Clouds 4 everything!

Slide 17

Slide 17 text

Virtualization world • VMWare is the best choice for any OS, but $$$ • VirtualBox is free, but… • Docker, docker-compose, Kitematic * • Vagrant • Packer.io • Otto * VirtualBox is used to run Docker under OSX (boot2docker)

Slide 18

Slide 18 text

VM vs Containers

Slide 19

Slide 19 text

LXC/Docker

Slide 20

Slide 20 text

Meet Kitematic

Slide 21

Slide 21 text

Development workflow IRL

Slide 22

Slide 22 text

Deployment… • Integrated in PyCharm • Vagrant plugin for ESXi/vSphere • Docker containers to VDS • Rsync/GIT/SCP for code delivery • Fabric/Salt/Ansible/Chef/Puppet for deployment automation … and may be Otto will change the world

Slide 23

Slide 23 text

Otto to learn

Slide 24

Slide 24 text

Project templates • Create and use project templates for time saving • Study how to organize projects in the right way • Cookiecutter https://github.com/audreyr/cookiecutter • Helps to create working project in seconds!

Slide 25

Slide 25 text

Thank you! GreetZ fly to: 2600/DC7499/JBFC members