Top Banner
C language in our world 5.5. 2015 FI MUNI Brno @jurajmichalek http://www.ysofters.com
64
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: C language in our world 2015

C language in our world5.5. 2015 FI MUNI

Brno@jurajmichalek

http://www.ysofters.com

Page 2: C language in our world 2015

Grab the source code

https://github.com/ysoftdevs/cpp-examples

Page 3: C language in our world 2015

Who am I?

Blog: http://georgik.sinusgear.com

Page 4: C language in our world 2015

C language todayNuGet

Gradle & C languageJenkins

IDEsGo language

Page 5: C language in our world 2015

Programming languages we know strongly influence the way we think about programming.

- JS Conf 2014 - Jenna Zeigen

Page 6: C language in our world 2015

Breeze of fresh ideas starts blowingfrom other technologies...

Page 7: C language in our world 2015

NuGet - http://www.nuget.org

Page 8: C language in our world 2015
Page 9: C language in our world 2015
Page 10: C language in our world 2015
Page 11: C language in our world 2015

Made with SDL

Page 12: C language in our world 2015

Made with SDL

Page 13: C language in our world 2015

Multiplatform

SDL officially supports Windows, Mac OS X, Linux, iOS, and Android.

Support for other platforms may be found in the source code.

Page 14: C language in our world 2015

SDL versions

1.2 stable - rock solid

2.x development - new features

Page 15: C language in our world 2015

SDL_init(flags)

SDL_INIT_TIMER - The timer subsystemSDL_INIT_AUDIO - The audio subsystemSDL_INIT_VIDEO - The video subsystemSDL_INIT_CDROM - The cdrom subsystemSDL_INIT_JOYSTICK - The joystick subsystemSDL_INIT_EVERYTHING - All of the aboveSDL_INIT_NOPARACHUTE - Prevents SDL from catching fatal signalsSDL_INIT_EVENTTHREAD - Runs the event manager in a separate thread

Page 16: C language in our world 2015

Quit application

SDL_quit()

Page 17: C language in our world 2015

Window

SDL_CreateWindow("Hello World!", 100, 100, 640, 480, SDL_WINDOW_SHOWN);

Page 18: C language in our world 2015

Load bitmap

SDL_Surface *bmp = nullptr;bmp = SDL_LoadBMP("smajlik.bmp");

Page 19: C language in our world 2015

Visual data

SDL_RendererSDL_Texture

Page 20: C language in our world 2015

Keyboard

SDL_PollEvent(SDL_Event *event)

event.key.keysym.sym

Page 21: C language in our world 2015

Timer

SDL_TimerID SDL_AddTimer( Uint32 interval, SDL_TimerCallback callback, void* param)

Page 22: C language in our world 2015

Mouse

SDL_GetMouseState(*x, *y);

Page 23: C language in our world 2015

Text

Not implemented

Page 24: C language in our world 2015

Extensions

extension for many languages:

C++, Java, PHP, Python, Ruby

Page 25: C language in our world 2015

PyGame

Power of C and Power of Pythonhttp://www.pygame.org

Page 26: C language in our world 2015

Kivy.org

iOSAndroidWindows DesktopWindows PhoneRaspberry Pi

Page 27: C language in our world 2015
Page 28: C language in our world 2015

Allegro

Page 29: C language in our world 2015
Page 30: C language in our world 2015

Allegro 5.1

Win, Lin, Mac

iOS, Android

http://alleg.sourceforge.net/a5docs/refman/

Page 31: C language in our world 2015

Initialization

al_init();

Page 32: C language in our world 2015

Graphic environment

al_create_display(int w, int h)

Page 33: C language in our world 2015

L10N - verify your translations

http://www.microsoft.com/Language

Page 34: C language in our world 2015

Conemu Maximus 5

Powerful terminal for Windowsuse with PowerShell, Python, Ruby…

https://code.google.com/p/conemu-maximus5/

Page 35: C language in our world 2015

Yum/Apt-like installation of Win packageshttps://chocolatey.org

Page 36: C language in our world 2015

Gradle Native BuildsC/C++, Objective-C

http://gradle.org/getting-started-native/

Page 37: C language in our world 2015

Build tool

Exensible by plugins

Power of Domain Specific Language

Page 38: C language in our world 2015

http://plugins.gradle.org

Page 39: C language in our world 2015

Project structure

Convention over configuration

Decrease number of decisions that developers need to makehttp://en.wikipedia.org/wiki/Convention_over_configuration

Page 40: C language in our world 2015

C plugin

Page 41: C language in our world 2015

Gradle command line & GUI

Page 42: C language in our world 2015

gradle components

Page 43: C language in our world 2015

Gradle wrapperDownload and prepare infrastructure

Page 44: C language in our world 2015

Gradle - compile with debug

Page 45: C language in our world 2015

Gradle build Linux package

Netflix Nebula OS Package plugin:http://plugins.gradle.org/plugin/nebula.os-package

Page 46: C language in our world 2015
Page 47: C language in our world 2015

Build package

Note: Gradle supports abbreviation. You can write hE instead of helloExecutable

Page 48: C language in our world 2015

Continuous integration

Page 49: C language in our world 2015

Jenkins

Hit for Windows users: Do not install Jenkins into path with special characters and blank space.E.g: Wrong: C:\Program Files (x86)\Jenkins. Correct: Use C:\projects\jenkins

Page 50: C language in our world 2015

IDE & Text editors

Page 51: C language in our world 2015

c9.io

Page 52: C language in our world 2015

Sublime Text

Page 53: C language in our world 2015
Page 54: C language in our world 2015

Toolchain detection

Page 55: C language in our world 2015

Edit project

Page 56: C language in our world 2015

Leverage Refactor

Page 57: C language in our world 2015

Use Debugger

Page 58: C language in our world 2015

Fine tune

Disabled by default for all JetBrains tools :-(

Page 59: C language in our world 2015

Qt Creator

Page 60: C language in our world 2015

From desktop to cloud

Software is slowSoftware is hard to writeSoftware is hard to scale

Page 61: C language in our world 2015

Go

http://golang.org

Authors:● Ken Thompson - known for Unix● Rob Pike - known for UTF-8● Robert Griesemer

Page 62: C language in our world 2015

Main features of languagesyntax patterns from dynamic languagesperformance of Cblazing fast compilationoutput one binaryconcurrencylibraries from internet (e.g. Github)works on: Mac, Linux, Windows and more...

Page 63: C language in our world 2015

Materials

Andreas Krennmairhttp://synflood.at/tmp/golang-slides/mrmcd2012.html#1

Steve Franciahttp://spf13.com/presentation/first-go-app/

Page 64: C language in our world 2015

YSofters

Twitter: @ysoftdevsGitHub: github.com/ysoftdevs

Blog: www.ysofters.comTechnology Hour: www.meetup.com/ysoft-th

Thesis: [email protected]