Про що не говорять програмісти, про що мовчать...

182
Про що не говорять програмісти, про що мовчать науковці Юрко Тимчук REVEAL, University of Lugano SCG, University of Bern

Upload: yuriy-tymchuk

Post on 15-Apr-2017

270 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Про що не говорять програмісти, про що мовчать науковці

Юрко Тимчук REVEAL, University of LuganoSCG, University of Bern

Page 2: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Про що не говорять програмісти, про що мовчать науковці

REVEAL, University of LuganoSCG, University of Bernyuriy_tymchuk

Page 3: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 4: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто я?

Page 5: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто я?Тепер. 24 роки

2006. 15 років

Ph.D.UniBe

UnikernelФріланс команда

Тех-підтримка / адмін. мережі УАРНЕТ

Програміст Інтерлогіка

Львівський фізико-математичний ліцей

Програміст Innocode

Мала академія наук України

БакалавратФакультет інформатики. ЛНУ

Ph.D.USI

Стажування RMoD

МагістратураКафедра програмування. ЛНУ

Page 6: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 7: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Швидкий вступ у напрямки комп’ютерних наук

Page 8: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Обчислювальні науки

Page 9: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Інформаційні системи

Page 10: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Комп’ютерна графіка

Page 11: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Інтелектуальні системи

Page 12: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 13: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Швидкий вступ в об’єктно-орієнтоване програмування

Page 14: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Objects are like people. They’re living, breathing things that have knowledge inside them about how to do things and have memory inside them so they can remember th ings . And rather than interacting with them at a very low level, you interact with them at a very high level of abstraction, like we’re doing right here.

Steve Jobs 1995

Page 15: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

Page 16: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

Page 17: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

попериБудьЛаска:

Page 18: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

Page 19: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

Page 20: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

Page 21: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

Page 22: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

Page 23: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

Page 24: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

Page 25: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

осьТвійПопранийОдяг:

Page 26: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

?

Page 27: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

„Пральний“ об’єкт

попериБудьЛаска:

Page 28: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 29: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

REVEAL(Reverse Engineering, Visualization, Evolution Analysis Lab)

Page 30: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

CodeCity

Page 31: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 32: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 33: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 34: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 35: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 36: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 37: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 38: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

SCGSoftware Composition Group

Page 39: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Traits

Page 40: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Traits

Smalltalk

Perl

Scala

C#

PHP

Page 41: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 42: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 43: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Ph.D.UniBe

UnikernelФріланс команда

Тех-підтримка / адмін. мережі УАРНЕТ

Програміст Інтерлогіка

Львівський фізико-математичний ліцей

Програміст Innocode

Мала академія наук України

БакалавратФакультет інформатики. ЛНУ

Ph.D.USI

Стажування RMoD

МагістратураКафедра програмування. ЛНУ

Pascal C++ C++ Java C#PHP JavaScriptProlog Lisp Erlang

Ruby

Smalltalk

JavaScala

Ruby

Pharo

PharoPython RacketSwift

Objective-C

C Bash

Page 44: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Філософія хакерів

Ха́кер (англ. Hacker) — особа, що намагається отримати

несанкціонований доступ до комп'ютерних систем, як правило з метою отримання

секретної інформації.

Page 45: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Філософія хакерів

Page 46: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Доступ до знань про світ

Page 47: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Вільна інформація

Page 48: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Визнання навичок

Page 49: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Мистетство програм

Page 50: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Покращення життя

Page 51: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Програмне забезпечення з відкритим кодом

Page 52: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Програмне забезпечення з відкритим кодом

Page 53: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Про катедру і базар

Page 54: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Як стати хакером?

Page 55: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

C/С++ Python Lisp Java Perl

Рекомендації Еріка Реймонда

Page 56: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

C Lisp Pharo Python/Ruby Java

Мої рекомендації

Page 57: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

C Lisp Pharo Python/Ruby Java

низько-рівнева

функіональна

об’єктна

скриптова

“супер-популярна”

Мої рекомендації

Page 58: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

На скільки пітонічний ваш код?

countriesWithA = []i=0while i < len(countryList): if "a" in countryList[i]: countriesWithA.append(countryList[i]) i += 1

Page 59: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

На скільки пітонічний ваш код?

countriesWithA = []

for i in range(len(countryList)): if "a" in countryList[i]: countriesWithA.append(countryList[i])

Page 60: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

На скільки пітонічний ваш код?

countriesWithA = []

for country in countryList: if "a" in coutry: countriesWithA.append(country)

Page 61: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

На скільки пітонічний ваш код?

countriesWithA = [country for country in countryList if "a" in country]

Page 62: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Потоваришуйте з Лінуксом

Page 63: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Потрібне відео?

Page 64: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Потрібне відео?

Page 65: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Потрібне відео?

Page 66: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Потрібне відео?

Page 67: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Потрібне відео?

Page 68: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Потрібне відео?

Page 69: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

використовуйтепокращуйте

робіть внесок у

Page 70: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Інша сторона хакерства

Page 71: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Samy Kamkar

Page 72: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Samy Kamkar

Page 73: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Samy Kamkar

“but most of all, samy is my hero”

Page 74: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Samy Kamkar

“but most of all, samy is my hero”

20 годин - 1 000 000 друзів

Page 75: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Aaron Swartz

Page 76: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Aaron Swartz

Page 77: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 78: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Ще трохи про етику

Page 79: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Ви зміните світ… пам’ятайте про це

Page 80: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 81: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 82: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 83: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 84: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 85: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 86: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 87: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 88: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 89: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 90: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 91: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 92: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 93: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 94: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 95: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Хто має доступ до пошти?

Page 96: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Чи потрібна вам безпека?

From:

To:

Subject:

року виповнюєтьÑÑроків з Ð´Ð½Ñ Ð·Ð°ÑÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð›ÑŒÐ²Ñ–Ð²Ñького національного універÑитету імені Івана Франка. ІÑÑ‚Ð¾Ñ€Ñ–Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð›ÑŒÐ²Ñ–Ð²Ñького універÑитету ÑÑгає витоками Ð¥VІІ ÑÑ‚. У Ð¥VІ – Ð¥VІІ ÑÑ‚. центрами культурного Ð¶Ð¸Ñ‚Ñ‚Ñ Ð½Ð° українÑьких землÑÑ… були церковні братÑтва.

Mr. SmithMs. Smith

cancer

Page 97: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Що робити зі старим кодом?

Page 98: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Чірлідери для програмістів?

Page 99: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Technical Debt

очима замовника очима програміста

Page 100: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Еволюція програмістів

Page 101: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Еволюція людства та програмістів

Page 102: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Еволюція людства та програмістів

Page 103: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Еволюція людства та програмістів

Page 104: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Еволюція людства та програмістів

Page 105: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Еволюція людства та програмістів

Page 106: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Еволюція людства та програмістів

Page 107: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Еволюція людства та програмістів

Page 108: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Xerox Alto

Page 109: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Чиста об’єктна мова Прекрасна спільнота Повний доступ Елегантна Жива 100% MIT ліцензія Mac, Linuxes, Windows, iOS

http://pharo.org

Page 110: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

exampleWithNumber: x <syntaxOn: #aSlide> "This is a complete* syntax of Pharo language" | y |

true & false not & (nil isNil) ifFalse: [ self halt ].

y := self size + super size.

{ 1 . 2 . #($a #a 'a' 1.0 1) } do: [ :each |

Transcript show: each class name; show: each printString; show: ' ' ].

^ x < y

Page 111: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 112: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 113: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 114: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 115: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 116: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 117: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 118: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 119: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 120: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 121: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 122: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 123: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 124: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 125: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 126: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 127: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 128: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 129: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

middleOf: a and: b| sum |sum := a + b.^ sum / 2

Синтаксичні дерева

Page 130: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

#middleOf:and:middleOf: a and: b

| sum |sum := a + b.^ sum / 2

Синтаксичні дерева

Page 131: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

#middleOf:and:b

a

middleOf: a and: b| sum |sum := a + b.^ sum / 2

Синтаксичні дерева

Page 132: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

#middleOf:and:b

a

summiddleOf: a and: b| sum |sum := a + b.^ sum / 2

Синтаксичні дерева

Page 133: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

#middleOf:and:b

a

sum^stst

middleOf: a and: b| sum |sum := a + b.^ sum / 2

Синтаксичні дерева

Page 134: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

#middleOf:and:b

a

sum^stst

:=

middleOf: a and: b| sum |sum := a + b.^ sum / 2

Синтаксичні дерева

Page 135: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

#middleOf:and:b

a

sum^stst

:=

sum +

middleOf: a and: b| sum |sum := a + b.^ sum / 2

Синтаксичні дерева

Page 136: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

#middleOf:and:b

a

sum^stst

:=

sum +

a b

middleOf: a and: b| sum |sum := a + b.^ sum / 2

Синтаксичні дерева

Page 137: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

#middleOf:and:b

a

sum^stst

:=

sum +

a b

/

middleOf: a and: b| sum |sum := a + b.^ sum / 2

Синтаксичні дерева

Page 138: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

#middleOf:and:b

a

sum^stst

:=

sum +

a b

/

sum 2

middleOf: a and: b| sum |sum := a + b.^ sum / 2

Синтаксичні дерева

Page 139: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 140: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Платформа для аналізу даних

http://moosetechnology.org

Page 141: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Платформа для аналізу даних

http://moosetechnology.org

Page 142: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Платформа для аналізу даних

http://moosetechnology.org

Page 143: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Платформа для аналізу даних

http://moosetechnology.org

Page 144: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 145: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 146: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 147: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 148: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 149: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 150: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 151: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Smalldromeda

Page 152: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Smalldromeda

Page 153: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Core Pharo dev (RMoD)

Smalldromeda

Page 154: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

MOOSE

Smalldromeda

Page 155: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Seaside

Smalldromeda

Page 156: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Духи минулого різдва (Pharo10)

Smalldromeda

Page 157: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Smalldromeda

Page 158: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Сузір’я Бернарта

Page 159: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

http://yuriy.tymch.uk/Smalldromeda/

Page 160: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Якість коду

Page 161: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Якість коду

Наскільки легкозрозумітизмінитиперевірити

програмне забезпечення

ISO/IEC, ISO/IEC 9126. Software Engineering – Product quality 6.5. ISO/IEC, 2001

(maintainability)

Page 162: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Code Review

A. Bacchelli, C. Bird. Expectations, outcomes, and challenges of modern code review. In Proceedings of ICSE’13, pp. 712–721, IEEE, 2013

Page 163: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Статичний аналізатор

Page 164: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Статичний аналізатор

Page 165: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Правила якості

Статичний аналізатор

Page 166: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Вихідний код

Правила якості

Статичний аналізатор

Page 167: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Правила якості

Статичний аналізатор

Page 168: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Критики

Правила якості

Статичний аналізатор

Page 169: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Find Bugs

Page 170: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Visual Design Inspection

Y. Tymchuk, A. Mocci, and M. Lanza. Code Review: Veni, ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015

Page 171: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Y. Tymchuk, A. Mocci, and M. Lanza. Code Review: Veni, ViDI, Vici. In Proceedings of SANER’15, pp. 151-160, IEEE, 2015 Y. Tymchuk, A. Mocci, and M. Lanza. Vidi: The Visual Design Inspector. In Proceedings of ICSE’15, to be published, IEEE, 2015

ViDI

Page 172: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 173: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 174: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

ViDI є …

Page 175: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

Відірваною від середовища розробки

Page 176: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

QualityAssistant

Page 177: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 178: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 179: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 180: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 181: Про що не говорять програмісти, про що мовчать науковці (UCU2015)
Page 182: Про що не говорять програмісти, про що мовчать науковці (UCU2015)

yuriy_tymchuk