• Три Больших Лжи о JavaScript

    Привет, Хабр! Представляю вашему вниманию мой перевод статьи "The Three Big Lies About JavaScript" автора Richard Kenneth. Данная статья была написана в мае 2016 года, однако ее актуальность, на мой взгляд, не исчезла. Я начинающий программист, поэтому возможны ошибки в плане «понимания». Итак…

    Три Больших Лжи о JavaScript


    Есть два варианта лжи: ложь, которую мы говорим другим, и ложь, которую мы говорим себе, что бы оправдать ее
    Есть три больших лжи, которые JavaScript поклонники говорят мне снова и снова.

    Ложь#1


    JavaScript – это самый неправильно понимаемый язык программирования в мире.
    Люди не знают, как правильно им пользоваться, и поэтому они постоянно попадают во всевозможные неприятности. И это ложь, потому что в JavaScript нет ничего непонятного.

    Это заурядный императивный / процедурный язык программирования с небольшим количеством функциональных возможностей программирования (ФП) и спорной “объектно-ориентированной” функцией, называемой прототипами объектов. И что же здесь особенного?

    В основном, все проблемы, возникающие при использовании JavaScript, являются виной только людей, которые его используют: они невежественны, они ленивы, они привыкли к тому, как программирование выполняется на Java или Python.Чего же они не знают? Функционального программирования?

    Почему же тогда люди не ошибаются при использовании других языков ФП, таких как C#, Clojure, Dart, Elm, Erlang, F#, Julia, Haskell, Scala и Scheme? Функциональное программирование является достаточно хорошо понятной парадигмой в IT-индустрии. Так что же тогда делает JavaScript, таким особенно проблематичным в этом отношении?
    Читать дальше →
  • Всё, что нужно знать об автоматических переносах в CSS

    • Перевод


    Недавно меня пригласили выступить с вечерней лекцией в Типографском обществе Австрии. Для меня стало большой честью последовать по стопам таких светил, как Мэтью Картер, Вим Краувел, Маргарет Калверт, Эрик Шпикерман и покойная Фреда Сэк.

    Я рассказал о некоторых золотых правилах типографики в интернете, а потом во время секции QA меня спросили о текущей ситуации с автоматическими переносами в вебе. Это хороший вопрос, особенно с учётом того, что немецкий язык знаменит часто используемыми длинными существительными (например, Verbesserungsvorschlag означает «предложение для улучшения»), поэтому переносы широко используются в большинстве письменных носителей.
    Читать дальше →
  • Univention Corporate Server (UCS) — установка простого и удобного LDAP сервера с web-панелью и его связка с Nextcloud

    • Tutorial


    Рано или поздно на любом маленьком или среднем предприятии возникает задача по созданию единого центра авторизации пользователей в многочисленных сервисах и порталах компании. Среди кандидатов на такой центр авторизации сразу приходит в голову Microsoft Active Directory или одна из реализаций на базе Linux.

    В данном цикле статей мы будем использовать Univention Corporate Server (далее по тексту UCS) как удобный и простой в использовании сервер LDAP авторизации с понятным web-интерфейсом и встроенным магазином приложений. Данный продукт разработан немецкой компанией Univention GmbH.

    В этой статье мы опишем установку UCS и разворачивание Nextcloud с возможностью последующей авторизации через LDAP.

    В следующих статьях мы так же подключим к UCS еще почтовый сервер Zimbra и портал OnlyOffice.
    Читать дальше →
  • NetBIOS в руках хакера

      В данной статье пойдёт краткое повествование о том, что нам может рассказать такая привычная с виду вещь как NetBIOS. Какую он может предоставить информацию для потенциального злоумышленника/пентестера.
      Читать дальше →
      • +26
      • 9,6k
      • 2
    • Как браузер помогает товарищу майору

        Знаете, когда я почти нечаянно обнаружил, читая прекрасную книгу Дмитрия Кетова «Внутреннее устройство Linux» (и это не реклама), что каждый скачанный нами файл из Интернета с легкой руки браузера оставляет в расширенных атрибутах файла (в inode файла, не в самом файле) как минимум полную ссылку на то откуда он был скачан, я пришел в легкое возбуждение и хотел тут же броситься спасать мир. Позже, немного изучив этот вопрос, почитав «коммиты» и «комменты», говорившие, что этой возможности, встроенной в ядро GNU/Linux, как минимум уже около 10 лет, что ею пользуется не только браузеры, но и, к примеру, популярная утилита wget (curl нет), и что эта вещь считается чуть ли не нормой в Linux (и, как выяснилось позже, в MacOS), то я немного подуспокоился. Одно не давало мне покоя: поиск ключевого слова getfattr в google по сайту «Хабра»: site:https://habr.com getfattr, равно как и по ЛОРУ: site:https://linux.org.ru getfattr ничего толком не дал. «Значит» — подумал я — «эта тема еще особенно не обсуждалась». — Что же, тогда пришло время ее обсудить, но для начала пришлось немного по-исследовать. И вот что я обнаружил:

        image
        Читать дальше →
      • Изучаем Docker, часть 2: термины и концепции

        • Перевод
        В первой части перевода серии материалов, посвящённых Docker, мы сделали общий обзор этой системы. В частности, мы говорили о том, почему технологии контейнеризации важны в наше время, о том, что такое контейнеры Docker, и о том, с чем их можно сравнить. Сегодня мы поговорим об экосистеме Docker и рассмотрим важные термины, с которыми вы можете столкнуться на пути изучения и использования Docker. Продолжив аналогию с разными вкусностями, представим, что наши термины — это пончики. Дюжина пончиков.

        Часть 1: основы
        Часть 2: термины и концепции
        Часть 3: файлы Dockerfile
        Часть 4: уменьшение размеров образов и ускорение их сборки
        Часть 5: команды
        Часть 6: работа с данными



        Читать дальше →
      • Почему Windows XP в 2019 году по-прежнему рулит, или ЧЯДНТ?

        На Хабре в комментариях к статьям о выходе новых версий операционных систем, выпуске новых моделей ноутбуков, накопителей данных, модулей памяти и т.п. регулярно высказывается мнение о том, что только наипоследнейшая версия операционной системы известного вендора даёт возможность современному гику не скатиться в унылое г… очувствовать себя человеком, и только тот, у кого стоитустановлена Windows 8, 10, 11, 9000 (нужное подчеркнуть), будет пользоваться популярностью у девушекработодателей и клиентов. По причинам изложенным ниже я полагаю таковое мнение глубоко ошибочным и даже ущербным, показывающем неспособность владельца компьютера оптимально использовать имеющиеся в его распоряжении аппаратные и программные ресурсы.
        Читать дальше →
      • К вопросу о буферах (кольцевых)

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


          — не могу точно вспомнить источник

          Когда то, «давным-давно, в одной далекой галактике», я приобрел замечательную книгу Чарльза Уэзерелла «Этюды для программистов», в предисловии к которой автор обосновывал необходимость изучения учебных примеров и задач перед тем, как начать самостоятельное программирование. Настоятельно рекомендую данную книгу найти, предисловие прочитать (и не останавливаясь на этом, прочитать оставшуюся часть и решить приведенные в ней задачи), поскольку лучше автора обосновать необходимость подобной практики я не смогу. Даже если Вы последуете моей рекомендации, и получите множество знаний и практических навыков при чтении упомянутой книги, можно будет вернуться и дочитать данный пост, поскольку он посвящен несколько иным вопросам. А если Вы моим рекомендациям не последуете, то тем более следует войти под кат.
          Читать дальше →
        • Инициализация в С++ действительно безумна. Лучше начинать с Си

          • Перевод
          Недавно мне напомнили, почему я считаю плохой идеей давать новичкам C++. Это плохая идея, потому что в C++ реальный бардак — хотя и красивый, но извращённый, трагический и удивительный бардак. Несмотря на нынешнее состояние сообщества, эта статья не направлена против современного C++. Скорее она частично продолжает статью Саймона Брэнда «Инициализация в C++ безумна», а частично — это послание каждому студенту, который хочет начать своё образование, глядя в бездну.

          Типичные возражения студентов, когда им говорят об изучении C:

          • «Кто-то его ещё использует?»
          • «Это глупо»
          • «Почему мы изучаем C?»
          • «Мы должны учить что-то лучшее, например, C++» (смех в зале)
          Читать дальше →
        • Neutralinojs — что ты такое? Или UNIX way там, где не ждали

            Недавно я совершенно случайно наткнулся на простую рекламную заметочку "Neutralinojs — альтернатива Electron, потребляющая меньше памяти", рассказывающую о том, что есть такая крутая вещь как Neutralinojs. Заметочка, как и следует ей быть, совсем короткая и не несёт никакой полезной информации, кроме рекламного лозунга "Лучше чем <что-то популярное>!"


            Примерно понимая как работает Electron и NW.js и не найдя совершенно никакого упоминания о принципе работы этого нового и суперкрутого "чудо-зверя" в заметке, я начал исследования.


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



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


            • Почему оно ест в разы меньше памяти?
            • Какие даёт ещё плюшки?
            • Для чего мне это чудо использовать?

            Почему не жрём память?


            Покопавшись в исходниках и двух достаточно информативных картинках об архитектуре, я понял, что этот проект работает именно по тому самому UNIX Way, который любят все линуксоиды. Философия проекта проста: зачем придумывать новый велосипед, если можно использовать уже готовый?

            Читать дальше →
          • VyOS OpenSource Router

              В этой статье я хотел поднять не стандартную для меня тему о сетевом маршрутизаторе VyOS. Впервые я познакомился с этим проектом благодаря Нилу Андерсону (Neil Anderson) который составил гайд как у себя дома развернуть мини-лабораторию с NetApp симулятором и VyOS.


              Ключевые проекты


              VyOS это opensource проект на базе Debian Linux, который родился как форк от проекта Vyatta Core Edition of the Vyatta Routing software. Как и любой роутер VyOS оперирует на третьем уровне OSI и маршрутизирует North-South трафик. VyOS включает в себя следующие ключевые проекты:

              • Debian 8, ядро 4.19
              • FRRouting (в версии 1.1 и более древних использовался Quagga)
              • ISC-DHCP
              • Keepalived
              • StrongSwan
              • OpenVPN
              • PowerDNS
              • Wireguard
              • OpenNHRP
              • Accel-ppp
              • xL2tpd
              • Squid
              • mDNS-repeater
              • IGMP-Proxy
              • iPerf
              • более детальный список в Release notes

              Настроить корпоративную сеть с VyOS роутером
            • Решение проблем с установкой .NET Framework 3.5 на Windows 8 в сети с WSUS

              Иногда случаются ситуации, когда пользователю Windows 8 необходимо установить .NET Framework 3.5 — чаще всего, это необходимо для обеспечения работоспособности некоторых, относительно старых, программ. В большинстве случаев все проходит без проблем. Однако, недавно возникла ситуация — данный фреймворк отказался устанавливаться на компьютер, находящийся в доменной сети AD с настроенным локальным сервером обновлений WSUS.
              Читать дальше →
            • История одного лендинга: привлек много клиентов и был скопирован под сотню раз

                Привет, Хабр! Я Руслан Кокин, UX-дизайнер в компании UXhot, и у меня есть необычная история про лендинг, а также состояние копирайта в России.



                Среди созданных нами продуктов есть по-настоящему легендарный лендинг пейдж, ставший донором для зарождающегося в интернете сегмента механизированной штукатурки. За три года работы он не только привлёк много клиентов, но и был скопирован почти 100 раз. Хотите узнать, что такого особенного в нем было?
                Читать дальше →
              • Каждому по Landing Page. Наболевшее

                  То ли с подачи Бизнес Молодости, то ли по иным причинам, сейчас только ленивый не предлагает разработку Landing Page. И на то есть причины. Согласно глобальной идее, лендинг – эта такая особая страница, которая технично должна превращать посетителей в лиды со значительно большей вероятностью, чем это умеет делать сайт в привычном понимании.


                  Сатира на большинство «лендинг пейджей»
                  Читать дальше →
                • Открытый вебинар «Порядок выполнения запроса SELECT и план запроса в MS SQL Server»

                    И снова привет!

                    Коллеги, в последний день января мы запускаем курс «MS SQL Server разработчик», в связи с чем у нас прошёл тематический открытый урок. На нём мы поговорили о том, как MS SQL Server выполняет запрос SELECT, обсудили, в каком порядке и что анализируется, а также немного погрузились в чтение плана запроса.

                    Преподаватель — Кристина Кучерова, архитектор модели данных в Сбербанке России.

                    Читать дальше →
                    • +21
                    • 7,3k
                    • 9
                  • Полупрозрачный фон

                    Я хотел бы показать как быстро сделать полупрозрачный фон. Если в CSS использовать команду opacity, то фон конечно же станет прозрачным, но вместе с ним также и всё остальное что на нём находится.

                    Как же исправить эту проблему? Я порылся в Интернете и нашёл замечательный способ, о котором я вам сейчас и поведаю.

                    Допустим, это ваш сайт (html):

                    <html>
                    	<head>
                    		<meta charset="UTF-8">
                    		<link rel="stylesheet" href="style.css">
                    		<title>
                    			Полупрозрачный фон
                    		</title>
                    	</head>
                    		<body>
                    			<div class="mid">
                    				<p>Ваш текст</p>
                    				Ваш текст. Ваш текст.
                    			</div>
                    		</body>
                    </html>
                    

                    Строчка "" подключает файл стилей CSS.
                    Читать дальше →
                  • Почему строить базу знаний компании на основе mediawiki — недурная затея



                      В последнее время Confluence и sharepoint стали почти безраздельно править на рынке баз знаний. Системы отличные, не спорю, но лично мне не хватает их гибкости да и в целом как-то не срослось: вики-возможности sharepoint остались где-то на уровне 2005 года (про работу с офисными документами молчу, с ними все гуд), а Confluence в силу своих особенностей с ростом числа статей неумолимо превращался в свалку, в которой невозможно найти что-либо нужное (но, может, проблема была во мне).

                      Не умаляя достоинства этих систем, хотелось бы рассказать о том, какие возможности есть у Mediawiki в роли корпоративной базы знаний. Само собой, mediawiki подойдет не всем — в ней нет модной интеграции с jira/tfs/etc, перенос документов с картинками из пакета Microsoft Office доставляет кучу неудобств, да и сама она написана на PHP, что в последнее время служит отпугивающим фактором для некоторых айтишников. Тем не менее, платформа живее всех живых и над ее развитием работает изрядное количество людей, коль скоро на ней базируется семейство проектов фонда Викимедиа.
                      Читать дальше →
                    • Как CSS специфичность работает в браузере

                      • Перевод
                      Многие считают CSS сложным. Они придумывают разные оправдания: не хватает способностей понимать CSS или CSS сам по себе плох. Но реальность такова, что люди просто не нашли время, чтобы действительно изучить его. Если вы читаете эту статью, значит заинтересованы в изучении CSS и это здорово!

                      image

                      Что такое CSS специфичность?


                      Вы когда-нибудь писали стиль, а он не работает, потом вы добавляете !important (или нет), и все же он не работает? Затем вы смотрите на Devtools и понимаете, что другой стиль где-то перекрывает ваш?

                      В этом и заключается специфичность CSS! Именно так браузер выбирает, какой из конкурирующих селекторов применить к элементу. Когда браузер видит, что два или более селектора совпадают с одним и тем же элементом, и у селекторов есть конфликтующие правила, ему нужен способ выяснить, какое из правил применить к этому элементу. То, как это происходит, называется «значение специфичности CSS».

                      Прежде чем мы углубимся в CSS специфичность, запомните эти вещи:
                      Читать дальше →
                      • +14
                      • 3,4k
                      • 3
                    • Преимущества анализа приложений 7 уровня в межсетевых экранах. Часть 1. Основы


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

                        Почему появилась эта статья?

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

                        Читать дальше →
                      • Приостанавливаем выполнение приложения, если пропало соединение с сетью

                          Под катом, небольшая заметка о том, как приостановить выполнение вашего приложения при обрыве связи с интернетом и продолжить — когда она будет восстановлена.
                          Читать дальше →