Серия «ИИ и программирование»

Ответ на пост «Пиратский софт»

Пиратить можно, по факту, двумя способами:

1) взламывать чужое (куча ресурсов с готовым подобным софтом)

2) Реинжиниринг, обратная разработка. Т.е. клон


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


Заодно можно тут на пикабу обсуждать что не хватает и какие еще функции нужны.


По идее, подобное не будет попадать под пиратство, если будет выполнен в достаточной степени рерайт. Соответственно, все будет легально.


Если что, уже есть Windows на подобных принципах. В сети лежит образ ReactOS.

https://ru.wikipedia.org/wiki/ReactOS (альфа-версия)

Последняя тестовая версия 0.4.14 (16 декабря 2021)

Для 3D моделирования на больших ПК уже есть Blender 3D.


В принципе, никто не мешает делать свое под андроид, даже клоны.

Заодно вопрос -- как будем вознаграждать андроид-разработчиков?

Показать полностью

Ответ на пост «WTF? 3700 звезд»

Начало: #comment_245771308

Скрин той ветки:

Ответ на пост «WTF? 3700 звезд» Картинка с текстом, IT юмор, Программист, Программирование, IT, Ответ на пост, Длиннопост

Операции сравнения можно оптимизировать до операции вычисления сдвига в памяти до нужного ответа.


Саму таблицу оптимальнее делать размерами 64 х 128 = 8 192. Если мало, то 128 х 128 = 16 384 ячейки.


Вычислить X+Y*128 и получим номер ячейки.


Y*128 можно заменить на операцию сдвига Y << 7 (7 раз сдвинуть влево).


Если ответ занимает 2 байта в памяти с максимальным значением 16 384, то вся таблица 128 х 128 займет 65 536 байт.


Таким образом, для перемножения чисел до 128 потребуется 1 операция сложения, 1 операция сдвига и 64к памяти (65 536 Кбайт)


Для таких простых действий не сильно оптимально подобным заморачиваться. Но вот для вычисления синусов и косинусов для значений от 0 до 180 градусов можно разбить на отрезки 180 / 128 = 1,4 градуса и сделать таблицу 2 х 128 со значениями тригонометрических функций. Даже если результату дать 8 байт под ответ, то вся таблица займет 2048 байт. С существенной экономией для вычисления тригонометрических функций.


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


целочисленное деление: текущий градус * 10 / 14 = номер позиции в таблице.


Можно еще дальше пойти и сделать значения через каждые 0,8 град. Заменив деление на двоичный сдвиг 3 раза или один на 3 разряда.


180/0,8 = 225 значений. Таблица вырастет до 3 600 байт.


Можно еще вспомнить, что синусы и косинусы можно считать друг через друга, т.к. достаточно сдвинуть аргумент на 90 градусов или пи/2.


Итоговая формула: Номер ячейки[(Текущий градус + 90) * 10 >> 3]; таблица размером 1 800 байт.


А сами значения функций вычислять с помощью разложения в ряд. Для синуса на картинке:

Ответ на пост «WTF? 3700 звезд» Картинка с текстом, IT юмор, Программист, Программирование, IT, Ответ на пост, Длиннопост

1 раз выполняется подобная трудоемкая операция, если нет реализации тригонометрии в вашем математическом сопроцессоре, после чего вы можете сформировать аналог таблиц Брадиса и пользоваться уже в каждом такте. Особенно это было важно для отрисовки кадров, что для разрешения 640 х 480 х 30 fps требовалось 9 216 000 графических операций (для каждого пикселя) или 9,1М вычислений. Не путать с примитивными операциями, тут на каждый пиксель формула для расчета! На совеменных процах с их 3ГГц можно реализовывать графический движок вообще на проце, это для разрешения 640х480х30fps.


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


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


А дальше:

размер результата * диапазон/шаг =...


Если тут получается приемлимый результат по сравнению с длительностью операций, то вполне имеет смысл заводить подобную операцию.


Например, диапазон с 1 угловой минутой от 0 до 90 градусов, это от 0 до 5 400 угловых минут, всего значений 5401 (включая нулевое). Для 8 байтового результата это 43 208 байт в таблице.

Соответственно, если память для хранения 43 208 байт таблицы дешевле, чем находить результат тригонометрической функции каждый раз, то проще завести таблицу.


Сюда же можно записать алгоритм умножения целых чисел через сдвиги:

Если множать числа 13 и 17, то

меньше из чисел представить в двоичной форме // для проца оно итак в двоичной форме

Это число 13 в двоичной форме: 1101

Расчет слева направо:

Итоговый результат итог = 0, к нему прибавить промежуточный результат temp = 17 * 1, итог = 17

Предпоследняя цифра в 1101 -- ноль, просто промежуточный результат удвоить temp = temp >> 1, т.е. 17 * 2

Потом видим единицу, это temp = temp >> 1, т.е. 17 * 4 = 68, добавить к итогу = итог + 68 = 17 + 68 = 85.

Снова единица, это temp = temp >> 1, т.е. 17 * 8 = 136, добавить к итогу = итог + 136 = 17 + 68 + 136 = 221.

Показать полностью 1

Роевой интеллект

Прямо сейчас увлекаюсь вычислительным технологиями.


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


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

Так вот, мозг человека = роевой интеллект. Каждая микроколонка также тупа, как муравей. У нее всего лишь 80-120 нейронов. Диаметр микроколонки 28—40 мкм. Толщина человеческого волоса от 40 до 120 мкм.

Но таких микроколонок у человека около 200 млн. Т.е. целый рой.

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


Также, у человека есть зеркальные нейроны. Благодаря им человек может обучаться, повторяя за другими людьми. Ответственны за эмпатию. И, в том числе, именно из-за зеркальных нейронов человек склонен наделять неживые объекты человеческими чертами ради того, чтобы было проще, например, обучаться и передавать знания другим.


Один из пикабушников написал:

каждой воплощенной души первые несколько лет есть кто–то типа помощника или друга, который через такие игрушки и проявляется в мире

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


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

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


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

Есть еще понятие "дежавю". (тут должна была быть ссылка, но я не нашел ту научную работу)

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

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


Отсюда работа "талисманов" и прочего.

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

А ведь есть операционные системы, где принцип работы с системой кадинально отличается, например, для открытия главного меню нужно использовать жесты или работать с абсолютно другим меню, например, достаточно глянуть обзор на GNOME 40.


(видеообзор начинается с 1:20, до этого рекламная интеграция)

Соответственно, "талисманы" в реальной жизни -- это такие вещи, которые присутствовали в определенный момент времени и их посчитали связанными с этими событиями.

Например, "культ карго" (самолетопоклонников)


"Культ Карго".Зачем и почему они это делают?


жители островов смекнули: хитрые бледнолицые нечестным путём присваивают себе карго, предназначенный для меланезийского народа. Белые люди владеют тайными знаниями и священными обрядами, которые призывают духов предков, а те, в свою очередь, посылают на землю волшебные грузы. А значит, нужно украсть тайны ритуалов и делать то же самое!

Внезпно, данное описание подходит под многие модные течения:

подростки смекнули: хитрые знаменитости нечестным путём присваивают себе внимание фанатов, предназначенный для подростков. Знаменитости владеют тайными знаниями и священными обрядами, которые призывают духов предков, а те, в свою очередь, посылают на знаменитостей внимание фанатов. А значит, нужно украсть тайны ритуалов и делать то же самое! 

И т.д. и т.п.


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

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

Показать полностью 1

Ответ на пост «Школьное»

Мне выражение "не работает, переделай" сообщил компьютер. На одном и том же коде!!!


Скачал из интернета шаблон HTML+CSS+JS, внес правки и во время тестов вижу, что отваливается шапка страницы. Но я слишком много правок внес и не знаю, какая из них ломающая. Мало ли, где-то зависимость от класса следующего блока или от фазы Луны.


Решил вносить частями, чтобы определить где и что именно ломается, т.к. визуально неработающие и работающие места -- идентичны! Мало ли как в Python пробелы и табуляция из-за копипаста перемешаются, а скрипт не работает. Выглядят то идентично! Если не включать отображение подобных символов как-то иначе.


Беру исходный шаблон, копирую рядом и... Шаблон перестает работать!


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


В итоге, на HTML+CSS написал простенькую консоль внутри блока типа:

<p>Переменная А = <i id="idA"></i><p>

UPD: Копипаст наше все отсюда:

После заголовка: Pure-CSS lightbox

https://developer.mozilla.org/ru/docs/Web/CSS/:target

(с помощью CSS зафиксирован всегда сверху, всегда по центру, фон полупрозрачный, добавил z-index)


В JS добавил обновление переменных внутрь подозрительной функции:

var el = document.getElementById('idA');

el.textContent = A;

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



Открываю оба документа -- из исходного каталога и из скопированного. И произвожу манипуляции:

баг с пропаданием шапки страницы работает только когда страница загружена с шириной больше 992px, потом немного прокручиваю вниз до исчезновения шапки (она становится закрепленной сверху), после чего уменьшаю ширину браузера. При прокрутке в начало шапка остается со свойством "display:none" и не видна.


Но почему в оригинальной странице работает все нормально, а в копии этой же страницы -- нет? КОПИЯ!!! Т.е. вся разница -- это только другое название папки.


С помощью jQuery реализована нужная функция в шаблоне (не моя):

windows.on('scroll', function () {

var scroll = windows.scrollTop();

var headerHeight = header.height();

if (screenSize >= 992) {

if (scroll < headerHeight) {

header.removeClass('display-none');

} else {

header.addClass('display-none');


Перед этим и после есть код. Включая закрывающие скобки.

Оказалось -- headerHeight во второй вкладке умудряется обнулиться! Т.е. я загрузил первую оригинальную страницу, она все нормально отработала. Вторая страница из копии -- после сокрытия каким-то образом умудряется сбросить высоту элемента в ноль. Т.е. он в тот момент был скрыт и его размер реально нулевой, только вот предыдущее состояние, почему-то, не сохранено.


Соответственно, если загрузить в третьей вкладке оригинальную страницу, то и на ней баг стал воспроизводиться!


Обнаружив баг с неверной высотой элемента стал думать как порешать и тот. Чтобы правильно запоминалась высота элемента. Но потом -- а не пофиг ли? В самом верху значение scroll будет равно нулю. Значит, нужно либо второй элемент увеличить на единицу, если он занулится, либо поменять оператор сравнения < на <=

Т.е. будет:

if (scroll <= headerHeight+1)

(применил оба исправления, хуже не будет, я на это надеюсь, от JS всего можно ожидать)


Кучу времени убил на то, чтобы узнать, что нужно было добавить или знак равенства, или поставить +1.


Хуже только узнать, что Python-скрипт не работает потому, что где-то отступы отформатированы пробелами, а где-то -- табами. Например, при копипасте, в котором пробелы, когда сам используешь табы...

Пробел -- это "ноль", таб -- это "единица", вот тебе машинный код, иди ищи баги..

P.S. я JS не знаю... Просто думаю такой: ну, вроде, он похож на язык программирования, который я знаю...

Показать полностью

Как войти в ИТ. Или вляпаться в ИТ?

Как войти в ИТ рассказывают на примере специалистов, которые вошли в ИТ или уже в около-итшной тематике. Т.е. те, кто выжили. Увы, но еще больше тех, кто не выжил. Про них обычно молчок.


А зная тех, кто не выжил, можно обсуждать стратегию именно выживания. Ведь не достаточно войти в ИТ, ведь можно вляпаться в ИТ, еще можно выжить в ИТ, а можно и не выжить... Не говоря о том, что иногда приходится скрывать о том, что ты -- ИТшник! А то еще будут говорить "Почини утюг, тыжпрограммист", хотя есть и те, кто готов даже оплатить "взлом странички ВК" тыжпрограммисту, думая, что скилл хакера прилагается.


Стратегия "вляпаться в ИТ" -- это стать эникейщиком в госструктуре. Вроде и в ИТ, но что-то не то. ИТ с привкусом госструктуры.


Первый, самый ужасный слом логики -- ИТ это не про отдых на пляже, попивая коктейль. И направлений в ИТ очень много, в том числе там, где можно испачкаться буквально в машинном масле -- например, конструирование робототехники. Есть еще микроэлектронщики -- тоже ИТ, но на "железном" аппаратном уровне.


И у каждого направления свой уровень зарплат. Это тоже может сломать логику. Иногда он очень низкий, на уровне рядового элетрика. В принципе, у электрика, ремонтирующего старые компьютеры и заправляющего катриджи для принтеров, так и будет.


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


Четвертый слом логики -- да, в ИТ могут кинуть. Причем все и в любом порядке. Начальник прокатить с оплатой проекта или повышением, разработчик фреймворка выкатит очередное обновление, из-за которого поломается часть функционала и нужно все переделывать, от винды или линукса прилетит обновление, от которого поломается нормальная работа аппаратуры, джун выполнит пулл-реквест, даже если это ты сам, и прочее. Отсюда золотое правило ИТшников -- "Работает, не трогай!". Не хватает таблички "Опасно, не влазить, ИТшник убьет!"

И да, желание убивать нерадивых пользователей тоже может появиться.


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


По факту специальности базовых три -- либо художник, либо математик, либо инженер. Соответственно, вопрос больше про "Как войти в инженерное дело?" и можно наблюдать как количество желающих уменьшается. "Всмысле, тут еще и работать надо?"


Шестой слом логики -- ИТ и точность связаны не точно. В той же веб-разработке выражение '1'+1 может быть(!) не равно выражению 1+'1'. Первое -- результат '11', второе даст результат 2. Но это не точно, т.к. резутат первого может быть: '2', 2, 11, 1,99994, 2,00004 и т.д. Мало того, даже у второго результаты могут быть похожими! Это все из-за неявного преобразования между числовым и строковым представлением, причем числа могут быть представлены в вещественном или целом виде. Заодно влияет порядок следования операндов -- первым идет строковый литерал или же число.


Седьмой слом логики -- ИТ умалчивает важность документации. Вроде она должна быть, кто-то ее ведет и она вроде как существует. Но при этом стыдливо прячат глаза на то, что нужно эту документацию вести самому и чуть ли не постоянно! Программист написал нечитаемый код и при это он отказался как-либо это прокоментировать. -- это про любого новичка в ИТ. А иногда этим занимаются и спецы "да тут все и так понятно!"


Восьмой слом логики -- кривая обучения очень кривая (картинка из инета)

Как войти в ИТ. Или вляпаться в ИТ? Разработка, Программирование, Новичок, Программист, IT, Длиннопост

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

Статьи по ИТ аналогично могут скакать. Другое название подобного явления "как нарисовать сову" -- вот круг, а вот готовая сова, все просто!

Внезапно, даже в универе могут забывать рассказать про архитектуру, что есть шаблоны проектирования и т.д. Хотя, по-хорошему, архитектура должна идти еще до того, как будет написана хотя бы одна строка кода. Только вот архитектура привязана к коду, а, значит, будет сложнее учить архитектуре, не зная кода.


Еще, оказывается, очень много документации и обучающих примеров зависят от очень специфичных знаний прикладного характера. И веб-разработчику не получится просто создать хороший сайт, для этого он должен понимать что такое клиент-серверная архитектура, кто выступает инициатором подключения и т.д. Мало того, создание сайта на базе JS на клиентской машине отличается от создания сайта на базе сервера с отдачей готовой страницы клиенту. И какие минусы у обоих подходов в плане SEO-оптимизации, нагрузки на сервер, нагрузки на клиентскую машину и т.д.


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


Я могу и дальше ломать логику. Например, что программисты не нужны! Вообще. И никогда не были нужны сами по себе. Разве что девушкам, которые хотели выйти замуж. Нужны были лишь навыки программистов умения решать задачи.


А, значит, не обязательно быть программистом. Достаточно лишь иметь навыки решения поставленных задач -- создать бот для телеграма, написать веб-сайт и т.д. Если умеете -- вы будете востребованы. А если вы программируете для души, то вряд ли. Написатели прикольных фиговин не пользуются спросом на рынке. Да, есть те, которые думают: раз он может создавать прикольные фиговины, то, может, он и сможет решать реальные задачи? Увы, но не все программисты умеют это делать, кто-то до сих пор сидит дома и пишет для себя прикольные фиговины.


Все выжившие в ИТ, которые пишут на тему как "войти в ИТ" обычно думают про выживших, что они сделали, чтобы выжить.


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


Самое простое -- это каким направлением вы можете заниматься монотонно, непрерывно и бесплатно? Причем, годами! Или даже вкладывая деньги. Как самурай, у которого нет цели, есть только путь.


И да, про бесплатность -- правда, т.к. некоторым приходится делать портфолио, а это, по факту, бесплатный труд ради заинтересовывания потенциального работодателя.

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


Многие представляют игрострой. Готовы учить высшую математику, особенности работы с векторами и теорию графов? А ведь это не все темы, которые используются для построения игр! Для 3д игр там будет и векторы движения, и понятие полигона, и теория по нейросетям, и принципы работы асинхронных функций, и много чего другого.


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


Также многие ИТшники еще со школы нашли интересную тему и бесплатно или за копейки решали простые задачи -- кто настраивал Wordpress знакомому бизнесмену, кто создавал GTA из стремных моделек, кто-то дизайнерил эти стремные модельки и т.д. Люди года тратили и совершенствовали свои навыки, но не получали гарантий трудоустройства -- кто-то пошел в рекламу или стал офисным хомячком, кто-то стал врачом, другие пошли на другие специальности.


Хорошо получать совет в стиле "Занимайся этим, это бесполезно"? Нет, многие хотят вместе с советом получить надежду "Займись этим и ты получишь через минуту высокооплачиваемую специальность!"


Обучение в ИТ не останавливается. Хочешь ты или инет, а нужно постоянно учиться. Спроса на специалистов, которые бы умели работать с Windows 95, практически нет. Хотя система в некоторых госструктурах до сих пор работает, особенно на просторах СНГ. Даже Windows XP уже не пользуется былой популярностью! Т.е. за прошедшие 25 лет очень многое поменялось. Если кому-то в 1995 было 25 лет, сейчас ему 50+ лет и он пережил уже несколько революционных изменений в ПО и технологиях: появление повсеместного интернета, появление смартфонов, смартчасов и т.д. Даже управление ПК претерпело изменений -- сейчас никого не удивишь сенсорным экраном или VR за сотню килорублей, игры перешли от тектового интерфейса к графическому, а сейчас обыденным стал 3D, VR стоит отдельно. Интернет от статических сайтов перешел вначале к динамическим, а потом вообще стали обыденными соцсети, видеохостинги и т.д. Flash Player от Adobe уже умер и сейчас это раритет, а все спецы под эту технологию вынуждены были искать себя в других отраслях.


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

Показать полностью 1

Ответ на пост «Братья и сестры инженеры давайте объединяться»

Ответ на пост «Братья и сестры инженеры давайте объединяться» IT, Выборы, Партия, Политика, Стереотипы, Разработчики, Ответ на пост, Длиннопост

Представим, что у них будет единая политическая программа. И ее решат реализовать на С++. Тут выйдут адепты Python и выскажут свое веское слово. Потом Java, C#, где-то в уголку сидят Lazarus/FreePascal, в другом углу PHP, самые громкие JS, они прям из центра зала всех достали, ассемблерщики офигевают от попила бюджетного системного время процессора на подгрузку всяких фреймворков и вот этого всего. Модные хипстеры предлагают на Unity или вообще в Unreal Engine, тимлид уже представляет, что можно выкатить закон, чтобы все носили VR-очки, там прям из UE будет демонстрация проекта, пока в реале будет ремонт.


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


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

-----------

Changelog 559.09.754.17

- исправлено зависание чиновников в ЖЭК

(добавлен баг-репорт о спавне сантехников за пределами ЖЭКа, один из патчей предлагает сантехников спавнить прямо в ЖЭКе, выделив им в подсобке квартиры)


- запущена фабрика фабрик документов для анализа нагрузки на северные распределительные сети


- добавлены новые текстуры дома. Всего за 59 999 рублей ваш дом будет перекрашен в один из предложенных скинов!


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


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


- Animal "свинья" renamed: New name "Розовая корова". (Прим.: данное исправление внедрено, чтобы не баговали мусульмане)


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


- обновлено пользовательское соглашение, в котором добавлен пункт про фотографирование себя


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


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


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


По мотивам одной аналогии:

Вот представь, что тебе доверили достроить за другим прорабом лабораторию на острове. Ты приходишь на объект, а там кроме недостроенного здания: огромный вентилятор (размером со здание), большой воздушный шар и комната набитая швабрами. Почесав голову, ты разбираешь этот хлам и доделываешь лабораторию. Сдаешь объект ученным, но через 5 минут они выбегают с криком: "УТЕЧКА ЯДОВИТОГО ГАЗА!!!".

- Как так-то! Должно же работать! - в отчаянии кричишь ты и звонишь прошлому прорабу:

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

- Не знаю, должно было все работать. Что-то в проекте менял?

- Немного, швабры вынес...

- Швабры потолок держали!

- Что??? Что, извините???

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

- Ты хотя бы записку на двери повесил бы, что швабры для держания потолка! У нас тут ядовитый газ течет! Что нам делать?

- Включай вентилятор. Он сдует газ с острова.

- Я его, демонтировал сразу же!

- Зачем?

- Зачем ты построил 120 тонный вентилятор? Ты не мог положить ящик ПРОТИВОГАЗОВ?

- Ящик противогазов искать нужно, а вентилятор у меня с прошлого заказа оставался.

- Вася, я убрал твой вентилятор! Мы тут задыхаемся!

- Херли вы тогда там делаете? Садитесь на воздушный шар и сваливайте!

Показать полностью

Как писать программы? Советы коуча

Если бы коуча попросили рассказать как писать программы


- Программы писать может каждый. Надо просто выйти из зоны комфорта, сесть за компьютер и начать писать программы.


- Какие языки программирования следует использовать?

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


- Расскажите о пошаговом алгоритме написания программы.

- Не существует единых шаблонов. Вы должны сказать себе: да, я смогу, я напишу лучшую программу в мире! И шаг за шагом начинать ее писать. Помните, путь в 10000000 парсек начинается с первого шага.


- И всё-таки, с чего надо начинать?

- Начинать следует с принятия решения. Самое важное при принятии решения - это целеполагание. Вы должны четко поставить перед собой цель: программа должна быть написана. А навыки и умения придут к Вам сами.


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

- Не ждите Волшебную таблетку. Просто садитесь за компьютер и не бойтесь пробовать. Вы сами должны найти решение.


- Что вы пожелаете начинающим программистам?

- Верьте в себя. Это самое главное.


UPD: ощущение, как будто с заказчиком пообщался. "Ты сам должен найти решение моей проблемы! Тыжпрограммист!"

Показать полностью

Если вы профи в своем деле — покажите!

Если вы профи в своем деле — покажите! Косплей, Компьютерные игры, Литература, Самолет

Такую задачу поставил Little.Bit пикабушникам. И на его призыв откликнулись PILOTMISHA, MorGott и Lei Radna. Поэтому теперь вы знаете, как сделать игру, скрафтить косплей, написать историю и посадить самолет. А если еще не знаете, то смотрите и учитесь.

СМОТРЕТЬ, УЧИТЬСЯ

Сумма интеллекта или как мы и универсальный ИИ можем мыслить

Был вопрос -- можно ли прожить в ускоренном VR 5 479 лет?

@Eternal0Sorrow предположил:

У тебя проводка в башке спечётся

Мой ответ:


Смотря какая математическая модель интеллекта. Если на базе подпространственной арифметики, то вообще элементарно можно получить хоть тысячу игровых лет в реальную секунду. А это уже про скорость 31 557 600 000 раз, т.е. в 31,5 млрд раз.


Проблема в том, что ничего по этой теме не гуглится. И сама тема достаточно сложная, на базе достаточно простой идеи:


Если есть пространства A и B, то существует такая функция F, которая с некоторой точностью эпсилон позволит выполнить следующее преобразование:


B = F(A); где число верных значений равно: (1 - эпсилон).


Функция F находится с помощью метода случайных подпространств. (UPD: описание метода удалено)


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


Если А -- это исходные координаты, а В -- преобразованные. Для одного варианта это может быть сложно, но на наборе из сотни/тысячи пар А и В можно определить достаточно точно функцию F.

Соответственно, если А -- это интеллектуальное состояние в момент времени t1, а B -- это интеллектуальное состояние в момент времени t2, то F -- это функция преобразования из одного состояния в другое. Тогда B = F(A), причем дельта t для F может отличаться от t2-t1 в любую сторону.


Не забываем про эпсилон -- погрешность подобного преобразования. И она может накапливаться после нескольких поряд преобразований, доходя до 100%, т.е. нет прямой функции преобразования. Это касается случая:


B = F5 ( F4 ( F3 ( F2 ( F1 ( A )))))


Но значение ошибки для функции


B = F6 (A)


Будет меньше или равно, чем для предыдущего варианта, если F6 была получена как разница между пространствами B и A, без учета промежуточных точек.


Есть подобное объяснение для картинок. Например, даны две картинки. Мы можем вычислить разницу между ними просто вычислив разницу между двумя цветами. Но мы не ограничены только совпадающими координатами. Чем больше гипотез, тем выше точность преобразования из одной картинки в другую.

Показать полностью
Отличная работа, все прочитано!