Pull to refresh
0
0
Alx A. Lav @Kabrich

User

Send message

Понимание джойнов сломано. Это точно не пересечение кругов, честно

Reading time4 min
Views309K

Так получилось, что я провожу довольно много собеседований на должность веб-программиста. Один из обязательных вопросов, который я задаю — это чем отличается INNER JOIN от LEFT JOIN.


Чаще всего ответ примерно такой: "inner join — это как бы пересечение множеств, т.е. остается только то, что есть в обеих таблицах, а left join — это когда левая таблица остается без изменений, а от правой добавляется пересечение множеств. Для всех остальных строк добавляется null". Еще, бывает, рисуют пересекающиеся круги.


Я так устал от этих ответов с пересечениями множеств и кругов, что даже перестал поправлять людей.


Дело в том, что этот ответ в общем случае неверен. Ну или, как минимум, не точен.

Читать дальше →
Total votes 179: ↑138 and ↓41+97
Comments225

MySQL — Использование переменных в запросе

Reading time7 min
Views65K
Довольно часто спрашивают, есть ли аналоги аналитических (оконных) функций в MySQL. Примечание. На момент написания статьи таких аналогов не было, однако статья и ныне представляет собой академический интерес в плане разбора оригинального для MySQL подхода к использованию переменных.

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

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

Одним из этих средств является уникальный, нехарактерный для прочих СУБД механизм работы с переменными внутри запроса SQL. Мы можем объявить переменную внутри запроса, менять ей значение и подставлять в SELECT для вывода. Причем порядок обработки строк в запросе и, как следствие, порядок присвоения значений переменным можно задать в пользовательской сортировке!

Предупреждение. В статье подразумевается, что обработка выражений в предложении SELECT осуществляется слева направо, однако официального подтверждения такого порядка обработки в документации MySQL нет. Это необходимо иметь в виду при смене версии сервера. Для гарантии последовательности вычисления можно использовать фиктивный оператор CASE или IF.

Аналог рекурсии


Рассмотрим простой пример, который генерирует последовательность Фибоначчи (в последовательности Фибоначчи каждый член равен сумме двух предыдущих, а первые 2 равны единице):
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments10

Математическая модель игры Доббль

Reading time12 min
Views51K

Уровни сложности чтения


  • Я слишком молод, чтобы думать


    • Введение и правила игры
    • Как они это делают?
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности

  • Сделай мне умно


    • Введение и правила игры
    • Как они это делают?
    • При чём тут карточки?
    • Проективные плоскости малых порядков
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности

  • Кошмар


    • Введение и правила игры
    • Как они это делают?
    • Конечная геометрия для грудничков
    • При чём тут карточки?
    • Проективные плоскости малых порядков
    • Как построить проективную плоскость?
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности


Введение и правила игры


Несколько лет назад я купил игру Доббль (Dobble, оригинальное название “Spot It!”). Это очень простая, быстрая и весёлая игра, которую я считаю одной из лучших настольных игр вообще.

Читать дальше →
Total votes 110: ↑110 and ↓0+110
Comments23

Пудра для мозга или как сделать порошок для посудомойки в 9,7 раз дешевле

Reading time11 min
Views285K


Update
Новый вариант порошка и более подробный разбор во второй части: DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт

Сейчас расскажу, как из соды и стирального порошка сделать порошок для посудомоечной машины. Такой же по составу, только дешевле на порядок.

Есть очень много областей нашей жизни, где наше представление формирует исключительно маркетинговый буллшит. Увы, большинство людей даже не пытаются задумываться о том, что лежит в основе всего этого. Очень часто рыночная ситуация приводит к тому, что себестоимость продукта составляет 0.5% от его цены. Остальное маркетинг, наценки, логистика, упаковка и тому подобное. Почти все в курсе про концепцию продажи чернил для принтера по цене слез гималайских девственниц и настойчивые рекомендации производителей использовать только оригинальные расходные материалы. Например, совсем недавно меня озарило, что 1.5 грамма сухого вещества во флаконе удобрений для растений не могут стоить 200-250 рублей. А ведь именно такое количество может уместиться в относительно стабильном состоянии в виде раствора. Я сразу представил себе гектары полей и грузовики, которые везут тонны порошка. В результате перешел на расфасовки по 1 кг Буйских комплексных сухих удобрений. Можно ванну раствора приготовить.

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

TLDR:

70% прокаленной соды и 30% стирального порошка вместо моющего средства.
Если очень лень возиться с содой, то просто порошок Биолан или его аналоги. Сода удешевляет.
Пищевая соль «Экстра» вместо соли.
Да начнутся адские эксперименты!
Total votes 159: ↑158 and ↓1+157
Comments447

12 малоизвестных фактов о CSS

Reading time9 min
Views60K
Предлагаю читателям «Хабрахабра» перевод статьи «12 Little-Known CSS Facts (The Sequel)». Она совсем недавно была упомянута в дайджесте интересных материалов из мира веб-разработки и IT.

Update: немного «шлифанул» перевод напильником. Выражаю благодарность всем неравнодушным читателям.
Внимание! Под катом почти 1.5 Мб картинок и много интересных ссылок.

Итак, начнём-с…

1. В свойстве border-radius можно использовать slash-синтаксис.


Об этом уже писалось 4 года назад, но многие новички и даже некоторые опытные разработчики не знают о существовании этой «фишки».

Верите или нет, но следующий код валиден:

.box {
  border-radius: 35px 25px 30px 20px / 35px 25px 15px 30px;
}

Читать дальше →
Total votes 73: ↑71 and ↓2+69
Comments21

Сайт ГИБДД продолжает радовать

Reading time1 min
Views19K
Читая новости на самом авторитетном ресурсе Рунета, я наткнулся на эту.

Суть: на официальном сайте ГИБДД выложили интерактивный алгоритм действий в случае ДТП.
Офлайн-версию в PDF можно скачать здесь.
А в онлайн-версии, в общем-то, всё то же самое
Total votes 28: ↑23 and ↓5+18
Comments47

Знакомство и прощание с Меркурием

Reading time7 min
Views43K


Кажется странным, что третья по близости планета к Земле, до недавнего времени, была хуже всего изучена. На Венеру и Марс слетало более десятка космических аппаратов. Даже у Юпитера земные посланники бывали чаще. У Сатурна второй десяток лет работает мощная исследовательская станция Cassini. Кажется, что против Меркурия сложился заговор.
Читать дальше →
Total votes 104: ↑103 and ↓1+102
Comments52

Избавляемся от JavaScript в социальных кнопках (Facebook, VK, Twitter и др.)

Reading time5 min
Views78K
Как мы избавились от JavaScript-библиотек социальных сетей, ускорили скорость загрузки страниц и использовали RESTful API для “шаринга” и “лайков”.


Читать дальше →
Total votes 78: ↑73 and ↓5+68
Comments44

Что такое grep и с чем его едят

Reading time6 min
Views656K
Эта заметка навеяна мелькавшими последнее время на хабре постами двух тематик — «интересные команды unix» и «как я подбирал программиста». И описываемые там команды, конечно, местами интересные, но редко практически полезные, а выясняется, что реально полезным инструментарием мы пользоваться и не умеем.
Небольшое лирическое отступление:
Года три назад меня попросили провести собеседование с претендентами на должность unix-сисадмина. На двух крупнейших на тот момент фриланс-биржах на вакансию откликнулись восемь претендентов, двое из которых входили в ТОП-5 рейтинга этих бирж. Я никогда не требую от админов знания наизусть конфигов и считаю, что нужный софт всегда освоится, если есть желание читать, логика в действиях и умение правильно пользоваться инструментарием системы. Посему для начала претендентам были даны две задачки, примерно такого плана:
— поместить задание в крон, которое будет выполняться в каждый чётный час и в 3 часа;
— распечатать из файла /var/run/dmesg.boot информацию о процессоре.

К моему удивлению никто из претендентов с обоими вопросами не справился. Двое, в принципе, не знали о существовании grep.

image

Поэтому… Лето… Пятница… Перед шашлыками немного поговорим о grep.
Читать дальше →
Total votes 188: ↑174 and ↓14+160
Comments144

Фотографии NASA, которые должен увидеть каждый

Reading time3 min
Views117K
Привет, читатель Geektimes. Я знаю, все мы тут собрались из-за интересных новостей из мира технологий и науки. Но сегодня, в пятницу, я предлагаю тебе, читатель, расслаблено сесть в своем кресле и притронуться к прекрасному, потому что лично я получил огромное удовольствие в процессе подготовки этого материала.

Под катом много фото и изображений взятых из аккаунта NASA Goddard Space Flight Center на Фликере, все кликабельны, а так же даны ссылки на скачивание в максимально возможных разрешениях. Некоторые из оригиналов огромны и годятся для фотообоев, серьезно, так что будьте аккуратны с трафиком.

А теперь наслаждайтесь.

image

Large (2048 x 2048) Original (4096 x 4096)
100-миллионный кадр, сделанный в SDO (Solar Dynamics Observatory) NASA. Для создания кадра использовалось параллельно четыре телескопа, которые по очереди фотографировали солнце в десяти различных волновых диапазонах каждые 12 секунд.
Посмотреть все фото
Total votes 76: ↑74 and ↓2+72
Comments29

Собеседование на позицию разработчика, как оно есть

Reading time8 min
Views50K
Доброго времени суток. На данный момент я занимаю должность Senior/Team Lead IOS Developer. Так вышло, что за последний год мне довелось побывать на огромном количестве собеседований, так сказать, по обе стороны баррикад. Поэтому мне бы хотелось поделиться своим опытом и поговорить о том, как, на мой взгляд, надо проводить собеседование, ведь в общей суматохе можно упустить ряд важных моментов, что, впоследствии, может негативно отразиться на качестве собеседования.

image

Данная статья будет полезна людям, которые волею судьбы вынуждены проводить собеседования, но при этом не имеют необходимого опыта и плана, как и я когда-то. Все, что описано ниже, является выводами из большого количества проведенных собеседований. Но, как говорится, любое совпадение имен или событий с реальными являются случайностью.
Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments51

Oracle RAC. Общее описание / Часть 1

Reading time10 min
Views72K
Высоконагруженные сайты, доступность «5 nines». На заднем фоне (backend) куча обрабатываемой информации в базе данных. А что, если железо забарахлит, если вылетит какая-то давно не проявлявшаяся ошибка в ОС, упадет сетевой интерфейс? Что будет с доступностью информации? Из чистого любопытства я решил рассмотреть, какие решения вышеперечисленным проблемам предлагает Oracle. Последние версии, в отличие от Oracle 9i, называются Oracle 10g (или 11g), где g – означает «grid», распределенные вычисления. В основе распределенных вычислений «как ни крути» лежат кластера, и дополнительные технологии репликации данных (DataGuard, Streams). В этой статье в общих чертах описано, как устроен кластер на базе Oracle 10g. Называется он Real Application Cluster (RAC).

Статья не претендует на полноту и всеобъемлемость, также в ней исключены настройки (дабы не увеличивать в объеме). Смысл – просто дать представление о технологии RAC.

P.S. Beware of the многабукаф
Продолжение статьи

Читать дальше →
Total votes 55: ↑49 and ↓6+43
Comments10

Обработка и оформление отчетов в Excel на PHP

Reading time16 min
Views251K

Не редко при разработке некоего проекта, возникает необходимость в формировании отчетной статистики. Если проект разрабатывается на Delphi, C# или к примеру, на С++ и под Windows, то тут проблем нет. Всего лишь необходимо воспользоваться COM объектом. Но дела обстоят иначе, если необходимо сформировать отчет в формате excel на PHP. И чтобы это творение функционировало на UNIX-подобных системах. Но, к счастью, не так все плохо. И библиотек для этого хватает. Я свой выбор остановил на PHPExcel. Я уже пару лет работаю с этой библиотекой, и остаюсь доволен. Поскольку она является кроссплатформенной, то не возникает проблем с переносимостью.


PHPExcel позволяет производить импорт и экспорт данных в excel. Применять различные стили оформления к отчетам. В общем, все на высоте. Даже есть возможность работы с формулами. Только необходимо учитывать, что вся работа (чтение и запись) должна вестись в кодировке utf-8.

Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments28

Что не пишут в википедии о глобальных навигационных спутниковых системах

Reading time8 min
Views42K
Вдохновлённый серией постов «Теория радиоволн», я решился на аналогичный пост о системах спутникового позиционирования. Я работаю в структуре, которая занимается обеспечением функционирования системы ГЛОНАСС, поэтому постараюсь рассказать о ней и её конкурентах с несколько другой точки зрения. Пост будет именно об их устройстве, попутно хотелось бы развеять несколько мифов.
Читать дальше →
Total votes 178: ↑174 and ↓4+170
Comments161

Новый сервис Google поможет найти пропавший телефон

Reading time1 min
Views167K
image

Вы когда-нибудь теряли свой телефон между подушками дивана или оставляли в ресторане? Или может быть поиск телефона перед выходом из дома — обычное для вас занятие по утрам? В этом месяце Google намерена выпустить Android Device Manager, который сможет вам помочь. Это один из простых методов который вы можете использовать что бы сохранить своё устройство при себе, а данные на нём — в безопасности.
Читать дальше →
Total votes 56: ↑40 and ↓16+24
Comments71

Microsoft NCSI на службе или как мы искали забытый нетбук

Reading time3 min
Views64K
Казалось бы, обычная история — однокурсник забыл нетбук в университете, однако стечение обстоятельств дало идею использования стандартной функции Windows для возможности определения последнего мест выхода устройства в сеть.
Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments28

А кому на солнышке зарядиться?

Reading time3 min
Views23K
процесс подзарядки смартфона с  BP-SC4000
Есть у меня друг-непоседа. Отпустила его учеба университетская и летом нагрянул сезон путешествий. Было принято решение пойти с туристами в поход в Карпаты. Комфортно и только на недельку.
Я по семейным делам только сочувствующий, но хотя бы помочь организации смог. Так как комфорт и цивилизация сейчас неотделима от режима «на связи» и надо пользоваться GPS-навигацией, то мне было поручено разобраться с проблемой зарядки смартфонов компании, которые имеют свойство очень быстро садится в ненужный момент.

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

В результате решили шикануть и раздобыть зарядку американского производителя «Opteka».
Нам приглянулся BP-SC4000
Total votes 116: ↑111 and ↓5+106
Comments117

25 полезных шорткатов для Photoshop

Reading time3 min
Views187K
Здравствуй, дорогой хабрадруг! В этой статье приводятся 25 самых полезных сочетаний клавиш (шорткатов) в Photoshop, которые вы можете использовать, для того чтобы ускорить выполнение вашей работы. Некоторые из них редко упоминаются, некоторые применяются довольно часто, а некоторые вообще доступны только в Photoshop CS5. Я надеюсь, что каждый из вас найдет новые и полезные шорткаты в этой статье. Итак, давайте же начнем!


Читать дальше →
Total votes 126: ↑103 and ↓23+80
Comments76

Information

Rating
Does not participate
Location
Северск, Томская обл., Россия
Date of birth
Registered
Activity