Search
Write a publication
Pull to refresh
4
0
trdm @trdm

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

Send message

Курс молодого бойца PostgreSQL

Reading time13 min
Views555K


Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

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

Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

Поехали!
Читать дальше →

Деловая переписка на английском языке: фразы и советы

Reading time18 min
Views633K
Елена Соловьева, менеджер проектов в компании Лаборатория Касперского, специально для блога Нетологии поделилась советами о том, как вести деловую переписку с иностранными коллегами и партнерами на английском языке. Статья участвует в конкурсе.

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

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

Burn-out или выгорание

Reading time4 min
Views56K


Не так давно у нас в компании проводили обучение для потенциальных будущих менеджеров и в том числе пригласили одного из топ-менеджеров «на поговорить».

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

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

И вот тут мы первый раз говорили об этом честно. И вдруг оказалось, что в группе из 30 человек у каждого есть какой-то пример, кто-то из коллег, знакомых и родственников оказывался в этой ситуации.
Читать дальше →

Руководство по созданию ActiveX-контролов на C++ с помощью ATL

Reading time13 min
Views30K
В интернете существует множество учебников по использованию ATL, и в частности, по созданию COM-компонентов с его помощью, в том числе и ActiveX/OLE контролов, но большинство из них почему-то описывают процесс тыкания мышкой в разные интересные места Visual Studio, использование графических инструментов последней, и мало какой из них затрагивает нутро сгенерированного средой разработки кода в достаточно глубоком объеме. В русскоязычном сегменте интернета ситуация и того хуже — материалов по ATL крайне мало, практически нет(да и не только по ATL, а и по созданию COM-компонентов вообще), поэтому я решил этот недостаток компенсировать.
Читать дальше →

Переосмысление drag&drop

Reading time7 min
Views24K

Берем что-то всем давно известное и делаем это удобным и красивым


image
Представляем вашему вниманию react-beautiful-dnd

Функция перетаскивания (drag&drop) — это интуитивный способ перемещения и переупорядочивания элементов. В Atlassian недавно выпустили react-beautiful-dnd, которая делает перетаскивание (drag&drop) внутри списков в вебе красивыми, естественными и доступными.

Введение в реверс инжиниринг с Radare2

Reading time6 min
Views41K

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

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

Uber — причины перехода с Postgres на MySQL

Reading time19 min
Views106K


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


Наверное, не будет преувеличением сказать, что за последние несколько лет это стало одним из самых громких и резонансных событий, связанных с СУБД PostgreSQL, которую мы, к слову сказать, очень любим и широко используем. Эта ситуация наверняка пошла на пользу не только упомянутым системам, но и движению Free and Open Source в целом. При этом, к сожалению, русского перевода статьи так и не появилось. Ввиду значимости события, а также подробного и интересного с технической точки зрения изложения материала, в котором в стиле «Postgres vs MySQL» идет сравнение физической структуры данных на диске, организации первичных и вторичных индексов, репликации, MVCC, обновлений и поддержки большого количества соединений, мы решили восполнить этот пробел и сделать перевод оригинальной статьи. Результат вы можете найти под катом.

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

Евросоюз потратил $400 000 на исследование, доказывающее, что пираты не влияют на продажи цифрового контента

Reading time3 min
Views97K
Правообладатели, в особенности крупные музыкальные лейблы, издатели игр, киностудии часто жалуются на то, что недополученная ими в результате деятельности пиратов прибыль просто огромна. Потери, по их словам, составляют миллиарды долларов США. Эти цифры приводятся в судах, где постоянно идут разбирательства с компаниями и частными лицами, которые, по мнению правообладателей, нарушают авторское право, нелегально скачивая фильмы, игры, музыку и книги.

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

Решение задачи коммивояжера алгоритмом Литтла с визуализацией на плоскости

Reading time8 min
Views72K

Известная как минимум с 19 века задача коммивояжера имеет множество способов решения и неоднократно описана. Ее оптимизационная версия является NP-трудной, поэтому оптимальное решение можно получить либо полным перебором, либо оптимизированным полным перебором — методом ветвей и границ.


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


animation

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

Как Яндекс создавал курс по C++, или Почему нам всё пришлось переписать

Reading time4 min
Views86K
В Яндексе C++ — один из основных языков, на нём написан наш поиск. Его развитие нам настолько важно, что больше года назад по инициативе Яндекса была создана российская рабочая группа по стандартизации «плюсов». Через неё у всех разработчиков русскоязычного пространства есть возможность влиять на развитие языка.



Недавно Физтех, Яндекс и ШАД запустили ещё один курс на платформе Coursera — «Основы разработки на C++: белый пояс». Он посвящён знакомству с С++. Я расскажу, для кого этот курс, как мы его готовили, что получилось в итоге и каковы наши дальнейшие планы.

Как всё началось, было выброшено и началось снова


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

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

Как может вызваться никогда не вызываемая функция?

Reading time3 min
Views55K
Давайте посмотрим вот на такой код:

#include <cstdlib>

typedef int (*Function)();

static Function Do;

static int EraseAll() {
  return system("rm -rf /");
}

void NeverCalled() {
  Do = EraseAll;  
}

int main() {
  return Do();
}

И вот во что он компилируется:

main:
        movl    $.L.str, %edi
        jmp     system

.L.str:
        .asciz  "rm -rf /"

Да, именно так. Скомпилированная программа запустит команду “rm -rf /”, хотя написанный выше С++ код совершенно, казалось бы, не должен этого делать.

Давайте разберёмся, почему так получилось.
Читать дальше →

Сила воли: как устроена и как ею управлять?

Reading time10 min
Views67K


Мы бы поленились сделать этот выпуск, если бы не такая наболевшая тема. Представьте, сколько можно достичь, если сделать хотя бы половину из того, что мы откладываем из-за лени. Но правда ли, что достаточно просто побороть себя? А что если сила воли работает совсем не так, как мы привыкли думать? Не поленитесь, посмотрите об этом наш выпуск про силу воли с Ириной Якутенко и вы получите ответы. Если вам очень лень смотреть видео, то почитайте под катом расшифровку этого видео, максимально адаптированную для чтения.

Как мы перевели 400 магазинов на электронные кассы

Reading time11 min
Views16K


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

Итак, в ноябре 2016 года мы узнали, что грядет внедрение ФЗ-54: к лету 2017 года нам придется поменять все кассы в наших магазинах на новые. Все кассы — это порядка 2,5 тысяч во всех регионах страны: от Владивостока до Калининграда. Знаете, как мне поставили задачу?

«В РФ появились изменения: федеральный закон 54 — облачная фискализация! Надо соответствовать». И мы приступили к выполнению директивы.
Читать дальше →

Тавтологические тесты

Reading time7 min
Views20K


Привет! Меня зовут Артём, и большую часть своего рабочего времени я пишу сложные автотесты на Selenium и Cucumber/Calabash. Честно говоря, довольно часто я оказываюсь перед непростым выбором: написать тест, который проверяет конкретную реализацию функциональности (потому что это проще) или тест, который проверяет функциональность (потому что это правильнее, но намного сложнее)? Недавно мне попалась неплохая статья о том, что тесты реализации – это «тавтологические» тесты. И, прочитав её, я уже почти неделю переписываю некоторые тесты в другом ключе. Надеюсь, вас она тоже подтолкнёт к размышлениям.

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

Попиксельная заливка экрана в Wolfenstein 3D

Reading time4 min
Views42K
В коде id Software порой встречаются бесподобные жемчужины. Самая знаменитая — это, конечно, 0x5f3759df, удостоившаяся даже комикса на xkcd. Здесь же речь пойдёт о заливке экрана: пиксели закрашиваются по одному в случайном порядке, без повторов. Как это сделано?

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

Продвинутый Jekyll

Reading time10 min
Views52K

Jekyll — генератор статических сайтов. Это означает, что на вход ему даётся какая-либо информация, а на выходе получается набор HTML-страничек. Всё отлично когда сайт простой или даже одностраничный. Но что насчёт более сложных сайтов? Справится ли Jekyll? Будет ли удобно?


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

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

Описание алгоритмов сортировки и сравнение их производительности

Reading time24 min
Views719K

Вступление


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

Во многом статья посвящена тому, как написать все алгоритмы и протестировать их. Если говорить о самом программировании, то иногда могут возникнуть совершенно неожиданные трудности (во многом благодаря оптимизатору C++). Однако не менее трудно решить, какие именно тесты и в каких количествах нужно сделать. Коды всех алгоритмов, которые выложены в данной статье, написаны мной. Доступны и результаты запусков на всех тестах. Единственное, что я не могу показать — это сами тесты, поскольку они весят почти 140 ГБ. При малейшем подозрении я проверял и код, соответствующий тесту, и сам тест. Надеюсь, что статья Вам понравится.
Читать дальше →

Разбираемся в физике частиц: 8) как частицы взаимодействуют с полями

Reading time10 min
Views13K
Разбираемся в физике частиц:
1. Шар на пружине, ньютоновская версия
2. Квантовый шар на пружине
3. Волны, классический вид
4. Волны, классическое уравнение движения
5. Квантовые волны
6. Поля
7. Частицы – это кванты
8. Как частицы взаимодействуют с полями

Как работает поле Хиггса:
1. Основная идея

В предыдущей статье серии я объяснил, что частицы природы – это кванты релятивистских полей, удовлетворяющие уравнениям движения класса 0 и класса 1. Но чего я пока не сказал, так что это утверждение, к счастью, верно лишь отчасти. Реальные уравнения всегда чуть более сложные, таким образом, что взаимосвязь частиц и полей остаётся, но при этом становятся возможными гораздо более разнообразные явления и процессы, включая появление частиц после столкновения других частиц, распад частиц на другие частицы, и рассеяние частиц друг с друга, а также формирование таких интересных объектов, как протоны и нейтроны, атомные ядра и атомы. Я не смогу объяснить всё это подробно, но в этой статье дам вам вводную того, как всё это работает.
Читать дальше →

Разбираемся в физике частиц: 1) шар на пружине, ньютоновская версия

Reading time8 min
Views32K
1. Шар на пружине, ньютоновская версия
2. Квантовый шар на пружине
3. Волны, классический вид
4. Волны, классическое уравнение движения
5. Квантовые волны
6. Поля
7. Частицы – это кванты
8. Как частицы взаимодействуют с полями

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

image
Рис. 1

Чтобы понять физику частиц, из школьной физики вам нужно вспомнить одну-единственную вещь – как работает пружина. По сути всё, что подпрыгивает, вибрирует, звенит, дребезжит, качается вперёд и назад, представляет собой пример пружины.

Представим, что мы поместили шарик на конце пружины. Движения пружины и описывающие его уравнения просты. Для начала вспомним основы поведения пружины, затем изучим поведение шара – осцилляцию. И, наконец, для самых пытливых умов мы рассмотрим уравнения, приводящие к такому виду движения.
Читать дальше →

Information

Rating
9,122-nd
Registered
Activity

Specialization

1C Developer
Middle
From 170,000 ₽