При попытке зайти на любой сайт всплывает окно — для доступа на прокси сервер требуется указать логин и пароль
Добрый день, при попытке зайти на любой сайт всплывает окно — для доступа на прокси сервер требуется указать логин и пароль и адрес http://45.33.31.164:3128
если нажать отмена — сайт не загрузится
Windows 7-32, браузер google chrome только переустановил
такая же каша на всех браузерах
как убрать эту настройку, чтоб окна не появлялись?
спасибо
также при входе в Internet Explirer таже история — окно ввода имени-пароля
Для доступа на сервер http://localhost:80 требуется указать имя пользователя и пароль
Доброго времени суток! Windows 7, при входе на страницу localhost выдаёт: "Для доступа на сервер.
При попытке зайти в одноклассники крадут логин и пароль. + иногда открывается левая страница
Решил в кой-то веки зайти в "одноклассники" (обычно там не сижу). Ввожу логин и пароль, высветилось.
Как сделать так что бы, юзер не мог зайти на сайт пока не введет пароль и логин
Такая проблема, авторизация на сайте есть, но я могу авторизоваться а потом просто нажать выйти и.
Ошибка headers already sent при попытке запросить логин пароль
Запрос делаю так <?php include ("lock.php"); ?> Дальше идет тело страницы Файл lock.php такой.
Сообщение от alpha78
в Пуск — Панель Управления — Свойства браузера, в разделе Подключения, настройка сети убрать настройки Прокси-сервера
Другое дело — откуда они там появились? Проверьте ПК на зловреды
При попытка зайти на любой сайт антишпионом перехватывается сайт partner-pop.men. Как убрать этот сайт?
При попытка зайти на любой сайт через Гугл Хром антишпионом Антимальварэ-байтс перехватывается сайт.
Где взять логин и пароль для прокси?
Собственно, есть прога для чистки акка вк от цуциков. При авторизации, требуется прокси ввести, так.
как на VB оформить сообщение для Прокси (логин пароль)
есть такакя проблема соединяюсь с сетевой базой все было хорошо но когда админ поставил прокси.
Указать логин и пароль для подключения к домену
Доброго всем дня. Подскажите пожалуйста, можно ли в данной строке указать логин и пароль для.
Как указать логин, пароль для SmtpClient?
Разрабатываю почтовик. Вот код отправки ссобщения с вложением(и), взято с мсдн: private void.
Что такое LUCKYSTARTING?
LUCKYSTARTING — это рекламный вирус, при заражении которым браузер вашего компьютера начинает перенаправлять вас на сайты с рекламой вне зависимости от используемого вами браузера.
Вирусы, подобные LUCKYSTARTING, как правило занимаются подменой домашних страниц вашего браузера, меняют поисковый сайт, создают собственные задания в расписании, видоизменяют свойства ярлыков ваших браузеров.
Как происходит заражение рекламным вирусом LUCKYSTARTING?
Так бывает в жизни, что учишь-учишь других, как обезопасить себя от вирусов, а сам нет-нет да и нарвешься на ту же самую неприятность. Так и случилось со мной в эти выходные. Браузер вдруг ни с того ни с сего начал открывать разнообразный рекламный бред с сайтов со спамом. Я конечно расстроился, но виду не подал. Вот еще, видал я проблемы и посерьезнее.
Как избавиться от рекламного вируса LUCKYSTARTING в Chrome, Firefox, Internet Explorer, Edge?
В общем то особых трудностей у меня этот вирус не вызвал. Все по старой схеме. Но прежде чем напомнить ее вам, снова повторим отличительные черты самого вируса LUCKYSTARTING.
Это ни что иное, как перенаправитель, редиректор на рекламный сайт. Он заражает ярлыки ваших браузеров, таким образом вы сами каждый раз инфицируете себя.
Также он создает задания на исполнение, чтобы не дать возможности вам удалить себя. Инфицированию подлежат все установленные в системе браузеры. Таким образом вы вполне можете случайно кликнуть по одной из многочисленных рекламных ссылок и заразить компьютер чем то еще более опасным.
Именно поэтому подобные зловреды следует сразу же удалять. Ниже я приведу простые инструкции, однако рекомендую пойти автоматизированным путем, если хотите сэкономить время и нервы.
Инструкция по ручному удалению рекламного вируса LUCKYSTARTING
Для того, чтобы самостоятельно избавиться от рекламы LUCKYSTARTING, вам необходимо последовательно выполнить все шаги, которые я привожу ниже:
- Поискать «LUCKYSTARTING» в списке установленных программ и удалить ее.
И все же автоматика лучше!
Если ручной метод — не для вас, и хочется более легкий путь, существует множество специализированного ПО, которое сделает всю работу за вас. Я рекомендую воспользоваться UnHackMe от Greatis Software, выполнив все по пошаговой инструкции.
Шаг 1. Установите UnHackMe. (1 минута)
Шаг 2. Запустите поиск вредоносных программ в UnHackMe. (1 минута)
Шаг 3. Удалите вредоносные программы. (3 минуты)
UnHackMe выполнит все указанные шаги, проверяя по своей базе, всего за одну минуту.
При этом UnHackMe скорее всего найдет и другие вредоносные программы, а не только редиректор на LUCKYSTARTING.
При ручном удалении могут возникнуть проблемы с удалением открытых файлов. Закрываемые процессы могут немедленно запускаться вновь, либо могут сделать это после перезагрузки. Часто возникают ситуации, когда недостаточно прав для удалении ключа реестра или файла.
UnHackMe легко со всем справится и выполнит всю трудную работу во время перезагрузки.
И это еще не все. Если после удаления редиректа на LUCKYSTARTING какие то проблемы остались, то в UnHackMe есть ручной режим, в котором можно самостоятельно определять вредоносные программы в списке всех программ.
Итак, приступим:
Шаг 1. Установите UnHackMe (1 минута).
- Скачали софт, желательно последней версии. И не надо искать на всяких развалах, вполне возможно там вы нарветесь на пиратскую версию с вшитым очередным мусором. Оно вам надо? Идите на сайт производителя, тем более там есть бесплатный триал. Запустите установку программы.
Шаг 2. Запустите поиск вредоносных программ в UnHackMe (1 минута).
- Итак, запускаем UnHackMe, и сразу стартуем тестирование, можно использовать быстрое, за 1 минуту. Но если время есть — рекомендую расширенное онлайн тестирование с использованием VirusTotal — это повысит вероятность обнаружения не только перенаправления на LUCKYSTARTING, но и остальной нечисти.
Шаг 3. Удалите вредоносные программы (3 минуты).
- Обнаруживаем что-то на очередном этапе. UnHackMe отличается тем, что показывает вообще все, и очень плохое, и подозрительное, и даже хорошее. Не будьте обезьяной с гранатой! Не уверены в объектах из разряда “подозрительный” или “нейтральный” — не трогайте их. А вот в опасное лучше поверить. Итак, нашли опасный элемент, он будет подсвечен красным. Что делаем, как думаете? Правильно — убить! Ну или в английской версии — Remove Checked. В общем, жмем красную кнопку.
Итак, как вы наверное заметили, автоматизированное лечение значительно быстрее и проще! Лично у меня избавление от перенаправителя на LUCKYSTARTING заняло 5 минут! Поэтому я настоятельно рекомендую использовать UnHackMe для лечения вашего компьютера от любых нежелательных программ!
Андрей «Вирусолог»
Андрей — обычный парень, который пользуется компьютером каждый день, и ненавидит, когда неприятности наполняют его жизнь. А еще он любит петь. Но не переживайте, его голос не будет досаждать вам. Только текст )
Об авторе
Андрей — обычный парень, который обожает компьютеры и пользуется ими каждый день. Он ненавидит, если в его размеренную жизнь врываются неприятности. Еще он очень любит петь. Но не переживайте, он не будет доставать вас своим пением. Только текстом.
Slack — решение для тех кто меняет мир
Сталкивались ли вы когда-нибудь с задачей продуктивно организовать работу команды людей? Приходилось ли вам когда-нибудь работать в команде, раскиданной на тысячи квадратных километров по нашей необъятной родине, или даже за ее пределами? Не знаю как вам, а мне — да. Основной, да по сути и самой весомой проблемой становится то, как наладить обмен информацией внутри коллектива. Не удивлюсь, если кто нибудь сейчас кинет в меня камень со словами «Чувак, а скайп тебе на что?», вот именно об этом я и хотел с вами поговорить.
Skype на столько сильно укрепился на рынке месседжеров, что для некоторых вообще кажется ересью использовать для этого что-либо другое. Однако даже такая крупная акула не может соответствовать современным быстрорастущим требованиям. Так случилось и у нас. Думаю, обсуждать все недостатки скайпа в данной статье смысла нет, поэтому лучше сразу перейти к делу.
Поиски альтернативы заняли около полугода, мы пробовали Trello, RedMine,Мегаплан, различные IRC. За время работы в этой компании решения так найдено и не было, однако оно не заставило долго ждать. Приступая к новому проекту мой взгляд упал на сервис Slack. Первая мысль появившаяся в моей голове: «Еще один IRC клиент?» Но спустя уже пару часов я осознал, на сколько сильно ошибался.
Slack оказался наилучшим из возможных решений для командной работы. Сервис позволяет создать неограниченное кол-во команд для ваших нужд. Вести деловую (или не очень) переписку, обмениваться файлами, ссылками, картинками, совершать голосовые звонки. Для удобства сервис позволяет создать необходимое кол-во комнат по тематикам. Хотите обсудить с дизайнерами новый логотип? Соберите их в отдельный канал и дерзайте! Нужен совет верстальщика? Позовите его в разговор обратившись по @Имени. И он точно не пропустит этот разговор, а так же сможет прочить всю историю переписки на канале, что поможет избежать лишних повторов и разъяснений о сути вопроса. Возможность обращений — уже то, что обеспечивает комфорт общения внутри крупной команды. Каждый член которой может легко настроить специфику получаемых уведомлений, какие из них должны незамедлительно поступить на телефон (ах да, есть клиенты для Android и iPhone), а какие могут подождать. Так или иначе, ни одно ваше сообщение не останется незамеченным.
Помимо личностных переписок Slack позволяет делать массовые рассылки, разделенные по должностям членов команды, каналам или же глобально.
Вторым не оспоримым достоинством Slack является возможность интеграции с множеством популярных сервисов. Это дает возможность вывести в необходимые каналы сбор всей важной для команды информации. Например, подключив интеграцию с GitHub можно мгновенной получать информацию о свежих коммитах. Подключите Trello и получайте уведомления о всех изменениях на ваших досках.
Особым типом расширений Slack являются боты. По моему мнению, им следует уделить особое внимание. Условно их можно разделить на две категории: помощники и парсеры. Задачей первых является упростить общение команды внутри слака, упрощая создание ToDo листов, собирая историю сообщений и отправляя ее на почту или же подсказывая пользователям какую-либо информацию. Вторые, в свою очередь, анализируют и собирают информацию из вне. Допустим, собирая свежие отзывы о вашем приложении в Google Play в отдельный канал, или же уведомляя об упоминаниях вашей компании в социальных сетях.
Каталог расширений насчитывает в себе несколько сотен возможностей интеграции(по моим подсчетам). Ну а уж если вам чего то не хватает, имеется возможность написать свое решение.
Третьим плюсом Slack являются сниппеты, задачей которых является практично представить всю передаваемую информацию, будь то картинки, ссылки или куски кода, последние, кстати, имеют адекватную подсветку синтаксиса в зависимости от используемого языка. Я уже и не говорю о кучи различных плюшек, по типу выставления оценок сообщеним в виде различных смайликов, создания собственных стикеров, форматирования текста сообщения, комментариев, цитат, репостов и прочих удобных нюансов.
Осталось только поговорить о ценовой политике и подвести итог. Назвать цены более чем лояльными, мне кажется, просто нельзя. Особенно учитывая тот нюанс, что все мною перечисленное Slack умеет прямо из коробки и при том абсолютно бесплатно. Более подробно можно посмотреть на сайте проекта либо на скриншоте ниже.
Подводя итог, вот что следует сказать о Слаке: регистрируя команду, вы абсолютно бесплатно получаете мощнейший инструмент для общения и организации рабочего процесса, который можно расширять практически бесконечно, прилагая для этого минимум усилий.
Думаю, следует привести краткий обзор всего выше изложенного:
Slack это такой месседжер, в котором
*Можно создавать неограниченного количество каналов для всего необходимого
*Пользователи имеют свое собственное файлохранилище для обмена файлами
*Все ресурсы отправленные в чат подгружаются с помощью сниппетов
*Вся история сообщений архивируется и по ней можно совершать поиск в любое время
*Огромное количество расширений за счет интеграции со многими сервисами
*Возможность создавать собственные расширения с помощью Slack API
*Есть клиенты для Mac, Windows, Android и iPhone, а так же основная Web версия.
На этом обзор подошел к концу, я благодарю, если вы дочитали до конца и, надеюсь, изложенная мною информация окажется вам полезной, или, быть может, подкинет пищу для размышлений.
Если тематика использования Slack в рабочем процессе окажется вам интересной, или вы захотите поподробнее узнать о других возможностях этого проекта, буду рад продолжить эту серию статей.
Есть предложение собрать программистов с Pikabu и желающих учиться в команду Slack. Для этого мне нужен список email на которые отправить приглашения.
Забавно. Вроде и перечислили фичи, многие из них даже полезны.
Но текст настолько рекламный, что аж диву даёшься. Господи, ТС даже название продукта болдом подсвечивает!
@moderator, реклама бесполезной фигни.
да, но переучить офисных людей от годами насиженного скайпа бывает практически невозможно, даже не смотря на всю его убогость и крутость слака
Вот привел бы сравнение с битрикс. По пунктам.
А так- просто спам.
Godot Engine. Библиотека новичка
Всем привет, дорогие товарищи! Как и было обещано, публикую подборку учебных материалов, которые помогли мне и моим товарищам освоить Godot Engine 🙂
В этом списке вы найдёте ссылки на материалы, которые можно охарактеризовать как Godot for beginners. Надеюсь, вам будет интересно 🙂
Если вы впервые слышите об этом движке, приглашаю ознакомиться с его описанием здесь:
Официальная Документация
Несмотря на то, что меня постоянно забрасывают какахами, когда речь заходит о доках, я продолжу настаивать на своём: УЧИТЕСЬ РАБОТАТЬ С ДОКУМЕНТАЦИЕЙ! Почему? — Никто лучше разработчика не знает, как устроен его продукт, так что к кому ещё обращаться, как ни к нему?
Godot Community не только постоянно улучшает и совершенствует движок, но также дописывает и детализирует официальную документацию. Здесь вы найдёте ответы на большинство вопросов, сталкиваясь с практическими проблемами. Да, вероятно, этой ссылке нечего делать в разделе «для новичков», но чем раньше вы освоите навык работы с доками, тем меньше набьёте шишек об углы движка (кстати, это касается любого программного продукта).
Между прочим, доки практически полностью переведены на русский язык.
Да, можно сколько угодно твердить, что по голым докам невозможно ничему научиться. Со своей стороны подчеркну, что если у меня возникает какая-то проблема, в первую очередь я лезу в доки, а потом уже на форумы, стэковерфло и т.д. В любом случае вы должны быть уведомлены, а том, что документация ведётся, она хорошо организована и удобна для использования 😉
В специальном раздели присутствует набор коротких туториалов, целью которых является ознакомление новичка с возможностями движка.
Подробный туториал о создании простой 2D игры
Серия очень простых уроков, где вас не будут грузить теорией, идеологией и архитектурой движка. Всё максимально просто: делай A, делай В, делай С — и вуаля полетел самолётик, заиграла музыка. Автор тутора предлагает нам сделать вместе с ним простую леталку-стрелялку. Уроки очень компактные, не требуют большой концентрации и много времени.
Прекрасный способ быстро и поверхностно познакомиться с движком и его интерфейсом, чтобы не только мозгами скрипеть несколько дней, но и удовольствие от результата получить 😉
Ссылка для скачивания ассетов указана в одном из первх уроков туториала.
Kids Can Code. Godot Recipes
Раздел, посвящённый Godot, в он-лайн школе Kids Can Code. Название школы говорит само за себя 😉 Здесь вы найдёте открытые мини-уроки, посвещённые решению практических задач.
Уроки изложены очень простым и понятным языком, разбиты по шагам и организованы таким образом, что работать с ними может даже ребёнок. Вместе с автором уроков вы изучите базовые понятия Godot, познакомитесь с интерфейсом и напишете свою первую мини-игру.
Вообще-то это он-лайн школа с довольно демократичными ценниками на курсы, но речь пойдёт не о ней 🙂
GDQuest ведёт прекрасный канал на YouTube, который вы можете смотреть совершенно беслпатно. Видеоролики очень хорошего качетсва, у лектора прекрасная дикция, уроки очень понятные и доступные.
Видео представляют из себя короткие уроки, посвещённые самым разным задачам — от проектирования и компановки интерыейса до обработки коллизий. Под многими видео вы также найдёте ссылки на официальные туториалы от разработчиков. Авторы канала с удовольствем общаются в комментариях, отвечают на вопросы.
Бонусом — пачка учебных материалов по визуальному редактору Krita.
YouTube канал пользователя под ником HeartBeast, где вы так же найдёте уроки по разработке простых коротких игр. У лектора прекрасная дикция, он довольно быстро говорит, но трудностей с пониманием, вроде бы, не возникает.
Материал несколько разрозненный, но здесь есть много интересного и познавательного 🙂 Новые видео выходят довольно регулярно.
Angega Studios
YouTube канал пользователя под ником Angega Studios. Сразу скажу, что у него не очень хороший английский и плохой звук, но зато он медленно говорит и разжёвывает каждую мелочь. Вместе с автором контента вы сможете создать три простенькие игры.
Под своими видео автор даёт ссылки на ассеты.
Вообще-то на канале уже два года не было обновлений, но туториал по созданию простенького платформера там очень хороший и наглядный.
Game Development Center
Ещё одна он-лайн школа на YouTube, специализирующаяся на Godot. Много полезных материалов, которые помогут вам не только своить многие элементарные вещи, но так же разобраться с имплементацией тайловых ассетов, управлением и коллизиями на них.
У лектора прекрасная дикция, он довольно медленно начитывает материал и подробно разбирает каждый блок, который применяется в видоуроках.
Канал живой. Администратор канала общается с пользователями в комментариях, отвечает на вопросы. Кстати, под каждым видео вы найдёте ссылку для скачивания используемых ассетов.
Game Endeavor
Личный блог одного из популяризаторов Godot. Канал специализируется на ретро-играх с пиксельной графикой. Строго говоря последнее обновление было год назад, но автор периодический проявляет активность в комментариях. Возможно, он просто нашёл работу и ему стало не до ютубчика :))
Автор контента не делает специальные уроки по изучению движка, но делится опытом по решению разных задач, показывает, как создавать и собирать ассеты, делится некоторыми трюками из личного опыта.
Сообщества и взаимопомощь
За 8 лет вокруг Godot Engine сформировалось очень дружелюбное и интересное сообщество. Люди с удовольствием помогают друг другу, отвечают на вопросы, делятся опытом разработки и игровыми ассетами.
Официальный форум вопрос-ответ. Форум, предназначен для взаимопомощи пользователей (иногда его посещают и разработчики движка). Цель форума проста: свести друг с другом вопрошающего и отвечающего.
На форуме действует система голосований за воспросы и ответы (примерно как на пикабу). Если вы встретили какой-то вопрос, он вам актуален, но всё ещё без ответа, тыкаете плюс — вопрос взлетает в рейтинге по актуальности. Просматривать сообщения пользователей без регистрации можно, закрытые разделы отсутствуют.
Godot на Reddit. Сообщество на Reddit — живое и дружелюбное. Несколько раз на Reddit мне отвечали гораздо быстрее, чем на форуме вопрос-ответ. Времнами складывается впечатление, что некоторые товарищи там сидят специально, чтобы помогать новичкам.
Сообщество Godot на Steam. Здесь люди, в основном делятся своими поделками и обсуждают популярные проблемы, связанные с разработкой на Godot. Оно не очень полезное, но позалипать на демки в порядке прокрастинации очень приятно и весело.
Разумеется, мне бы хотелось, чтобы наше сообщество на Пикабу тоже расширялось и наполнялось контентом, поэтому не стесняйтесь показывать свои наработки, делиться опытом, задавать вопросы. Надеюсь, что придёт время и Godot Engine станет полпулярным в России!
Небольшое напутствие всем, кто делает первые шаги в освоении движка
Я прекрасно понимаю, что изучать что-то новое и незнакомое очень трудно и временами дико бесит. Но если вы решили сделать свою собственную игру, дерзайте! Забейте на бурчание родных и друзей, что вы зря тратите своё время и «лучше бы занималисть [вставить нужное]».
Не бойтесь пробовать, делать что-то своё, творите и эксперементируйте! А чтобы немного поднять вам настроение и вдохновить на изучение движка, вот вам ссылка на демо потрясающего ретро-платформера, разработанного на Godot нашими дальневосточными друзьями:
Благодарю за внимание! Надесю вам было интересно! Если у вас остались какие-то вопросы, не стесняйтесь, спрашивайте в комментах. Если в моих силах будет помочь, я с удовольствием сделаю это 🙂
Всем хорошего вечера, успехов в изучении Godot и лёгкого старта в увлекательном игродельном мире! ^_^
P.S.: Годобот в заголовке нарисован мной. Картинка распространяется под Creative Commons Attribution 4.0 International License. Если вам нужна эта картинка, вы можете скачать её здесь:
В архив входят 4 картинки с вариациями фона и *.PSD файл.
UPD by @Boogernator: Полезным может ещё оказаться канал, ролики маленькие, про небольшие полезные мелочи рассказывают.
UPD by @captainperson: Еще для любопытных, Стим-куратор игр, сделанных на Godot. В основном любительские поделки на коленке, но уже имеются весьма успешные игры.
UPD by @MFSUS: тутор с которого я начал.
Как поставить нейронную сеть Stable Diffusion себе на ПК
Привет, Пикабу, как все наверняка знают нейронные сети захватывают мир, особенно всё что связанно с генерацией изображений. Недавно произошел своего рода прорыв в плане генерации изображений по их описанию, и одной из лучших нейронок является Stable Diffusion.
Сейчас я расскажу как относительно просто поставить на ваш кампудахдер сие чудо (даже если рукожоп), единственное ограничение, нужен достаточно мощный пк, а именно минимум 16 гб ОЗУ и видеокарта с поддержкой CUDA и 6 гб видео памяти, а лучше 8 гб.
Первым делом необходимо скачать последнюю версию программы Blender https://www.blender.org/ и GIT https://git-scm.com/download
Далее аддон для Blender Dream Textures https://github.com/carson-katri/dream-textures/releases/tag/0.0.5 файл dream_textures.zip , в нем нейронка по задумке автора должна помогать в генерации текстур, но её можно юзать далеко не только для этого)
Запустить Blender, и выбрать Edit -> Preferences
Выбрать Add-ons -> install
Ищем аддон который скачали и жмем install add-on, установка аддона займет около минуты.
Переходим Add-ons -> Community в поиске вбиваем название аддона Dream Textures
Жмем на треугольник, в открывшемся меню жмем Install dependencies, откроется консольное окно и начнется автоматическая загрузка зависимостей для Python 3.10. (по времени 15-20 минут)
Когда появится сообщение success значит всё установилось.
Теперь нужно скачать веса для нейронки (т.е. обученные «мозги»), жмем.
Тебя перекинет на это сайт, если не зареган, придется зарегаться (или искать веса в других источниках)
Если всё ок, качаем сами веса (
Жмем Open Trget Directory, откроется папка в которую нужно перекинуть скаченные веса, а сам файл переименовать в model.ckpt
Теперь проверяем правильность установки (занимает 20-40 сек.)
И если появится такое сообщение, то мои поздравления, всё получилось)
Можно приступать к самому сладкому, превращению текста в картинки. Нужно открыть Image Editor как показано на скрине или нажать Shift + f10
Видим окно, самое главное это поле Subject, сюда вбиваем наш текст (на английском), выбираем нужный Preset и жмем OK, наблюдаем за работай «скайнет»
Скайнет за работой
Для генерации лучше использовать уже готовые тексты, так называемые Prompt, на их поиски отправляю в гугл) ну или вот для поиграться https://mpost.io/best-100-stable-diffusion-prompts-the-most-beautiful-ai-text-to-image-prompts/ (используются в видосе)
Ну чтож, если у вас всё получилось наслаждайтесь, а если нет то не беспокойтесь, скоро кто то очень умный замутит простое приложение для установки в один клик (если уже не замутил).
CS50 Harvard — учебные программы на С из лекций 3-4
Проблема тех, кто не является студентом Гарварда и хочет пройти вводный курс CS50, заключается в том, что у них нет доступа к директории с учебными программкам в облачной IDE, зато есть доступ к самой IDE со всеми прикрученными костылями-библиотеками. Приходится вручную переписывать код из видеолекции и молиться, чтобы эти программы завелись.
Также если вы смотрите старый курс (а большинство смотрит перевод курса 2015 года), то появляется ещё одна проблема — изменилось написание функций во встраиваемых библиотеках, поэтому простое списывание для большинства программ уже не проканает.
Вот и я дважды за неделю строчил посты с просьбами расшифровать тексты ошибок из терминала, потому что работать с ним не учат. По крайней мере, в первых лекциях. Спасибо тем, кто смог хотя бы донести, что в тексте ошибки зашифрована строка и номер символа по порядку, и можно найти и сравнить неверный кусок кода.
Вооружившись мануалом к университетским библиотекам ( https://manual.cs50.io/ ), а также гуглом, я упоролся и восстановил все программы из этих лекций.
Обычно первое, что создаёт будущий прогер практически на любом языке. Первая-то она первая, но с её отладкой я помудохался знатно.
Далее вариации этой программы, которые Дэвид Малан сочинял на ходу, но не сохранял. Строковая переменная.
А эта программа заняла у меня больше всего времени. Заставляем переменную запрашивать имя самостоятельно через библиотечную функцию. 4 дня ушло на то, чтобы узнать, что в новой версии функции GetString() — get_string() — требуется вставить что-то в скобки, чтобы она заработала. Я ставлю кавычки, ибо они интуитивно понятны.
После решения этого гиппопотамуса от мира ребусов работа пошла быстрее.
Далее лектор вернулся к сохранённым в каталоге курса программам и запустил простой калькулятор сложения целых чисел.
Далее рассматривалась программа про условия. Я разделил её на две версии — багнутую версию (conditions-0b.c), которая не предусматривает ситуацию, когда переменная равна 0, и пофикшенную версию (conditions-0.c).
Условия и операторы
Погрешность десятичных дробей, связанная с разрядностью программы.
imprecision10.c (сохранил баловство Дэвида с количеством нулей после запятой в отдельные программы)
Первая демонстрация цикла — for
Помимо самопальной функции, имеем ещё и do-цикл и return
И завершающая прога четвёртой лекции, демонстрируюшая return на примере возведения целого числа в куб.
Ч. 2. Создал домашнюю систему видеонаблюдения с распознаванием номеров
Всем привет!
INTRO
Это вторая часть статьи о том, когда It-шнику становится любопытно. Как я решил при помощи простой ip-камеры создать сервис регистрации проезжающих автомобилей с блек-джеком и шлю… распознаванием номера.
Часть пятая. Поиск оборудования. Форм-фактор.
По предварительным испытаниям стало совершенно точно понятно, текущая ip-камера не подходит и необходимо что-то лучше.
Т.к у меня совершенно нет понимания, что происходит на рынке видеонаблюдения, я начал читать какие-есть типы камер и чем они отличаются.
Для начала расскажу вам какие типы камер бывают. Разделить можно на два основных раздела, это IP и Аналоговые камеры. Для себя я выбрал первый вариант по следующим причинам:
• Простота установки. Не требует дополнительного оборудования
• Настройки осуществляются в самой камере
• Возможность обработки видеопотока непосредственно на камере
Следующий момент — это форм-фактор. Не сказать, что для меня он играет важную роль, но мне бы хотелось иметь возможность установить камеру на улицу и иметь возможность легко выставлять кадр.
Корпусные камеры.
Пожалуй, самый классический форм-фактор — это «корпусные камеры». Это камеры, которые мы чаще всего представляем в своей голове. Пример на рисунке 1.
Купольные камеры
Думаю, каждый из нас встречал такие камеры в банках, торговых центрах и развлекательных комплексах.
Основной особенностью такого устройства корпуса является, что в случае вандальных действий будет сложнее «открутить голову», плюс не так просто в отличие от предыдущего типа определить, куда именно смотрит камера, например, чтобы выявить мертвые зоны. Пример на рисунке 2.
Купольная PTZ-камера.
Когда смотрел различные обзоры, часто встречал слово PTZ и не понимал, что оно означает. Рассказываю – это полный аналог купольной камеры, только поворотный механизм объектива управляется удаленно. Пример на рисунке 2.
Поворотная PTZ-камера
Форм-фактор здесь может быть различным, но главная функция — это удаленное управление поворотом камеры. Пример на рисунке 3.
Итак, для себя решил, мне подойдет классическая корпусная камера.
Часть шестая. Поиск оборудования. Функционал
Одной из основных задач моего проекта – обработка информации с камеры.
Первоочередно я искал камеры с поддержкой RTSP потока. Для начала я понял, что выбирать среди лидеров рынка оборудования видеонаблюдения я не буду, как бы странно это не звучало. Цены на оборудование бренда hikvision и прочих сильно противоречат одному из требований, оговоренных мною ранее – дешевизна решения. Стал искать среди популярных китайский брендов.
Составил для себя ТОП:
• Gadinan
• BOAVISION
• GCraftsman
• Reolink
Когда начал знакомиться с решениями данных производителей – был приятно удивлен, адекватные для домашнего сегмента цены и неплохие технические характеристики на бумаге. Но все мы с вами знаем о качестве китайского ПО – классные функции на бумаге легко разбиваются о бесконечные глюки и зависания)
Сравнивая различные модели, прочитав множество обзоров и отзывов на работу камер, я определил для себя бренд reolink. Меня очень привлек следующий функционал:
• Распознавание человека
• Распознавание автотранспорта
Возможность отправки уведомлений:
• Загрузка на FTP
• Отправка на email
По итогу я заказал себе камеру RLC-811A (на момент покупки цена 5900руб.)
Основные характеристики:
• POE
• 8MP
• ИК – подсветка
• Светодиодная подсветка
• Слот для SD-карты
• Пятикратный оптический зум
Камера в пути, тем временем продолжаю остальную подготовку.
Часть седьмая. Логика системы.
Теперь вводные немного изменились. Моя новая камера может самостоятельно определять автомобиль в кадре и отправлять уведомление на почту или FTP. Это снимает с меня необходимость в реальном времени самостоятельно обрабатывать видеопоток, теперь мне нужно обрабатывать входящие алерты (оповещения), которые мне отправит камера.
Тогда этапы взаимодействия в системе должны быть следующими:
1. Камера отправляет алерты на сервер(ftp) или почту
2. Моя система принимает входящие данные
3. Данные обрабатываются
Здесь стоит вспомнить еще об одном требовании, которое я для себя выставил – поддержка нескольких пользователей.
Значит необходимо продумать канал для передачи уведомлений. Я решил, у каждого пользователя должны быть свои собственные реквизиты, будь это директория и пользователь ftp или почтовый ящик для отправки.
Вариант с FTP я посчитал недостаточно безопасным. Email подходит намного лучше т.к позволяет гибко управлять настройками почтового ящика и обработкой писем.
У каждого пользователя может быть свой почтовый ящик, у кого-то mail.ru , кто-то пользуется gmail, yandex .и.т.д – при работе с каждым из этих провайдеров можно столкнутся с различными проблемами. Например, gmail с недавних пор вообще запретил подключать свою почту к различным умным устройствам и сторонним приложениям.
Придется создать свой почтовый сервер. При регистрации нового пользователя в системе ему должен быть автоматически создан почтовый ящик и предоставлены подробные настройки для камеры. Пользователь вводит данные настройки в камеру и теперь все уведомления отправляютcя через мой почтовый сервис, которым я могу гибко управлять.
Итак, новая схема теперь выглядит так:
Пользователь авторизуется в системе, получает данные для настройки камеры, после правильного конфигурирования, камера будет отправлять уведомления с изображением автомобиля на мой почтовый сервер.
Веб-сервер проверяет все входящие сообщения, разбирает их по пользователям в базу данных. Далее пользователь с помощью браузера получает доступ ко всем событиям что были переданы камерой.
Часть восьмая. Установка камеры.
Пришла долгожданная посылка! После домашней мини-камеры от xiaomi новая кажется гигантом.
Изначально я планировал питать камеру через PoE…
Проблема первая. Из коробки камера не запустилась. Как оказалось, мой роутер Микротик подает слабый вольтаж на PoE и необходимо сменить блок питания роутера. Т.к час был поздний и запустить камеру хотелось очень сильно, решил запитать камеру по отдельной выделенной линии питания, к счастью, в коробке с проводами( у всех же такая есть?) нашел подходящий блок питания на 12v.
Вставил витую пару, подключил питание и через пару секунд камера успешно запустилась. Фирменные приложения в телефоне и на компьютере уже были на готове, камера быстро нашлась в сети, и я успешно подключился.
Проблема вторая.
Камеру хотел установить на балконе, но в связи с проблемами питания тянуть два кабеля до балкона мне не хотелось, а на самом балконе розеток нет. Покупать новый блок питания для PoE я пока тоже не собирался. В итоге решил попробовать установить камеру на кухне, розеток там достаточно, но теперь проблема с доступом в сеть, тянуть витую пару по всей квартире тоже не хотелось.
К счастью, у меня валялось несколько сетевых железок, достал малютку mikrotik hap ac2.
Настроил микротик в режиме wifi-репитера и уже по витой паре от него раздал интернет на камеру. В итоге схема получилась следующей:
Проверив подключение на столе, было уже не в терпеж, и я пошел заниматься её установкой.
Проблема третья.
Первая моя мысль была – установить камеру внутри квартиры, перед окнами. Такая установка менее заметна с улицы и защищает камеру от погодных условий.
От этой идеи пришлось сразу отказаться, т.к днем камера еще может снимать, но в темное время суток когда автоматически включается ИК-подсветка, камера засвечивает саму себя отражением от окна.
Пример, как выглядит такая картинка с камеры:
Белое пятно в верхнем левом углу изображения — это ик-светодиоды камеры. В итоге решено, камеру необходимо выводить на улицу.
Проблема четвертая.
При установке камеры, я понимал, скорее всего придется ещё много раз менять её положение и соответственно создавать крепеж «на века» пока не имеет смысл. Но задача крепко зафиксировать камеру на улице осталась.
Решил установить её на подоконник «вверх ногами», почему «вверх ногами»? Корпус предполагает, что такие камеры устанавливаются крепежом сверху или вертикально на стену, а в моем случае крепеж будет снизу.
При такой установке камеру невозможно наклонить вниз и снимать она будет под углом 90 градусов, мне это, конечно, не подходит т.к необходимо снимать дорогу внизу. Что ж… Я создал проблему и героически её решу!
Сделал из металлического профиля уголок, к которому на крепеж присоединил камеру. Схематично выглядит так.
Что за синие прямоугольники? Хороший вопрос))) т.к сверлить подоконник очень не хотелось, я воспользовался небольшими неодимовыми магнитами, держат они очень крепко, сложно снять уголок двумя руками. Магниты не находятся в близости к камере или проводам, так что каких-либо помех или проблем замечено не было.
Проблема пятая. Оборудование установлено, вроде работает. Проверяю качество картинки днем, с помощью зума – отлично! Номера прекрасно читаются
Но… наступает ночь и что я вижу – а ничего! Точнее видно все, кроме номеров. Ик-подсветка сделана у камеры на совесть и засвечивает номера превращая их в сплошной белый прямоугольник.
К такому, признаюсь, я совершено не был готов, идей не было. Пошел гуглить интернеты, основные советы – изменить источник ик-подсветки чтобы угол отражения был другим и не лупил прямиком обратно в объектив.
Я уже начал было собирать компоненты в голове для создания небольшого ик-фонаря, но еще подумав над возможными вариантами, решил попробовать снизить мощность этой подсветки. В очередной раз, в прямом смысле отодрав (помните про неодимовые магниты 😊 ) камеру с подоконника, изучил конструкцию подсветки. Она состоит из четырех отдельных ик-светодиодов, что ж, прекрасно! Берем непрозрачный скотч и просто заклеиваем три из них. Ставим все обратно, проверяем.
Готово! И так с камерой на текущем этапе разобрались (на самом деле есть еще одна серьёзная проблема, но о ней позже), теперь возвращаемся за компьютерный стол.
Часть седьмая. Разработка
Ниже будут скриншоты бета-версии сайта. На них возможны опечатки, неточности и на текущий момент некоторые элементы могут быть изменены и не соответствовать изображению.
Практически все этапы( тестирование, распознавание, подбор оборудования, продумывание логики и.т.д) я вел параллельно и соответственно понемногу писал сам сервис.
Что и как писать о разработке, не сильно уходя в программирование достаточно сложно. Я постараюсь писать так, чтобы обычный читатель понимал, о чем речь.
Первое – определить, где будет находиться сервер. Все тесты я проводил на своем домашнем сервере, который выступает у меня в роли файлохранилища и держит несколько сервисов. Но по ходу развития идеи понял, что возможно не я один буду пользоваться сервисом и решил отдалить его от домашней инфраструктуры и чувствительной для меня информации.
Особых требований к хостингу нет, подойдет практически любой. Я остановился на одном из популярных Российских хостеров.
Сразу оформил заказ на два сервера, один непосредственно для web-сервиса, второй для почтового сервера.
Ранее собранные в голове образы интерфейса системы пришлось обрисовать, получился такой шаблон:
Шутка, но она не далека от правды.
Примерно так выглядел мой первый эскиз дизайна. На главную страницу сайта панели я разметил текущую сводку по последним распознанным автомобилям, статистику по алертам и несколько общих цифр.
Следующий раздел — это непосредственно алерты, то есть оповещения, которые пришли с камеры. Страница отображает весь список доступных алертов, гос.номер ( если распознан ) и возможность открыть конкретный алерт и подробно ознакомиться с ним.
Еще один важный раздел сайта – Автомобили. Стоит понимать, один автомобиль может несколько раз попадать в поле зрения камеры, таким образом необходимо разделять сущности «алерт» и «автомобиль».
Один автомобиль может принадлежать к нескольким алертам. И если мы хотим увидеть историю автомобиля, для этого нам необходимо отталкиваться именно от автомобиля.
Страница настроек — это первое, куда должен отправиться пользователь после регистрации. Как я писал ранее, для каждого пользователя будет генерироваться персональный почтовый ящик.
Реквизиты доступа к ящику и остальные настройки, которые необходимо указать в камере – будут находиться на этой странице.
Также вы можете заметить поле «Часовой пояс», зачем? Т.к я писал систему с возможностью что ей будут пользоваться несколько человек необходимо понимать, что у каждого будет свой часовой пояс. И вся информация в системе должна отображаться с учетом часового пояса конечного пользователя.
Пример того, как функционирует система изображен на видео. Обновление данных и распознавание работает достаточно быстро.
Финишная прямая.
Статья получилась большой, но аккуратно разбить её я не смог. Надеюсь вам было интересно наблюдать за моим небольшим домашним проектом.
Выше я писал, что с камерой есть еще одна серьезная проблема. Я вам её покажу:
Смазанная картинка если машина по двору едет достаточно быстро, к сожалению, такие водители есть – заезжают с улицы во двор и даже не сбавляют скорость.
Понятно, определить номер на таком изображении невозможно, проблема в камере. Но т.к это хобби-проект и моей задачей было создать систему – считаю, что с ней я справился. Заниматься фанатизмом, покупать дорогое оборудование не собираюсь. Надеюсь, данные из этой системы мне никогда не пригодятся, в первую очередь я повысил свои навыки в разработке, размял мозг, немного изучил рынок видеонаблюдения и интересно провел время.
Полезная информация для самых терпеливых 🙂
Кому интересна данная система и кто хочет помочь в её развитии (желательно чтобы у вас была камера типа моей) — пишите мне в личку, будем тестировать вместе.
Также будет интересно услышать от вас, какое имя вы бы придумали для этой системы. Если оно мне понравится, возможно сервис будет назван вашим вариантом.
Семейный бизнес.
— Один мой друг выучил COBOL и ему вручили кодовую базу в которой последнее изменение было сделано в 90х годах . его. мамой
— Наследование в программировании не так должно работать.
И так каждый раз
Ответ на пост «ИТ Пузырь»
Прочитал пост и 200+ комментов, которые на сейчас есть. Вроде никто не указан на важное — реально выросла потребность в разработчиках. Это одна из причин драйва зарплат — конкуренция работодателя за кадры, т.к. предложение меньше спроса.
Другая причина высоких зарплат, кстати — глобальная конкуренция за зарплаты. В плане из-за удалёнки и релокации последние 15 лет значительная часть разработчиков выходила на глобальный рынок, в результате конкуренция на локальном рынке повышалась из-за оттока кадров.
А дальше проблема — никто не умеет поточно готовить крутых специалистов. Программы в институтах устаревают ещё к моменту формирования. Технологии быстро изменяются. Хороший разработчик, став преподавателем, быстро теряет технический скилл и отстаёт от рынка. Более того, нередко хороший разработчик не является хорошим педагогом, потому что это совсем другая область деятельности. Уметь донести материал, уметь построить лекцию, уметь проверить знания (в условиях, когда студенты всеми силами пытаются халявить) сложно.
Условно, middle python разработчик решил пойти преподавать. У него года два или три займёт получить опыт преподавателя, и, возможно, он станет хорошим преподавателем. Но он уже на 2-3 года устарел по технологиям. Да, изменилось не всё. У нас всё ещё семиуровневая модель в интернете. Но всё поменялось вокруг.
И зарплаты у преподавателей такие себе. Например, возьмём топ технических вузов. Пусть будет №13 по рейтингу — МИРЭА. Смотрим их зарплаты — старший преподаватель до 30 лет будет получать 127к в месяц. Это 110к на руки. А после 31 года уменьшится стимулирующая надбавка за молодость и зп упадёт до 107к (93к на руки). Вспомним рейтинг зарплат с хабра за 1 полугодие 2022 года? Медианная зарплата разработчика в Москве 180к.
То есть нам надо найти опытного разработчика, который захочет преподавать, пойдёт на кратное падение зарплаты, потратит несколько лет на преподавание, возможно станет в этом хорош — и мы получим хорошего преподавателя, который слегка устарел по технологиям. И дальше устаревание может усугубиться.
Большой спрос на ИТ-специалистов пытаются закрыть платные курсы. Типа вместо полезной математики и кучи бесполезного типа философии в институте мы даём только профильное, поэтому и в срок до года можно уложиться. Но, к сожалению, высокая цена не является гарантией качества. Более того, посмотрите вакансии спецов, которых набирают на курсы для code review или преподавания. Там опять зарплаты ниже, чем у разработчиков. Что в результате? В среднем мы имеем либо совсем инфоцыганские курсы, либо дорогие курсы со средним материалом. Я сейчас про курс «с нуля до middle», с ними основные проблемы. Есть исключения. Например, есть небольшие курсы по отдельным технологиям, которые вполне могут быть оправданы.
Институты и хорошие курсы (платные или бесплатные) держатся на тех активистах, которые и разработку продолжают, и хотят делиться знаниями. Если знаете таких активистов, скажите им спасибо 🙂
При этом требуемый уровень знаний в разработке (хотя бы по количеству инструментов) продолжает расти. Люди, которые идут в ИТ за зарплатами не представляют, как много требуется сил и времени на постоянную актуализацию знаний.
А ещё растёт потребность в управленческих должностях (team lead и прочие ребята). С их подготовкой вообще ужас — им нужен опыт управления людьми. А где его взять? Как создать условия, чтобы после института/курса на выходе был team lead с реальным опытом руководства несколькими командами? Переквалификация разработчиков в team lead имеет кучу неприятных побочных эффектов. Разработчик привык управлять послушным компьютером, а тут непослушные и недетерминированные люди. Ужас.
Даже область HR стагнирует. Они совсем не умеют подбирать кадры.
А собеседования разработчиков — вообще ужас. На них спрашивают то, что не нужно в работе. Создана отдельная индустрия натаскивания на собеседования. Готовиться к собесам — зло. Насколько я понимаю, это исключительно ИТ-специфика. Вы слышали истории, чтобы хирург готовился к собесу? Или пилот? Воспитатель в детском саду? В отдельных профессиях есть сертификация, конечно. Но это немного другое.
Излил я вам свою боль о современном состоянии подготовки новых кадров в разработке. Есть ли у вас идеи, как ситуацию починить?
Что сделал я для исправления ситуации? В телеграмм-канале devfm разбираем разные нюансы из жизни разработчика на Python и не только. Стримы по программированию, что такое WSGI, как спроектировать сервис, чему стоит научиться в вузе. По пятницам у нас культурный код с фильмами, книгами и всяким разным.
ООП сейчас не все используют
Случайно наткнулся на такой комментарий
И прямо полыхнуло.
Где в трёх принципах ООП (наследование, инкапсуляция, полиморфизм) есть что-то про сеттеры, геттеры и деструкторы?
Исторически ООП задумывалось в таком виде: программа проектируется как множество объектов, которые общаются путём посылки сообщений и только так. На практике жизнь пошла немного другим путём.
Сейчас в трёх китах ООП логика такая:
1. инкапсуляция — это объединение данных (называемых полями или атрибутами) и функций для работы с ними (называемых методами),
2. наследование — возможность породить класс из существующего, взяв себе все поля и методы,
3. полиморфизм — это возможность взаимозаменять объекты в рамках иерархии.
Давайте на примере. У нас собака — это сложная такая штука. Но всю сложность на себя берёт программист, который реализовал класс Собака. У нас есть поля (например, количество лап), есть методы (например, бежать). Вы можете сказать собака.бежать(), при этом внутреннее устройство собаки вас не интересует — в этом смысл инкапсуляции. Некоторые ошибочно говорят про «сокрытие» и начинают про private-public-protected, но этого не требуется. Поэтому, например, в python нет сокрытия, а инкапсуляция всё ещё есть.
Дальше. Мы создали Собаку. Теперь хотим Чихуахуа. Чтобы не переписывать общие места, у нас есть наследование. Мы создаём Чихуахуа(Собака), то есть наследуемся от неё. Теперь мы можем переписать только отличающиеся места (например, изменить метод Бежать так, чтобы Чихуахуа ещё противно шкрябала когтями).
И третье — полиморфизм. Это когда мы можем сделать много собак, и для каждой собаки вызвать метод собака.бежать(). В зависимости от типа собаки (Собака или Чихуахуа) у нас будет вызван нужный метод бежать. То есть на питоне
PS: некоторые относят к китам ООП ещё и абстракцию «для выделения в моделируемом предмете важного для решения конкретной задачи по предмету» (вики). Тут у меня вопрос. Вообще всё программирование состоит в выделении важного и игнорировании неважного независимо от парадигмы. Причём тут ООП? А если мы говорим о выделении сущности собаки в виде полей, то это свойство называется инкапсуляция.
В телеграмм-канале devfm разбираем разные нюансы из жизни разработчика на Python и не только — python, bash, linux, тесты, командную разработку.
Создал домашнюю систему видеонаблюдения с распознаванием номеров
INTRO
Статья о том, когда It-шнику становится любопытно. Как я решил при помощи простой ip-камеры создать сервис регистрации проезжающих автомобилей с блек-джеком и шлю… распознаванием номера.
Заранее напоминаю о том, что я пишу непосредственно о системе. Легитимность установки камеры и съемки зависит от конкретных случаев и в некоторых из них запрещена законом.
Часть первая. Зарождение идеи.
Начну рассказ с текущей ситуации. Примерно год назад, очередной раз бродя по интернету я попал в цепкие лапы акций магазинов бытовой техники и зачем-то купил себе камеру «Xiaomi Mi Home Security Camera 1080p Magnetic». С учетом всех скидок, акций и бонусов камера обошлась примерно в 1тыс. рублей.
Камера mi camera magnetic (фото из интернета)
Задача для камеры была поставлена быстро — «наблюдать за происходящим во дворе». Меня интересовала парковка.
Интересный факт, камера лично мне не пригодилась ни разу, но несколько раз меня с утра будили незнакомые люди звонком в дверь и интересовались «моя ли это камера» и «пишет ли она» т.к у них что-то случалось во дворе.
Пример дневной съемки во дворе
Пример ночной съемки во дворе
Не так давно мне подарили еще одну точно такую-же камеру. После некоторого времени раздумий я решил что было бы неплохо снимать именно проезжающие машины, с возможностью видеть номера. Т.к основная (первая) камера снимала общий план и детали( номера машин, лица) невозможно было определить.
Я решил поставить и настроить вторую камеру так — что бы она снимала конкретный небольшой участок дороги с проезжающими машинами.
Если у меня будут номера, можно создавать базу номеров машин. Зачем? Потому что могу!
Только на этом моя фантазия не остановилась. Номер у меня есть, почему бы не получить по нему информацию?(Марка, модель и.т.д). И как это обычно бывает — на ровном месте я придумал себе хобби-проект.
Часть вторая. Формируем ТЗ.
Идея понятна. Хочу фиксировать все проезжающие машины параллельно распознавая их номера и по возможности получать дополнительную информацию по автомобилю.
Что дальше? Дальше агрегируем требования и формируем задачу.
— Доступ к данным должен быть простым. Писать приложения под каждую платформу(вин, андроид, ios и.т.д.) мне очень не хотелось. Решено, это будет web-приложение с адаптивным под мобильные устройства дизайном.
— Доступ из интернета.
— Авторизация — система должна иметь функционал авторизации по логину и паролю.
— Регистрация.
— Данные должны хранится в БД для возможности быстрого доступа к информации и построения различных отчетов ( сколько раз за день а/м с номером появлялся в поле камеры, самая частая машина за неделю, количество машин в день/неделю/месяц )
— Простота разработки — я бы не хотел писать полностью весь код, т.к я не супер крутой программист. Честно говоря я вообще не считаю себя программистом. Соответственно приоритет будет отдан готовым библиотекам, сервисам — которым можно отдать часть работы на аутсорс.
— Простая масштабируемость — возможно, то, что я сделаю будет полезно кому-то еще. В таком случае, не стоит создавать систему из непонятных инструментов и костылей. Использовать популярные фреймворки.
— Писать код и разрабатывать функционал с учетом использования несколькими пользователями.
— Стоимость — аренда сервера, покупка домена и подключение к сторонним api могут вылиться в копеечку. Мне постоянно стоит напоминать себе что это домашний хобби-проект. Стоит тщательно контролировать расходы.
— Данные по госномеру — очень хотелось бы помимо номера так-же получать подробные данные по госномеру.
И так, основные требования сформулированы. Можно начинать делать? Нет!
Не хочется городить велосипед ( совсем немного конечно хочется, все-таки будет свой родной, из костылей 🙂 ). Следующим делом стоит изучить рынок, понять что вообще предлагается в сфере видеонаблюдения конечному потребителю.
Часть третья. Анализ рынка. Поиск готовых решений.
Конечно, я сразу побежал гуглить. Сначала я был приятно удивлен, статей и информации на эту было достаточно.
Полный размерзапрос популярен, статей и предложений на рынке достаточно
Полностью готовые решения.
После радости сразу пришло разочарование. Я начал переходить по ссылкам, знакомиться с продуктами и что самое неприятное, их стоимостью. Не буду здесь приводить примеры конкретных продуктов и говорить почему они мне не подошли. В целом, претензии ко всем продуктам были идентичны.
— юзабилити продающего сайта. Да, это ужас. Словно подключился к интернету 2005 года. Подавляющее большинство сайтов были прямиком от туда. Данный факт не имеет прямой корреляции с качеством продукта. Но я был удивлен что в век цифровизации, компании которые продают системы видеонаблюдения или ПО к ним, совсем не думают о важности пользования сайтом.
— дизайн ПО. Примерно тоже самое что и сайт. Добавить особо нечего. ПО как и сайт написано в 2005 и с тех пор директора всех этих фирм запрещают обновлять интерфейс)) .
— закрытость рынка. Получить демку какого-то ПО это отдельная эпопея, нужно обязательно позвонить, написать в мессенджер, оставить заявку на сайте, написать на почту, станцевать танец и сделать жертвоприношение. В общем это лучшая практика чтобы вам никто не звонил и не писал. Отчасти я понимаю что данные системы нацелены на коммерческий сектор, а там высокая клиент-ориентированность не нужна. Торги выиграли и вперед монтировать камеры!
Тем не менее полезные выводы сделаны:
— ознакомившись с интерфейсом подобных программ начал вырисовываться и интерфейс моей системы. Определены основные блоки сайта.
Микросервисы
Теперь стоит посмотреть в сторону open-source решений касающихся распознавания номеров, конечно в первую очередь меня интересовала логика перехвата видеопотока с камеры и анализ картинки, поиск и распознавание российского гос. номера.
Погружаться в нейронные сети и машинное обучение мне не очень хотелось, это сильно замедлит разработку.
Поискав по интернету нашел несколько неплохих по описанию решений. Отфильтровав самые живые в плане комьюнити и апдейтов я решил протестировать Nomeroff Net
Nomeroff Net — это опенсорсный фрейморк написанный на питоне для распознавания номеров автомобилей.
Писать о разворачивании сервера, настройке и установке фреймворка не буду. Статей на эту тему достаточно, для разных уровней пользователей.
По результатам — номер определяется достаточно плохо. Возможно стоит поковырять настройки, но мне этого делать не хотелось т.к на мой взгляд фреймворк из коробки не справился даже с хорошим примером.
На скриншоте вы можете видеть фото с номером, которое я отдал программе и его результат распознавания.
пример распознавания с помощью nomeroff net
Тестирование сторонних сервисов.
Собираю различные изображения из интернета, дополнительно самостоятельно делаю фото на камеру телефона/фотоаппарата и отправляю их в сторонние сервисы распознавания. Здесь показывать нечего, работает все на порядок лучше и стабильнее, дополнительным плюсом является что в будущем я уменьшу возможную нагрузку на свои сервера.
Цены разные, самый дорогой что я нашел — 20рублей за одно распознавание.
Часть третья. Обработка видеопотока.
Разобрать номер на изображении это конечно хорошо, но для начала изображение необходимо получить. Первой моей мыслью было напрямую подключаться к камере, каково было мое удивление что ip-камера xiaomi не имеет популярного rtsp протокола для прямого подключения. Что делать? Пришлось прошивать. Кажется бренд xiaomi создан для того, чтобы после покупки его еще приходилось дорабатывать.
Прошивка установлена! Что дальше? Дальше настраиваем подключение к камере и понимаем что качество камеры не позволит нам разбирать номера автомобилей. Почему я не задался этим вопросом раньше? Я держал этот риск в голове изначально. Поэтому в первую очередь меня интересовала логика взаимодействия между узлами системы.
Таким образом первый тестовый стенд распознавания номером выглядел следующим образом:
Ip-камера стоит на столе и направленна на монитор пк где открыты найденные в интернете фотографии различных автомобилей с российскими номерами.
тестовый стенд распознавания номеров
Написал небольшой скрипт на питоне. Он подключался по rtsp протоколу к моей камере, сохранял кадр в формате изображения и передавал в описанный выше фреймворк для распознавания. По результатам я понял что оно работает. Необходимо улучшить качество распознавания, для этого необходимо:
— настроить фреймворк или отдать весь процесс внешним сервисам
— сменить камеру для более качественной картинки
Примерную логику работы системы я отобразил на схеме:
ИТОГИ
Идея приобрела формализованный статус и перешла в небольшой хобби-проект. Я понял примерный объем работ. Проведены первые тестовые испытания.
Напишите в комментариях если к данному проекту у вас будет интерес. В следующей части я напишу о том какие изменения я решил внести в логику системы и почему. Опишу как проходила разработка дизайна и подбор оборудования.
p/s на текущий момент система мной написана функционирует в бета режиме.
Вопрос на собеседовании python junior developer — вывод списка
Наткнулся на github на список вопросов к собеседованию python разработчика. Заинтересовал вопрос про вывод списка, ответ на который морально устарел.
Что выведет такой код?
В первую очередь это вопрос на внимательность. Но есть и о чём порассуждать.
1. Сразу начнём с PEP8. Называть переменную List нельзя, такой формат именования используется для классов.
2. Заметна опечатка — создался List, срез делается по list. Но тут начинается интересное. Эта версия кода в python3.6 вызовет ошибку TypeError: ‘type’ object is not subscriptable.
Связано это с тем, что list — ключевое слово для создания списка в формате list(). Но без круглых скобок list — это сам класс list, а не экземпляр. У самого класса список не определена операция получения элемента по номеру (subscription).
С обновлением системы указания типов в 3.9 питоне, выражение вида list[10:] рассматривается интерпретатором как список диапазонов или list[slice(10, None, None)] и выдавать ошибку уже не будет.
3. Если код был бы такой
list_a = []
print(list_b[10:])
То мы получили бы ошибку NameError: name ‘list_’ is not defined независимо от версии питона.
Итого исходный код приведёт к:
— TypeError, если мы использовали ключевое слово list в python3.6
— list[slice(10, None, None) для python3.9
— NameError, если мы использовали несуществующее название переменной.
И такой код вообще не должен пройти code review.
В телеграмм-канале devfm разбираем разные нюансы из жизни разработчика на Python и не только — python, bash, linux, тесты, командную разработку.
Исходный код "зрячего" бота для браузерной игры с использованием Emgu CV
Добрый день. Как-то раз я подсел на одну сомнительную браузерную игру (названия не будет, чтобы не создавать лишнюю рекламу этому исчадию). Если вкратце, то она оказалась слишком нудной (и донатной) и я решил её слегка автоматизировать. Не для получения выгоды, а просто потому что захотелось.
Обычного кликера, кликающего по предустановленным координатам было недостаточно, так как цепочка нажатий должна зависеть от наличия и положения интерактивных элементов на экране, а просчитывать все варианты и пытаться это всё закостылить мне не хотелось. В итоге было принято решение сделать бота «зрячим», и искать эти элементы на экране. Для этой задачи была задействована библиотека Emgu CV.
В итоге родился «умный» и «зрячий» кликер, который ищет в окне игры определённые элементы (кнопки, иконки, двери, сундуки) и кликает на них в определённом порядке.
Изначально я не планировал выкладывать его в открытый доступ, но в итоге я перестал играть в эту игру, и поддерживать разработку бота не планирую. Поэтому теперь любой, кто всё ещё играет в это, может допилить бота как захочется, а те, кто ищет точку входа в тему компьютерного зрения, может использовать его для своих целей. Более того, код можно легко переиспользовать для создания бота для любой другой браузерной игры.
Ansible. Network-scripts. RHEL8. Сбор информации о MAC-адресах
Очередная доработка хелпера «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».
День рождения операционной системы, которой не должно было быть
Еще до официального релиза Windows 98, на мероприятии под названием Windows Hardware Engineering Conference руководитель корпорации Microsoft Билл Гейтс во всеуслышание заявил о том, что эта версия ОС станет последней в линейке 9х, и все последующие редакции Windows будут разрабатываться на платформе NT. Однако он все-таки слегка обманул уважаемую публику. Уже 5 мая 1999 года случилось «второе пришествие» в виде Windows 98 Second Edition, а ровно 22 года назад, 14 сентября 2000-го, неожиданно вышла она — Windows ME, Millennium Edition, которую русскоязычные пользователи сразу же нежно окрестили «линолеум эдишн», а их заокеанские коллеги — «Mistake Edition» (версия-ошибка).
Прекрасно помню свои чувства, когда я впервые устанавливал «линолеум» на своем домашнем компьютере. Удивительный белый сплеш-скрин с разноцветными квадратами вместо привычного и уже порядком поднадоевшего «облачного неба»! Красивые значки и звуковая схема от Windows 2000! Internet Explorer 5.5! В общем, глядя на интерфейс, обновленную систему вполне можно было принять за Win2K Professional, если не обращать внимания на тот факт, что это всего лишь перелицованная и чуть-чуть модифицированная Windows 98.
В Microsoft действительно стремились наладить выпуск новых версий ОС для «домашних» пользователей на платформе NT, однако такой глобальный проект подразумевал большой объем работы, что подтверждалось довольно медленным прогрессом пользовательской редакции NT — Neptune. Чтобы сохранить режим выпуска новой версии Windows раз в три года, генеральный директор Microsoft Стив Балмер решил выкатить обновленную версию Windows 98, включавшую ряд элементов из активно разрабатывавшейся тогда NT 5.0, позже превратившейся в Windows 2000. В силу чрезвычайно сжатых сроков работу начали в спешке, но, тем не менее, уже к началу 2000 года Windows ME значительно отставала от намеченного графика.
«Под капотом» у WinME пряталась MS-DOS 8.0, хотя реальный режим MS-DOS в новой ОС как раз был заблокирован. Файл IO.SYS в Windows Millennium Edition полностью игнорирует файлы ядра DOS CONFIG.SYS и COMMAND.COM , вместо них используется 32-разрядный драйвер диспетчера виртуальных машин VMM32.VXD, который создает среду окружения MS-DOS для системных процессов и приложений Windows. С одной стороны это позволило ускорить загрузку операционной системы за счет отказа от обращений к MS-DOS, с другой сделало невозможным запуск некоторых старых игрушек, в основном из-за того, система не могла загрузить драйверы реального режима, такие как ANSI.SYS. Впрочем, умельцы довольно быстро научились обходить это ограничение. В Windows ME файлы CONFIG.SYS и AUTOEXEC.BAT использовались исключительно для установки глобальных переменных среды, все остальные строки в этих файлах игнорировались, а управление порядком загрузки системы и автозапуском программ было перенесено в реестр.
Из других нововведений в Windows ME следует отметить обновленный Проигрыватель Windows Media, программу для монтажа видео Windows Movie Maker и обновленную справочную систему. Как и в Windows 2000, в Проводнике Millennium Edition вместо содержимого системных папок демонстрировалась страница-заглушка, которую, впрочем, можно было запросто отключить щелчком мыши по соответствующей ссылке. Система наконец-то научилась полноценно поддерживать широкий ассортимент устройств USB, чего ей очень не хватало раньше.
После официального релиза Windows Millennium Edition 14 сентября 2000 года Microsoft начала рекламную кампанию новой системы под лозунгом «Meet Me Tour», в рамках которой американским пользователям Windows 98 и 98SE предлагалось перейти на ME за 59,95 долларов («коробочная» версия стоила 209 долларов). Однако особого ажиотажа по этому поводу, как писали журналисты, не наблюдалось. Кто-то воспользовался столь выгодным предложением, но с появлением в 2001 году Windows XP популярность Millennium Edition начала стремительно падать, как и объемы продаж, которые вскоре и вовсе сошли на нет.
Больше всего меня (думаю, и других пользователей тоже) раздражала тесная интеграция Windows Millennium Edition с Internet Explorer: веб-представление папок в Проводнике здесь было включено по умолчанию, и чтобы отключить его, приходилось покопаться в настройках. Еще одно важное нововведение – приложение «Восстановление системы», позволявшее создавать точки восстановления и при необходимости откатить ОС до предыдущего состояния. А пользоваться этой функцией приходилось очень часто. Если Windows 98 по сравнению с Windows 95 отличалась относительно высокой стабильностью, то Windows ME в этом отношении определенно стала большим шагом назад. Система регулярно сбоила и выходила из строя – намного чаще, чем ее предшественница, восстанавливать или переустанавливать ее заново приходилось раз в два-три месяца. Но и это было не самым крупным недостатком Windows Millennium Edition.
Главным преимуществом операционных систем линейки Win9x по сравнению с Windows NT и 2000 являлось более высокое быстродействие на машинах с весьма скромной аппаратной конфигурацией, имевших распространение в начале «нулевых». Windows ME и в этом отношении сумела отличиться не в лучшую сторону: она была весьма привередлива к ресурсам, требовала для установки больше дискового пространства чем Windows 98, а со временем свободного места на винчестере становилось еще меньше: папка %SYSTEMROOT% имела тенденцию к неконтролируемому разрастанию. По скорости работы Windows ME мало отличалась от Windows 2000 Professional, зато значительно уступала ей в надежности. Сочетание всех этих факторов делало эту версию ОС далеко не лучшим выбором для пользователей.
Основная поддержка Windows ME завершилась 31 декабря 2003 года, а 11 июля 2006 г. прекратилась расширенная поддержка. Лично я перестал ей пользоваться намного раньше: насмотревшись на прожорливость, глюки и регулярные падения ME, уже через несколько месяцев я вернулся к проверенной Windows 98 SE, перетащив туда звуки, красивый сплеш-скрин и модные значки из Millennium Edition (для замены стандартных элементов ОС существовало множество утилит и твиков). Millennium Edition заслуженно считается одной из худших версий Windows после 95, однако эта система все же оставила свой след в истории — пусть он получился и не столь ярким, как у других версий Windows.
Оригинал
Подписывайтесь на наш блог, чтобы не пропустить новые интересные посты!
С Днём Программиста!
IT-Брендинг на грани 2
Поздравляю всех причастных с Днём программиста и представляю компанию «тыжпрограммистов» от Бога!
Для тех, кому важна кошерная работа, рекомендую обратиться к соседям — «Айтисемиту»
Сбрендил для вас,
Обряды для программистов
Только после прохождения обряда инициализации программист имеет значение в команде.
Ответ на пост «Бесплатно помогаю пикабушникам учить программирование, часть 30: "О уместности и правилах хорошего тона."»
Начну с того, что в 2020 году я закончил медицинский университет на специальность врача-стоматолога без особого желания работать стоматологом и с огромным желанием работать в IT.
Мои познания программирования начались с того, что на 3 курсе мне предложили обучать детей HTML/CSS, Scratch и Python, хотя на тот момент я вообще не имел никакого понятия о том, что это и как с этим работать. Все знания приходилось получать от того же материала, который я приподносил детям. То есть за день, а иногда даже за пару часов до урока я открывал материал, учил его и объяснял уже на уроке.
Всё пришло к тому, что в 2020 я знал базовый HTML/CSS, Python. Ну и на этом всё. В том же году наткнулся на пост про обучение Ruby, загорелся и начал изучать план обучения в телеграм канале. Тогда же у меня родилась дочь, и всё свелось к тому, что мне предстоял выбор между неизвестной мне профессией и работой, которой я посвятил 6 лет обучения в университете. Учитывая давление родственников и родителей выбрал я второе и на программирование на некоторое время полностью забил.
Как начинающему специалисту денег мне не хватало, работы было много, работать приходилось через немогу. Через полгода мне предложили преподавать программирование онлайн, и точно так же я учил материал за пару часов до урока и объяснял его. Время от времени просматривал вакансии на hh и отправлял свои резюме.
К июню 2022, 2 месяца назад я для себя окончательно решил, что хочу работать в IT. Обратно вернулся к плану обучения.
Весь июнь и июль я работал в стоматологии с 9:00 до 18:00, с 19:00 до 00:00 преподавал программирование, а с 00:00 до 3:00 учил Ruby и Ruby on Rails.
Для кого интересно, я постараюсь расписать что я учил до того как получить оффер.
1. Были базовые знания HTML/CSS, JavaScript.
2. Прошёл первые 10 уроков на https://rubyrush.ru/
3. Прочёл Руби для Романтиков и выполнил все задания с этой книги
4. Прочёл где то до 11 главы Майкл Хартл, Ruby on Rails. Дальше всё пошло плохо, так как в книге использовалась старая версия Ruby и Ruby on Rails, до этого как то получалось справляться с ошибками, а потом всё начало полностью ломаться и я забил.
5. Куча видео с youtube, где создавались приложения, делал я их с учётом того, что половину я понимал, а половину не понимал.
В начале августа я активно начал искать работу, составил резюме и отправлял во все появляющиеся вакансии.
Учитывая, что я знал HTML/CSS, JavaScript, Ruby on Rails на базовом уровне, на youtube просмотрел несколько видео по React, я отправлял вакансии и на Frontend, и на Backend. Так же увидев кучу вакансий по PHP решил подучить и его, просмотрел несколько видео и добавил соответствующую графу в резюме. В какой то момент, после первой сотни отправленных резюме мне стало всё равно, в какой стек, на какую должность я попаду, хотелось только сделать первые шаги в IT, а дальше набраться опыта и подыскать работу на Ruby on Rails.
За 2 года я отправил 424 резюме, получил кучу отказов, сделал кучу тестовых заданий, и на днях получил оффер на позицию Ruby on Rails/React разработчик с зп 50 000 рублей удалённо.
Сейчас в голове только страх перед началом работы, так как тестовое задание и техническое интервью были для меня очень сложными, ну и огромное предвкушение перед началом.
Спасибо @prodigal.son, если бы не ваш пост и ваша группа, я так и не сделал бы первые шаги в IT.
Тяжко ли было быть кузнецом в Средние века?
Тяжко, работа то серьёзная, требующая не только хорошей физухи, но и памяти, усидчивости и желания учиться. Кузнец ведь это не просто постукать молотком по железке и продать её. Для начала нужно подобрать правильное сырье, выплавить нужного качества заготовку, соблюдая правильные режимы проковать её, закалить, заточить и украсить, если нужно. Труд кропотливый и требовательный к навыку, но зато честный и почётный. В деревне кузнец это первый человек, после сельского старосты, ибо без его товаров ты ни землю не вспашешь, ни дров не нарубишь, ни дом не поставишь, ни лошадь не подкуёшь. Незаменимый человек, уважаемый всеми, ссориться с которым крайне фиговая затея.
Если окажетесь веке в 13 в деревне и увидите красивый добротный дом, то с очень большой вероятностью это дом кузнеца. Тяжелая, но доходная работа, позволяла жить в довольно сносных условиях. Но кузнец — это ведь мастер, даже если ему чужда алчность, то уж никуда не денешь тягу поднять собственное мастерство, сделать что-то, что никогда раньше не мог. Но на деревне таких вызовов не найдёшь, а вот в замке феодала или в городе, уже другое дело. Правда, и тут тоже будет и пот, и кровь, но зато перспективы преотличные, главное с цехом кузнецов не ссориться. А далее, главное сделать имя и завести связи среди аристократов и тогда о старости можно будет не беспокоиться.
Но тут случается Столетняя война и всё заверте… Что такое Столетка? Это типичный феодальный конфликт, периодически превращавшийся в позиционную войну. Правда тут у нас не километры траншей с колючей проволокой, а замки, которыми утыкана Франция и брать которые долго и нудно. Владельцы замков каждый раз вынуждены оценивать баланс выгод и затрат: что будет лучше — сидеть в осаде англичан или сдаться им. Вопрос нетривиальный, так как в слоёном пироге феодальных порядков причин предать и не предавать было гораздо больше одной. А потому иногда линия фронта не двигалась годами, а потом раз — и ты из подданного короля Франции стал подданным английской монархии. И вроде как для тебя лично ничего не изменилось, разве что сборщик податей теперь в другой ливрее, но вот тут то и начинается веселье.
Собственно почему мы про кузнецов заговорили? А потому что для них такая война сулила не только прибыли, но и ворох проблем. Сами посудите. На дорогах неспокойно и бандитов развелось немеряно, из-за чего доставки товара — руды или слитков металла — можно и не дождаться. И тогда либо самому пытаться в добычу руды, если она в округе вообще есть, либо сидеть на голодном пайке. Но это ещё что, бандиты ведь могут и в твою кузню наведаться — крышевание в периоды неспокойных времён это вообще норма. Тут бы к местному барону обратиться, но это если у тебя с ним хорошие отношения, а если нет — если ты успел чем-то его разгневать, например запоров заказ. Плохо. Хуже, если бандитам самим нужны услуги кузнеца — тут ты уже в игру с стульями играешь: поможешь им — сядешь на пики баронские, не поможешь — можешь и на свидание с богом отправиться.
И это ещё чего. Кроме бандитов-бандитов есть и бандиты, которые рыцари (также известные, позднее, как раубриттеры): наёмники с большой дороги, промышляющие чем попало — охраной, грабежом, охраной, а потом грабежом. Им тоже нужны услуги и они тоже могут быть очень нежеланными гостями. А ещё могут прийти англичане. Просто прийти — барон сторону поменял, или отдал богу душу на поле брани, а то и просто сбежал, всякое бывало. И тут уже встаёт вопрос в полный рост, а не должен ли ты сам тикать. Англичане ведь это чужаки, для французского населения они ничуть не лучше сарацинов, даром, что христиане. Будешь помогать англичанам — свои же могут тебя записать в предатели, будешь им не помогать, так могут и вздёрнуть — им может кузнец и нужен, но они и своего привезти из Англии могут, ибо французам доверия особо нет. Ну а ежели ты волею судьбы сам англичанин, проживший всю жизнь во Франции, то мои соболезнования — тут какую сторону не выбери, все равно будешь предателем.
Весело? Ну вообще да, если ты в это играешь. Я сейчас очень многословно описал бэкграунд игры Anvil Saga. Сразу предупрежу, что она пока в очень раннем доступе и очень многое недоступно. Это 2D симулятор менеджера средневековой кузницы в период Столетней войны. Тут тебе и моральные выборы, и обещанные последствия от них (к сожалению пока доступна малая часть), и суровые тяготы войны, отражающиеся на нашем герое и его бизнесе. Менеджмент ресурсов тут довольно простой (пока, потом обещают усложнить) — есть руда, её можно добывать или покупать у торговца, её мы можем перерабатывать в слитки или опять же покупать, из слитков делать товары разной сложности.
При этом герой и его помощники этакие тамагочи — им нужно иногда есть, спать, они могут стрессовать, получать фобии или болезни и за всем этим нужно следить. Ну а гонка со временем исполнения заказа тут иногда такая, что сам начинаешь нервничать, как твой кузнец, когда тот от нервячка начинает мазать мимо заготовки и таймер срывается в красную зону. А ещё иногда тебе, как снег на голову, сваливаются заказы, которые нельзя не выполнить забесплатно, если не хочешь получить потом проблем. Да, кузнец, да увожаемый человек, но есть куда более увожаемые. А ведь всяких тёмных личностей тоже никто не отменял, хрен его знает, пришёл к тебе добрый человек со странным заказом на серебряный меч или лиходей какой. Ну вы поняли.
В общем идея интересная, но пока что крайне не хватает контента. Хотя как времяубивалка требующая напряжения серых клеток заходит хорошо.
На страже порядка- современная система защиты от подделок «Certilogo»
Современная индустрия моды, конечно, по большему счёту прекрасна. С каждым годом она дарит нам богатый выбор, удивляет, развивается и «растет» в производственных вопросах, используя уникальные ткани и инновационные технологии. Многие имена мировых брендов вызывают трепет, их продукцию хотят, за ней охотятся и с интересом следят за их новостями. Однако, есть одно «НО» – у всего имеется обратная сторона медали. И в данном случае это – рынок контрафактной продукции. Пожалуй, сложно найти хоть какое-то изделие, которое не пытались бы подделать. И ладно, бог с ним, с явным фальсификатом (подделка низкого качества), который порой даже веселит своими наивными попытками обмануть. Совсем не радует растущий процент реплик, которые бывает крайне сложно отличить от оригинала, а иногда даже и невозможно, если не погрузиться в изучение вопроса глубоко.
Контрафактная продукция пугает не только тем, что приносит ущерб брендам, нанося удар по их репутации, но и тем, что может не просто не оправдать надежд покупателей, а стать угрозой их здоровью (ведь такая продукция, как правило, не проходит сертификацию). Проблема борьбы с ней остро стоит во многих странах мира, хотя, безусловно искоренить контрафакт в мировых масштабах вряд ли возможно, пока это для кого-то выгодно. Несмотря на это, издаются законы, разрабатываются системы штрафов, создаются специальные структуры и антиконтрафактные агентства, внедряются новые системы защиты (типа кода или голографии) и т.д. Но если простой потребитель решил приобрести вещь любимого бренда и для него важно, чтобы она была подлинная, как ему защитить себя от фейка в момент покупки? Согласитесь, каждый раз перед покупкой шерстить интернет в поисках информации о том, как отличить тот или иной бренд от подделки – не самый удобный вариант, хотя, возможно, и эффективный. Было бы куда круче, сели бы это можно было сделать систематизировано, легко и просто, в одном месте.
Благо, развитие не стоит на месте. Каждый раз для нас стараются разработать более комфортные и продуктивные способы защиты от подделок. И на сегодняшний день самым интересным, многообещающим и обнадеживающим способом защиты от контрафакта стала уникальная новаторская система внедрения единого идентификационного кода «Certilogo», или, сокращенно «CLG». Сейчас мы вас с ней и познакомим.
Проект создан теми (и для тех), кто ратует только за аутентичную продукцию, уважает и ценит труд её создателей. Система «живет» на сайте //www.certilogo.com и заключается в следующем: бренды внедряют у себя систему «CLG», помечая специальным кодом из 12-ти цифр свою продукцию, и попадают в общую информационную базу «Certilogo». Этот идентификационный код может проставляться в разных местах (на упаковке, на этикетке, на ярлыке и т.д.) и его можно проверить, внеся данные в специальную форму-Authenticator на главной странице сайта «Certilogo». Код хранит в себе зашифрованную информацию о данном товаре, и система, дополнительно задав несколько вопросов, с лёгкостью ответит вам, является ли товар оригиналом, либо это гнусная подделка, показав какому товару соответствует введенный номер кода.
Проверка в системе «Certilogo» — абсолютно бесплатная услуга, стоит лишь пройти несложную регистрацию. При чём, проверить свою покупку можно непосредственно в оффлайн-магазине, просканировав код с помощью мобильного приложения «Certilogo» или введя его вручную, а во время онлайн-шоппинга — проверить честность интернет-магазина, просмотрев, есть ли на его страницах кнопка «Certilogo».
И это ещё не все. В том случае, если ваше приобретение окажется неудачным и система подтвердит, что это фейк, вы можете получить специальный отчёт о подделке, который может помочь вернуть деньги за этот товар.
Система «Certilogo» действительно кажется тем самым «светом в конце тоннеля», спасением и выходом из ситуации с контрафактным рынком. Здесь есть лишь один нюанс – так как проект довольно свежий, пока далеко не все бренды приняли в нём участие. В настоящее время это более 50 мировых брендов, в числе которых «Diesel», «Paul&Shark», «Stone Island», «Versace», «Moncler» и др. Поэтому, если ваша любимая марка ещё не «в теме» и не числится в списке участников на сайте «Certilogo», то в проверке подлинности её продукции система вам помочь не сможет. Также надо быть внимательным и учитывать, с какого момента тот или иной бренд внедрил у себя систему «CLG», что тоже можно посмотреть на сайте проекта. Например, если «Paul&Shark» стал отмечать свои изделия кодом «CLG» начиная с коллекции Весна/Лето 2015, то на вещах из ранних коллекций его быть не может.
Будем надеяться, что в скором времени всё больше Casual марок присоединяться к этому потрясающему проекту и больше не будет разочарований, а только гордость и радость от удачной покупки, от качественной оригинальной вещи.
В системе «Certilogo», к слову говоря, можно проверить подлинность не только одежды, обуви и аксессуаров, но и другой продукции – парфюмерии, электроники, товаров для дома и т.п.