Дайджест: зарплаты в России и в США, мифы о времени для программистов, педаль для VIM, будущее нейронных сетей

Добрый день, уважаемые читатели.

Главной (и, по большому счету, единственной) новостью прошедшей недели для отечественной IT-индустрии можно считать вето президента Украины, которое он наложил на законопроекты по поддержке отрасли, ранее принятые Верховной Радой.

Также для тех, кто озабочен судьбой индустрии, есть практически художественное произведение «Когда я говорил...»

И несколько слов о российском рынке разработки. На Хабре опубликовано интересное исследование зарплат веб-разработчиков в Москве, Санкт-Петербурге, Новосибирске, Екатеринбурге и Нижнем Новгороде.

И в завершение вступления — интервью с Алексеем Пахуновым, программистом с опытом работы в Microsoft и Google и автором блога Not a kernel guy.

Новости

Практика

Теория

Разное для поднятия настроения

Начнем с художественной литературы: «Два способа разработки программного обеспечения, или Одна ночь из жизни программиста Миши».

Далее — ностальгические старые игры: как выглядит партия в Civilization II длиной в 10 лет.

Перейдем к визуальным материалам:

И прекрасное видео JavaZone 2012:

.

На этом сегодняшний дайджест заканчивается. Интересных вам выходных, хорошей погоды и удачной недели. До встречи в следующую пятницу!


В подготовке выпуска участвовали: Сергей Волошин, Игорь Кононученко, Руслан Шевченко, Сергей Маляров, Максим Емельянов, Макс Ищенко, Andriy Mishak, Богдан Чечин.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn



64 коментарі

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Java freaks are too subtly luring on the dark side of power.

История про темную и светлую сторону зачет! Как и промо-ролик JavaZone. :)

Спасибо, замечательные линки! Получил удовольствие от Цивилизационного апокалипсиса )

доклад Дмитрия Дзюбы на TEDxKyiv «Будущее нейронных сетей»;

Вижу ТЕД продолжает собирать под свое крыло теоретиков-демагогов-популистов.

Нейросети всем хороши, кроме единственного недостатка что на реальных данных они просто не работают как надо. Тоесть результат работы программы становится стохастическим.

Хотя они довольно удобны для программ в которых требуется непредсказуемость, но таких областей довольно мало, разве что игровой AI.

Нейросети показывают результаты в некоторых областях типа OCR, но товарища по ссылке вообще понесло: интелектуальный анализ текста, эмоции и т.д.

Не не показывают. Если обучить нейросеть по картинке изображений то полная фигня получается на чуть другом шрифте, если обучить на всех шрифтах то полная фигня на любом шрифте. Как раз ocr и занимаюсь, так что знаю.

Не, ну если ты ни до чего умнее чем пиксели передавать на вход сети не додумался, то конечно.

А вы что передаёте — вектор? Как решили проблему нерегулярности векторной структуры?

Я не знаю о каком векторе ты говоришь и что у него там за нерегулярность такая.
Передавать можно кучу вещей, начиная с локализированных, смасштабированных участков с удаленным шумом и сбалансированной цветовой гамой до кучи других features, типа выделять всякие кривые н-тых порядков и передавать их как input features.

К тому же крайне глупо рассматривать твой отрицательный опыт как доказательство невозможности положительного, может ты свою сеть через ж реализовал. Вон например гугл вполне инвестирует в нейронные сети: research.google.com/...s/pub38115.html

Угу, только по таким хорошим нейросетям написано миллионы научных статей (рецензированных), защищены десятки тысяч докторских, вот только приложений их реально использующих для кастомер хеппинесс нет.

В реальных проектах пользуются тупо всякими симплекс-методами, жадными алгоритмами или деревьями решений, а нейросети оставляют для докторских.

PS

Может дадите ссылку на реальное приложение для реального использования, которое использует нейросети?

PS2

Гугле во много что инвестирует, на Google Summer Code вообще одобрение получают самые безумные проекты, некоторые из которых действительно становятся полезны.

Я не знаю о каком векторе ты говоришь и что у него там за нерегулярность такая.

Передавать можно кучу вещей, начиная с локализированных, смасштабированных участков с удаленным шумом и сбалансированной цветовой гамой до кучи других features, типа выделять всякие кривые н-тых порядков и передавать их как input features.

Проблема нейросети в том, что количество входов и выходов нейронов величина фиксированная, если фиксированное количество выходов не проблема, там всегда будет 16 битный код символа или что-то подобное. То если мы берем передаем кривые, их количество для разных символов разное как и их тип, кроме того для нейросети будет играть роль порядок подачи кривых, в результате нам нужна нейросеть с переменным количеством входов, что пока не реализовано.

Лучшее качество дает — перевод буквы в кривые и распознавание её «грамматического описания» через стохастические грамматики. Математики там не меньше, а больше, а вот нейросетей нет.

Проблема нейросети в том, что количество входов и выходов нейронов величина фиксированная

Ну так ограничь количество кривых и отбери топ с самыми ярковыраженными коэфициентами. Детский сад, чесслово.

Лучшее качество дает — перевод буквы в кривые и распознавание её «грамматического описания» через стохастические грамматики. Математики там не меньше, а больше, а вот нейросетей нет.

Ну вот нейросеть это и есть способ сгенерить автоматически эти граматики.

Ну вот нейросеть это и есть способ сгенерить автоматически эти граматики.

Теперь я понял что вы в этом вообще полный ноль. Надеюсь, хоть с штымцанием «сеньорских» формочек проблем нет?

Фу К.С. Структурные методы в распознавании образов

books4study.info/...t-book4160.html

Не уверен что поймете, но знакомые буквы найти должны.

Сашок, если ты чего то не понял, это еще не значит что дурак кто-то а не ты сам. Не опускай всех до уровня своей некомпетенции.

Ясное дело. Нейросети — модель работы мозга. В мозгу для распознавания отдельных образов формируются отдельные цепочки нейронов. Именно поэтому ребенок сначала каждую букву учит отдельно. И каждое ее написание — то же отдельно. Научить всю сеть сразу и всему — невозможно. Тем более нельзя «переучивать» уже «научившиеся» нейроны.

Как раз нейросети работают полностью наоборот, все они учат и сразу и переучивают нейроны на основании новой информации.

Как раз нейросети работают полностью наоборот, все они учат и сразу и переучивают нейроны на основании новой информации.

Вот эта бы фраза гарантировала бы вам приход на пересдачу к Пустоварову ибо есть бред вызванный недостатком алкоголя в крови.

С другой стороны я спокоен за свою область(ocr), конкурентов по ней практически нет и не будет. Это вам не на Спринге MVC налабать.

Вот эта бы фраза гарантировала бы вам приход на пересдачу к Пустоварову ибо есть бред вызванный недостатком алкоголя в крови.

Это все бла-бла-бла и тролизм без конкретики. С чем ты конкретно не согласен? Что нейроны способны переучиваться(менять веса) под потоком новой информации? Или тупо и жирно тролишь?

Не неспособны. Для этого должен быть активирован режим обучения, если мы про классический алгоритм обратного распространения ошибки. А без этого это обычная «голографическая» безе данных, ну типа которая круче SQL :)

Хотя есть такие, которые новые данные не только классифицируют, но и сразу же встраивают в веса, но там свои грабли.

PS

В AI — я 32 летний сеньор, так что знаю что говорю.

Для этого должен быть активирован режим обучения, если мы про классический алгоритм обратного распространения ошибки.

И как это противоречит моей реплике на которую ты обрушил свою критику?

В AI — я 32 летний сеньор, так что знаю что говорю.

Я в титулы не верю, хотя тоже имею их за плечами. Верю в аргументы, а у тебя их как kот наплакал.

Я в титулы не верю, хотя тоже имею их за плечами. Верю в аргументы, а у тебя их как kот наплакал.

Давайте вы просто дадите ссылку на ocr, использующую нейросети, и тогда можно будет переходить к аргументам.

Так как ocr основанную на структурных методах можно увидеть в флагманах рынка (FineReader, CuneiForm, системы для рукописного ввода в наладонниках...), а основанную на нейросетях только в дипломных и «совковых» докторских, которые реально нигде не внедряются и не работают.

Давайте вы просто дадите ссылку на ocr, использующую нейросети, и тогда можно будет переходить к аргументам.

Классика жанра: yann.lecun.com/exdb/lenet

Кроме того на хабре было много статей как народ капчи ломал, ссылки мне искать лень.

Так как ocr основанную на структурных методах можно увидеть в флагманах рынка (FineReader, CuneiForm, системы для рукописного ввода в наладонниках...),

О каких структурных методах речь? Все методы обычно можно легко совмещать с нейронными сетями подавая выход этих методов как features на нейронную сеть.

Классика жанра: yann.lecun.com/exdb/lenet

Кроме того на хабре было много статей как народ капчи ломал, ссылки мне искать лень.

Распознавание капчи и распознавание текста вещи разные. Нейросети могут работать когда тестовый набор довольно ограничен, тоесть к примеру только цифры и 2-3 шрифта. Если же тестовый набор довольно большой — более 100 паттернов, то они начинают распознавать все кроме реальных данных. Для них все эти паттерны превращаются в размазанное пятно. Очень хорошо это показано здесь (для сетей Хопфилда, но оно верно и для других) www.intuit.ru/...onnets/8/5.html

Вот ссылка на то что такие структурные системы (для идиотов) www.ist.ugtu.net/...2479/index.html

Распознавание капчи и распознавание текста вещи разные.

И чем же они такие разные?

Если же тестовый набор довольно большой — более 100 паттернов, то они начинают распознавать все кроме реальных данных. Для них все эти паттерны превращаются в размазанное пятно. Очень хорошо это показано здесь (для сетей Хопфилда, но оно верно и для других) www.intuit.ru/...onnets/8/5.html

Это все твое типичное бла-бла-бла.

я занимаюсь нейросетями с 2001 года в финансах — могу сказать тоже самое, очень классное обучение, оч.плохие результаты на тестах, как правило. Они работают, только когда действительно есть статистические. закономерности.

Интересно, когда нас порадует выступление на «TEDxKyiv» представителя практиков-инноваторов — в Вашем лице ?

>>чем абстрактный класс отличается от интерфейса

Собственно отличий довольно мало. В абстрактном классе могут быть реализованы часть методов и абстрактный класс может иметь переменные-свойства вместо свойств-свойств(интерфейс). Ну и наследоваться от нескольких абстрактных классов нельзя. Вроде все отличия?

По сути, после 10 лет в IT разницу ты не сколько знаешь, сколько чувствуешь границу применимости конструкции языка для решения определенной задачи. А один и тот же код можно написать и на абстрактных класса и на интерфейсах.

Множественное наследование интерфейсов возможно, а абстрактных классов — нет.

Множественное наследование интерфейсов возмжно, а абстрактных классов — нет.
А вы знаете почему этот ответ «абсолютно не правильный»?

В плане работы с ними — нет, не знаю. С чисто идеологической, можно начать расуждать, что де интерфейсы — определяют возможности (что я могу), а абстрактные классы — сущность (что я есть), но мне лень.

Абстрактный(Abstract) класс — класс, который имеет хотя б 1 абстрактный (не определенный) метод; обозначается как abstract.

Интерфейс — такой же абстрактный класс,только в нем не может быть свойств и не определены тела у методов.

Так же стоит заметить, что абстрактный класс наследуется(etxends), а интерфейс реализуется (implements). Вот и возникает разница между ними, что наследовать мы можем только 1 класс, а реализовать сколько угодно.
ВАЖНО! При реализации интерфейса, необходимо реализовать все его методы, иначе будет Fatal error, так же это можно избежать, присвоив слово abstract.

www.quizful.net/...face-difference

Так или Вас есть формулировка канонинчнее?

есть формулировка канонинчнее?

Дело не в каноничности, а в уровне абстракции. Вот это почитайте dou.ua/...ic/5797/#209504

А по определениям:

Так же стоит заметить, что абстрактный класс наследуется(etxends), а интерфейс реализуется (implements).

Что в общем не верно.

docs.oracle.com/...rializable.html

Абстрактный(Abstract) класс — класс, который имеет хотя б 1 абстрактный (не определенный) метод;

Интерфейс — такой же абстрактный класс,

Из этого следует что Serializable — не интерфейс, так как в нет «хотя б 1 абстрактный метод»

В Каноничном ООП (КООП) нет интерфейсов, поэтому и вопрос не имеет смысла.

В Каноничном ООП (КООП)

Что такое «каноническое ООП»? (со ссылками, пожалуйста)

поэтому и вопрос не имеет смысла.

В посте на который вы отвечали нет вопросов, только утверждения. Так уточните: какой вопрос не имеет смысла.

Не помню, можно ли создать абстрактный класс без методов, но интерфейс без методов можно, я гарантирую это ©.

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

Если коротко, то:
— Интерфейс — наследование поведения.

— Абстрактный класс — наследование реализации.

Ещё часто утверждается, что интерфейс — это вырожденный абстрактный класс без реализации.

Собственно отличий довольно мало. В абстрактном классе могут быть реализованы часть методов и абстрактный класс может иметь переменные-свойства вместо свойств-свойств(интерфейс). Ну и наследоваться от нескольких абстрактных классов нельзя. Вроде все отличия?

Что делает с людьми википедия..

Брехня по поводу скорости работы Java-кода на уровне нативного. Берешь обычную медианную фильтрацию изображений и жаба сливает в 30-100 раз нативному коду.

Берешь обычную медианную фильтрацию изображений
О ужас! Как мне быть?! Пойду умру, как же я могу жить с такой медленной медианной фильтрацией??

Ответ третьеклассника.

Ответ третьеклассника.

А ответ взрослого человека: Вы не адекватны так как привели задачу не специфичную для конкретной технологии, цифры подтвержденные только вашей фантазией, не описав условий эксперимента.

Так лучше?

К слову вот наиболее популярный (из мне известных) бенчмарк shootout.alioth.debian.org/...=java&lang2=gpp

Браво, дружище.

Именно поэтому такты железа будут расти а квалификация разработчиков падать ;)

Потому что эти ролики знимает коммюнити джава. Кто мешает корпорации зла снять подобное про дудку? Или Гвидо снятся в порно с прызывом выбирайте пайтон?

зачем коммьюнити тратить 10,000-20,000$ на пропаганду языка программирования?

Ололо.
Откуда суммы?

Вы в курсе что этот и большинство роликов про джава — это «трейлеры» конференций (в этом случае JavaZone)? Та вроде все известные ролики от ДжаваЗоны.

Хороший продукт все заюзают и без рекламы, не так ли?

Рылли?

Python developer в Willowcode

Python когда стал популярным? Где-то в 2005 году (а то и позже)? То есть 15 лет он был плохим продуктом, а тут резко стал хорошим?

Это не промо-ролики, которые просто for fun сняли для себя ребята, это качественно сделанный бизнес-продукт.

Чувакам из ДжаваЗоне респект и уважуха! Че дальше?

При чем тут Python?

Это пример продукта который «не знали» без рекламы.

«зачем коммьюнити тратить 10,000-20,000$ на пропаганду языка программирования?»

Правильный вопрос:

Зачем коммерческой организации делать промо-ролики, благодаря которым они стали однозначно узнаваемыми?

Python когда стал популярным? Где-то в 2005 году (а то и позже)? То есть 15 лет он был плохим продуктом, а тут резко стал хорошим?

Нет, в 2005 году сняли 10 роликов с Джеки Чаном и Сара Джессикой Паркер и народ повелся.

Ясно, что популярность языка формурует коммьинити, а еще большое — хорошие продукты, фреймворки, реальные известные проекты. В случае c Python, популярность появилась после Django. Так же как и для Ruby — Ruby on Rails.

В случае c Python, популярность появилась после Django. Так же как и для Ruby — Ruby on Rails.

Не совсем, популярность появилась когда апологеты начали такатсо на конференции и рассказывать как это круто. Это и есть реклама.

Или Гвидо снятся в порно с прызывом выбирайте пайтон?
Даже боюсь представить что он с этим питоном делать будет :)
А о Python, например, комикс есть:

xkcd.com/353

-

Еще на ua pycon такие футболки были:

lh5.ggpht.com/...00/IMAG0132.jpg (via)

Видео про Erlang с Codefest 2012;

Не в ту категорию отнесли, надо было не в «Теория», а в «Разное для поднятия настроения»

Два способа разработки программного обеспечения, или Одна ночь из жизни программиста Миши.

Rulezzz! Захотелось перейти на светлую сторону.

Підписатись на коментарі