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

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

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

Руководство по проектированию реляционных баз данных (7-9 часть из 15) [перевод]

Время на прочтение6 мин
Количество просмотров526K
Продолжение.
Предыдущие части: 1-3, 4-6

7. Связь один-ко-многим.


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

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

(Технически лучше говорить о женщине и ее детях вместо матери и ее детях потому, что, в контексте связи один-ко-многим, мать может иметь 0, 1 или множество потомков, но мать с 0 детей не может считаться матерью. Но давайте закроем на это глаза, хорошо?)

Когда одна запись в таблице А может быть связана с 0, 1 или множеством записей в таблице B, вы имеете дело со связью один-ко-многим. В реляционной модели данных связь один-ко-многим использует две таблицы.

image
Схематическое представление связи один-ко-многим. Запись в таблице А имеет 0, 1 или множество ассоциированных ей записей в таблице B.
Читать дальше →
Всего голосов 15: ↑11 и ↓4+7
Комментарии27

JupyterHub, или как управлять сотнями пользователей Python. Лекция Яндекса

Время на прочтение10 мин
Количество просмотров50K
Платформа Jupyter позволяет начинающим разработчикам, аналитикам данных и студентам быстрее начать программировать на Python. Предположим, ваша команда растёт — в ней теперь не только программисты, но и менеджеры, аналитики, исследователи. Рано или поздно отсутствие совместного рабочего окружения и сложность настройки начнут тормозить работу. Справиться с этой проблемой поможет JupyterHub — многопользовательский сервер c возможностью запускать Jupyter одной кнопкой. Он отлично подходит для тех, кто преподаёт Python, а также для аналитиков. Пользователю нужен только браузер: никаких проблем с установкой ПО на ноутбук, совместимостью, пакетами. Мейнтейнеры Jupyter активно развивают JupyterHub наряду с JupyterLab и nteract.

Меня зовут Андрей Петрин, я руководитель группы аналитики роста в Яндексе. В докладе на Moscow Python Meetup я напомнил о плюсах Jupyter и рассказал про архитектуру и принципы работы JupyterHub, а также про опыт применения этих систем в Яндексе. В конце вы узнаете, как поднять JupyterHub на любом компьютере.


— Начну с того, кто такие аналитики в Яндексе. Существует аналогия, что это такая многорукая Шива, которая умеет делать сразу много разных вещей и сочетает в себе много ролей.

Всем привет! Меня зовут Андрей Петрин, я руководитель группы аналитики роста в Яндексе. Я расскажу про библиотеку JupyterHub, которая в свое время сильно упростила нам жизнь в аналитике Яндекса, мы буквально почувствовали буст продуктивности большого количества команд.
Всего голосов 34: ↑34 и ↓0+34
Комментарии3

Наш опыт создания редактора блок-схем для веб приложения

Время на прочтение3 мин
Количество просмотров18K

К любой компании, которая занимается инструментами для разработчиков, рано или поздно приходит делегация клиентов. Со словами «программистов нет, задачи простые, нужен визуальный редактор». Автоматикой телефонных и видеозвонков мы занимаемся уже много лет, кому и зачем звонит робот хорошо себе представляем, VueJS любим, голова не болит. Почему бы не сделать? Под катом — закулисье и техническая сторона того, что маркетинг красиво назвал «Smartcalls».
Читать дальше →
Всего голосов 51: ↑40 и ↓11+29
Комментарии40

Git: советы новичкам – часть 3

Время на прочтение6 мин
Количество просмотров67K

В финальной части нашей серии статей о работе с Git мы продолжим разговор о ветках, рассмотрим особенности работы с командой push и расскажем, что такое rebase. Первую и вторую статьи серии вы можете прочитать по ссылкам.
Читать дальше →
Всего голосов 55: ↑55 и ↓0+55
Комментарии24

Пишем плагин для Unity правильно. Часть 1: iOS

Время на прочтение10 мин
Количество просмотров17K


Когда делаешь на Unity игры для мобильных платформ, рано или поздно придется писать часть функционала на нативном языке платформы, будь то iOS (Objective C или Swift) или Android (Java, Kotlin). Это может быть свой код или интеграция сторонней библиотеки, сама установка может заключаться в копировании файлов или распаковки unitypackage, не суть. Итог этой интеграции всегда один: добавляются библиотеки с нативным кодом (.jar, .aar, .framework, .a, .mm), скрипты на C# (для фасада к нативному коду) и Game Object со специфичным MonoBehavior для отлавливания событий движка и взаимодействия со сценой. А еще часто требуется включать библиотеки зависимостей, которые нужны для работы нативной части.

Весь этот механизм интеграции обычно не вызывает проблем на чистом проекте, в котором еще нет (или мало) интеграций таких сторонних библиотек. Но когда проект разрастается, всплывает много проблем, усложняющих этот процесс, а часто дающих необходимость дополнительных модификаций и адаптирования под проект плагина, что потом выливается в увеличении сложности последующей поддержки и обновления.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии3

Возможности PostgreSQL для тех, кто перешел с MySQL

Время на прочтение9 мин
Количество просмотров50K

Крутой varanio буквально на прошлой неделе прочитал на DevConf забойный доклад для всех кто пересел на Посгрес с MySQL, но до сих пор не использует новую базу данных в полной мере. По мотивам выступления родилась эта публикация.


Мы рады сообщить, что подготовка к PG Day'17 Russia идет полным ходом! Мы опубликовали полное расписание предстоящего мероприятия. Приглашаем всех желающих прийти и похоливарить с Антоном лично



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


Почему вообще возникла идея такого доклада? Дело в том, что PostgreSQL сейчас явно хайповая технология, и многие переходят на эту СУБД. Иногда — по объективным причинам, иногда — просто потому что это модно.


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

Читать дальше →
Всего голосов 59: ↑58 и ↓1+57
Комментарии139

Подборка бесплатных утилит компьютерной криминалистики (форензики)

Время на прочтение3 мин
Количество просмотров99K
image

В этой статье представлены бесплатные инструменты для проведения расследования инцидентов информационной безопасности.
Читать дальше →
Всего голосов 49: ↑48 и ↓1+47
Комментарии18

SQL ключи во всех подробностях

Время на прочтение18 мин
Количество просмотров250K
В Интернете полно догматических заповедей о том, как нужно выбирать и использовать ключи в реляционных базах данных. Иногда споры даже переходят в холивары: использовать естественные или искусственные ключи? Автоинкрементные целые или UUID?

Прочитав шестьдесят четыре статьи, пролистав разделы пяти книг и задав кучу вопросов в IRC и StackOverflow, я (автор оригинальной статьи Joe «begriffs» Nelson), как мне кажется, собрал куски паззла воедино и теперь смогу примирить противников. Многие споры относительно ключей возникают, на самом деле, из-за неправильного понимания чужой точки зрения.

Содержание



Давайте разделим проблему на части, а в конце соберём её снова. Для начала зададим вопрос – что же такое «ключ»?
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии120

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

Время на прочтение14 мин
Количество просмотров26K

image


В этой статье мы с нуля разработаем React-приложение, обсудим домен и его сервисы, хранение, сервисы приложения и представление (view).

Читать дальше →
Всего голосов 35: ↑30 и ↓5+25
Комментарии33

Языки программирования для квантового компьютера

Время на прочтение9 мин
Количество просмотров73K


Прототип ядра ионного квантового компьютера. Ion Quantum Technology Group, Сассекский университет


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


К счастью, для решения этой проблемы появляются отличные проекты, привлекающие внимание широкой аудитории. Например, несколько лет назад IBM дала возможность любому подключиться к 5-кубитному компьютеру. В проекте зарегистрировались 70 000 человек.


Однако индустрия квантовых вычислений по-прежнему остается в зачаточном состоянии. Хотя уже создано немало прототипов, они не могут сделать то, с чем не справится обычный ноутбук. Необходимое аппаратное обеспечение еще не существует, но для изучения у нас есть кое-что еще — языки квантового программирования.


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

Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии23

30 секунд CSS

Время на прочтение11 мин
Количество просмотров57K


Предлагаем вашему вниманию коллекцию полезных CSS-сниппетов, в которых вы можете разобраться за 30 секунд, а то и быстрее.

Читать дальше →
Всего голосов 64: ↑59 и ↓5+54
Комментарии52

Сервис-ориентированная архитектура (SOA)

Время на прочтение14 мин
Количество просмотров198K


Сервис-ориентированная архитектура (service-oriented architecture, SOA) придумана в конце 1980-х. Она берёт своё начало в идеях, изложенных в CORBA, DCOM, DCE и других документах. О SOA написано много, есть несколько её реализаций. Но, по сути, SOA можно свести к нескольким идеям, причём архитектура не диктует способы их реализации:


  • Сочетаемость приложений, ориентированных на пользователей.
  • Многократное использование бизнес-сервисов.
  • Независимость от набора технологий.
  • Автономность (независимые эволюция, масштабируемость и развёртываемость).

SOA — это набор архитектурных принципов, не зависящих от технологий и продуктов, совсем как полиморфизм или инкапсуляция.

Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии2

Группировка с условием

Время на прочтение3 мин
Количество просмотров60K
Периодически возникает задача, которая требует сгруппировать набор данных с условием, что для атрибутов, не участвующих в группировке, нужно взять кортеж с максимальным значением по одному из полей.

Давайте рассмотрим простой пример.
Есть таблица:
CREATE TABLE IF NOT EXISTS shop (
  id INT NOT NULL AUTO_INCREMENT,
  article INT(4) ZEROFILL NOT NULL,
  dealer VARCHAR(45) NOT NULL,
  price DECIMAL(8,2) NOT NULL,
  PRIMARY KEY (id))
ENGINE = InnoDB;

Необходимо для всех article найти dealer с максимальной ценой.

Для этой задачи существует несколько очевидных и простых решений, но я знаю одно из них, которое значительно превосходит все остальные.
Сталкивались с этой задачей? Хотите увидеть новый способ ее решения? Прошу под кат.
Читать дальше →
Всего голосов 71: ↑55 и ↓16+39
Комментарии39

Как стать GPU-инженером за час

Время на прочтение20 мин
Количество просмотров25K
Нужно ли iOS-разработчику, не занимающемуся играми, уметь работать с GPU? Нужно ли ему вообще знать о том, что в айфоне есть GPU? Многие успешно работают в iOS-разработке, никогда не задумываясь об этой теме. Но GPU может быть полезен как для 3D-графики, так и для других задач, в ряде случаев оставляя CPU позади.

Когда на конференции Mobius 2017 Moscow Андрей Володин (Prisma AI) рассказал об использовании GPU в iOS, его доклад стал одним из фаворитов конференции, получив высокие оценки зрителей. А теперь на основе этого доклада мы подготовили хабрапост, позволяющий получить всю ту же информацию текстом. Интересно будет даже тем, кто не работает с iOS: доклад начинается с вещей, не привязанных конкретно к этой платформе.
Осторожно, трафик: под катом очень много изображений со слайдов.

Читать дальше →
Всего голосов 47: ↑42 и ↓5+37
Комментарии18

Искусственный интеллект и нейросети для .NET-разработчиков

Время на прочтение26 мин
Количество просмотров53K

Искусственный интеллект сейчас является одной из самых обсуждаемых тем и главным двигателем цифровой трансформации бизнеса. Стратегия Microsoft в области ИИ включает в себя демократизацию ИИ для разработчиков, т.е. предоставление простых в использовании фреймворков и сервисов для решения интеллектуальных задач. В этой статье рассказывается, как .NET-разработчики могут использовать возможности ИИ в своих проектах: начиная от готовых когнитивных сервисов, работающих в облаке, заканчивая обучением нейросетей на .NET-языках и запуском сложных нейросетевых моделей на компактных устройствах типа Raspberry Pi.


Прототипом статьи послужил доклад Дмитрия Сошникова на конференции DotNext 2017 Moscow. Дмитрий — технологический евангелист компании Майкрософт, занимается популяризацией современных технологий разработки программного обеспечения среди начинающих разработчиков. Специализируется в области интернета вещей, в разработке универсальных приложений Windows, в области функционального программирования и на платформе .NET (F#, Roslyn). Лично провел несколько десятков хакатонов по всей России, помогал многим студенческим стартапам начать свои проекты в различных областях. Доцент, к.ф.-м.н., ведет занятия в МФТИ и МАИ, член Российской ассоциации искусственного интеллекта, летом — ведущий кафедры компьютерных технологий детского лагеря ЮНИО-Р.


Осторожно, трафик! В этом посте присутствует огромное количество картинок — слайдов и скриншотов с видео в формате 720p.

Читать дальше →
Всего голосов 56: ↑52 и ↓4+48
Комментарии9

«Чтение на выходных»: 22 независимых блога о разработке, ИБ, тестировании и геймдеве

Время на прочтение7 мин
Количество просмотров24K
В прошлом месяце в нашей подборке полезных источников оказались блоги о математике и алгоритмах. Сегодня мы решили продолжить изучение тематической ветки Hacker News на предмет интересных источников материалов о разработке.

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

Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии3

Git снизу вверх

Время на прочтение27 мин
Количество просмотров128K
У этого перевода не совсем обычная история. Системы контроля версий далеки от моих профессиональных интересов. Для рабочих проектов они мне требовались нечасто, причем, разные, так что, каждый раз, когда возникала такая необходимость, я заново вспоминала, как в них делается та или иная операция. А для личных проектов мне хватало возможностей Dropbox, хранящей историю версий файлов.


Изображение из твиттера @girlie_mac

Но вот однажды я на три незабываемых дня попала в роддом — это иногда случается с женщинами. Из развлечений у меня были новорожденная дочь и телефон с большим экраном. Дочь поначалу развлекала плохо (дома она быстро исправилась), а на телефоне помимо книг и фильмов обнаружился текст «Git from the bottom up», который оказался более чем годным… С тех пор прошло почти 3 года, подросшей дочке уже пора самой начинать использовать Git Git стал мейнстримом, если не сказать стандартом в современной разработке, а я с удивлением обнаружила, что перевода на русский этого чуда, полезного не только начинающим, но и продвинутым пользователям Git, до сих пор нет. Исправляю эту ситуацию.
Читать дальше →
Всего голосов 104: ↑102 и ↓2+100
Комментарии32

Журнал о работе с сетью. Часть 1

Время на прочтение1 мин
Количество просмотров38K
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии12

Английские фразы, которые не стоит переводить буквально

Время на прочтение4 мин
Количество просмотров244K


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

Повседневные фразы и инструкции


Тут сразу стоит отметить, что в английском довольно много фразовых глаголов, которые очень популярны, особенно в разговорной речи. Понятное дело, что sit down, stand up или come up уже никого не удивят, но есть другие интересные случаи, и не только с фразовыми глаголами.
Читать дальше →
Всего голосов 71: ↑58 и ↓13+45
Комментарии208

Правила английского, которые нарушают ваши иностранные коллеги

Время на прочтение4 мин
Количество просмотров62K


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

Двойное отрицание


Вы же помните, что в предложении на английском достаточно одного отрицания? А потом вдруг слушаем песню Rolling Stones и слышим “I can’t get no satisfaction”. Все дело в том, что это песня, тут можно, скажите вы. И это верно. Но еще стоит упомянуть, что двойное отрицание делает фразу эмоциональнее. Поэтому такие фразы и стали популярны. Но это неформальный способ, так что не увлекайтесь с двойными отрицаниями.
Читать дальше →
Всего голосов 77: ↑72 и ↓5+67
Комментарии191

Информация

В рейтинге
1 698-й
Зарегистрирован
Активность