Как стать автором
Обновить
0
@DarkElzaread⁠-⁠only

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

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

SQL: 15 упражнений с решениями

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров32K

Добрый день! В этом наборе упражнений мы поработаем с SQL и T-SQL. С помощью этих упражнений мы будем создавать разные запросы SQL и T-SQL, чтобы отточить навыки работы с запросами.

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

В моем канале вы найдете подробный разбор SQL задач с собеседований, полезные гайды и уроки для программистов

А здесь целая папка бесплатных полезных ресурсов и каналов.

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

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

Читать далее
Всего голосов 17: ↑6 и ↓11-5
Комментарии19

Аннотирование args и kwargs в Python

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров9K

Когда я пытаюсь обойтись без *args и **kwargs в сигнатурах функций, это не всегда можно сделать, не вредя удобству использования API. Особенно — когда надо писать функции, которые обращаются к вспомогательным функциям с одинаковыми сигнатурами.

Типизация *args и **kwargs всегда меня расстраивала, так как их нельзя было заблаговременно снабдить точными аннотациями. Например, если и позиционные, и именованные аргументы функции могут содержать лишь значения одинаковых типов, можно было поступить так:

def foo(*args: int, **kwargs: bool) -> None:
    ...

Применение такой конструкции указывает на то, что args — это кортеж, все элементы которого являются целыми числами, а kwargs — это словарь, ключи которого являются строками, а значения имеют логический тип.

Но нельзя было адекватно аннотировать *args и **kwargs в ситуации, когда значения, которые можно передавать в качестве позиционных и именованных аргументов, могут, в разных обстоятельствах, относиться к различным типам. В таких случаях приходилось прибегать к Any, что противоречило цели типизации аргументов функции.

Читать далее
Всего голосов 20: ↑19 и ↓1+18
Комментарии2

Рыцари плаща и руткитов: что посмотреть про хакеров. Сериалы

Время на прочтение8 мин
Количество просмотров69K
Лето — пора путешествий и заслуженного отдыха.  Каким бы ни было путешествие и куда бы вы ни направлялись, наверняка, это будет длинная дорога (авиаперелет или поезд), или же среднего качества связь, если мы говорим об удаленных от благ цивилизации местах.

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

Мы приготовили для вас небольшую подборку сериалов, так или иначе связанных с ИT. А натолкнула нас на идею этого поста многолетняя дружба ЛАНИТ с Международным фестивалем документального кино "ДОКЕР", где, кстати, в том числе с нашей помощью традиционной стала номинация для фильмов о возможностях информационных технологий «Let IT Doк!».

Кадр из сериала «Mr. Robot» (eps3.1_undo.gz)
Читать дальше →
Всего голосов 93: ↑89 и ↓4+85
Комментарии88

Отношение многие ко многим без третьей таблицы в PostgreSQL используя Elixir Ecto

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

Иногда использование третьей таблицы для связи многое ко многим не есть необходимым и добавляет в разработку проекта дополнительные сложности. Попытаемся уйти от использования третьей таблицы используя столбец типа массив добавленный в PostgreSQL 9.1
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии28

Каверзные сетевые вопросы

Время на прочтение14 мин
Количество просмотров221K
Давно была идея собрать воедино интересные вопросы, касающиеся сетей.

Объединяет их то, что все они довольно простые, но мы подчас о них не задумываемся (я во всяком случае о них не задумывался).
В общем я их собрал, подбил, нашёл ответы.
Итак, блиц опрос:

Начнём с самых низких уровней и с самых простых вопросов



В1. Почему для витой пары выбран такой странный порядок: синяя пара на 4-5, разрывая зелёную, которая на 3, 6?




Ответ
О1: Сделано это в угоду двухконтактному телефонному разъёму. Таким образом, например, в патч-панель можно вставить как телефонный кабель, так и витую пару.
Можно даже через один кабель вывести и сеть и телефонию, но я вам этого не говорил!

habrahabr.ru/post/158177.


В2. В стандарте Ethernet между кадрами всегда имеется промежуток, называемый IFG (Inter Frame Gap) длиною 12 байтов. Для чего он нужен, и почему он присутствует в современных стандартах?

Читать дальше →
Всего голосов 166: ↑153 и ↓13+140
Комментарии209

Безопасная настройка виртуального хостинга Debian + Apache2 + vsftpd

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

1. Постановка задачи


Дано
Debian-сервер «из коробки» (установлен из дистрибутива)

Задача
Организовать работу нескольких проектов на сервере, чтобы люди, которые ими занимаются, не имели доступа к соседним проектам:
  • Ограничить возможность обзора файловой системы определенной папкой для пользователя проекта.
  • Ограничить возможность запуска бинарников пользователями
  • Ограничить возможность открытия портов на сервере (нужно как-то по другому сформулировать)
  • Автоматизировать добавление пользователя в систему: создание папки, конфига apache, пользователей mysql или postgres
Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Комментарии8

Выпуск#21: ITренировка — актуальные вопросы и задачи от ведущих компаний

Время на прочтение5 мин
Количество просмотров10K
Подоспел очередной выпуск ITренировки — задач, предлагаемых на собеседования в ведущие IT-компании.

КДПВ

В подборку вошли задачи и вопросы от Facebook, которые задают желающим устроиться на должность разработчика. Традиционно, отобраны как простые задачи, так и не очень. Рекомендуем попробовать решить задачи самостоятельно, ссылку на оригинальные решения мы обычно добавляем в секцию ответов.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии59

Фронтенд как у сына маминой подруги

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

Привет. Я Катя. Я пишу фронтенд в Яндекс.Деньгах.


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



В этой статье я расскажу, что мы разрабатываем, как оптимизируем рабочие процессы и зачем развивать свои soft skills. На подходе вторая часть — она будет технической. В ней подробно расскажу про стек, почему их два и как мы дружили БЭМ с React (спойлер: будет много кода). Поехали!


upd. Вторая часть вышла.

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

Итак, менеджер попросил пофиксить баг…

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

Вы были здесь прежде. Ваша программа элегантна. Вы использовали точно требуемое количество абстракций. Ваши модули безупречно модульные. Ваша система имеет дело с внешним миром через продуманные интерфейсы и не имеет никакой прямой зависимости от внешних систем. Ваши тесты пройдены безукоризненно. Ваш отчёт о покрытии тестами кода требует целую минуту для загрузки. 97% это значит…

Жизнь прекрасна. А затем происходит нечто.
Читать дальше →
Всего голосов 103: ↑84 и ↓19+65
Комментарии98

Yii2-advanced: альтернативное размещение папок для нескольких приложений

Время на прочтение4 мин
Количество просмотров15K
Хочу поделиться альтернативным рецептом файловой структуры для нескольких приложений в Yii2-advanced, не прибегая к модулям. Внешние отличия, к которым мы придем, выглядят следующим образом:

Конечная файловая архитектура

Читать дальше →
Всего голосов 24: ↑15 и ↓9+6
Комментарии15

43 полезных сервиса для управления проектами. Без эпитетов

Время на прочтение13 мин
Количество просмотров691K
Дано: собственные и аутсорс-проекты, некоторые участники работают удаленно.

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

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

Изначально сервисов было более 100, но постепенно список сокращался, и мы остановили наш выбор на трех, удовлетворяющих вместе наши нужды лучше всего: Jira, Slack и GanttPro. Но, если вдруг эти сервисы не помогут вам в планировании задач и работы с командой, делюсь с вами полным списком:

Процесс поиска очень часто усложняется тем, что все сервисы, как один, пишут «Лучший сервис, помогающий превратить ваши идеи в реальность и реализовать ваши проекты. Сегодня.». Так, а что вы делаете-то? Поэтому в этом списке без лишних эпитетов, только что какой сервис умеет. :)




Читать дальше →
Всего голосов 38: ↑32 и ↓6+26
Комментарии46

Производительное юнит-тестирование веб-приложений на примере yii2 и codeception

Время на прочтение13 мин
Количество просмотров22K
Задача данной статьи — показать самый производительный путь написания тестов в контексте разработки веб-приложений.
Здесь и дальше под термином тесты будут подразумеваться юнит-тесты.

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

Источник проблемы находится в отсутствии четкого разделения кода работы с базой данных, кода, которому необходим фреймворк, и кода, для работы которого не нужна ни база данных, ни фреймворк.

Наша цель будет разобраться, каким образом необходимо писать тесты и код для обеспечения максимальной скорости выполнения тестов.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии3

Все о коллекциях в Oracle

Время на прочтение12 мин
Количество просмотров266K
Статья имеет довольно таки тезисный стиль. Более подробное содержание можно найти в приложенном внизу статьи видео с записью лекции по коллекциям Oracle.

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

Таким же образом коллекции используются и в Oracle.

Содержание статьи



Шокирующие детали про коллекции в Oracle
Всего голосов 19: ↑17 и ↓2+15
Комментарии9

Мозг программиста

Время на прочтение6 мин
Количество просмотров61K
Спасибо за статью habrahabr.ru/post/191210! Хорошую тему подняли.

Поделюсь и своим опытом. Ниже — идентичное содержание и первой, и заключительной лекции в программе подготовки стажеров.

В программировании, помимо ЭВМ, методик и софта с разных сторон, есть еще такой ключевой элемент, как программист.

Почему он самый главный? Потому что, как знают многие, большую часть решений можно создать без ЭВМ, без методик и без софта – карандашом на бумаге или вовсе в воображении. А без программиста создать программу нельзя. Потому что он, программист, как раз программу и создает.

О программисте, как о решающем факторе, и о его мозге, как об основном инструменте, мы сейчас поговорим.
Читать дальше →
Всего голосов 68: ↑52 и ↓16+36
Комментарии11

ASP.NET MVC 4 RAZOR Динамическое многоуровневое меню из БД

Время на прочтение5 мин
Количество просмотров23K
Как и обещал в предыдущем посте DropDownList, Задать «value» для default option в MVC 4, сегодня расскажу про построение динамического многоуровневого меню с бесконечной вложенностью, хранящееся в БД MsSQL. Помню в свое время на ПХП это тоже было задачкой на пару дней. Но для MVC 4 с движком RAZOR — еле разобрался, хотя в итоге как всегда ничего сложного или сверхъестественного. Статья рассчитана на тех, кто делать это не умеет. Если Вы знаете как сделать лучше — поделитесь. Приступим.

Сей мануал предполагает, что Вы уже оперируете знаниями, полученными при ознакомлении с этими статьями: Entity Framework в приложении ASP.NET MVC. Или этими: ASP.NET MVC 4 Tutorials

1) Сначала нужно разобраться со структурой БД. Это главное. С теорией можно ознакомиться в статье Иерархические структуры данных в реляционных БД. Мы будем использовать максимально простую структуру, называемой «структура со ссылкой на предка».
Читать дальше →
Всего голосов 9: ↑4 и ↓5-1
Комментарии11

Умное планирование задач с todoist

Время на прочтение5 мин
Количество просмотров15K
Хороший человек silenced недавно присоветовал мне весьма удобный планировщик задач, который давно и безуспешно искала. Делюсь радостью с хабрасообществом — подробный обзор планировщика задач Todoist от silenced (у автора недостаточно кармы для публикации, а полезная информация должна принадлежать народу :)

Я очень люблю планировать свои задачи и многим знакомым для этих целей рекомендую сервис Todoist, которым пользуюсь уже почти год. Однако, многие после того, как зарегистрировались и немножко осмотрелись, уходят с сайта и успешно о нем забывают. Если спросить о причине ухода, в ответ обычно получаю что-то невнятное, а потом оказывается что человек просто не знает о всех возможностях сервиса.
Специально для тех, кому лень копаться и смотреть описание на сайте, решил посвятить этому сервису отдельную статью.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии6

KnockoutJS: Ajax grid view с нуля в 40 строк

Время на прочтение8 мин
Количество просмотров14K
В последнее время на Хабре все больше упоминаний о KnockoutJS, и я не останусь в стороне от этого тренда.
Сегодня я расскажу о том как сделать своими руками Ajax Grid View с фильтрацией и переходом по страницам написав, при этом, совсем немного кода.
Начиная писать эту статью я чувствовал себя несколько неловко, да и сейчас ощущение не ушло. Все дело в том, что сама библиотека простая, паттерн MVVM простой, и рассказывать я буду простые вещи. Я уверен, что в ближайшее время Knockout получит достаточно большое распространение. А неловко мне от того, что уже через год-дугой кто-то наткнувшись на эту статью будет обескуражен простотой изложенного материала. Примерно так, как любой из вас сейчас, открывший статью о jQuery от 2007 года.

Кто не испугался предполагаемого баяна, милости прошу под хабракат.

Читать дальше →
Всего голосов 39: ↑36 и ↓3+33
Комментарии22

ASP.NET MVC: Привязка данных модели, которые содержат изображения

Время на прочтение5 мин
Количество просмотров9K
Привязка данных(binding) является достаточно удобным средством ASP.NET MVC. Удобно оно в первую очередь тем, что позволяет скрыть реализацию преобразования данных между данными из модели и данными HTTP запроса.
В своих проектах я часто сталкиваюсь с необходимостью сохранять различные данные типа blob и image. В этой статье я бы хотел показать, как можно легко организовать и использовать привязку данных из модели, которые содержат различные изображения. Для примера я взял учебный проект MVC Music Store и решил его подправить — добавить возможность изменять изображение обложки музыкального альбома. При написании данной статьи, я использовал версию APS.NET MVC 3 и Razor.
Читать дальше →
Всего голосов 27: ↑20 и ↓7+13
Комментарии7

Фильтры данных на ASP.NET MVC и Entity Framework

Время на прочтение12 мин
Количество просмотров23K
Очень часто в различных веб-приложениях мы работаем с данными, выбранными из таблиц БД. И нередко необходимо предоставлять пользователю возможность фильтровать эти данные. Можно, конечно, для каждого случая собирать данные с формы в ручную и в ручную создавать соответствующий запрос под них. Но что если у нас 20 разных страниц, представляющих те, или иные данные? Обрабатывать в ручную все долго и не удобно, а поддерживать еще хуже. Моя версия решения данной проблемы на ASP.NET MVC + Entity Framework под катом.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии42

nopCommerce — электронный магазин с открытым исходным кодом

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

Проект CodePlex как-всегда радует свежими и интересными проектами. Например проект nopCommerce — отличный тому пример. Он открыт и полностью бесплатен («nopCommerce is the best Open Source online shop e-commerce solution. nopCommerce is available for free»). По словам разработчиков он имеет всё, что нужно для того, чтобы начать продавать любые товары через интернет.Заявленный функционал каталога:
  1. Поддержка категорий и производителей
  2. Категории поддерживают наследование от произвольного уровня (подкатегории)
  3. Товары могут принадлежать многим категориям и производителям
  4. Поддержка многих языков
  5. Поддержка различных валют
  6. Пересчет цен в другой валюте в реальном времени
  7. 100% настраиваемый дизайн, основанный на шаблонах
Всего голосов 63: ↑49 и ↓14+35
Комментарии104

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность