Pull to refresh
-30
Ошнуров Андрей @andreoshread⁠-⁠only

Программист

Send message

Конспектируем Книгу Rust:: Владение

Reading time8 min
Views18K

Перед вами краткое профессиональное описание особенностей языка Rust для профессионалов.


Что это такое?
  • краткое — информации будет гораздо меньше, чем в Книге (The Rust Programming Language)
  • профессиональное — информации будет гораздо больше, чем в Книге;
  • описание особенностей — фокусируемся на отличиях Rust от других языков;
  • языка — описывается именно язык, а не установка средств разработки, управление пакетами и прочий инструментарий;
  • для профессионалов — подразумевается, что читатель имеет существенный опыт в разработке ПО.

Чего здесь НЕ будет


  • Не будет агитации за Rust
  • Не будет легко. Для освоения потребуется неделя-другая вдумчивого чтения по часу в день, с тщательным разбором примеров, как-то так

Содержание


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

Тест библиотек построения диаграмм классов, исследуя исходный код популярных js библиотек

Reading time8 min
Views4.8K

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

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

Читать далее

Четыре проекта с веб-скрейпингом, которые позволят упростить себе жизнь

Reading time5 min
Views25K
image

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

Веб-скрейпинг — это процесс извлечения данных с веб-сайта. Для изучения веб-скрейпинга достаточно пройти туториал о принципах работы таких библиотек Python, как Beautiful Soup, Selenium или Scrapy; однако если вы не будете применять на практике все изученные концепции, то время окажется потраченным впустую.

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

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

Диаграмма Сэнкей (Sankey diagram) на Python

Reading time10 min
Views26K

В этой статье рассмотрим, как пошагово создать диаграмму Сэнкей - от загрузки и генерирования необходимых данных до сохранения полученной диаграммы. Используемые инструменты - python, pandas и plotly.

Читать далее

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

Reading time20 min
Views4.7K

Введение


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


Возникает вопрос — как можно ускорить построение конечных автоматов по регулярным выражениям? У меня как-то раз возникла идея, как это можно сделать — для этого можно применить настоящий компилятор, который может генерировать максимально эффективный машинный код. Эту идею я решил опробовать на практике, используя библиотеку LLVM как компилятор/оптимизатор для регулярных выражений. Что из этого вышло, будет изложено ниже в данной статье.

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

Архитектура процессора Эльбрус: стоит ли все это своих денег?

Reading time12 min
Views89K


В России всего несколько компаний, занимающихся разработкой процессоров. Одна из этих компаний — МЦСТ с процессорами «Эльбрус». В целом, МЦСТ делает акцент на том, что их процессоры — российские, и государство всячески помогает ей. Во-первых, государство является основным потребителем «Эльбруса», поскольку обычному потребителю такой процессор на данный момент не нужен. А во-вторых, государство выдает субсидии на проекты МЦСТ и принимает инициативы, упрощающие деятельность этой компании  В этой статье пойдет речь о семействе процессоров «Эльбрус» и о том, что они могут предложить вместо процессоров из-за «бугра».

Процессоры «Эльбрус»


Советский период


В конце 60-х годов 20-го века в СССР была принята государственная директива, которая обозначала дальнейший вектор развития компьютеростроения СССР как копирование наработок западных коллег, в частности компьютера IBM S/360. В целом, многие советские инженеры, в том числе и отец советской кибернетики Сергей Лебедев, отзывались скептически о таком решении. По мнению Лебедева, путь копирования по определению является дорогой отстающих. Но других вариантов никто не видел или не хотел видеть.
Читать дальше →

PHP 8: observability из коробки. Наблюдаемость среды выполнения

Reading time9 min
Views5.9K

За последние два десятилетия виртуальная машина Zend Engine, лежащая в основе PHP, претерпела определенные улучшения. Значительный скачок производительности произошел с выходом версии PHP 7, в которой ощутимо выросла производительность WordPress и других традиционных веб-приложений. В версии PHP 8, в свою очередь, появился JIT-компилятор, значительно ускоривший выполнение ресурсоемких алгоритмов.

Однако основная ловушка наблюдения, используемая трассировщиками, профилировщиками и отладчиками для наблюдения за поведением вызова функций PHP, не развивалась параллельно улучшениям Zend Engine и все сильнее замедляла работу наблюдаемых PHP-приложений. Например, трассировщик Datadog PHP просто не мог развиваться с учетом нововведений PHP 8 без изменения ловушки наблюдения.

Выпуск PHP 8 включает в себя изменения, которые привносят в среду выполнения PHP современный уровень наблюдения. Наша команда совместно с сообществом разработчиков движка PHP разработала и выпустила новый API наблюдателя. Перед выпуском этого API мы, как и другие PHP-разработчики, столкнулись со множеством проблем.

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

Читать далее

Самодельные библиотеки ассемблера FASM

Reading time3 min
Views5.2K

Здесь я немного расскажу о библиотеках strnum.inc и myMSVlib.dll, которые я сам сделал. Они могут кому-то пригодится. Я уверен что написал не без ошибок. Все ниже перечисленные функции сохраняют состояние регистров, кроме регистра eFLAGS. Исходный код прилагается. Все функции возвращают значение через EAX.

Строки должны иметь в конце завершающий нуль.

Читать далее

Как я сделал свой трекер мечты и понял цену времени

Reading time4 min
Views22K

Основной посыл этого поста - рассказать о развитии своей старой идеи, которая переделывалась несколько раз, и прошла путь от простой кривой WinForm до полноценного кросс-платформенного приложения на Electron'e.

У меня нет цели прорекламировать программу (хоть она бесплатная, без подписок и рекламы), поэтому я не буду оставлять ссылки на скачивание, просмотр, но если это разрешено - отвечу на подобные вопросы в комментариях.

Читать далее

И снова про MS Excel

Reading time5 min
Views21K

Однажды в моем инстаграме появились сразу несколько блоков рекламы по поводу ознакомительных курсов нескольких Российских онлайн-школ на тему "Аналитика данных на Python для чайников". Подумав о том, что можно с пользой для себя провести несколько часов и прокачать свои навыки по анализу, я записался и посетил данные курсы. Самое забавное, что практически все что я видел начиналось словами: "Давайте выбросим MS Excel (далее с вашего позволения просто - "эксель") и начнем работать на Python". Возмущению моему не было предела. В разумных рамках. Пройдя свой путь от разработчика (до черти как это назвать) и постоянно работая с данными, могу только привести в ответ фразу знаменитого персонажа Alf - "Вы просто не умеете их готовить".

Что можно готовить на VBA?

Счёт может быть красивым и в HTML, а не в PDF

Reading time3 min
Views11K

В статье “Что должно быть в счёте на оплату, чего быть не должно и что дико бесит” мы разбирали содержимое счёта. По результатам той работы возникло желание оформить счёт стильно ибо стандартный вариант бухгалтерских программ вроде 1С какой-то страшный.

В статье разберём плюсы генерации счетов в HTML-формате по сравнению с генерацией PDF и тюнинг версии для печати, добавим 5 копеек про ЭЦП (УКЭП).

Итак, погнали...

gRPC сервер с нуля

Reading time5 min
Views31K

  Всем приветы. В прошлом посте https://habr.com/en/post/565020/ мы сравнили gRPC и REST. И собственно, прежде чем писать новый сервер на gRPC, давайте попробуем понять нужен ли он нам действительно. Нашей команде была необходима кодогенерация на разные языки программирования. На эту роль не плохо подходил Swagger, Thrift и gRPC со встроенным кодогенератором. От Thrift, спустя какое-то время, пришлось отказаться, из-за его особенностей и сложностей поддержи на c# (по-моему это была основная причина отказа). Дальше был выбор между Swagger + REST и gRPC. В целом оба варианта хороши, но если мы думаем гонять много и часто данные между клиентом и сервером, то почему бы не протестировать gRPC?  

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

Read more about gRPC server creation.

Ваше изображение не декоративно

Reading time4 min
Views4.3K

Размещение изображений на сайте очень важно т.к. это помогает передать смысл страницы. Это значит, что почти каждое изображение, которое вы создаете, должно иметь альтернативное описание.

Читать далее

Новые форматы графики в CSS с помощью обновлённой функции image-set

Reading time4 min
Views12K

CSS функция image-set поддерживается в браузерах на основе Chromium с 2012 года, а в Safari начиная с версии 6. Недавно поддержка появилась в Firefox 88. Давайте углубимся в эту тему и посмотрим, что мы можем и чего не можем делать с помощью функции image-set ()

Читать далее

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

Reading time9 min
Views42K

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

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

13 инструментов для разработчиков, шпаргалка по Linux команде apt, вводный курс по Kubernetes Operators и многое другое

Reading time2 min
Views7.4K

Сделали для вас новую подборку шпаргалок, статей, обучающих курсов и книжек в нашем регулярном #полезногопост. Оставайтесь с нами – станьте частью DevNation!

Читать дальше: 13 инструментов...

Разработка Tizen-приложений для Samsung Smart TV: полный гайд для Javascript-разработчиков

Reading time12 min
Views53K

Эта статья рассказывает про удивительные приключения JS-разработчиков в мире ОС Tizen. В ней будет и пошаговая настройка рабочего окружения, и подключение «умного» телевизора Samsung вместе с пультом, и, конечно, сам процесс разработки и публикации приложения для Tizen Store — с примерами и подводными камнями. 

Так что если вы разделяете наше мнение о том, что Javascript — лучший язык программирования, потому что он работает практически везде – от домашнего Smart TV до кораблей SpaceX, то добро пожаловать под кат.

Читать далее

Как провести технический аудит сайта через Screaming Frog?

Reading time9 min
Views17K

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

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

Читать далее

Видеочат с возможностью совместного редактирования текста при помощи Twilio Sync

Reading time12 min
Views1.5K

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

Читать далее

I2P mail + Thunderbird + OpenPGP

Reading time7 min
Views11K

Инструкция по использованию почтового клиента Thunderbird со встроенным модулем шифрования корреспонденции OpenPGP. В примере используется почтовый сервер из скрытой сети I2P.

Читать далее

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity