
Привет, Хабр! Ухудшение работы YouTube стало поистине трагическим событием, которое прибило почти все загрузчики видео, но я нашел легальный способ улучшить ситуацию! Как починить оборудование Google, не привлекая внимание санитаров.
User
Привет, Хабр! Ухудшение работы YouTube стало поистине трагическим событием, которое прибило почти все загрузчики видео, но я нашел легальный способ улучшить ситуацию! Как починить оборудование Google, не привлекая внимание санитаров.
Фото Florencia Viadana, Unsplash.com
После почти пятилетних разработок протокол HTTP/3 наконец приближается к окончательному выпуску. Предыдущие итерации уже доступны как экспериментальная функция, но в 2021 году мы ждём широкого распространения протокола. Что такое HTTP/3? Зачем выпускать его так рано после HTTP/2? Как его можно или нужно использовать? Как он влияет на производительность?
Многие пользователи WIndows поругивают ее последние версии. И даже заявляют что семерка была лучшей из всех. Я бы если честно, даже и XP еще использовал. Или Linux для decktop.
Общеизвестно (хотя есть и спорящие), что лучшим ноутбуком для Винды является макбук. Что лично для меня не подлежит сомнению. Я 10 лет назад перешел на Apple, чему весьма рад. Но вытянуть меня окончательно из болота Windows пока невозможно.
Все «за» и «против» 1С-Битрикс, какие есть альтернативы и что выгоднее знать разработчику?
— Привет! Мы решили нанять тебе помощника на текущий проект, нашли подходящего кандидата. Кстати, он выходит в понедельник.
— Эммм, окей.
Так получилось, что я провожу довольно много собеседований на должность веб-программиста. Один из обязательных вопросов, который я задаю — это чем отличается INNER JOIN от LEFT JOIN.
Чаще всего ответ примерно такой: "inner join — это как бы пересечение множеств, т.е. остается только то, что есть в обеих таблицах, а left join — это когда левая таблица остается без изменений, а от правой добавляется пересечение множеств. Для всех остальных строк добавляется null". Еще, бывает, рисуют пересекающиеся круги.
Я так устал от этих ответов с пересечениями множеств и кругов, что даже перестал поправлять людей.
Дело в том, что этот ответ в общем случае неверен. Ну или, как минимум, не точен.
Надо “SELECT * WHERE a=b FROM c
” или “SELECT WHERE a=b FROM c ON *
” ?
Если вы похожи на меня, то согласитесь: SQL — это одна из тех штук, которые на первый взгляд кажутся легкими (читается как будто по-английски!), но почему-то приходится гуглить каждый простой запрос, чтобы найти правильный синтаксис.
А потом начинаются джойны, агрегирование, подзапросы, и получается совсем белиберда. Вроде такой:
SELECT members.firstname || ' ' || members.lastname
AS "Full Name"
FROM borrowings
INNER JOIN members
ON members.memberid=borrowings.memberid
INNER JOIN books
ON books.bookid=borrowings.bookid
WHERE borrowings.bookid IN (SELECT bookid
FROM books
WHERE stock>(SELECT avg(stock)
FROM books))
GROUP BY members.firstname, members.lastname;
Буэ! Такое спугнет любого новичка, или даже разработчика среднего уровня, если он видит SQL впервые. Но не все так плохо.
Легко запомнить то, что интуитивно понятно, и с помощью этого руководства я надеюсь снизить порог входа в SQL для новичков, а уже опытным предложить по-новому взглянуть на SQL.
Здравствуйте, дорогие читатели хабра и хаба про django. Да, эта статья о фреймворке для перфекционистов с дедлайнами и о том, как в нём не хватает асинхронности. По духу это больше похоже на Enhancement Proposal (менее формальный, чем он мог быть) или RFC, так что, если Вы любите подобные вещи, то Вам может быть интересно.
Вопросом добавления асинхронности сама Django Foundation тоже интересовалась. Дискуссии вылились в DEP-09, который описывает текущий примерный roadmap. Я даже неожиданно обнаружил, что мой этот пост ему не противоречит. Просто о нативной поддержке асинхронности там не очень много и написано. Это считается там последним этапом, до которого ещё нужно дойти. Напоминает мем про то, как рисовать сову: вначале рисуем два круга, потом дорисовываем остальное.
Но давайте, всё-таки, попробуем сделать django асинхронным. Точнее, django orm. Забыл сказать: я считаю django orm главным препятствием на пути django к асинхроннности. Это, как-никак, наибольшая по объёму часть. Потом, именно orm содержит тот набор допущений и характерных черт, которые делают django узнаваемым, как минимум.
Значит, orm. Драйвера базы данных нужны асинхронные, но такие, конечно, уже есть.
История насчитывает довольно мало компаний, которые совершили настоящую революцию и поменяли взгляд на то, какими должны быть технологии. И одна из таких компаний, безусловно, - Heroku.
Чтобы понять, насколько революционным был их подход, давайте просто вспомним, что Heroku создала в 2007-2011 году. Я могу назвать как минимум 3 вещи - контейнеры, serverless и доставку кода через push в GIT. Во многом современный технологический ландшафт был вдохновлен решениями Heroku, увидевшими свет 15 лет назад.
В этой статье я хочу поговорить об истории компании и причинах утраты “былого величия” в наши дни.
Начало истории Heroku
В 2007 году трое разработчиков Ruby — Джеймс Линденбаум, Адам Виггинс и Орион Генри — основали Heroku. Поначалу это был редактор кода в браузере. Проект вызывал “ВАУ эффект”, но не сильно вовлекал пользователей. С этим проектом основатели даже прошли Y Combinator. В ходе доработки платформы разработчики сделали, как им тогда казалось, второстепенную фичу - возможность разворачивать приложения из мастер ветки привязанного GitHub. Цель была простая - дать возможность разработчикам сразу понять, как работает их код. Почему фича казалась второстепенной? На тот момент GitHub только появился, и делать интеграцию с ним было далеко не очевидной идеей.
Но однажды, анализируя то, как пользователи используют проект, основатели Heroku заметили, что многие клиенты используют только функцию развертывания приложений через push в GIT. И с этого момента началась новая страница развития сервиса.
Для 25 миллионов жителей Северной Кореи доступ в интернет невозможен. Только несколько тысяч привилегированных членов общества могут получить доступ к глобальной сети. Но эта прослойка растет, и их запросы тоже увеличиваются. Мы знаем об этом очень мало, информация закрыта. Но есть организации и разные правозащитники, которые пытаются, что могут, анализировать.
И мы видим, что даже этот интернет, на удивление, продолжает развиваться. Особенно активно — в последние годы. Появляются первые интернет-сервисы, а некоторые люди даже умудряются играть в онлайн-игры. Давайте посмотрим, что происходит с северокорейским интернетом под санкциями, и что может ждать нас.
Осторожно, дальше идет много фото с сайтов Северной Кореи.
Мем айсберг SQL: погружение в глубины изучения баз данных
Мем айсберг SQL — это вирусное интернет-изображение, изображающее айсберг с несколькими слоями. Вершина айсберга содержит общеизвестные концепции и инструменты SQL, такие как операторы SELECT и JOIN. Однако по мере погружения под воду становятся видны более абсурдные и малоизвестные аспекты SQL.
На Хабре уже была новость об этом знаменательном событии. Правда, она похожа на пересказ официального пресс-релиза Microsoft, но такой и должна быть "новость".