IT Stack | Technologies – Telegram
IT Stack | Technologies
33 subscribers
74 photos
37 links
От нуля к единице. Как создаются большие приложения. Все о технологиях и IT компаниях. Актуальные новости в мире IT.

Связь:
@ruslan_kuyanets
Download Telegram
Что такое Шардинг?

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

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

Шардинг не только ускоряет процесс поиска данных, но и повышает производительность базы данных. Разделяя данные на отдельные "шарды", система может обрабатывать запросы параллельно, что значительно сокращает время ответа. Это особенно ценно для больших компаний с огромными объемами данных, где эффективность и скорость обработки запросов критичны.

#facts #sharding
👍1🔥1
Node.js 21

17 октября 2023 года мир увидел релиз Node.js 21, в котором реализован ряд значимых обновлений и улучшений. Среди ключевых нововведений - обновленный движок JavaScript V8 до версии 11.8 и внедрение стабильных fetch и WebStreams.

Одной из заметных особенностей новой версии стал встроенный клиент WebSocket. Это экспериментальная функция, активируемая флагом --experimental-websocket, предоставляет разработчикам браузерно-совместимую реализацию WebSocket, обогащая экосистему Node.js новыми возможностями для реализации реального времени в веб-приложениях.

С обновлением движка V8 до версии 11.8 разработчики получат доступ к улучшенной производительности и новым функциям языка. Также стоит отметить улучшения в тестовом раннере Node.js, который теперь поддерживает глобальные выражения при указании параметра --test, делая процесс тестирования более гибким и эффективным.

Введение флага --experimental-default-type открывает возможность изменения модульной системы по умолчанию в Node.js, что дает разработчикам больше гибкости в управлении и оптимизации своих проектов.

#nodejs #javanoscript #news #update
👍1👌1
Flutter - это открытый фреймворк разработки от Google, позволяющий создавать кросс-платформенные мобильные, веб- и десктопные приложения с единой кодовой базой.

#desktop #mobile #technology #framework
👍1
Microsoft запускает AI-ассистента для безопасности

Microsoft представила свой новый AI-ассистент безопасности, Security Copilot, который теперь доступен в раннем доступе для некоторых клиентов. Этот инструмент, напоминающий ChatGPT, использует искусственный интеллект для быстрого анализа угроз, опираясь на глобальную базу данных угроз Microsoft.

Основные возможности Security Copilot:

- Ответы на вопросы по безопасности в реальном времени.
- Анализ инцидентов и рекомендации на основе взаимодействия с пользователем.
- Реальное время анализа вредоносных программ.
- Обнаружение новых угроз путем анализа данных атак.

В дополнение к этому, Security Copilot интегрируется с платформой Microsoft 365 Defender Extended Detection and Response (XDR). Участники программы раннего доступа также получат бесплатный доступ к данным Microsoft Defender Threat Intelligence.

Jakkal подчеркнул: "В области безопасности каждая минута на счету. С помощью Security Copilot специалисты могут реагировать на инциденты в течение минут, а не часов или дней."

#news #microsoft #security #copilot
👍1
Geany 2.0.0: Обновление популярного текстового редактора

Geany - это легкий текстовый редактор, который также функционирует как интегрированная среда разработки (IDE). Он предоставляет базовую поддержку для множества популярных языков программирования и предназначен для быстрой и простой разработки кода без лишнего нагромождения функций.

Общие изменения:

- Разделение "данных сессии" на session.conf; настройки теперь записываются в geany.conf.
- Добавлена поддержка новой системы сборки Meson.
- Требуется GTK 3.24 для работы.

Интерфейс:

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

Редактор:

- Обновлены компоненты Scintilla и Lexilla.
- Добавлена функция "История изменений".

Типы файлов:

- Обновлены парсеры символов благодаря синхронизации с проектом Universal Ctags.
- Улучшена поддержка формата ctags.
- Добавлены новые типы файлов, такие как AutoIt и GDScript, и обновлены конфигурации для Kotlin, Nim, PHP и других.

Windows:

- Удалены родные диалоги файлов и цветов; теперь будут использоваться диалоги GTK.
- По умолчанию используется тема "Prof-Gnome" для лучшего визуального восприятия.

#news #geany #editor #update
👍2
Rust - это системный язык программирования, фокусирующийся на безопасности, параллелизме и высокой производительности.

#programming_language #technology #rust
👍2
MRI Software интегрирует стандарты данных OSCRE

Компания MRI Software, лидер в программном обеспечении для недвижимости, объединилась с консорциумом OSCRE International. Их платформа MRI Agora будет использовать стандарты OSCRE для оптимизации принятия решений и интеграции приложений.

MRI Software - ведущий поставщик решений для недвижимости, который трансформирует способы проживания и работы в сообществах.
OSCRE International - организация, специализирующаяся на разработке и внедрении стандартов данных для недвижимости.

- Использование стандартов OSCRE упростит интеграцию систем, улучшит качество данных и сократит затраты на разработку.
- Сектор PropTech продолжает привлекать инвестиции, а стандарты данных будут ключевыми для интеграции с существующими технологиями и быстрой адаптации будущих инноваций.
- Следующего поколения платформа для недвижимости, использующая структуры, предоставляемые IDM, для улучшения интеграции и анализа данных.

Патрик Гилани, генеральный директор MRI Software, подчеркнул, что сотрудничество с OSCRE позволило "революционизировать" обработку данных для клиентов и партнеров.

#news #realestate
👍2👌1
👩‍💻 GraphQL - язык запросов для API, позволяющий клиентам получать только необходимые данные.

#technology #api
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Сервис «Яндекс.Карты» представил обновленные карты с детальной разметкой для автомобилистов. Нововведение позволяет водителям легче ориентироваться на дороге, особенно на сложных развязках.

Карты теперь отображают дороги с полосной разметкой, парковочными местами и островками безопасности. Эта функция доступна в приложениях «Яндекс.Карты» и «Навигатор», а также при использовании Apple CarPlay и Android Auto.

В настоящее время детальная разметка представлена в Москве, Уфе, Санкт-Петербурге, Волгограде, Екатеринбурге и Нижнем Новгороде. Кроме того, здания вдоль маршрута теперь отображаются в 3D.

В ближайшее время «Яндекс» планирует расширить этот список городов.

#yandex #maps #news
👍2🔥1
Instagram разрабатывает API для Threads

Адам Моссери, глава Instagram, объявил о разработке API для социальной сети Threads. Этот шаг откроет двери для разработчиков, желающих создать приложения, интегрированные с текстовой платформой Meta.

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

#news #api #threads
👍3
Next.js 14

В свежем релизе Next.js 14 разработчики представили ряд привлекательных обновлений, направленных на ускорение и упрощение процесса разработки веб-приложений.

Turbopack:

- Локальный сервер теперь запускается на 53% быстрее.
- С Fast Refresh код обновляется на 94% быстрее.

Server Actions (Стабильный):

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

Partial Prerendering (Превью):

- Быстрый статический ответ и последующая динамическая загрузка контента улучшают производительность и пользовательский опыт.

Next.js Learn (Новое):

- Бесплатный курс обучения, включающий темы по App Router, аутентификации, работе с базами данных и многому другому, помогает разработчикам быстро освоиться с Next.js 14​.

#news #next #react #framework #update
👍2
Домен

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

Домен — это просто имя вашего сайта в интернете. Вместо того чтобы говорить друзьям набирать 123.45.67.89, вы просто говорите им "заходите на ruslan.com".

Когда вы регистрируете домен, это имя становится вашим указателем на сервер, где хранится ваш сайт. Все очень просто: вводите "ruslan.com" — и вуаля, открывается ваш сайт.

Домены обычно состоят из двух основных частей:

SLD (Second-Level Domain) - это уникальное имя, которое вы выбираете, например, "ruslan" в "ruslan.com".
TLD (Top-Level Domain) - это домен верхнего уровня, такой как ".com", ".org", ".net" и страновые коды типа ".ru", ".us", ".uk".

Иногда в домене может быть и третий уровень — субдомен, например, "blog.ruslan.com", где "blog" является субдоменом. Так мы можем разделять различные части нашего приложения, сервиса (market.yandex.ru / taxi.yandex.ru / bank.yandex.ru и тд)

#обучающийПост #domain
👍6
Что такое DNS

Каждое устройство, подключенное к интернету, имеет уникальный IP-адрес, который используется для обмена данными с другими устройствами в сети. Однако запоминать числовые IP-адреса для всех сайтов было бы очень сложно для людей. DNS позволяет нам использовать запоминающиеся имена доменов (например, "google.com") вместо сложных наборов чисел.

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

Система DNS организована иерархически. В самом верху иерархии находятся корневые сервера, которые управляют базами данных, содержащими информацию о доменных зонах верхнего уровня (например, .com, .org, .net и т.д.). Если локальный DNS-сервер не знает, как перевести доменное имя в IP-адрес, он спрашивает об этом серверы выше уровнем.

#dns #domain #обучающийПост
👍5
ChatGPT все еще самая умная нейросеть в мире. Ответы точнее чем у конкурентов.

#gpt #ai
👍1
Всем привет! Делюсь своим вторым каналом для Веб Разработчиков

- Где брать опыт и как искать работу?
- Как освоить сложную теорию?
- Какие ресурсы использовать для обучения?

Рассказываю тут:

✈️ Telegram Reactify — сложные темы простым языком. Теория, советы, истории с работы.

📹 YouTube Reactify — изучаем JavaScript, React, HTML, CSS. Создаем приложение новостей или курса криптовалюты.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👌1👨‍💻1
Всеми любимый Redux Toolkit 2.0

- Удален устаревший объектный синтаксис из createSlice и createReducer.
- Обновлены опции middleware и enhancers в configureStore, требующие теперь использования колбэков.
- Улучшена упаковка для совместимости ESM/CJS и модернизирован вывод сборки.
- Интегрированы все изменения в Redux Core 5.0, Reselect 5.0, и Redux Thunk 3.0.
- Обновлено стандартное поведение подписки в RTK Query.
- Добавлен новый метод combineSlices для ленивой загрузки редьюсеров слайсов.
- Введено "динамическое промежуточное ПО" для добавления промежуточного ПО во время выполнения.
- Добавлен новый синтаксис колбэков в createSlice.reducers, с опцией определения танков внутри createSlice.
- autoBatchEnhancer теперь включен по умолчанию в configureStore.
- Внесены множество улучшений для TypeScript.

#update #redux #frontend
👍3❤‍🔥1
5 сложных вопросов для Python разработчиков

1. Какие встроенные структуры данных в Python ты знаешь и чаще всего используешь?
Чаще всего используются списки (list), словари (dict), кортежи (tuple) и множества (set). Списки хранят упорядоченные коллекции элементов. Словари хранят данные в виде пар "ключ-значение" для быстрого доступа. Кортежи похожи на списки, но их нельзя изменить после создания. Множества хранят уникальные неупорядоченные элементы и полезны для операций объединения или пересечения.

2. Что такое Pydantic?
Pydantic — это библиотека для проверки данных и управления настройками с помощью аннотаций типов. Она автоматически проверяет типы данных и преобразует их в нужный формат. Это особенно полезно для обработки данных из запросов API или конфигурационных файлов. Библиотека помогает избежать ошибок, обеспечивая корректность данных перед их использованием.

3. Как обычно оптимизируете медленные запросы в ORM?
Оптимизация начинается с поиска узких мест с помощью инструментов вроде django-debug-toolbar. Основные методы: использование select_related и prefetch_related для уменьшения числа запросов, добавление индексов к полям и правильное использование only() или defer() для загрузки только нужных полей. Иногда эффективнее заменить сложный запрос ORM на прямое SQL-выражение с помощью extra() или RawSQL.

4. Что такое "лингвистические паттерны" (naming patterns, code smells)?
Лингвистические паттерны — это соглашения по именованию сущностей в коде, которые улучшают читаемость (например, CamelCase для классов). Code smells — это симптомы в коде, которые указывают на потенциальные проблемы дизайна (например, длинные методы или дублирование кода).

5. Что из себя внутри представляют списки?
Внутри список в Python — это динамический массив. Это означает, что элементы хранятся в непрерывном блоке памяти. Интерпретатор заранее резервирует немного больше памяти, чем нужно, чтобы быстро добавлять новые элементы. Когда место заканчивается, Python находит новый, больший блок памяти и копирует туда все элементы. Это делает добавление элементов в конец списка в среднем очень быстрым.

#data_structure #list #dictionary #validation #serialization #model #orm #performance #query #naming_patterns #readability #maintainability #implementation
🧑‍💻 5 сложных вопросов для Python разработчиков

1. Что такое "лингвистические паттерны" (naming patterns, code smells)?
Лингвистические паттерны — это соглашения по именованию сущностей в коде, которые улучшают читаемость (например, CamelCase для классов). Code smells — это симптомы в коде, которые указывают на потенциальные проблемы дизайна (например, длинные методы или дублирование кода).

2. Что такое Pydantic?
Pydantic — это библиотека для проверки данных и управления настройками с помощью аннотаций типов. Она автоматически проверяет типы данных и преобразует их в нужный формат. Это особенно полезно для обработки данных из запросов API или конфигурационных файлов. Библиотека помогает избежать ошибок, обеспечивая корректность данных перед их использованием.

3. Как обычно оптимизируете медленные запросы в ORM?
Оптимизация начинается с поиска узких мест с помощью инструментов вроде django-debug-toolbar. Основные методы: использование select_related и prefetch_related для уменьшения числа запросов, добавление индексов к полям и правильное использование only() или defer() для загрузки только нужных полей. Иногда эффективнее заменить сложный запрос ORM на прямое SQL-выражение с помощью extra() или RawSQL.

4. Какие встроенные структуры данных в Python ты знаешь и чаще всего используешь?
Чаще всего используются списки (list), словари (dict), кортежи (tuple) и множества (set). Списки хранят упорядоченные коллекции элементов. Словари хранят данные в виде пар "ключ-значение" для быстрого доступа. Кортежи похожи на списки, но их нельзя изменить после создания. Множества хранят уникальные неупорядоченные элементы и полезны для операций объединения или пересечения.

5. Что из себя внутри представляют списки?
Внутри список в Python — это динамический массив. Это означает, что элементы хранятся в непрерывном блоке памяти. Интерпретатор заранее резервирует немного больше памяти, чем нужно, чтобы быстро добавлять новые элементы. Когда место заканчивается, Python находит новый, больший блок памяти и копирует туда все элементы. Это делает добавление элементов в конец списка в среднем очень быстрым.

#naming_patterns #readability #maintainability #validation #serialization #model #orm #performance #query #data_structure #list #dictionary #implementation
🧑‍💻 5 сложных вопросов для Python разработчиков

1. Что такое абстрактные классы?
Абстрактные классы в Python — это классы, которые не могут быть созданы непосредственно, а служат как шаблоны для других классов. Они могут содержать абстрактные методы, которые должны быть реализованы в дочерних классах. Абстрактные классы создаются с использованием модуля abc и декоратора @abstractmethod.

2. Разница между одинарным и двойным подчеркиванием?
- Одинарное подчеркивание (_) используется как соглашение для обозначения "непубличных" атрибутов и методов, которые не предназначены для использования вне класса, но это не является жестким ограничением.
- Двойное подчеркивание (__) используется для реализации механизма именования с учётом "защищённых" атрибутов, а также для создания уникальных имен, чтобы избежать конфликтов.

3. Как работает middleware?
Middleware — это программный компонент, который обрабатывает запросы и ответы между клиентом и сервером в веб-приложении. Он может модифицировать запросы перед тем, как они попадут в обработчик, или изменять ответы перед отправкой их обратно клиенту.

4. Какие есть коды ответов HTTP?
Коды ответов HTTP делятся на пять категорий:

- 1xx (Информационные) — запрос принят, обработка продолжается.
- 2xx (Успешные) — запрос успешно выполнен (например, 200 OK).
- 3xx (Перенаправления) — нужно выполнить дополнительное действие (например, 301 Moved Permanently).
- 4xx (Ошибки клиента) — запрос содержит ошибки (например, 404 Not Found).
- 5xx (Ошибки сервера) — проблема на стороне сервера (например, 500 Internal Server Error).

5. Зачем нужен метод super в классе?
Метод super() используется для вызова методов родительского класса в дочернем классе. Это позволяет расширять или изменять функциональность родительского метода без необходимости повторно писать его код.

#abstract_class #oop #inheritance #naming #underscore #middleware #status_code #http #rest #super
🧑‍💻 5 сложных вопросов для Python разработчиков

1. Как работает middleware?
Middleware — это программный компонент, который обрабатывает запросы и ответы между клиентом и сервером в веб-приложении. Он может модифицировать запросы перед тем, как они попадут в обработчик, или изменять ответы перед отправкой их обратно клиенту.

2. Зачем нужен метод super в классе?
Метод super() используется для вызова методов родительского класса в дочернем классе. Это позволяет расширять или изменять функциональность родительского метода без необходимости повторно писать его код.

3. Разница между одинарным и двойным подчеркиванием?
- Одинарное подчеркивание (_) используется как соглашение для обозначения "непубличных" атрибутов и методов, которые не предназначены для использования вне класса, но это не является жестким ограничением.
- Двойное подчеркивание (__) используется для реализации механизма именования с учётом "защищённых" атрибутов, а также для создания уникальных имен, чтобы избежать конфликтов.

4. Что такое абстрактные классы?
Абстрактные классы в Python — это классы, которые не могут быть созданы непосредственно, а служат как шаблоны для других классов. Они могут содержать абстрактные методы, которые должны быть реализованы в дочерних классах. Абстрактные классы создаются с использованием модуля abc и декоратора @abstractmethod.

5. Какие есть коды ответов HTTP?
Коды ответов HTTP делятся на пять категорий:

- 1xx (Информационные) — запрос принят, обработка продолжается.
- 2xx (Успешные) — запрос успешно выполнен (например, 200 OK).
- 3xx (Перенаправления) — нужно выполнить дополнительное действие (например, 301 Moved Permanently).
- 4xx (Ошибки клиента) — запрос содержит ошибки (например, 404 Not Found).
- 5xx (Ошибки сервера) — проблема на стороне сервера (например, 500 Internal Server Error).

#middleware #super #inheritance #oop #naming #underscore #abstract_class #status_code #http #rest
🧑‍💻 Вопросы с собесов для Node.js Разработчика

1. Расскажите о генераторах и итераторах в JavaScript и приведите пример их использования.
Итераторы — это объекты, которые реализуют метод next() и возвращают значение на каждой итерации. Генераторы — это функции, которые создают итераторы с помощью function* и yield. Генераторы позволяют контролировать выполнение кода и возвращать значения по мере необходимости, что упрощает работу с большими или бесконечными наборами данных.

2. Что такое дескрипторы свойств объектов в JavaScript и как их можно использовать на практике?
Дескрипторы свойств — это специальные объекты, которые описывают атрибуты свойства объекта, такие как возможность его изменения, перечисления или удаления. Используя дескрипторы, можно точно контролировать, как свойства объекта будут вести себя. Например, можно сделать свойство неизменяемым или скрыть его от перебора через цикл.

3. Что такое ArrayBuffer и в чем разница между типами Uint32Array и Float32Array?
ArrayBuffer — это объект, который хранит фиксированное количество байт данных в памяти. Он используется для работы с бинарными данными. Uint32Array и Float32Array — это типизированные массивы, которые представляют разные типы данных: Uint32Array работает с беззнаковыми целыми числами, а Float32Array — с числами с плавающей точкой. Основное различие между ними — в типе данных, который они хранят.

4. Назовите несколько способов создания неизменного объекта в JavaScript.
Существуют несколько способов сделать объект неизменным. Один из самых популярных — это метод Object.freeze(), который запрещает добавление, удаление и изменение свойств объекта. Также можно использовать Object.seal(), который позволяет изменять существующие свойства, но не добавлять новые. Для глубоких объектов применяют рекурсивное замораживание.

5. Объясните разницу между последовательным и параллельным выполнением асинхронных функций. Как работают Promise.all() и Promise.allSettled()?
Последовательное выполнение асинхронных функций означает, что каждая следующая функция начинается только после завершения предыдущей, тогда как параллельное выполнение позволяет нескольким функциям выполняться одновременно.

Метод Promise.all() запускает несколько промисов параллельно и возвращает результат, когда все они успешно завершатся, а Promise.allSettled() возвращает результат независимо от того, завершился ли каждый промис успехом или ошибкой.

#функция #yield #next #объекты #defineproperty #байт #данные #arraybuffer #freeze #объект #seal #promise #асинхронность