Category: it

Category was added automatically. Read all entries about "it".

rune

Повышение производительности труда

Президент наш ждёт отдачи от искусственного интеллекта, генетики, и ещё какой-то неведомой хуйни.

А вот ещё в прошлом году мне один молодой коллега рассказывал, как он несколько лет назад студентом решил подработать. Предприятие выпускает уголь для шашлыков.

Из высоких технологий там только печь, куда заталкивают дрова, чтобы они там обугливались. Вытаскивают оттуда поддон с углями, остужают. Потом на него забирается кривой контуженный дед. Одна рука у него парализована, зато другой он может махать как ошпаренный. И он вручную топором и громко матерясь (контузия есть контузия) довольно шустро долбит уголь на куски фасуемого размера. Остальные (в том числе и рассказчик истории) нагребают его лопатами и ссыпают в тару. Дед работает там уже давно, он контуженный, ему найти хоть какую-нибудь работу очень трудно. А остальные больше двух месяцев не задерживаются. Что не удивительно — оплата труда измеряется единицами тысяч рублей.

И вот как этим дельцам поможет генетика и искусственный интеллект — я ниибу совершенно.
rune

Linux похоже придётся учить

Да, как я уже говорил, Linux — дерьмище, написанное в 90'х задротами — школьниками и студентами — которых в школе и колледже били все подряд. Linux заменял им девушку и давал возможность прятаться от суровой реальности. Да и ничего сложнее командной строки на их деревянных компьютерах не шло. Но потом в 00'х эти задроты выросли, устроились в IT-компании и поставили их от этого дерьмища в зависимость. После чего IT-компаниям пришлось инвестировать в Linux деньги, чтобы привести его в порядок и сделать из него нормальную ОС. Это было проще, чем мигрировать на другую систему и начинать всё с нуля.

Теперь линукс живёт вместе с этими взрослыми задротами, вкладывающими в него свои деньги и душу. И, если руководствоваться экономическими соображениями, то Linux нынче не так уж плох и при этом бесплатен, поэтому разумнее не пренебрегать им, а извлекать из него пользу и выгоду. Конечно, все эти задроты рано или поздно постареют и свалят на пенсию, после чего Linux деградирует обратно до дерьмища. Но это будет ещё не скоро.

Что же касается винды. Её писали примерно тогда же, когда Linux, но сразу профессионалы. Поэтому сравнивать взрослую винду и детский линупс даже смешно. Однако теперь эти старики начали понемногу сваливать на пенсию, а поддержку кода для снижения издержек отдают прыщавым задротам — недавним студентам, которых все били в колледже. Соответственно, развитие винды идёт уже совсем не в том темпе, что раньше. Вроде в недрах Microsoft и есть какие-то планы на новое ядро, и идёт какая-то движуха, но что-то реальное появится не раньше, чем эти задроты подрастут и станут профессионалами, т.е. в лучшем случае лет через 10.


Ну и в качестве бонуса, логичный вывод, почему в России никогда не будет создано ничего стоящего в области IT. Потому что российский IT держится на студентах-джуниорах, которым можно не платить денег, так как работают они за первую строчку в трудовой, а кормит их мама. Как только они взрослеют, они тут же сваливают в более приличное место, а потом и вообще куда-нибудь на Запад. Накопления знаний и преемственности поколений не происходит, а без этого ничего по-настоящему великого не сделать.

Не знают этого только науковеры с отбитым в школе правым полушарием (те, кому отбили левое, идут в креаклы, а кому оба, те в ватники). Науковеры думают, что технологии существуют сами по себе, и если кто-то измарал какую-то бумажку ("открыл" или "изобрёл" что-то), то это навсегда. Но это не так, технологии рождаются, взрослеют и умирают вместе с людьми, которые вкладывают в них душу. Готовые чертежи из прошлого не дают полного представления, как люди к этому решению пришли, от каких альтернатив в процессе отказались, и почему. По сети гулял поучительный текст на тему.

Экспоненциальная фаза прогресса умело маскирует ценность людей. Как некоторые любят говорить, 80% когда-либо существовавших учёных и инженеров всё ещё живы. Но экспонента давно позади, рост теперь в лучшем случае линейный. А жить люди существенно дольше с тех пор не стали. Кроме того, в России ещё и имеет место демографическая яма 90-х, существенно снизившая приток дешёвого молодняка на рынок труда.


Можно ли ожидать от нашего государства поддержку отечественного опенсорса, подобно тому, как оно поддерживает давно нахер не нужную стране науку? Вряд ли. Реальная отдача будет лет через 20, никто в России на такой срок не планирует.
rune

Типовые вопросы по C++

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

1. delete и delete[].
2. Порядок инициализации и деструкции класса. Последствия исключений в конструкторе и деструкторе.
3. Виртуальные методы. Когда нужен виртуальный деструктор. Вызовы виртуальных методов из конструктора и деструктора.
4. Конструктор и деструктор по умолчанию, дефолтный конструктор копирования и оператор присваивания,
5. Скрытие унаследованных методов при коллизии имён.
6. Контейнеры, само собой. Асимптотика, выживаемость итераторов.
7. Могут спросить алгоритмы (которые STL), но это редко.
8. Многопоточность. Про атомики спрашивают редко, обычно достаточно мьютексов. Могут подъебать с однопоточностью cout и printf. Типа, что напечатает программа, а она хз что напечатает.
rune

Overqualified

Не берут никуда. Отказы никак не мотивируют. И вообще, складывается впечатление о назревающем огромном кризисе в IT-индустрии. Который, скорее всего, имеет общемировую тенденцию и не вызван какими-то местными внутренними причинами. Просто Москва "ближе" к Европе, и потому здесь вся эта понтовитость проявляется сильнее.

Символом новосибирского Академ-городка кое-кто называет мостик через лужу, сооруженный из списанного РАН конторского стула, обустраивающий кривую тропинку через промзону. Так вот, символом Москвы можно назвать тарахтящие дизель-генераторы, которые можно увидеть даже в 200 метрах от Кремля.

Сначала я попробовал сунуться в тему BlockChain. Столкнулся с большим неприятием: отказывали, прочитав резюме по диагонали, не задав ни единого вопроса. Но пробившись на пару тусовок, всё удалось понять. Никаких криптооффшоров там строить не собираются. Большинству проектов блокчейн -- не пришей пизде рукав. Не стесняясь, эти ребята говорят, что поднимают деньги на хайпе, которому, по их мнению, осталось меньше года. Байка о таксисте, пытающемся выйти на ICO и рекламирующего свой проект всем пассажирам. "Продам биткоины за нал, лям штука". "Помощь в проведении ICO, нищеброды без EUR 1M -- свалили и не загораживаем стенд". 22-летний CTO, "мировой специалист в области BlockChain", его проект собрал $10M на ICO, под крышей CEO, ушлого 50-летнего дядечки, вылезшего откуда-то из банковской сферы.

В общем, бросил BlockChain, решил сунуться в BigData. Опять -- немотивированные отказы. Блядь, у меня кандидатская по Монте-Карло, я хуярил массивы по 3 ГБ ещё в самом начале разговоров про бигдату, какого хуя? Всё становится понятно, если задать себе вопрос: а у кого нынче эта бигдата вообще есть? Гугл, фейсбук и амазон. Аудитория ВК -- 20 млн, mail.ru -- 20 млн, Яндекс -- 20 млн. Всё это реплика традиционных технологий, поданная под высокотехнологическим соусом. В том же госкомстате нихуя не требуются специалисты по бигдате. Хуярят девочки-с-экселем -- и ничего, справляются.

Подозреваю, что та же самая история будет с Machine learning -- под ним скрывается обычный примат, который в 2000-е студенты матфака хуярили за $200/месяц на каникулах. Поданный под новым соусом. Ну а про импортозамещение я уже писал.

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

Символом современного IT-сектора я бы назвал Bitcoin. И когда наебнётся Bitcoin -- с ним, постепенно, наебнётся и весь мировой IT, как в далеком 2000 году.
rune

Игра в конкуренцию

В Bricsys, наш CAD использовал геометрическое ядро ACIS, принадлежащее Spatial. Эти ребята когда-то написали 3D-движок для AutoCAD. Потом был суд, в результате которого форкнули исходники. Собственно, именно поэтому мы на него и "подсели" -- ACIS обладает неплохой совместимостью с 3D-движком AutoCAD (впрочем, из года в год ситуация ухудшается).

Документация на ядро ACIS очень неполна. Какие-то вещи в ней описаны очень подробно, какие-то лишь в общих словах и расплывчатых формулировках, а что-то не документировано вообще. Умение пользоваться IDA-шкой очень помогло мне прояснить некоторые плохо документированные моменты, что позволило устранить типовые ошибки, приводящие к нестабильности, а также отказаться от некоторых своих велосипедов в пользу хорошо интегрированных с ядром инструментов. На этом, можно сказать, я и заработал авторитет, а не за счёт написания тонн кода.

К счастью, кроме документации есть ещё служба поддержки. В основном, мы сообщаем им о багах, и, спустя полгода-год-два, наиболее злостные баги фиксятся. Если хочется быстрее, надо дать денег. На вопрос "как нам сделать..." или "как именно работает..." далеко не всегда приходит помощь по делу, часто ответ укладыатся в одну из схем: "читайте документацию, если вы там чего-то не нашли, то этого нет и неизвестно когда будет", "мы проводим тренинги, посетите их", "дайте нам денег и мы сами реализуем то, что вы хотите, у нас лучшие индусские профессионалы".

Ещё одна печальная новость в том, что ядро почти не развивается. Туда насовывают новые фишки, в угоду духу времени: гибридное моделирование (brep + треугольники в одной модели), облака точек, всё такое, но уже существующие фичи развиваются крайне медленно.

И вот тут надо подвести важный итог. Компания Spatial принадлежит Dassault Systèmes, которой вообще очень много принадлежит в области CAD. У них есть свой флагманский продукт -- CATIA. Основанный, кстати, на другом ядре (CGM). Риторический вопрос 1: Зачем им распылять усилия и развивать все геометрические ядра, которыми они владеют? Риторический вопрос 2: Раз они сами выпускают CAD'ы, то зачем им растить себе конкурентов? Следствие очевидное: пока мы зависим от их геометрического ядра (да ещё и полузаброшенного), мы никогда не сможем превзойти их в 3D-моделировании, "догнать и перегнать". Мы всегда будем вторым сортом, затыкающим второстепенные ниши. Можно изобретать что-то в области маркетинга (реклама, откаты, госконтракты), но по технической части -- нет. И это основная причина, по которой я покинул Bricsys.

Вторая причина -- это отсталость технологий, во многом следующая из отсталости в технологическом плане ACIS (у которого, например, имеются проблемы с многопоточностью) и DWG-формата (который, на самом деле, не столько формат, сколько API, его однопоточность диктуется совместимостью). Мы использовали явно не те технологии, которые можно было бы назвать технологиями будущего, овладение которыми позволило бы кормиться ещё лет 15. Ну и третья причина -- несколько шизофреничная идеология, которая, с одной стороны, провозглашает превосходство прямого моделирования перед историей построения, "потому что для дураков и порог входа ниже", а с другой, предполагает сохранение всех преимуществ истории построения посредством мифического "искусственного интеллекта" и "распознавания проектного замысла", серьёзная работа над которым требует ресурсов, которых нет, поэтому дальше набора простеньких и далеко не всесильных эвристик дело не идёт.

Кстати, недавно они получили крупный контракт от Intergraph (принадлежит Hexagon AB). Intergraph выпускает, например, пакет CADWorx (проектирование трубопроводов и сосудов высокого давления -- нефтехимия и т.п.). Их решения зависят от использования продуктов Autodesk (AutoCAD, Inventor). Проблема в том, что эти продукты нынче продаются не "насовсем", а с лицензией на один год. В связи с темой санкций, многие покупатели обеспокоены, что санкции могут распространиться на них, Autodesk перестанет продлевать им лицензию, и производство встанет. И покупателей таких, судя по всему, не так мало, т.к. под санкциями не только Россия, но и другие "нефтяные" страны. Bricsys же, как "динамично развивающаяся компания", по-старинке, продаёт "вечные" лицензии, предполагая, что новые версии настолько лучше предыдущих, что лицензию всё равно будут покупать снова и снова, тем более, что она намного дешевле, чем у AutoDesk. Ну и, как на один из известнейших AutoCAD-совместимых САПР (типа, AutoCAD -- это 'A', а BricsCAD -- это 'B'), Intergraph обратил внимание на нас, подшаманили свой софт под нашу платформу, и предлагают клиентам пакет на основе BricsCAD как доступную альтернативу. Понятно, что финт ушами здесь краткосрочный: достаточно обязать Spatial продавать своё ядро под годовой лицензией -- и мы вынуждены будем тоже перейти на годовые лицензии.

А вчера я ходил на собеседование в конторку, которая "конкурирует с Cisco" -- выпускает сетевое оборудование (коммутаторы и т.п.). Вся комната увешана дипломами в стиле "лучшему импортозаместителю сезона". Хвалятся крупными заказами. Как я понял, основное их конкурентное преимущество -- встроенная поддержка DPI/MITM, помогающая выполнять требования законодательства (по блокировке, например) с минимум дополнительного оборудования. В основе лежат какие-то чипы Intel. И вот, рассказывают мне до боли знакомую историю: документация на чипы так себе, поддержка футболит, приходится много реверс-инженерить. Очевидно же: производитель чипов, должно быть, производит и само оборудование, для которых оно разработано (или имеет какие-нибудь неафишируемые эксклюзивные контракты), зачем ему плодить конкурентов? Пока мы только реверс-инженерим этот чип -- конкуренты, имея полную документацию (причём, возможно, уже на следующий чип, который ещё не вышел), вовсю проектируют. Значит, и здесь мы, с этим "импортозамещением", будем вечно плестись в хвосте. Конкретно для меня это означает, грубо говоря, что, уехав на бугор к конкурентам, я сделаю более успешную карьеру, чем если буду здесь тусоваться с "импортозаместителями" за мелкий прайс. В общем, думаю, идти к ним, или нет
rune

Освоить Windows GUI: с чего начать?

Так уж получилось, что с поступлением на физфак активно дрючиться программированием я перестал, и так и не успел освоить создание GUI программ под Винду. Хотя я читал исходники чужих программ, реверс-инженерил много всего, и какое-то представление о сообщениях, Windows GDI и т.п. имею. В те времена мода на OWL уже ушла. Программы либо использовали вызовы GDI напрямую, либо полагались на MFC. Диалоги рисовались в спецрисовалках, клались в ресурсы, и оттуда загружались готовые. Была ещё пионерская игрушка Delphi, которая хранила формы в пикселях вместо диалоговых единиц, отчего при нестандартных установках размерах шрифта всё съезжало, поэтому её я никогда всерьёз не воспринимал. С другой стороны, если украшать диалоги картинками, то и у правильного метода были проблемы. Ещё тогда была мода рендерить изображения окна полностью самостоятельно, со всякими градиентами, гладкими углами и т.п., и выводить готовую картинку.

Но с тех пор прошло 20 лет. Появились GDI+, Direct2D, и хрен пойми что ещё. С другой стороны, народились всякие Qt, GTK, wxWidgets. А я, в свою очередь, решил бросить физику и податься в программисты. Но невозможность создать законченную программу от и до (в частности, из-за отставания в области интерфейса) сильно сдерживает мою программистскую карьеру.

Итак, в какой последовательности советуете осваивать новое? Исходники каких программ почитать для примера? Судя по тому, что я читал о GDI+ и Direct2D, внутри та же самая модель событий и полученный по окну HDC, изменились только вызовы отрисовки. Direct2D отсутствует на XP (что всё в меньшей степени, но ещё, думаю, актуально). GDI+ ругают за тормоза и вырвиглазный рендеринг текста. А все эти Qt монструозны, и мне, как человеку со стороны, непонятно чего дающие.

Или же вообще забросить к чертям C++ и выучить C#, в котором, я слышал, дофига встроено всего готового? Некоторые, вроде бы, делают интерфейс в HTML и показывают как страницу. Или это можно и через C++ делать тоже без особых трудностей? Впрочем, в области HTML и JS я тоже за 20 лет сильно отстал. Стоит ли навёрстывать?

В общем, если делать законченную программу, то на чём лучше основывать интерфейс?
rune

Некоторые забытые технологии в программировании:

1. Битовые плоскости EGA/VGA
2. Палитра. Графические эффекты посредством анимации палитры
3. Текстовые видеорежимы. ASCII и ANSI графика. Изменяемые шрифты. "Гладкий" курсор мыши в текстовых режимах как в Norton Utilities
4. Нестандартные видеорежимы. Текстовый режим 90x30. Графический режим 360x480 и прочие режимы семейства Mode-X .
5. Turbo Vision
6. Память: EMS, XMS, HMA, UMB, линия A20. Работа с видеопамятью через 64КБ окно, переключаемое вызовами VESA.
7. Оверлеи
8. DOS4GW
9. Covox и широтно-импульсная модуляция на PC Speaker
10. Unreal mode (реальный режим процессора с 32-битными сегментами)
11. Резидентные программы
12. Сегментная модель памяти. NEAR и FAR указатели
13. FOSSIL драйверы, AT-команды
14. Видеодрайверы BGI, патч модуля CRT для "быстрых" компьютеров

Кто что ещё помнит? ZX-Spectrum, MSX2 и прочее копирование через стек, наверное, тоже можно как-нибудь вспомнить, но давайте уж начнём с относительно свежих времён.
rune

Только США

Съездил в Париж, в отпуск. Гулял по Лувру и Версалю. Стоптал ноги к херам. По Парижу я спокойно гулял в одной рубашке, а в Москве уже снег лежит. Конечно, климат в Париже намного лучше.

Насчёт эмиграции в Париж. Дело не только в том, что программисты там живут так себе. Английский там знают далеко не все. Языковой барьер будет сильно ограничивать продвижение по карьере. И хотя говорят, что французский – едва ли не единственный язык, на котором русский может научиться говорить без акцента, под 40 лет браться за новый язык, всё-таки, как-то поздновато. То же касается всяких там Германий. В Лондоне, говорят, нормальным людям тяжело – там живут олигархи и их прислуга, что и является основой местной экономики.

Методом исключения остаются только США. Канада и Австралия находятся в таких же ебенях, но доходы там ниже.

Что касается России. Последнее время подозрительно много шума на тему избытка и ненужности программистов в России. А также плач о нехватке кадров в науке, инженерии и прочих профессиях высокой квалификации, грозящей полной утратой инициативы на мировом рынке высокотехнологичной продукции. Причина понятна – отток в программисты, которые получают всё-так больше, и переучиться на программиста таким людям несложно. А доходы программистов, в свою очередь, подстёгивает внешний мровой рынок, видящий в них нехватку.

Если вы думаете, что это повод повысить доходы остальным высококвалифицированным специалистам – вы плохо знаете страну. Искать на это средства никто не будет. Да и Туполев же вкалывал в шарашке за пиздюли и миску баланды – значит, можно же и без денег. Человеческий капитал здесь никогда не ценился, людские жизни массово разменивались на матценности без малейших сожалений. Следовательно, будут разрушать ИТ-сектор, чтобы остановить отток мозгов из других отраслей. Прежде всего, конечно, задавят аутсорсинг, не создающий прибавочной стоимости на месте. Договорятся с Трампом – он же обещал избирателям возврат рабочих мест на родину. Выдумают какие-нибудь санкции для этого.

Про выездные визы и возврат распределения заявки тоже уже были.

Так что, всё говорит в пользу того, что США – единственный вариант. Пусть даже не программистом, а просто бомбу какую-нибудь против России выдумывать.

rune

Одномерная задача коммивояжера

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

Зарплата, с учётом всех бонусов, в каждом отделе своя, причём зависит от того, из более стрёмного ли отдела пришёл человек, или из более крутого. Где-то перебежавшим из более крутого (неважно, какого именно) отдела рады и дают больше, а где-то к ним относятся с подозрением и дают меньше.

Нужно накопить максимум денег (помимо опыта), прежде чем уехать в Google. В каком порядке выгоднее всего чередовать эти отделы?

PS: Это чуть переформулированная задача с собеседований Яндекса. Решение я знаю.
rune

Хайп искусственного интеллекта

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

Помешанность на статистике -- это современная болезнь, поразившая не только науку, но и, как видим, Яндекс. Возможность отслеживать каждый шаг своих пользователей дал много статистического материала, и как нередко в жизни бывает -- особенно сейчас, когда наука в кризисе и новые значимые открытия делаются редко -- любая новая возможность может спровоцировать неоправданные ожидания. Не зря же говорят, что correlation is not causation, т.е. наличие статистической связи ещё не означат наличие причинно-следственной связи.



Допустим, это правда -- телевизор и кофеварку часто покупают вместе. Насколько можно увеличить продажи, если разместить их рядом? Очевидно, должно быть выполнено множество дополнительных условий, чтобы это сработало. Во-первых, очевидно, покупатель должен принадлежать тому множеству, для которого телевизор и кофеварка действительно связаны. Во-вторых, он ещё не успел её купить и даже запланировать. В-третьих, особенно если ему хочется впарить дорогую кофе-машину, у него должно быть время, чтобы сделать выбор -- дорогие вещи импульсивно не покупают. Телевизор он, скорее всего, уже выбрал (как минимум, сузил выбор до нескольких вариантов), прежде чем идти в магазин. А кофе-машину ещё нет. Впарить ему дешёвую кофеварку ещё можно, но выбор дорогой кофе-машины предстоит как следует обдумать. Даже если он и понял: "О да, как же я не подумал, что кофемашина тоже нужна!", то он, вполне вероятно, решит отложить покупку (и не факт, что сделает её в этом же магазине), у него же уже как-то распланирован день. Это значит, что его придётся подкупить выгодной скидкой, чтобы он задержался и посмотрел кофе-машины (если покупатель не совсем идиот, он ещё и достанет телефон и бегло пробежится по ценам конкурентов). В итоге, даже если удалось впарить ему кофе-машину, то не факт, что это окажется выгоднее, если он, спустя какое-то время, всё-таки вернётся за ней и купит уже без всякой скидки.

Так почему телевизор и кофеварка связаны?

Покупатель обустраивает офис или кафе? Покупатель решил, наконец, обновить всё старое барахло в доме и зажить с комфортом? Сбежал от жены?

Как это узнать? СПРОСИТЬ, БЛЯДЬ, ПОКУПАТЕЛЯ, А НЕ ДРОЧИТЬ НА БИГДАТУ!!!