• Как стать специалистом по информационной безопасности (кибербезопасность)?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Внимание! Изменился адрес почты!
    Ить, да вас прорвало, что ли? Вроде не конец учебного года, чего все так кинулись в ИБ?

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

    И задачи у него могут быть ... специфические.

    Нет, там конечно много и обычной админской работы - прокси, файрволлы, VPN, права доступа, сертификаты, разрешение на установку ПО, туда не хади - сюда хади (СКУД и видеонаблюдение). Но я уже тут пальцы стер писать, что ИБ не только про компы. ИБ это еще и про людей, и вот это "про людей" может быть сильно неприятным - СМП, чтение почты, отсмотр чем человек занимался...

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

    Ну и еще - желательно знание законодательной базы и умение писать документацию... На самом деле, романтики в ИБ - микроскопическое количество. Это просто работа, иногда скучная и нудная, иногда даже грязная и неприятная...
    Ответ написан
  • Так КАКАЯ математика нужна для работы с базами данных???

    @rPman
    хватит школьных знаний

    Да, когда говорят про реляционную алгебру, мыслят категориями математического анализа, но знаний особых тут не нужно, достаточно просто запомнить (если честно, серьезно углубляться в такую математику нужно разработчикам серверов баз данных, когда начинаешь это дело оптимизировать, не забывая про доказуемую корректность, обывателю же это не надо)
    Ответ написан
    Комментировать
  • Как работает блокировка в Postgresql?

    @Vitsliputsli
    Да, блокировка осуществляется только для выбранных записей, они блокируются до выполнения update. Пока они заблокированы, другие select for update skip locked их не увидят.
    Ответ написан
    Комментировать
  • Как прочитать данные из двух таблиц одновременно?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ответ написан
    Комментировать
  • Чем отличаются любительские МК от промышленных?

    vabka
    @vabka
    Токсичный шарпист
    1. Arduino - это не МК, а отладочная плата / плата для прототипирования
    2. Сами МК не делятся на "промышленные" и "любительские". Тк в такой классификации просто нет смысла.
    3.
    наверное надежностью?

    Надёжностью при определённых условиях могут отличаться некоторые специальные серии микроконтроллеров.
    4.
    какая разница в цене?

    Открываешь каталог и сравниваешь :)
    Где-то разницы нет, а где-то разница может быть в несколько порядков, в зависимости от требований

    если надо сделать умный дом или ферму, или теплицу.. (не работа в профессиональной индустрии)
    что лучше выбрать?

    То что будет лучше отвечать поставленным требованиям.

    Ещё про профессиональные/любительские

    Платы можно условно поделить на:

    Профессиональные отладочные/демонстрационные платы типа STM32 Discovery цель которых - показать разработчику возможности конкретного чипа или серии чипов

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

    Учебные/детские, наподобие micro:bit - только для того чтобы учить детей программированию в интерактивной и удобной форме.

    Ответ написан
    Комментировать
  • Какое приложение написать для понимания ООП?

    php666
    @php666
    PHP-макака
    на пхп
    на пхп есть два мира - академический и реальный

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

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

    можно, конечно, нарисовать кучу классов, но это будет "ООП ради ООП"
    Ответ написан
    Комментировать
  • Какое приложение написать для понимания ООП?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ты не поймешь сути ООП, если будешь писать в одиночку. Нужно проецировать это на команду.
    Ответ написан
    Комментировать
  • Какой есть аналог teamviewer/anydesk с клиентом под Win и Linux, бесплатный?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Есть множество аналогов, но они работают куда хуже чем AnyDesk. Вот, я делал тестирование маем прошлого года, может сейчас чего лучше стало:

    Проетстировано:

    Remote Management System (RMS) - https://rmansys.ru (российское ПО, номер в реестре Минсвязи - 456)
    AeroAdmin - https://www.aeroadmin.com
    imPcRemote - https://remote-control-desktop.com
    LiteManager - https://litemanager.ru (российское ПО, номер в реестре Минсвязи - 1961)
    AnyDesk - https://anydesk.com

    Рассматривалось только ПО, имеющее версии как под Windows, так и под Linux, и обеспечивающее возможность соединения с клиентами:

    находящимися за NAT
    обладающими нулевыми знаниями в ИТ
    не требующие установки

    Проверялся только режим Linux (клиент) ↔ Windows (хост), то есть имитировалась ситуация, когда сотрудник, имеющий при себе ноутбук с Windows, находится на выезде и к нему должен подключиться с Linux сотрудник, находящийся в офисе.

    Общим недостатком всех программ под Linux является наличие где-то просто большого, а где-то реально ОГРОМНОГО списка зависимостей. Эту проблему решает только установка из пакета или сборочного файла, для Gentoo есть только net-misc/anydesk.

    Кроме того, у всех протестированных программ не работает передача индикации смены раскладки клавиатуры с клиента на хост. То есть при нажатии Ctrl-Shift (Alt-Shift) фактически раскладка переключается, но отображения этого не происходит. Передача отображения смены раскладки с хоста на клиента происходит нормально.

    RMS

    Распространяется в виде файла агента rms-agent.exe и файла для Linux rms-viewer. Бета-версия, поэтому в консоль постоянно выводит отладочный лог. Бесплатная лицензия требует паузы в несколько минут между переподключениями. Отвратительная скорость, особенно при подключении по 3G. Настройки по умолчанию сбивают с толку - ты не видишь ни локального, ни удаленного курсора. Иногда клиент безо всяких причин аварийно завершает работу по SIGSEGV. При завершении сессии с одной стороны вторая сторона почему-то об этом уведомления не получает и продолжает считать, что она подключена.

    AeroAdmin

    Распространяется в виде файла AeroAdmin.exe и по утверждениям разработчиков, работоспособен в Wine. Проверка эти утверждения не подтвердила, в wine 7.8 aeroadmin.exe аварийно завершается сразу же после запуска.

    Info: [16:34:06 / aeroadmin.cpp 1106] mode: 0
    20220520 16:34:06 [376 / service.cpp:597] !hService
    20220520 16:34:06 [376 / service.cpp:529] Installing service: "Z:\tmp\AeroAdmin.exe" s -sid 1
    012c:fixme:service:svcctl_ChangeServiceConfig2W SERVICE_CONFIG_FAILURE_ACTIONS not implemented: period 60 msg (null) cmd (null)
    0198:fixme:process:WTSGetActiveConsoleSessionId stub
    019c:fixme:ver:GetCurrentPackageId (017DFF00 00000000): stub
    Info: [16:301ac:fixme:wtsapi:WTSEnumerateSessionsW Stub 00000000 0x00000000 0x00000001 020DECB0 020DECA8
    01ac:fixme:wtsapi:WTSEnumerateSessionsW Stub 00000000 0x00000000 0x00000001 020DEADC 020DEAE0
    4:06 / aeroadmin.cpp 900] run_as_admiwine: Unhandled page fault on read access to FFFFFFFF at address 005B5DD6 (thread 0198), starting debugger...

    imPcRemote

    Распространяется в виде ZIP-архива impc_admin.zip для Linux и файла impcremoteinstant_user.exe для Windows. Ужасное некачественное изображение, страшная топорная оболочка, все напоминает VNC-клиенты образца начала 2000-х годов (впрочем, вполне возможно, так оно и есть). Скорость соединения приемлема, но изображение просто ужасно. Никаких других возможностей типа обмена файлами нет. Зато у него одного передается индикация смены раскладки клавиатуры.

    LiteManager

    Распространяется в виде файла для Linux LiteManager и файла для Windows ROMServer.exe. Автоматически подхватывает настройки прокси из системы и ,если они включены, пытается их использовать, отключить их невозможно, они постоянно включаются заново. Программа может быть была бы и неплохой, но в отличие от всех других, она не только не отображает переключение раскладки клавиатуры, но и реально их не переключает. То есть раскладку клавиатуры можно реально переключить только на хосте. Разрыв соединения с хостом не отображается - хост продолжает считать себя подключенным

    AnyDesk

    Распространяется в виде архива anydesk-N.N.-amd64.tar.gz для Linux и файла AnyDesk.exe для Windows. Обладает достаточно быстрой скоростью отображения изменений (по крайней мере, наибольшей среди всех протестированных программ). Единственный клиент, в котором настройка подтверждения удаленного соединения на хосте включена по умолчанию. Также единственный клиент, в котором кроме собственно бинарника, в поставку входит файл .desktop (для размещения на рабочем столе графической оболочки Linux), а также файлы запуска сервиса для Linux под init и systemd и значки в формате PNG.

    Выводы

    LiteManager и AeroAdmin использовать просто нельзя - в силу наличия у них серьезных ошибок, препятствующих их нормальной работе.
    Remote Mamagement System использовать пока нельзя - в силу нестабильности работы модуля клиента - в процессе тестирования он аварийно завершался у меня два раза, систему я не уловил, но аварийное завершение клиента в процессе реальной отладки на шахте например может принести множество неприятностей.

    imPcRemote использовать пока можно - там где нет требований к передаче изображения, потому что качество там явно 8 бит, не больше. Разрабатывается небольшой канадской компанией.
    AnyDesk использовать пока можно - за исключением того, что он не передает отображение значка раскладки клавиатуры, у него нет каких-то явно выраженных недостатков, но в силу того, что это достаточно крупная немецкая компания, всегда следует иметь в виду, что она может поступить как TeamViewer.
    Ответ написан
    6 комментариев
  • Насколько хорошо бэкенд-разработчик должен знать SQL?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Ожидаю уверенного владения SQL как минимум в стандарте 2003, а также понимание реляционной теории. Ну и надо понимать, что кандидатов джунского уровня сотня в неделю, чтобы пробиться на место, нужно выделяться среди других, поэтому чем больше знаешь, тем лучше. Покажешь умение читать планы выполнения - плюс, показал владение оконными функциями - ещё плюс, рассказал про WAL при обсуждении транзакций - снова плюс, смог к этому ещё и объяснить про MVCC - совсем молодец. И т.д. и т.п.
    Ответ написан
    Комментировать
  • Ругается на async def successful_payment(message: types.Message): IndentationError: unexpected indent, что не так?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    1a787c4055c8c0cb0d3ea6d4080ef077.png
    Ответ написан
    Комментировать
  • За сколько можно прокачаться не очень хорошему системному администратору до DevOps инженера?

    vldmrmlkv
    @vldmrmlkv
    Systems engineer
    На секунду показалось, что как будто это я писал года 3 назад. Был похожий стек и те же вопросы, пока окончательно не выгорел. За год до этого полностью перешёл на Linux. Потом прошел курсы и поменял работу.

    По теме. Тупой тот, кто не хочет и не может учиться. Рутина без развития демотивирует, работа и профессия должны нравиться. Вы уже начали, значит вопрос решается и это хорошо. Возможно потеряли пару лет - стабильность затягвает, у меня так и было, но теперь вы знаете что делать дальше. Нужно составить план и делать. Попробуйте канбан доски в trello - мне очень зашло. Будет некая игрофикация процесса обучения, приятно когда закрыл ещё одну "таску" и видно объем проделанной работы. Ну или можно купить какой нибудь крутой курс слёрма, но лучше с начала самому - всё основное есть в свободном доступе. Ссылки в конце.

    Начать я бы рекомендовал с linux как основная ОС, а на работе внедрять IaC и мониторинг - ansible, terraform, docker, docker-compose, gitlab, AWX, Portainer, Prometheus, ViktoriaMetrics, Graylog, Loki. Те же агенты zabbix можно раскатывать ansibl'ом, автоматизировать это все в gitlab ci. Провижинить вм terraform'ом. В zabbix api можно много чего автоматизировать. Например, автоматическое добавление новых хостов. Поднять всё, что можно в docker, разобраться с docker-compose. Кубер можно локально посмотреть minikube, поднимается за 10 минут. Для кубера поставьте Lens - не тру конечно, но в нём наглядно видна структура сущностей кубера.

    Пару ссылок по теме:
    https://infinite.education/skillset/linux_administrator
    https://www.youtube.com/@KirillSemaev
    https://github.com/milanm/DevOps-Roadmap
    https://www.youtube.com/@ADV-IT/playlists
    https://github.com/bregman-arie/devops-exercises
    https://landscape.cncf.io/?grouping=category&zoom=60
    https://kubernetes.io/ru/docs/tutorials/kubernetes...
    Ответ написан
    Комментировать
  • В чем минусы событийно ориентированного подхода?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не претендую на правду. Просто несколько мыслей.

    В чем минусы событийно ориентированного подхода?
    Насколько я понимаю, Алан Кей (тот кто придумал термин Объекто-ориентированный) старался придерживаться именно этого подхода. т.е. кто-то отправляет сообщение, а объекты в системе на него реагируют, каждый по-своему.
    По сути у нас есть message bus, в который добавляется сообщение, а объекты системы слушают этот самый message bus.

    Мысль первая. Наследие.

    Когда мы говорим о наследии Алана Кея - надо просто глянуть что он создал практически.
    А создал он язык Smalltalk. Поэтому логично изучать минусы событийного подхода на
    примере софта который написан с использованием Smalltalk. Кто из коллег в топике
    знает примеры такого софта? Я - к сожалению не знаю.

    По ссылкам википедии https://en.wikipedia.org/wiki/Smalltalk можно видеть в категории
    influenced мы просто видим что Smalltalk
    влиял на Java, Go, Swift. Но я здесь не согласен потому что мы не можем измерить глубину
    этого влияния. Это все равно что сказать что Сталин влиял на Черчилля. Как влиял? На 10%?
    Или более чем половину? Сложно. Насчет Java я тут сказал-бы что сомнительно. ООП? Может быть.
    Акторы? Нет. В Java изначально нет акторов. Они существуют позже в виде фреймворков но
    языком не поддерживаются.

    По поводу MessageBus. Если брать технологию акторов которая используется в Erlang.
    то там скорее не message bus а очереди сообщений между потоками-акторами.
    Если про Smalltalk сказать нечего то про Erlang я могу сказать что на нем написаны
    две единицы софта такие как RabbitMq (очень надежная и неубиваемая система MQ).
    Может не супер-производительная. И CouchDb которая выделяется своей
    устойчивостью ко всяким сетевым сбоям. Реклама говорит что Кауч работает
    практически при мигающей сети, при обрывах и т.п. лучше чем аналогичый TCP-IP совт.

    Мысль вторая. Что Кей говорил про ООП.

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

    I made up the term "object-oriented," and I can tell you
    I did not have C++ in mind.

    Что в этой прямой речи можно понять. Что господин Кей открещивается от современного ООП.
    А фактически все современное ООП зеркалит то что есть в С++. Здесь вы можете со мной спорить
    о первенстве (я не буду спорить я не знаю). Но абсолютно очевиден факт что мир пошел по пути
    жесткой синхронщины в 80х. И пока все еще идет. Будут ли примитивные типы int/double обьектами
    не суть важно. Тут важно что Кей постулирует среду в которой двигаются сообщения. Как сеть в миниатюре.
    А классическое ООП С++ - лишает нас этой среды и заменяет ее вызовом метода. Никакого сообщения
    в С++ нет и быть не может потому что сообщение НЕ существует в отрыве от основного потока который
    инициировал вычисления. Умрет поток - развалится весь стек и параметры и все. В противоположность
    в языке Erlang поток (процесс) приёмник может дохнуть много раз но стек сохраняет свою живучесть
    просто повторяя вычисления заново. И здесь мне кажется и идет развилка путей.

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

    Интересно почему в 80х Алан Кей проигрывал. Я думаю что победил прагматизм. В те далекие 80-е
    комьютеры были еще слабыми. Частота мерялась сотнями килогерц и мегагерцами. И в расчетах
    каждый такт был важен. И красивые и академические языки такие как Lisp, Prolog, Smalltalk
    просто проигрывали языку С в силу оверинжинеринга. А поскольку С++ был вначале действительно
    ООП-надстройкой над С - то он предлагал и ООП-подход и скорость портабельного ассемблера.
    И хотя я лично не люблю С++ (я считаю его перегруженным техническими долгами прошлого)
    я признаю что бизнес выбирая С++ выбирал просто скорость вычислений. Академизм и красивые
    доказательства правоты программ были тогда не нужны. Нужно чтоб банковское приложение
    быстро считало кредиты и выдавало зарплаты и пенсии.

    Сегодня, когда мы нежемся в сладкой неге мощных процессоров и даже (!) облаков - мы можем
    себе позволить любого уровня парадигмы и абстракции. Цена 1 абстракции стала настолько дешево
    стоить что нам дешевле в банках запускать Java/Net приложения и на ходу фиксить ошибки
    чем долго разрабатывать на С++ и иметь неопредленнное поведение и тяжелый анализ
    в случае падения. Даже такой уродец как Python взлетел как язык интеграции а не разработки.

    Мысль третья. Нестандартные и асинхронные архитектуры реализованные в железе.

    Недавно смотрел анонс нового процессора от Чака Мура (это тот самый Мур который создал закон имени себя).
    Мне кажется это пример той самой асинхронной клетки о которой мечтал Алан Кей.

    Мысль четвертая. На кого похож Алан Кей?

    Не знаю как вам. :) А мне он уж очень напоминает Боливара Траска из Люди Икс Дни Минувшего будущего.

    Мысль 5. Что делает Алан Кей на фото?

    Бренчит на музыкальных инструментах. Наверное блюз. Блюз потерянных архитектур :)
    Ответ написан
    Комментировать
  • Как проверить наличие таблицы в БД?

    @cicatrix
    было бы большой ошибкой думать
    Простите, не удержался :)
    if(mysql_query("DROP TABLE `таблица`")){echo "Таблица существовала...";}
    Ответ написан
    Комментировать
  • Как написать скрипт, который будет получать какие-то данные и обрабатывать их параллельно?

    @ragnvaldr9
    Вот серия статей про многопоточность в Node.js.
    https://habr.com/ru/company/tensor/blog/689144/
    Нужно экспериментировать с worker-threads.

    А так лучше это на Go написать, там попроще будет с горутинами.
    Ответ написан
    Комментировать
  • Как сделать чтобы большая БД держала нагрузку?

    Melkij
    @Melkij
    PostgreSQL DBA
    Ооо.... Вы это сейчас вообще серьёзно?

    Если вы запускаете DBaaS платформу и не знаете что делать собственно с базами - то у вас не
    Запускаю свою облачную платформу, код и архитектура создана с нуля.

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

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

    Значит этому юзеру достаточно ходить только на мастер.
    Для сферического в вакууме приложения нет средств автоматически распределять запросы по репликам. И такое сделать вовсе невозможно без накладывания ограничений на использование. Например,
    select somefunc();
    Что делает эта функция? Она только читает данные и потому можно отправить на реплику или она пишет и потому должна быть на мастере? Хотите правильный ответ от контрибьютора postgresql? Это достоверно не знает даже сама база до тех пор пока не выполнит функцию.

    Другой пример:
    begin isolation level repeatable read;
    select ...
    update ...
    commit;

    Как максимум на запросе select вы должны уже знать можете ли вы эту транзакцию отправить на читающую реплику. Откуда бы вам это узнать заранее?
    И прочие принципиально-нерешаемые вопросы.

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

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Не платите. Тогда все разработчики просто уйдут туда, где платят. А вы останетесь изучать теорию, объясняющую почему и как появляются баги, пока не осознаете их неизбежность.
    Ответ написан
    1 комментарий
  • Стоит ли разработчикам платить за баги?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Спорил со своим коллегой на днях - стоит ли платить разработчику за то, что он исправляет собственный баг.


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

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

    Ну и не платить за работу - останетесь без разработчиков.
    Ответ написан
    Комментировать
  • Как в данном случае работает наследование?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    То, что написано в целом - это самый настоящий говнокод. Класс A не является самостоятельным и при попытке сделать его экземпляр и вызвать A->method() программист получит ошибку в любом случае. Так делать нельзя, независимо от логического обоснования того, что здесь происходит.

    А явление, которое вы наблюдаете называется умными словами позднее статическое связывание (3 пример). Почитать кучу текста всё-таки придётся, этот нюанс в двух словах не объяснить, что вы хотели?
    Ответ написан
    2 комментария
  • Как сделать личный кабинет пользователя на сайте?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    1. Выбираешь язык программирования;
    2. Изучаешь его;
    3. Пишешь личный кабинет.
    Ответ написан
    1 комментарий
  • Как лучше учить документацию?

    vabka
    @vabka
    Токсичный шарпист
    Учат стихи, а технологии изучают, чтобы использовать на практике.

    Знать документацию наизусть не нужно.
    Изучай темы по порядку и закрепляй практикой, и периодически повторяй
    Ответ написан