Сообщество - Лига программистов
Добавить пост

Лига программистов

1 538 постов 11 434 подписчика

Популярные теги в сообществе:

Памятка по защите от тестировщиков

1. Заводи баги первым

2. Никакой жалости к тестировщикам

3. Пости про них мемы и шути шутки

Помни: осмеянный тестировщик — слаб

#3. Ведение списка задач мощно двигает карьеру. Часть 3: "Двигаем кнопку"

Начало:


#3. Ведение списка задач мощно двигает карьеру. Часть 1

#3. Ведение списка задач мощно двигает карьеру. Часть 2: "Одна буква"


В молодости я работал программистом (2001-2005 год) - пример из практики


Делаем сайт, этап вёрстка.


Приходит руководитель, садится рядом и мы вместе часа полтора двигаем менюшки, меняем толщину рамок, шрифты и т.д. Через дня 3 снова садимся и вдвоём что-то двигаем, меняем. Ситуация повторяется несколько раз за месяц.  Что делать говорилось устно,(руководитель сидел рядом), а список задач что делалось я тогда еще не вёл.


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


Руководитель смотрит и начинает орать: "Что за писульку ты мне принёс? Где работа, которую вы делали? Да тут работы на 1,5 дня всего. Чем вы остальные 20 дней занимались?". Я смотрю в отчет и понимаю что да, работы на 1,5 дня. Т.е. всё, что я указал в отчете,  делается примерно за 1,5 дня. Смотрю и сам не понимаю - ну я же работал реально весь месяц... как так получается? Жуткая была обида. Я так старался месяц, а тут меня вот так...


На следующий день меня снова вызвал руководитель. Извинился что так жестко со мной поступил. И объяснил что проблема моего отчета что я записал только общий результат. Например: "Передвинули пункт меню". Т.е. работы на 20 минут максимум. А то, что мы это меню раз 30 (без шуток, 30 раз) двигали "пиксель вправо - два влево" - в отчете уже не отображалось.

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


После этого случая я и начал вести список. Пришел шеф, посидели, подвигали кнопки. После его визита я записал: двигали вот это, вот это, и вон то, заняло 2 часа. По итогу вопросы даже для самого себя чем я был занят месяц пропали. Стал серьезнее относиться к времязатратам на мелочи, понял что итоговый результат в 90% случаев из А в Б проходит не напрямик, а дополнительно через 15 букв алфавита.


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

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

Пишем NFT модульный синтезатор на javascript. Часть 1

Вы многое упустили, если никогда не работали с NFT, но это можно исправить.


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


Дисклеймер: прошу не рассматривать NFT не как ОСНОВНОЙ способ заработка, а как способ обмена некоторыми приколюхами за некоторые ништяки, причём и те и другие существуют и имеют ценность только внутри отдельно взятой криптоплатформы. Все пересчёты на фиатные деньги нерепрезентативны и не несут смысла :)

Пишем NFT модульный синтезатор на javascript. Часть 1 IT, Javascript, NFT, Программирование, Длиннопост

Про генеративный арт


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

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

Пишем NFT модульный синтезатор на javascript. Часть 1 IT, Javascript, NFT, Программирование, Длиннопост

Про NFT


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


У других блокчейнов другие возможности. Тезос обеспечивает гораздо меньшие комиссии за исполнение и хранение кода, поэтому больше подходит для создания инфраструктуры для генарта. На блокчейне тезоса построены такие площадки как hic et nunc и набирающий обороты fxhash.xyz. На последней площадке я и остановил свой выбор, т.к она позволяет писать интерактивные NFT на javascript.

Пишем NFT модульный синтезатор на javascript. Часть 1 IT, Javascript, NFT, Программирование, Длиннопост

Модульные синтезаторы


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


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



Пишем NFT на js


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


fxrand()


Для быстрого старта на платформе, создатели fxhash сделали шаблонный проект, в котором уже написан генератор случайных чисел fxrand(), инициализируемый хешем транзакции. Простейший пример генеративного токена также реализован в index.js — в ответ на некоторый хеш он просто выводит на экран последовательность случайных чисел, неизменную для этого хеша.


p5js


Но мы пойдём чуть дальше чем просто вывод чисел на экран и подключим библиотеку p5js, чтобы нарисовать какую-нибудь абстрактную картинку, основанную на псевдорандомных числах


function setup()
{ createCanvas(100, 100);
background(255); 
noLoop(); 
}

function draw() {
stroke(70);
line(fxrand() * 100, fxrand() * 100, fxrand() * 100, fxrand() * 100);
}

Всё, можно паковать код в zip архив, загружать в песочницу и смотреть на нфт-случайную линию!

На сегодня это всё, вторая часть выйдет завтра. Своё мнение черкайте в комментах, почитаю :3

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

Belka Games увольняет релоцированных сотрудников

Belka Games увольняет релоцированных сотрудников Увольнение, IT, Профсоюз, Релокация

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


После событий февраля месяца компания предупредила сотрудников о возможных проблемах с работой из России и Беларуси. Руководство сообщило, что возможные сокращения в первую очередь коснутся российских и белорусских подразделений. Поэтому желающим предложили переехать. Некоторые поехали, дабы не попасть в неприятную ситуацию, но всё равно были уволены уже после переезда. И в результате работники оказались в ситуации ещё более неприятной. Например, семья бывших сотрудников Belka Games, переехавшая в Вильнюс из Минска в апреле и уволенная в июле, осталась с двумя детьми без работы в чужой стране под угрозой депортации. Вряд ли предложенная компенсация в 2 оклада достаточна в таких условиях. Также напоминаем: хотя ТК Беларуси и не считает наличие иждивенцев преимущественным правом для оставления на работе, в РФ присутствие двоих детей даёт преимущества при сокращении.


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


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


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

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

Как создавать моды в Don't Starve Together?

Много искал по этому поводу инфы на разных форумах, но рассказывали про modmain.lua и modinfo.lua, а остального почти нет. Прошу кинуть ссылку на нормальную статью или видео (Я сам программист, так что попрошу без "Как создать персонажа без знаний программирования").

Исходный код "зрячего" бота для браузерной игры с использованием Emgu CV

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


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


В итоге родился "умный" и "зрячий" кликер, который ищет в окне игры определённые элементы (кнопки, иконки, двери, сундуки) и кликает на них в определённом порядке.


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


Спасибо за внимание!
https://github.com/tyzegt/HwBuddy

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

#3. Ведение списка задач мощно двигает карьеру. Часть 2: "Одна буква"

Начало:


#3. Ведение списка задач мощно двигает карьеру. Часть 1


В молодости я работал программистом - примеры из практики.


Звонит клиент - просит исправить описку в размещенном на сайте тексте.


До ведения списка: сейчас сделаю, делов-то. Делаю, всё ок.

Со списком: записал задачу, сделал, отмечаю что сделана и тут понимаю что почти 15 минут куда-то делись.


Последовательность действий для изменения одной буквы:


* вообще вспомнить про эту задачу. Если сразу не сесть сделать не записать - то вероятность забыть вообще немаленькая.

* найти само задание где и что менять

* зайти на сервер

* найти нужный файл

* сделать его дубль

* исправить текст в файле


(!) Только на 6-м этапе происходит РЕАЛЬНАЯ РАБОТА


* сохранить файл, выйти с сервера.

* проверить что получилось на экране после изменений

* написать письмо что "всё сделано" / позвонить заказчику


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


С ведением списка пришло понимание:


* Мелкие задачи часто вообще не мелкие по времени.

* Если работаешь руководителем, мелочь часто лучше перепоручить подчиненным. И по времени задача быстрее выполняется, и не отвлекает от более глобальных задач.

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

Готовы к Евро-2024? А ну-ка, проверим!

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

А если не любите полагаться на случай и сразу отправляетесь за техникой Hisense, не прячьте далеко чек. Загрузите на сайт и получите подписку на Wink на 3 месяца в подарок.

Готовы к Евро-2024? А ну-ка, проверим! Футбол, Тест, Евро 2024, Болельщики, ВКонтакте (ссылка)

Реклама ООО «Горенье БТ», ИНН: 7704722037

Ansible. Network-scripts. RHEL8. Сбор информации о MAC-адресах

Ansible. Network-scripts. RHEL8. Сбор информации о MAC-адресах Linux, Разработка, Программирование, IT, Perl, Командная оболочка bash

Нихао!


Очередная доработка хелпера "conf_int_ipv4_via_network_scripts" подъехала ( предыдущая публикация - Ansible. Network-scripts. RHEL8. Временное применение сетевой конфигурации ).

Как и обещал, реализовал сбор MAC-адресов (а также сведений о соседствах/neighbours) с удалённых хостов, на основе чего добавлена следующая функциональность:
1) дополнительные проверки на соответствие interface_name+hwaddr из "config" реальным интерфейсам удалённых хостов. Например, если на хосте А используется MAC-адрес "A1:A2:A3:A4:A5:A6", то попытка прописать такой же MAC-адрес на хосте B приведёт к ошибке и остановке сценария. Или, например, если в файле конфигурации для хоста А прописано, что за интерфейсом eth0 закреплён адрес "B1:B2:B3:B4:B5:B6", но в реальности eth0 = "C1:C2:C3:C4:C5:C6", то скрипт предложит исправить "config";
2) функционал проверки конфигурации без её применения ('check_ifcfg_without_apply.sh');
3) анализ сети (в пределах inventory-файла "conf_network_scripts_hosts") на предмет дублирования MAC-адресов. Если после запуска сценариев (бэкап ifcfg, проверка конфигурации, применение конфигурации) в директории ".../playbooks/ifcfg_backup_from_remote/network_data" был создан файл "WARNINGS.txt", то стоит обратить внимание на его содержание.


Также в директории "network_data" присутствует информация (файл "inv_hosts_interfaces_info.txt") об используемых на том или ином хосте MAC-адресах, что полезно при первоначальном заполнении файла "config" (дабы не собирать вручную информацию). В общем, если config на этапе заполнения, то просто запустите, например, скрипт бэкапа "just_run_ifcfg_backup.sh" и загляните в ".../playbooks/ifcfg_backup_from_remote/network_data".


Ссылка на репозиторий: https://github.com/vladimir-chursin000/ansible_helpers

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