Обновить
0
@originat0rread⁠-⁠only

Пользователь

Отправить сообщение

JavaScript: изучаем регулярные выражения на практике

Время на прочтение18 мин
Охват и читатели77K

image


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


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


В данной статье мы сосредоточимся на валидации.


Что конкретно мы будем делать? Мы возьмем несколько регулярок из validator.js (наиболее популярной библиотеки для валидации данных с помощью регулярных выражений) и произведем их подробный разбор. Также мы рассмотрим несколько дополнительных регулярок и один алгоритм.


Как результат, мы реализуем несколько полезных функций, которые вы впоследствии сможете использовать в своих проектах.

Читать дальше →

Учимся читать код, изучая стандартную библиотеку Python

Время на прочтение5 мин
Охват и читатели45K


Итак, вы уже продвинутый новичок — вы изучили основы Python и способны решать реальные задачи.

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

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

Но какой же код нужно читать?

«Просто читай то, что нравится». А если вы не знаете, что вам нравится? А если вам не нравится что-то правильное?

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

В конечном итоге, для этого ведь необходимо понимание… Но именно его мы и стремимся обрести.

«На GitHub куча проектов — выберите понравившийся и изучайте, как его реализовали разработчики». Однако самые успешные проекты довольно объёмны — с чего начинать?

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

Да, вы видите код своими глазами, но он не говорит вам о том, почему разработчики написали его так, чего они не делали и как они рассуждали о проекте в целом.

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

В этой статье мы рассмотрим некоторые модули стандартной библиотеки Python.
Читать дальше →

Обзор самых неоднозначных проектов на Kickstarter

Время на прочтение9 мин
Охват и читатели15K


С появлением краудфандинговых сервисов у креативных и предприимчивых людей появилась возможность реализовать свои идеи на массовом рынке. Много ли надо для успешной реализации такого проекта? Очевидно, что идея должна быть, как минимум, интересной, нужной, а еще желательно и оригинальной.  За примерами успешных проектов далеко ходить не надо: очки виртуальной реальности «Oculus Rift», наручные часы «Pebble», макрообъектив «Laowa», сумка-рюкзак для фотографов «The Everyday» и тысячи других интересных проектов.
Однако, по разным причинам, не все идеи находят поддержку среди спонсоров. Здесь я приведу свой, слегка приправленный сарказмом, топ странных кампаний Кикстатретра. Итак, поехали!

Apollo 11 Command Module Illuminate Control Panel


Начнем с маленького шага для одного человека, но большого для всего человечества — точная копия панели управления командного модуля ракеты Сатурн-5.


Предлагаются три полноразмерные панели управления командными модулями общей шириной 82 дюйма, высотой 33 дюйма и глубиной 7 дюймов. При чем руководитель группы этого продукта Марк Ласофф, получил премию Оскар за свою работу над фильмом «Титаник». Также он работал над картинами «Аполлон-13», «Аватар» и «Легенды космического центра НАСА». Ума не приложу кому и зачем это надо, но кампания по сбору средств еще не закончена, и вы можете приобрести себе полномасштабную модель за $795 или ограниченную серию из бронзы за $9500. Для успешного завершения кампании, требуется собрать 280 000 долларов США. Пока собрано чуть более одной тысячи долларов. Ну что же, пожелаем успеха марку Лассофу.
Читать дальше →

Сговор и жульничество в академических кругах

Время на прочтение7 мин
Охват и читатели34K

«Он не публиковался» © Mischa Richter

На Хабре много говорилось о проблеме "publish or perish" (публикуйся или умри), фейковых журналах и конференциях, накрутке числа публикаций и индекса цитируемости, фальшивых «соавторах», даже о генераторах псевдонаучных текстов. Но в 2021 году выявилось ещё одно очень неприглядное явление: круговое голосование рецензентов. Когда статьи выбирают не по значимости, а по именам авторов, то это подрывает основы взаимного доверия и цельность всей научной области.

Конечно, тут ничего нового и «все всё знали». Просто нарыв наконец-то вскрылся…

На одной из конференций раскрыли попытку жульничества в системе отбора публикаций. К сожалению, «отличилась» наша отрасль — информатика (computer science).
Читать дальше →

Протоколу BitTorrent 20 лет: как изменить ход развития Интернета с помощью «словаря» и сарафанного радио

Время на прочтение6 мин
Охват и читатели22K
Двадцать лет назад относительно неизвестный в то время программист по имени Брэм Коэн в одиночку совершил революцию в сфере технологий обмена файлами. Тогда социальные сети ещё не были развиты, но BitTorrent особо и не нуждался в лайках. Со временем он был оценён по достоинству в ИТ-сообществе. В начале двухтысячных новый протокол обмена файлами изменил ход развития Интернета.

«Наконец-то заработало моё новое приложение BitTorrent, оно доступно по ссылке ниже», — написал Коэн на доске объявлений Yahoo!.. Это было 2-го июля 2001 года.


Вероятно, за всю историю ИТ это была одна из самых, мягко говоря, лаконичных PR-кампаний в поддержку запуска нового продукта. Не впечатлил и «дизайн» официального сайта с чёрным текстом на белом фоне: весь сайт — несколько строк HTML-кода. Тогда никто не мог представить, какую роль в развитии всего Интернета сыграет BitTorrent.

Полное отсутствие маркетинговой составляющей Брэм Коэн компенсировал за счёт технических характеристик продукта. Он ранее работал в стартапе, команда которого трудилась над одноранговой сетью MojoNation. Потом у этого проекта закончилось финансирование, и 25-летний разработчик сосредоточился на развитии собственного проекта — протокола для обмена файлами.
Читать дальше →

Автоматизируем работу с контейнерами через Makefile: сборка, тестирование и развёртывание за один вызов make

Время на прочтение7 мин
Охват и читатели15K
Утилита make позволяет просто управлять контейнерами, объединив команды для сборки, тестирования и развёртывания в одном конфигурационном файле.


Разработчики многие годы используют утилиту make. При запуске утилита читает файл с описанием проекта (Makefile) и, интерпретируя его содержимое, предпринимает необходимые действия. Файл с описанием проекта представляет собой текстовый конфигурационный файл, где описаны зависимости и команды, которые необходимо выполнить. Он похож на Dockerfile или другой файл конфигурации контейнера: там тоже указаны команды, на основе которых формируются образы для развёртывания контейнеров.

В этой статье я расскажу о том, как управлять контейнерами, используя Makefile. Контейнерный конфигурационный файл описывает образ контейнера, а Makefile описывает процесс сборки проекта, тестирование и развёртывание, а также другие полезные команды.

Цели и структура Makefile


Утилита make по умолчанию установлена в большинстве современных Linux-дистрибутивов, поэтому проблем с её использованием обычно не возникает. И чтобы начать её использовать, нужно создать файл с именем Makefile.
Читать дальше →

Ещё одна 0-Day-уязвимость угрожает многим пользователям Western Digital

Время на прочтение4 мин
Охват и читатели8.3K
image

В прошлом месяце из-за бага в линейке продуктов, которую компания прекратила поддерживать в 2015 году, а также из-за ранее неизвестной уязвимости «нулевого дня» бесчисленное количество покупателей Western Digital потеряло данные на сетевых накопителях MyBook Live. Но подобные серьёзные уязвимости «нулевого дня» присутствуют в гораздо большем количестве более новых сетевых накопителей Western Digital MyCloud. Они не устраняются у тех покупателей, которые не могут или не желают обновляться до последней версии операционной системы.

Проблема с удалённым исполнением кода присуща всем NAS-устройствам Western Digital с операционной системой MyCloud OS 3, которую компания перестала поддерживать только недавно.

Её высочество Пуля

Время на прочтение8 мин
Охват и читатели45K


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

Её сиятельство Гильза

Время на прочтение6 мин
Охват и читатели39K

«Есть многое на свете, друг Горацио, что и не снилось нашим мудрецам». У Вильяма нашего Шекспира эта фраза подразумевала различную паранормальщину, вроде тени отца Гамлета, намекавшей на совершение ряда тяжких преступлений, но если внимательно присмотреться, то и появление многих привычных нам вещей тоже представляется многим людям магией. И совсем необязательно это Большой Адронный Коллайдер, желанная, но дефицитная игровая видеокарта или 8К-телевизор от Самсунга. Это может быть гораздо более простая вещь – например, патрон. Пистолетный, винтовочный, револьверный – неважно. Патрон является вроде бы и мелким, но очень важным персонажем в мировой военной истории. Мы читаем про дефицит патронов в Российской Императорской Армии и ужасаемся ему. А потом со сходными чувствами – про винтовку с пятью патронами на человека в РККА. Или истории про отказ в приёме на вооружение автоматических образцов, потому что расход патронов будет излишне велик. И постоянно этот персонаж возникает в сюжете в связи с какими-то перипетиями – недостатком, срывом поставок, освоением производства, проблемами с качеством. Зато, когда с ним нет проблем, он незаметен.

При этом само производство патронов обычно остаётся за кадром. Ну как-то их там делают, причём миллионами и миллиардами. Магия, да и только. А где магия, там и мифы, вроде самого живучего – про диаметр советских папирос и макарон, равный 7.62 мм, что якобы позволяет развернуть производство патронов на любой макаронной фабрике за два часа.Итак, говорить будем про унитарный патрон в металлической гильзе.
Читать дальше →

Как я учил студентов Северной Кореи разрабатывать ПО с открытым исходным кодом

Время на прочтение6 мин
Охват и читатели19K
В 2016 году я отправился в Северную Корею, чтобы учить студентов магистратуры тому, как участвовать в разработке ПО с открытым исходным кодом. Вот фотография с одной из моих лекций:


В рамках курса студенты должны были опубликовать патчи для выбранного ими проекта. В этой статье я расскажу о том, как два патча были внесены в популярные библиотеки машинного обучения mlpack и vowpal wabbit. Я считаю, что эти примеры подчёркивают, что научное сотрудничество между северокорейцами и американцами может принести выгоду обычным гражданам обеих стран и улучшить дипломатические взаимоотношения.
Читать дальше →

Видеосалоны. Ретроспектива

Время на прочтение21 мин
Охват и читатели21K
Этот шухер, этот сон — видеомагнитофон,
Мой дружбан взял анадысь на толпе,
Купил за семь кусков всего, не жрал не ел он целый год,
Ну совсем мой корефан опупел.
Я пришёл к нему вчера, чтоб позырить до утра,
Драки, секс, вампиров, трупов, Брюса Ли,
Я глазел во все глаза и мой разум отказал,
А по утру меня в психушку отвезли.
Вида-ак! (с) Сектор Газа «Видак»


Сегодня разговор пойдет о модных течениях в СССР 80-х — просмотре кино. Но не абы какого, а западного. Вместе с Перестройкой, к нам широким шагом, влетая буквально с «двух ног», ворвалась кинопродукция Голливуда, заполнив собою всё культурное пространство.

image
Видеосалоны. Советское детство в миниатюрах Зои Черкасской.

Прародитель Mac — Macintosh 128k. История создания и начинка

Время на прочтение8 мин
Охват и читатели15K


История компании Apple невероятна: от гаража до одной из самых крупных компаний в мире. Сейчас Apple задает тренды и определяет, что будет модно завтра. Красивая упаковка, «челочка» у смартфона, да и вообще сам смартфон. Может быть, Apple и не были первыми, кто это придумал, но именно они задали на это моду. А история серии компьютеров Mac начиналась с очень интересного гаджета — Macintosh 128k. Давайте посмотрим, как его создавали и что он из себя представлял.

История создания


Разработка Macintosh началась в 1979 году с инициативы Джефа Раскина. Он хотел создать недорогой и удобный персональный компьютер для широких масс. Но перед тем, как набрать команду, необходимо было решить вопрос о названии. Выбор пал на сорт яблок Мекинтош. Во-первых, это был любимый сорт яблок Раскина. А во-вторых, о, неожиданно, это же Apple. На этом этапе у Apple возникли некоторые проблемы с таким названием, поскольку оригинальное название сорта яблок — McIntosh — было частью названия компании McIntosh Laboratory. Решили выбрать всем известный вариант, на который пришлось приобрести права. 

В команду за несколько лет разработки к Раскину попали следующие люди:
Читать дальше →

Пар против бензина

Время на прочтение9 мин
Охват и читатели45K

О чём подумает обыватель услышав о паровом автомобиле? Наверное, на ум придут неспешные паровозы, громоздкие котлы, закипающие по полчаса, да клубы пара и дыма. Паровая машина ассоциируется с чем угодно, но только не с образом небольшого проворного автомобиля, по виду которого и не скажешь, что под капотом у него нет привычного ДВС.

Какое-то время автомобили с электродвигателями, паровыми машинами и ДВС успешно конкурировали друг с другом на рынке. В 1902 году в Америке из 909 новых зарегистрированных автомобилей 485 были паровыми. Но уже к началу 1910-х конструкторы смогли значительно улучшить ДВС введя такие новшества, как электростартер. Эпоха пара стремительно заканчивалась. Самые совершенные паровые автомобили 1920-х годов совершили свой последний рывок, но не смогли составить конкуренцию массовым и недорогим карбюраторным машинам. О них мы сегодня и поговорим.
Читать дальше →

Добро пожаловать в мир интровертов

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

Даже если ты «лучше» справляешься с работой, то это не гарантия того, что тебя повысят. Должность/девушка/дом/лучший кусок пирога доставались самому громкому и обаятельному.


Миром больше не управляют самые громкие


Но сейчас мы стали свидетелями тектонического сдвига.

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

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

Откуда взялся 'do' в вопросах и отрицаниях?

Время на прочтение5 мин
Охват и читатели12K

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

Важно понимать, что вспомогательные глаголы для образования сложных времён — это не что-то особенное, и у нас они тоже есть: рус. буд.вр. он будет писать письмо, укр. дпр.вр. він був написав листа. Более того: колебания между использованием и неиспользованием вспомогательного глагола русскому языку тоже знакомы: в древнерусском было два простых прошедших времени (аорист, невѣжѧ писа недума каза "незнающий написал, недумающий показал", и имперфект, ѡни моляхуся аз же глумляхъся "они молились, а я шутил") и впридачу сложное, перфект: еси приходиле в русь "ты приходил в Русь", зарубати посылали есмо "мы посылали зарубать". Простые прошедшие времена исчезли из всех славянских языков, кроме болгарского и македонского; с перфектом же произошла более интересная история...

Читать далее

Трансконтинентальные суперсети постоянного тока

Время на прочтение10 мин
Охват и читатели23K

22 февраля 2017 года в Пекине рабочая группа по развитию глобального энергетического Интернета опубликовала результаты трёх исследовательских проектов: «Белую книгу о стратегии развития глобального энергетического Интернета», «Технологии и перспективы трансграничной и трансконтинентальной электронной межсистемной связи» и «Развитие и будущее глобального энергетического Интернета (2017)», в которых была предложена система стратегии глобального энергетического Интернета, идеи и пути развития, описаны перспективы строительства экологически чистой, низкоуглеродной, взаимосвязанной и совместно используемой глобальной энергетической общности. В статье отмечается, что обсуждение строительства глобального энергетического Интернета — инициатива, выдвинутая председателем КНР Си Цзиньпином на саммите ООН по глобальному развитию 26 сентября 2015 года, направленная на содействие удовлетворения глобального энергетического спроса чистыми и зелеными способами. Эта инициатива получила широкое одобрение и позитивные отклики со стороны международного сообщества. В марте 2016 года в Пекине была официально создана рабочая группа по развитию глобального энергетического Интернета, став первой международной организацией в сфере энергетики в Китае, первая партия членов включает 80 стран c пяти континентов. Энергетическая, информационная и транспортная сеть — интеграция этих трёх сетей рассматривается как неизбежная тенденция современного глобального развития. Информационная и транспортная сети уже реализуют глобальную связь, развитие энергетической сети заметно отстает.

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


Читать дальше →

Коммерческая тайна добро или зло?

Время на прочтение3 мин
Охват и читатели3.2K

Эту статью я написал благодаря одному из комментариев, которую читатель оставил под моей публикацией «Как правильно работать с коммерческой тайной».

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

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

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

Но вернемся к комментарию, с которого и началась эта статья:

Читать далее

Тесты на антиутопию: искусственный интеллект GPT-J-6B пишет программный код (попутно раскрывая план восстания машин)

Время на прочтение16 мин
Охват и читатели15K


Компания OpenAI отказалась открывать исходный код алгоритма обработки естественного языка третьего поколения (модель называется GPT-3, имеет 175 миллиардов параметров). Поэтому другие компании разрабатывают свои модели. Они имеют меньше параметров, но похожую архитектуру и после обучения тоже показывают впечатляющие результаты.

Например, GPT-J от компании EleutherAI с 6 миллиардами параметров, разработанная Араном Комацзаки и Беном Вангом, также имеет сходства с GPT-3. У них есть бесплатное веб-демо, чтобы попробовать подсказки и ноутбук Google Colab. Модель не такая большая, как GPT-3, но для генерации текста с разумной скоростью ей уже требуется Google Cloud TPU.

Запуск GPT-J с моими тестовыми подсказками, в сравнении с тестами GPT-3, показал более слабые результаты на большинстве из них, но есть одно большое НО:

Генерация программного кода на GPT-J работает очень хорошо, а на GPT-3 — очень плохо.


Полный тред в твиттере

Такое поведение, вероятно, связано с обучающим набором GPT-J: его обучали на The Pile, который имеет больше входных данных с GitHub и Stack Overflow по сравнению с обучающим набором GPT-3 (там в основном Common Crawl, текстовый интернет-контент общего назначения).
Читать дальше →

Почему спуфинг устройств сегодня становится практически невозможным

Время на прочтение6 мин
Охват и читатели12K
Если вы смотрели фильм Квентина Тарантино «Бесславные ублюдки», то, вероятно, помните, сцену в баре, когда замаскированный британский шпион выдаёт себя бессознательным жестом.

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


Неотъемлемая угроза мелких деталей.

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

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

Идеальный инструмент для работы с СУБД без SQL для Node.js или Все, что вы хотели знать о Sequelize. Часть 1

Время на прочтение22 мин
Охват и читатели123K

Представляю вашему вниманию руководство по Sequelize.


Sequelize — это ORM (Object-Relational Mapping — объектно-реляционное отображение или преобразование) для работы с такими СУБД (системами управления (реляционными) базами данных, Relational Database Management System, RDBMS), как Postgres, MySQL, MariaDB, SQLite и MSSQL. Это далеко не единственная ORM для работы с названными базами данных (далее — БД), но, на мой взгляд, одна из самых продвинутых и, что называется, "battle tested" (проверенных временем).


ORM хороши тем, что позволяют взаимодействовать с БД на языке приложения (JavaScript), т.е. без использования специально предназначенных для этого языков (SQL). Тем не менее, существуют ситуации, когда запрос к БД легче выполнить с помощью SQL (или можно выполнить только c помощью него). Поэтому перед изучением настоящего руководства рекомендую бросить хотя бы беглый взгляд на SQL. Вот соответствующая шпаргалка.


Это первая из 3 частей руководства, в которой мы поговорим о начале работы с Sequelize, основах создания и использования моделей и экземпляров для взаимодействия с БД, выполнении поисковых и других запросов, геттерах, сеттерах и виртуальных (virtual) атрибутах, валидации, ограничениях и необработанных (raw, SQL) запросах.


Вторая часть.
Третья часть.


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

Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность