Pull to refresh
5
0.3
Send message

Понимаем планы PostgreSQL-запросов еще удобнее

Reading time4 min
Reach and readers22K
Полгода назад мы представили explain.tensor.ru — публичный сервис для разбора и визуализации планов запросов к PostgreSQL.



За прошедшие месяцы мы сделали про него доклад на PGConf.Russia 2020, подготовили обобщающую статью по ускорению SQL-запросов на основе рекомендаций, которые он выдает… но самое главное — собирали ваши отзывы и смотрели за реальными use case.

И теперь готовы рассказать о новых возможностях, которыми вы можете пользоваться.
Читать дальше →

PostgreSQL Antipatterns: убираем медленные и ненужные сортировки

Reading time5 min
Reach and readers21K
«Просто так» результат SQL-запроса возвращает записи в том порядке, который наиболее удобен серверу СУБД. Но человек гораздо лучше воспринимает хоть как-то упорядоченные данные — это помогает быстро сравнивать соответствие различных датасетов.

Поэтому со временем у разработчика может выработаться рефлекс «Дай-ка я на всякий случай это вот отсортирую!» Конечно, иногда подобная сортировка бывает оправдана прикладными задачами, но обычно такой случай выглядит как в старом анекдоте:
Программист ставит себе на тумбочку перед сном два стакана. Один с водой — на случай, если захочет ночью пить. А второй пустой — на случай, если не захочет.
Давайте разбираться — когда сортировка в запросе точно не нужна и несет с собой потерю производительности, когда от нее можно относительно дешево избавиться, а когда сделать из нескольких — одну.

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

Защита проекта VBA в MS Excel

Reading time5 min
Reach and readers48K
Всем привет! Я обычный пользователь MS Excel. Не являющийся профессиональным программистом, но накопивший достаточно опыта, для установки и обхода защиты проектов VBA.

Дисклеймер:

В данной статье рассмотрены виды защиты проектов VBA, от несанкционированного доступа. Их сильные и слабые стороны – ранжирование.

Цель статьи показать слабые и сильные стороны каждого вида защиты проекта VBA в MS Office.

Демонстрация разработанных инструментов, в надстройке Macro Tools VBA, для снятия и установки той или иной защиты. 

Все инструменты реализованы стандартными средствами VBA, без использования дополнительных библиотек. 


Главная панель Надстройки Macro Tools VBA
Читать дальше →

System.Threading.Channels — высокопроизводительный производитель-потребитель и асинхронность без аллокаций и стэк дайва

Reading time18 min
Reach and readers56K
И снова здравствуй. Какое-то время назад я писал о другом малоизвестном инструменте для любителей высокой производительности — System.IO.Pipelines. По своей сути, рассматриваемый System.Threading.Channels (в дальнейшем «каналы») построен по похожим принципам, что и Пайплайны, решает ту же задачу — Производитель-Потребитель. Однако имеет в разы более простое апи, которое изящно вольется в любого рода enterprise-код. При этом использует асинхронность без аллокаций и без stack-dive даже в асинхронном случае! (Не всегда, но часто).


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

SQL Server Plan Guide и другие не самые лучшие практики

Reading time11 min
Reach and readers15K
Обычно посты об оптимизации запросов рассказывают о том, как делать правильные вещи, чтобы помочь оптимизатору запросов выбрать оптимальный план выполнения: использовать SARGable-выражения в WHERE, доставать только те столбцы, которые нужны, использовать правильнопостроенные индексы, дефрагментированные и с обновлённой статистикой.

Я же сегодня хочу поговорить о другом — о том, что ни в коем случае не относится к best practices, том, с помощью чего очень легко выстрелить себе в ногу и сделать выполнявшийся ранее запрос более медленным, или вообще больше не выполняющимся из-за ошибки. Речь пойдёт о хинтах и plan guides.
Читать дальше →

Не гладь – работай

Reading time1 min
Reach and readers6.1K
Как-то на одной вечеринке dj zhivchik принес гладильную доску. Установил ее и сверху поставил микшер. Выглядело странно :)

Решил и я попробовать. Дома откуда-то нашлась вторая гладильная доска. Снял сверху ткань и поролон и вот что получилось:

image

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

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

Бенуа Мандельброт на TED: «Фракталы и искусство изломов»

Reading time9 min
Reach and readers9.2K
image

Большое спасибо. Прошу прощения за то, что я сижу. Я очень старый человек.

Моя сегодняшняя тема в определённом смысле весьма особенная, потому что она очень древняя. Изломы – неотъемлемая часть человеческой жизни, они есть всегда. Об этом писали древние. Эта вещь по большей части нам неподконтрольна. И в каком-то смысле они кажутся крайней степенью усложнения – просто сплошной беспорядок.

Есть много видов беспорядка. Так вот, по чистой случайности много лет назад я стал заниматься этой формой усложнения, и, к моему полному удивлению, я нашёл признаки, и, должен сказать, весьма чёткие признаки порядка в изломах. А потому сегодня я хотел бы представить вам несколько примеров того, что это значит. Я предпочитаю слово «изломанность» слову «неровность» потому, что для того, кто изучал латынь, как и я в своей далёкой молодости, неровность – это противоположность ровности. Но ведь это не так.

Ровность есть противоположное к изломанности, потому что мир по большей части предстаёт нам как полный изломов.

Как я спас мир

Reading time4 min
Reach and readers37K
image

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

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

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

Собеседование наоборот: вопросы соискателя к компании

Reading time6 min
Reach and readers78K
Всем привет! Хочу очередной раз поднять тему про найм. Только я собираюсь поговорить об этом с точки зрения кандидата, а не работодателя. Ведь собеседование, вопреки многим стереотипам, процесс двусторонний — вопросы может задавать не только интервьюер, но и сам соискатель. За прошлый год я провёл порядочное количество собеседований, и абсолютное большинство кандидатов огорчило меня отсутствием вопросов о компании, всего 5 человек стали меня расспрашивать о работе.

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

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

Взгляд химика, тестировщика и аналитика данных на чёрную металлургию и большие данные в ней

Reading time12 min
Reach and readers7K
Всем привет. Меня зовут Александр и я химик тестировщик аналитик данных. Как и многие люди моего поколения, я работаю не по специальности. После химфака МГУ и пяти лет работы младшим научным сотрудником в области химической технологии я переметнулся в IT и стал тестировщиком ПО. Помню, как мама говорила мне, чтобы я попробовал найти работу, где будут сочетаться химия и информационные технологии, но в тот момент я считал, что такого не бывает.

Ну и как это часто бывает, жизнь подбросила новые возможности и вот я в здесь – в компании Datana, где неожиданно для самого себя успешно сочетаю несочетаемое: анализ данных и знание химии.
Читать дальше →

CP/M: взлет и падение Гэри Килдалла

Reading time7 min
Reach and readers22K
История развития технологий полна неожиданностей, крутых поворотов. Побед и поражений, предательства и верности. Иногда, чтобы добиться успеха, нужно было всего лишь оказаться в нужном месте в нужное время. Или прислушаться к дружескому совету.

Сегодня мы расскажем вам о человеке, который мог быть мультимиллиардером, знаменитостью уровня Билла Гейтса, если бы в его жизни оказалось чуть больше везения. Этого человека звали Гэри Килдалл.

Возможно, вы не знаете это имя, но с большой долей вероятности видели или даже пользовались его детищем — операционной системой CP/M. Современному пользователю ПК она практически неизвестна, однако в свое время эта ОС получила широчайшее распространение на десятках различных машин, включая ZX Spectrum (и его СНГ-клоны), Robotron и «фирменный» Commodore 128 (благодаря Zilog Z80 в качестве бортового сопроцессора). Многие из тех, кто пользовался компьютером под управлением CP/M в те годы, даже не задумывались, откуда она взялась.


Онлайн-конференции: плюсы, минусы, подводные камни

Reading time9 min
Reach and readers13K


Этой весной я следил за кучей онлайн-мероприятий: от конференции Microsoft Build до круглого стола «Киберсекс и самоизоляция». Поскольку работаю в JUG Ru Group, также видел, как готовятся наши собственные 8 конференций. А ещё читал комментарии айтишников об онлайн-формате — и в итоге у меня накипело.


С одной стороны, вижу комментарии «онлайн никому не нужен», и у меня бомбит ощущаю острое несогласие. А с другой, встретил противоположное мнение «офлайн только портит экологию авиаперелётами» — и тоже ощутил острое несогласие! Почему мы вечно ударяемся в крайности и бинарно мыслим «хорошо/плохо», как будто под наше мнение отведён всего один бит? Давайте перейдём от бита к кубиту — ну то есть научимся признавать и хорошее, и плохое одновременно. Написал текст и о плюсах, и о минусах онлайн-конференций.

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

Интуиция как инструмент инженера, или чему нас учит опыт покорителей Севера

Reading time27 min
Reach and readers24K
image

Авторские права на фотографию принадлежат "Russian Travel Geek".

«Чтобы попасть на Территорию, вы должны сесть в самолет. Правда, летом вы можете добраться сюда и на пароходе — месячное плавание среди льда и тумана, когда кажется, что мир исчез и существуют лишь железная палуба, перекличка сирен каравана и ваша каюта. Через несколько дней именно в каюте вы и будете проводить почти всё свое время, ибо вам быстро осточертеет блеклая полярная вода, низкое небо и слово „навигация“, которое произносится тысячу раз на дню.… Рейс ваш окончится не на той планете, с которой начался. Вас ожидает прохладный и влажный воздух, черный и желтый пейзаж, если вы прилетели летом, и некая суровая снежная обнаженность, которую трудно передать словами, если вас затащило туда зимой.»
Олег Куваев, роман «Территория», 1978 г.

Чтобы поехать строить свою карьеру на Север, нужно быть сильным. Инфраструктура там и сейчас-то развита не очень, а лет 70 назад путь из Чукотки до Москвы даже на самолёте занимал четверо суток.
Читать дальше →

Запись видео UI автотестов, работающих в headless Chrome

Reading time7 min
Reach and readers6.7K
Всем привет!

В данной статье хочется рассказать о том, как была решена задача записи видео автотестов, работающих в headless Chrome (с записью в не headless режиме проблем быть не должно). Будет рассмотрено несколько разных подходов, рассказано про трудности и пути их решения.

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

  1. Тесты выполняются под Windows
  2. Тесты используют Selenium Web Driver + Headless Chrome
  3. Тесты запускаются в несколько потоков

Для упавших тестов нужно сохранить видео, при этом

  1. Время выполнения должно вырасти не более чем на 10%.
  2. Обойтись минимумом изменений в текущей имплементации

Если интересно решение, добро пожаловать под кат.
Читать дальше →

Инфографика средствами Excel и PowerPoint. Часть 2

Reading time12 min
Reach and readers33K
Не жди поездку в Гагры!
Давид Маркович, сериал «Ликвидация»

Всем привет!

За время карантина все, наверное, не по разу прочитали о том, как плодотворно А.С. Пушкин провел свой период «заточения», названный впоследствии «Болдинской осенью», поэтому не буду объяснять, что именно меня сподвигло написать следующую статью об инфографике средствами MS Office.

К тому же, мне есть что вам еще рассказать, ведь я более 10 лет преподаю и руковожу группой разработки учебных материалов в учебном центре «Сетевая Академия ЛАНИТ», а также являюсь автором курса по инфографике.

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

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

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

Reading time12 min
Reach and readers27K
Фридайвинг — ныряние на глубину без акваланга. Ныряльщик ощущает на себе закон Архимеда: он вытесняет некоторый объём воды, который выталкивает его обратно. Поэтому первые несколько метров даются тяжелее всего, но потом сила давления толщи воды над тобой начинает помогать двигаться глубже. Этот процесс напоминает изучение и погружение в системы типов TypeScript — по мере погружения становится немного легче. Но надо не забыть вовремя вынырнуть.


Фотография с сайта One Ocean One Breath.

Михаил Башуров (saitonakamura) — Senior Frontend Engineer в компании WiseBits, фанат TypeScript и фридайвер-любитель. Аналогии изучения TypeScript и ныряния на глубину не случайны. Михаил расскажет, что такое discriminated unions, как использовать вывод типов, зачем нужна номинальная совместимость и брендирование. Задержите дыхание и погружайтесь.

Developing a symbolic-expression library with C#. Differentiation, simplification, equation solving and many more

Reading time15 min
Reach and readers8.8K
Hello!

[UPD from 12.06.2021: if you're looking for a symbolic algebra library, AngouriMath is actively developed. It's on Github and has a website. Discord for questions]

Why does programming a calculator seem to be a task, which every beginner undertakes? History might have the answer — computers were created for this exact purpose. Unlike the beginners, we will develop a smart calculator, which, although won't reach the complexity of SymPy, will be able to perform such algebraic operations as differentiation, simplification, and equations solving, will have built-in latex support, and have implemented features such as compilation to speed up the computations.

What are the articles about?
It will superficially tell about assembling an expression, parsing from a string, variable substitution, analytic derivative, equation numerical solving, and definite integration, rendering to LaTeX format, complex numbers, compiling functions, simplifying, expanding brackets, and blah blah blah.
For those who urgently need to clone something, repository link.

Let's do it!
Read more →

Найти порядок в хаосе ИТ: полезные ресурсы

Reading time6 min
Reach and readers12K


В предыдущей статье я поделился своим видением процесса построения базовой системы для организации собственного развития (применимой к сфере ИТ).


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


Так что всех заинтересованных прошу под кат!

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

Повысьте производительность SPA, разбив ваши библиотеки Angular на несколько частей

Reading time7 min
Reach and readers8.8K

Привет, Хабр! Представляю Вашему вниманию перевод статьи «Improve SPA performance by splitting your Angular libraries in multiple chunks» автора Kevin Kreuzer.


Angular — отличный фреймворк. Мы все его любим <3.


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


Сегодня благодаря Angular CLI библиотеки легко создать. Они прекрасно подходят для того, чтобы делиться кодом между несколькими приложениями.


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


В Frontend есть разные типы производительности. runtime — производительность и initial load. В этой статье мы сосредоточимся на initial load.


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

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

Information

Rating
2,481-st
Registered
Activity