Pull to refresh
-25
0
Send message

Реализация ООП-наследования в классах, работающих с SQL и MS Entity Framework

Reading time5 min
Views19K
Эта статья посвящена созданию модели данных, которая красиво ложилась бы на SQL и содержала в себе «правильное» ООП наследование. Надо сказать, что эта задача возникала у меня в разное время на разных проектах, и решалась она там тоже по-разному. Названия подходов взяты из сложившейся на соответствующих проектах терминологии.
Читать дальше →

Как используется ABC-анализ на складе?

Reading time4 min
Views18K
На связи LogistiX! Мы разработчики промышленной системы управления складом LEAD WMS.

Нет человека, который не слышал бы про знаменитый «принцип Парето» и ABC-анализ. Для несведущих эти слова — настоящая магия, для знающих — банальный инструмент. Сегодня предлагаю поговорить об использовании ABC-анализа на складе, и разобраться, как же он может помочь в управлении операциями, будучи частью WMS (системы управления складом). Сразу упомяну, что понимание термина «ABC-анализ» для дальнейшего прочтения является обязательным.
Читать дальше →

Функциональные паттерны при моделировании предметной области – анемичные модели и компоновка поведений

Reading time5 min
Views14K
Привет, Хабр! Не так давно в издательстве «Manning» вышла непростая, но долгожданная и выстраданная автором книга о функциональном моделировании предметных областей.



Поскольку у нас готовятся книги как по Scala, так и по паттернам предметно-ориентированного проектирования, опубликуем одну из статей сахиба Гоша об идеях, заложенных в его книгу, и спросим, насколько эта книга была бы вам интересна
Читать дальше →

Документирование #микросервисов

Reading time5 min
Views107K


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


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

Нейронные сети: практическое применение

Reading time15 min
Views278K


Наталия Ефремова погружает публику в специфику практического использования нейросетей. Это — расшифровка доклада Highload++.

Добрый день, меня зовут Наталия Ефремова, и я research scientist в компании NtechLab. Сегодня я буду рассказывать про виды нейронных сетей и их применение.

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

Первая часть моего доклада будет направлена тем, кто незнаком с нейронными сетями. Я занимаюсь непосредственно deep learning. В этой области я работаю более 10 лет. Хотя она появилась чуть меньше, чем десятилетие назад, раньше были некие зачатки нейронных сетей, которые были похожи на систему deep learning.

Нейронные сети в картинках: от одного нейрона до глубоких архитектур

Reading time7 min
Views97K
Многие материалы по нейронным сетям сразу начинаются с демонстрации довольно сложных архитектур. При этом самые базовые вещи, касающиеся функций активаций, инициализации весов, выбора количества слоёв в сети и т.д. если и рассматриваются, то вскользь. Получается начинающему практику нейронных сетей приходится брать типовые конфигурации и работать с ними фактически вслепую.

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

Управляем состоянием приложения с помощью Vuex

Reading time4 min
Views64K
image

При создании веб-приложения мы в какой-то момент задаемся вопросом — как управлять его состоянием? Vue предоставляет нам способ управлять им в пределах одного компонента, подход очень простой, и при этом замечательно работает. Но что делать, если в приложении множество компонентов, которые должны иметь доступ к одним и тем же данным? Одно из решений этой задачи — Vuex, инструмент для централизованного управления состоянием. В данной статье мы рассмотрим из чего он состоит и как его использовать.
Читать дальше →

Физический бэкап: на смену Veeam Endpoint Backup пришел Veeam Agent for Microsoft Windows

Reading time5 min
Views34K
Еще осенью мы рассказывали о планах по выпуску обновленного решения для бэкапа физических машин под управлением ОС Windows. Хорошо известный многим Veeam Endpoint Backup FREE превратился в Veeam Agent for Microsoft Windows 2.0, и сейчас доступна для скачивания его бета-версия. (О том, как ее получить, можно узнать в конце поста.)

Если Veeam Endpoint Backup предназначался для бэкапа пользовательских компьютеров, то в Veam Agent for Windows появился расширенный функционал для бэкапа корпоративных компьютеров (рабочих станций и серверов). Что же нового вас ожидает? За ответом добро пожаловать под кат.
Читать дальше →

Преждевременная оптимизация архитектуры

Reading time15 min
Views16K


Евгений Потапов и Антон Баранов из компании ITSumma рассказывают об оптимизации на опережение. Это — расшифровка доклада Highload++.

Мы занимаемся круглосуточной поддержкой и администрированием веб сайтов. Работаем в Иркутске с 2008 года. Сейчас штат 50 человек. Главный офис в Иркутске, есть офис в Санкт-Петербурге и Москве. На данный момент у нас более 200 активных клиентов, с которыми происходит более 100 активных чатов в день. Мы получаем порядка 150 тысяч активных оповещений в месяц о проблемах наших клиентов. Среди наших клиентов — множество разных компаний, есть известные: Lingualeo, AlterGeo, CarPrice, «Хабрахабр», KupiVip, «Наше Радио». Есть много интернет магазинов. Род наших занятий: мы должны в течение 15 минут среагировать на то, что случилась беда, и попытаться её быстро починить.

Откуда берётся беда, эти проблемы на серверах?


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

Введение в lock-free программирование

Reading time8 min
Views61K
image

В этом посте мы хотели бы еще раз поднять тему программирования без блокировок, сперва дав ему определение, а затем выделить из всего многообразия информации несколько ключевых положений. Мы покажем, как эти положения соотносятся между собой, с помощью блок-схем, а потом мы немного коснемся деталей. Минимальное требование к разработчику, постигающему lock-free, — умение писать правильный многопоточный код, используя мьютексы или другие высокоуровневые объекты синхронизации, например, семафоры или события.
Читать дальше →

Не доверяйте SUDO, она может вас подвести

Reading time7 min
Views47K

Всем доброго времени суток, в этой статье постараюсь описать некоторые способы обхода ограничений на исполнение команд в ОС Linux, советы по использованию которых можно часто встретить на различных форумах. Демонстрация будет проведена на примере задания Restricted shells с сайта Root-Me. Итак, начнём.
Читать дальше →

На пути к правильным SQL транзакциям (Часть 1)

Reading time6 min
Views152K


Мне часто приходилось сталкиваться с тем, что люди прекрасно понимают, что такое транзакции в базе данных и для чего они нужны, но при этом не всегда умеют ими правильно пользоваться. Безусловно, для достижения 80-го уровня сакрального знания нужно иметь не один год опыта и прочесть множество толстенных книг по SQL. Поэтому в этой статье я даже не буду пытаться описать всё, что может быть связано с транзакциями в MS SQL. Я хочу затронуть один простой, но очень важный вопрос, который разработчики часто упускают из вида – уровни изоляции транзакций.
Несмотря на то, что тема очень проста, во многих источниках она освящается плохо – информации либо очень мало, либо очень много. Т.е. прочитав 5-6 кратких теоретических определений невозможно их применить на практике. Для уверенного понимания предмета статьи нужно обращаться к специализированной литературе, но там информации на столько много, что далеко не каждый может уделить необходимое время для её усваивания.
Сегодня я хочу поделиться своим простым рецептом, который помог мне раз и на всегда запомнить особенности уровней изоляции транзакций и по сей день помогает без проблем принимать взвешенные решения о выборе необходимого уровня.
Читать дальше →

Сказ о том, как я сервер с WP лечил, или 700 юзеров онлайн на 2х ядрах

Reading time7 min
Views22K
День добрый, пятница ясная, бравый молодец иль девица красная!

Можешь мне верить, можешь мне не верить, но начался сей сказ с пары весточек на мою почту электронную и вот такой вот картины, красоты неписанной:



Это 500 бравых молодцев онлайн (по депеше от гугла) на движке заморском, wordpress именуемом, на сервере Intel Xeon E3 1245v2 (soyoustart, E3-SSD-3). К полотну была приложена рукописъ, помочь в оптимизации сего хозяйства.
Читать дальше →

С нуля до Upper Intermediate

Reading time4 min
Views227K
image
В этом посте вы узнаете, как я сама, без репетиторов и курсов, не потратив ни копейки, выучила аглийский за год почти с полного 0 до Upper Intermediate.

Итак, все довольно просто: Мотивация! Именно она дала толчок к саморазвитию и жажде познания английских правил, слов и букв. Согласитесь, вас мало что остановит, если у вас есть мотивация…

У каждого мотивация может быть своя: у одних это уехать заграницу в поисках лучшей жизни/работы/учебы, у других смотреть фильмы в оригинале и получать удовольствие от голосов актеров, а не слушать наши крутые, ущербные переводы, у третьих, понимать англоязычные лекции, тем самым убивая двух зайцев: изучая английский, пополняя свой словарный запас, и, развиваясь в той области, которая вам интересна. (Чисто для справки, почти в каждой области, будь то анатомия, программирование, рисование или еще чего, полно разных курсов и материалов, и их еще больше на английском, они круче и качественнее. Т. е. у вас есть больше вариантов что посмотреть и почитать.
Читать дальше →

Использование Tarantool в .NET-проекте на Windows

Reading time21 min
Views24K

В последнее время на Хабре появляется достаточно много статей про Tarantool — базу данных и сервер приложений, который используется в Mail.Ru Group, Avito, Yota на разных высоконагруженных проектах. И вот, когда в маленьком стартапе, который я иногда консультирую, возникла необходимость разделения прекрасного, но, к сожалению, монолитного приложения на микросервисы, я подумал: а чем мы хуже других компаний? — и решил посмотреть в сторону Tarantool. Однако, в отличие от большинства компаний, где используется Tarantool, в нашем случае разработка проекта ведётся в Visual Studio на Windows. Предполагается, что даже с переходом на микросервисную архитектуру большинство микросервисов будет написано на языке C#. А Tarantool… Стоит зайти на официальный сайт — и сразу понимаешь: Tarantool даже установить на Windows проблематично, так как на эту операционную систему он не портирован. Как я боролся с такими сложностями, для какого именно микросервиса выбрал Tarantool и как вы можете использовать Tarantool в своих .NET-проектах, я расскажу в данной статье. А пока спойлер — практически все трудности преодолимы, и мой опыт можно без сомнений назвать положительным. Например, на то, чтобы скачать и запустить Tarantool, а потом сделать к нему запрос из кода на языке C#, у меня ушло менее десяти минут. И я покажу вам, как это сделать!


image


Данная статья представляет собой туториал, описывающий работу с Tarantool как таковую. Здесь нет описания проекта, построенного на Tarantool, или сравнения Tarantool с другими продуктами (статей на эту тему и так уже написано достаточно много). Материал родился как попытка ответить на вопрос: а что бы я хотел прочитать, когда только начинал работать с Tarantool. Но вначале немного расскажу, для чего мы, собственно, Tarantool применяем в реальной жизни.

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

Как конструкторы влияют на детский мозг. И что делать, когда вы выросли

Reading time6 min
Views83K
Их давали нам, чтобы не мешали старшим чтобы котелок и мелкая моторика шли рука об руку. Но фишка конструкторов не только в этом.

Мы решили разобраться, в чем еще состоит польза от конструкторов, сказывается ли она на взрослой жизни — и как наверстать упущенное, если от пирамидки вы перешли сразу к 8-часовому рабочему дню.



Для начала, что называть конструктором? Например, пирамидки, паззлы, сортеры (когда детальке надо найти формочку), матрешки — это не конструкторы. Они называются «дидактическими игрушками» и учат работать по шаблону. Это, конечно, полезно и важно, но как тренировка. Поэтому иногда так хочется дать по рукам подтолкнуть ребенка, чтобы «закончили упражнение».

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

Вот отличный пример

«Переезд» в облако: Возможность не только для ИТ-компаний

Reading time5 min
Views6K


На прошлой неделе мы рассказывали о технологических компаниях, которые решили довериться облачным провайдерам. Сегодня – вторая часть, в которой мы поговорим о нетехнологических проектах и их взаимоотношениях с «облаком».
Читать дальше →

История успеха «Яндекс.Почты» с PostgreSQL

Reading time13 min
Views54K


Владимир Бородин (на «Хабре» dev1ant), системный администратор группы эксплуатации систем хранения данных в «Яндекс.Почте», знакомит со сложностями миграции крупного проекта с Oracle Database на PostgreSQL. Это — расшифровка доклада с конференции HighLoad++ 2016.

Всем привет! Меня зовут Вова, сегодня я буду рассказывать про базы данных «Яндекс.Почты».

Сначала несколько фактов, которые будут иметь значение в будущем. «Яндекс.Почта» — сервис достаточно старый: он был запущен в 2000 году, и потому мы накопили много legacy. У нас — как это принято и модно говорить — вполне себе highload-сервис, больше 10 миллионов пользователей в сутки, какие-то сотни миллионов всего. В бэкенд нам прилетает более 200 тысяч запросов в секунду в пике. Мы складываем более 150 миллионов писем в сутки, прошедших проверки на спам и вирусы. Суммарный объём писем за все 16 лет — больше 20 петабайт.

О чем пойдет речь? О том, как мы перевезли метаданные из Oracle в PostgreSQL. Метаданных там не петабайты — их чуть больше трехсот терабайт. В базы влетает более 250 тысяч запросов в секунду. Надо иметь в виду, что это маленькие OLTP-запросы, по большей части чтение (80%).

Это — не первая наша попытка избавиться от Oracle. В начале нулевых была попытка переехать на MySQL, она провалилась. В 2007 или 2008 была попытка написать что-то своё, она тоже провалилась. В обоих случаях был провал не столько по технически причинам, сколько по организационным.

Вход на сайт при помощи Telegram

Reading time4 min
Views47K
На сегодняшний день в интернете практически все сайты используют древнюю и проверенную временем схему регистрации/авторизации по email. Такая схема всегда отлично работала и продолжает работать по сей день, но она делает пользователя интернета зависимым от почтовых сервисов, и на мой взгляд, имеет ряд недостатков.
Читать дальше →

Слабые[weak] ссылки в новой версии Delphi

Reading time4 min
Views8.9K
Здравствуйте.

Компания Embarcadero вчера объявила о выходе новой версии Delphi RAD studio XE 10.1,
Весь список изменений можно посмотреть тут, я же хочу рассказать о наиболее ценном(для нашей компании) улучшении, а именно о внедрение слабых [weak] ссылок в классический компилятор (Win32/Win64).

Выше в статье даны подробности проблемы, так что тем кто желает посмотреть что сделали в делфи прошу под кат.
Читать дальше →

Information

Rating
Does not participate
Location
Таджикистан
Registered
Activity