Как стать автором
Обновить

Все потоки

Сначала показывать
Порог рейтинга

Создаём свою CMS для интернет магазина: вступление

PHP *CMS *PostgreSQL *Nginx *Программирование *
Tutorial

Всем привет! Всегда хотелось внести свой вклад в хабр. У меня было две статьи: первая - шуточная, про создание своего colorpicker, которая была слишком кринжовая, из-за чего сразу получила много минусов, и потому моментально была скрыта в черновики. Вторая - про недовольство в строну yii3, где я высказал своё мнение, которое было неверным, однако статья и карма получили плюсы, за что был благодарен.

В чем суть серии статей: мы создадим свою CMS с нуля без фреймворков. Сразу скажу, что упор будет именно на бэкенд, т.к. я ничего не понимаю во фронте. Поэтому мы создадим минималистичный интерфейс на ванильном js и при этом сделаем rest api для фронта, чтобы вы с помощью любого фронтенд-фреймворка смогли сами написать клиентскую часть.

Читать далее
Рейтинг 0
Просмотры 76
Комментарии 0

Новости

Инверсия зависимостей (dependency inversion principle)

C++ *
Recovery mode

Одним из принципов SOLID является инверсия зависимостей (dip). В литературе по программированию и в интернете масса источников с детальным описанием этого принципа. И большинство кандидатов на собеседовании успешно отвечают заученными фразами на вопрос: "Что такое инверсия зависимости?". Но при практической реализации мгновенно возникает вопрос, а в чем же собственно заключается инверсия и как она программируется? Далее будет рассмотрен данный принцип более подробно.

Читать далее
Всего голосов 4: ↑0 и ↓4 -4
Просмотры 328
Комментарии 1

Изучаем PostgreSQL. Часть 1. Знакомимся с архитектурой

Блог компании OTUS PostgreSQL *SQL *
Tutorial

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

Одним из лидеров направления СУБД является PostgreSQL и ее различные ответвления, о некоторых из которых мы рассмотрим подробнее.

В этой статье мы начнем говорить о СУБД PostgreSQL, рассмотрим отличия редакций и некоторые особенности архитектуры, а также процесс установки. Но начнем мы с небольшого ликбеза для того, чтобы читатели плохо знакомые с терминологией баз данных могли быстро войти в курс дела.

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

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

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

Читать далее
Всего голосов 5: ↑3 и ↓2 +1
Просмотры 498
Комментарии 1

Ямадзаки Сюмпэй: история самого плодовитого японского изобретателя новейшего времени

Блог компании Онлайн Патент Читальный зал Патентование *Научно-популярное

Сюмпэй (иногда встречается написание Шунпей) Ямадзаки — японский изобретатель, родившийся в 1942 году. Он до сих пор управляет своим бизнесом и изобретает до сих пор. Сейчас изобретателю-рекордсмену около 80 лет, но он продолжает развивать свою компанию, следить за современными трендами в сфере электроники и дарить миру всё новые и новые идеи. Рассмотрим подробнее его историю, личность и наследие. 

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 512
Комментарии 0

От «Бурана» до мейнфрейма: история отказоустойчивости в космосе и на земле

Блог компании CloudMTS IT-инфраструктура *Резервное копирование *История IT Научно-популярное
image

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

Впервые об отказоустойчивости начали говорить в XIX веке — еще до появления первых ЭВМ. В 1837 году английский математик и изобретатель Чарльз Бэббидж опубликовал научную работу, где упомянул отказоустойчивость — fault tolerance — математических вычислений.

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

Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 376
Комментарии 0

Как оптимизировать работу Stable Diffusion при помощи текстовой инверсии

Блог компании RUVDS.com Обработка изображений *Машинное обучение *Искусственный интеллект
Перевод
Изображение, сгенерированное AI по промпту «photograph of a robot drawing in the wild, nature, jungle» («фотография робота, рисующего в природе, джунглях»)

22 августа 2022 года Stability.AI объявила о публичном релизе Stable Diffusion — мощной диффузионной модели text-to-image. Модель способна генерировать различные варианты изображений на основании текстового или графического ввода.

Стоит заметить, что «модель выпущена под лицензией Creative ML OpenRAIL-M. Лицензия допускает коммерческое и некоммерческое использование. Ответственность за этическое использование модели лежит на разработчиках. Это относится и к производным от неё моделям».

В этой статье я расскажу, как точно настраивать эмбеддинги для создания персонализированных изображений на основании произвольных стилей или объектов. Вместо переучивания модели мы можем представить собственный стиль в виде новых слов в пространстве эмбеддингов модели. В результате этого новое слово будет руководить созданием новых изображений интуитивно понятным образом.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 264
Комментарии 0

Тестирование мобильных приложений на Flutter с использованием Python + Appium

Блог компании OTUS Python *Dart *Тестирование мобильных приложений *Flutter *

Тестирование нативных мобильных приложений для Android и iOS обычно обеспечивается библиотеками UiAutomator2 и XCUITest, но сейчас, в связи с появлением мобильных приложений, разработанных с использованием Flutter Framework, использовать их для тестирования становится затруднительно, поскольку семантическая информация, публикуемая Flutter, в большинстве случаев недостаточна для однозначной идентификации виджетов и взаимодействия с ними. В этой статье мы рассмотрим возможности драйвера appium-flutter-driver для тестирования flutter-приложений, разберемся с использованием виджетов описания семантики и разработаем несложные тесты на Python с использованием Appium.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 135
Комментарии 0

Security Week 2251: эксфильтрация данных через процессор

Блог компании «Лаборатория Касперского» Информационная безопасность *
В начале декабря новое исследование опубликовал Мордехай Гури, сотрудник университета Бен-Гуриона в Израиле. Гури и его коллеги последовательно изучают способы эксфильтрации данных из изолированных компьютерных систем, используя максимально необычные каналы. Мы следим за его работой уже много лет: вот, например, дайджест 2016 года о сливе данных путем изменения частоты вентилятора. В 2017 году была предложена сложная схема двунаправленного обмена данных между компьютером и камерой видеонаблюдения, оснащенной инфракрасным светодиодом.


Возможно, самое крутое исследование израильских ученых демонстрирует, как можно эксплуатировать паразитное излучение от работы оперативной памяти для передачи данных на частотах сотовой связи стандарта GSM. Более свежая работа этим летом демонстрировала утечку через кабель SATA. Наконец, декабрьское исследование показывает, как сконструировать простейший радиопередатчик, используя систему динамического изменения частоты и напряжения центрального процессора.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 257
Комментарии 0

Помимо Правил Трех, Пяти и Ноля

Блог компании OTUS Программирование *C++ *
Перевод

В предыдущей статье мы разобрали Правила Трех, Пяти и Ноля — что они из себя представляют, и когда и какое из них следует использовать (спойлер: львиная доля кода должна быть написана в соответствии с Правилом Ноля).

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

Читать далее
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 337
Комментарии 1

Про Vim " Вводные к циклу

VIM *
Из песочницы

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

Речь в рубрике пойдет о работе в текстовом редакторе (Neo)Vim в качестве разработчика и, местами, графомана. Но не в традиционных форматах хвалебных од, рейтингов лучших плагинов, пятиминутных гайдов или хауту, а в формате неких мемуаров что-ли. От лица начинающего, а затем и более продвинутого, пользователя - часто от первого лица. Так как считаю, что категорически не хватает именно чего-то среднего, чуть более применимого в реальной жизни и работе, чем ролики в ютубе с пересказами "Getting started with..." на разный манер, и чуть менее объемного и перегруженного чем полные руководства. Так же крайне мало информации конкретно для русскоязычных пользователей и особенностях работы с раскладками отличными от латиницы.

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 442
Комментарии 0

Как нам живется в фиче-командах при тестировании супераппа

Блог компании СберЗдоровье Тестирование мобильных приложений *

Мы делили апельсин, много нас, а он один…

Привет! Я Слава, QA в мобильной разработке компании «СберЗдоровье». В прошлых статьях я рассказывал о наших процессах тестирования при активном росте команды и о разделении на фича-команды.

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

Ну а волку - кожура?
Рейтинг 0
Просмотры 124
Комментарии 0

Что такое веб-стандарты и как работает веб-браузер?

Блог компании Timeweb Cloud IT-компании IT-стандарты *Open source *Браузеры
Перевод
image

Расскажу я вам одну историю. Как-то раз я разрабатывал очередной компонент с выбором даты для нашей системы проектирования. Компонент состоит из поля для текстового ввода и всплывающего календаря, отображаемого при щелчке мышью по этому полю. Затем всплывший календарь можно закрыть, щелкнув вне него или в случае, если была выбрана дата.
Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 553
Комментарии 0

Проверка корректности А/Б тестов

Блог компании X5 Tech Python *Математика *Статистика в IT

Хабр, привет! Сегодня поговорим о том, что такое корректность статистических критериев в контексте А/Б тестирования. Узнаем, как проверить, является критерий корректным или нет. Разберём пример, в котором тест Стьюдента не работает.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 420
Комментарии 0

Дизайн-система и цифровая трансформация Ростелекома

Блог компании Ростелеком Веб-дизайн *Интерфейсы *

Как инициатива IT-направления помогла огромному телекому поменять культуру, запустить множество digital-продуктов, и стать современной цифровой компанией.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 414
Комментарии 6

Истории

Первый клиент нашего приложения. Часть 3

Блог компании Офис партнер Тестирование IT-систем *Клиентская оптимизация *
Recovery mode

Как при помощи внедрения нашего приложения сеть салонов мебели уменьшила расходы на печать на 30%, «сняла капкан» с ноги сотрудников и забыла о том, что с оборудованием бывают проблемы

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Просмотры 569
Комментарии 0

Помоги компилятору, и он поможет тебе. Тонкости работы с nullable reference типами

Блог компании PVS-Studio Программирование *.NET *C# *

Nullable reference типы появились в C# 3 года назад. За это время они смогли найти свою аудиторию. Но даже те, кто имеет дело с этим зверем, скорее всего, не знают всех его возможностей. Давайте разберёмся, как более качественно взаимодействовать с этими типами.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 680
Комментарии 2

Как мы затащили MoscowCityHack2022

Поисковые технологии *Python *Хакатоны Искусственный интеллект
Из песочницы

10-13 июня 2022 года прошел MoscowCityHack2022. Наша команда NorthShine заняла на нем первое место в первом кейсе. Задача была написать "сервис проверки поддельных новостей (fake news) в сфере технологий и инноваций".

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 442
Комментарии 0

Разработка и тестирование сортируемых компонентов Drag and Drop. Часть 2 — Тестирование

JavaScript *Программирование *Тестирование веб-сервисов *ReactJS *
Перевод

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

Читать далее
Рейтинг 0
Просмотры 137
Комментарии 0

Программирование микроконтроллеров AVR в IDE Lazarus

Delphi *Программирование микроконтроллеров *
Из песочницы

Вот появилось желание написать небольшой проектик для себя с применением микроконтроллера. В CodeVisionAVR команды не подсвечиваются по Ctrl+Пробел, да и Си что-то начал забывать, вспоминать - лень... Конечно, вспомнить Си - это 10-30 минут, но лень... Поэтому, было решено начать проект в родной IDE Lazarus, она же кросс-компилируемая! Правда, понять, как включить avr в Lazarus, чтоб компилировался hex-файл ушло 3 дня :), поэтому пишу здесь, чтоб другие не мучались, а сразу пользовались.

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 1.2K
Комментарии 9

Генератор эмбеддингов: как провести качественный анализ метрик сотрудников без прямого доступа к персональным данным

Блог компании Сбер Информационная безопасность *IT-инфраструктура *Big Data *

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

В статье я показываю особенности работы одной из частей утилиты «Генератор эмбеддингов» в конкретной задаче — поиск похожего сотрудника внутри компании. Подобная задача имеет массу прикладных направлений в бизнесе: поиск преемника, оперативный поиск сотрудника на место уволившегося, профилирование должностей и др. Без использования ПДн здесь, к сожалению, не обойтись. Так, например, для многих сотрудников важную роль играет удалённость офиса банка. И для того чтобы предложить оптимальный вариант работы, нужно учитывать место проживания человека, что уже является ПДн. «Генератор эмбеддингов» помогает оптимизировать этот процесс.

Узнать больше о нашем решении
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 410
Комментарии 2