Pull to refresh
2
0
Send message

Коллекционирую лучшие C++ практики

Reading time3 min
Views20K

Коллекционирую лучшие C++ практики


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

Читать дальше →
Total votes 28: ↑27 and ↓1+36
Comments9

Тестирование умерло, да здравствует тестирование

Reading time18 min
Views12K

Привет, Хабр! Меня зовут Артём Ерошенко, я — сооснователь Qameta Software. Больше 14 лет занимаюсь тестированием и автоматизацией. Работал в Яндексе, когда учился в университете, и писал первые автотесты, сделал опенсорсный проект Allure-фреймворк, способствовал появлению Яндекс QA Tools. Сейчас обучаю других людей как автоматизировать тестирование и помогаю компаниям выстраивать процессы автоматизации тестирования и процессы разработки.

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

Читать далее
Total votes 8: ↑6 and ↓2+5
Comments5

Слепые капитаны ищут дно: почему российский бизнес – это болото, в котором барахтаются идиоты-«менеджеры»

Reading time12 min
Views143K

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

Как часто вас подставляли или динамили разные невменяемые люди на работе? Бывало ли так, что вы орали матом в бессилии и хотели кому-нибудь сломать ноги за эпические фейлы? Сейчас я расскажу о том, почему так всё складывается.

Читать далее
Total votes 259: ↑183 and ↓76+149
Comments1361

Плохие уроки дебатов

Reading time7 min
Views7.3K


Будучи студентом, я играл в классические дебаты по формату Карла Поппера с элементами политического кейса. Это такой КВН для любителей поспорить. В том смысле, что это игра, она для студентов, и такая деятельность оптимизирует какие-то навыки. А вот какие именно, это интересно понять. Давайте разберёмся, какое влияние оказывает на ваше мышление умение хорошо спорить.

Подебатировать
Total votes 25: ↑23 and ↓2+26
Comments53

Как перестать отвлекаться, работая в IT

Reading time11 min
Views21K

Цель этой публикации — помочь всем ищущим стать эффективнее и улучшить собственные результаты за счет организации своего рабочего пространства.

Речь пойдёт о следующих вещах:

· Смартфоны и популярные приложения — в чем их проблема и почему они мешают фокусироваться.

· Рабочий стол и текстовый редактор — как лучше настроить, чтобы улучшить свою результативность.

· Метод помидора — что с ним не так и мой опыт его использования.

Читать далее
Total votes 31: ↑21 and ↓10+15
Comments49

10 приемов, разрушающих хрупкую красоту кода

Reading time19 min
Views102K
Статья приводится в сокращении из-за ограничения на объем материала.

Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода.

Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:
  1. Объявление всех переменных в начале программы;
  2. Возврат результата функции через ее параметр;
  3. Отсутствие локальных функций;
  4. Отсутствие else if;
  5. Использование параллельных массивов;
  6. Хранение размера массива в отдельной переменной;
  7. Доступ к свойствам объекта через obj.getProperty() и obj.setProperty(value);
  8. Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
  9. Отсутствие именованных параметров функции;
  10. Невозможность объявления объектов «на лету».
Наверняка, в некоторых местах вы будете со мной несогласны — ведь чувство красоты у всех разное.


Объявление всех переменных в начале программы


В двух словах:

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


Читать дальше →
Total votes 402: ↑324 and ↓78+246
Comments411

Node.js — раковая опухоль

Reading time5 min
Views136K
Если и есть что-то, что веб-разработчики любят, так это знать что-то, что лучше традиционного. Но традиционное является таковым по одной причине: это дерьмо работает. Что-то давно беспокоило меня во всей этой шумихе вокруг Node.js, но у меня не было времени разобраться, что именно, пока я не прочитал полный боли в жопе пост от Райана Дала, создателя Node.js. Я бы забыл его, как любое очередное нытьё какого-то осла о том, что Unix слишком сложен. Но, как полицейскому, который, жопой чуя, что что-то не так с этой семьёй в микроавтобусе, останавливает его и находит пятьдесят килограммов героина, мне показалось, что что-то не так с этой слезливой историей, и возможно, просто возможно, он понятия не имеет, что делает, и много лет программирует, никем не контролируемый.

Поскольку вы читаете это, вы, возможно, уже поняли, что моя догадка подтвердилась.
Total votes 560: ↑477 and ↓83+394
Comments335

Как отрефакторить 2.5 млн строк кода

Reading time18 min
Views5.9K

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

Читать далее
Total votes 21: ↑20 and ↓1+23
Comments21

Не горбись! Как на самом деле реагировать на подобные замечания?

Reading time5 min
Views11K

“Не горбись!”, - я раньше очень часто это слышал в свой адрес. А еще: “Не шаркай ногами, втяни живот”, - и все в таком духе. Наверное было что-то еще, но я уже не вспомню. Я пытался что-то сделать. В какой-то момент даже купил устройство для удержания осанки, но все без толку. И даже постоянные напоминания не работали.

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

Дисклаймер: Это моя личная история. Каждый человек индивидуален и, думаю, невозможно написать единое пособие, которое поможет всем. Да и делать это должны врачи, у меня точно не хватит знаний.

Читать далее
Total votes 28: ↑20 and ↓8+16
Comments14

Профессия: театральный инженер-конструктор. Как создаются декорации и чем в этом помогает 3D-проектирование

Reading time9 min
Views3.9K

Нередко театр ассоциируется только лишь с актерской труппой во главе с худруком или режиссером, по численности не превышающей 60-70 человек. В действительности даже в небольшом театре могут работать до 300 сотрудников: бутафоров, осветителей, костюмеров, реквизиторов, механиков сцены, а также инженеров-конструкторов. Их труд, как писал Карел Чапек, остается «за сценой, под сценой и над сценой», и «хотя они выполняют свою миссию весьма прозаически, в обыкновенных пиджаках или синих спецовках, — они играют немаловажную роль в создании спектакля».

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

Мы поговорили с инженерами-конструкторами трех театров: Сергеем Накаряковым из Красноярского драматического театра им. А. С. Пушкина, Алексеем Исаенко из Самарского театра юного зрителя «СамАрт» и Алексеем Калининым из Орловского театра кукол. Оказалось, что театр можно назвать «заводом по выпуску жестких и мягких декораций», системы автоматизированного проектирования (САПР) используются не менее активно, чем на производстве, а один инженер одновременно «разрабатывает» несколько изделий спектаклей.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments8

PHP: фрактал плохого дизайна

Reading time32 min
Views206K

Предисловие


Я капризный. Я жалуюсь о многих вещах. Многое в мире технологий мне не нравится и это предсказуемо: программирование — шумная молодая дисциплина, и никто из нас не имеет ни малейшего представления, что он делает. Учитывая закон Старджона, у нас достаточно вещей для постижения на всю жизнь.

Тут другое дело. PHP не просто неудобен в использовании, плохо мне подходит, субоптимален или не соответствует моим религиозным убеждениям. Я могу рассказать вам много хороших вещей о языках, которых я стараюсь избегать, и много плохих вещей о языках, которые мне нравятся. Вперёд, спрашивайте! Получаются интересные обсуждения.

PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
Читать дальше →
Total votes 450: ↑392 and ↓58+334
Comments539

Почему в Python плохой ООП

Reading time10 min
Views39K

В Python ужасный ООП. Кликбейтный тезис, который имеет право на существование. Есть много языков, где ООП представлен не в самом классическом виде, ну или так принято считать. Прототипные JavaScript и Lua, Golang с прикреплением методов и прочие. Но «не такой как все» всегда ли синоним слова «неправильный»?  С чего мы вообще вязли, что ООП в Python не такой каким должен быть ООП? Что вообще является точкой отсчёта «правильности» ООП? Smalltalk или Simula 67? Вроде бы объектно-ориентированное программирование – это просто парадигма.. или уже догма?

Читать далее
Total votes 35: ↑14 and ↓21-3
Comments78

Postgres WASM от Snaplet и Supabase

Reading time8 min
Views5.1K


Сегодня мы с нашими друзьями из Snaplet открываем исходники postgres-wasm — запускаемый в браузере сервер PostgreSQL с полным набором функционала, включая сохранение состояния в браузере, восстановление из pg_dump и логическую репликацию из удалённой базы данных.


Впервые Postgres в браузере запустили в Crunchy Data, их потрясающая версия выложена на HN месяц назад. Вместе со Snaplet мы решили сделать версию с открытым кодом. Посмотрим, как она разрабатывается и какой функционал мы добавили. Подробности — к старту нашего флагманского курса по Data Science.


Что такое Snaplet?

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

Квантовые компьютеры: без математики и философии

Reading time13 min
Views33K

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

Первое и самое главное, что нужно знать - квантовые компьютеры не имеют ничего общего с обычными. Квантовые компьютеры по своей природе - аналоговые, там нет бинарных операций. Вероятно, вы уже слышали про Кубиты, что у них есть состояние 0, 1 и 0-1 одновременно, и благодаря этому вычисления выполняются очень быстро: это заблуждение. Кубит - это магнит (обычно атом или электрон), подвешенный в пространстве, который может вращаться по всем трем осям. Собственно, вращение магнита в пространстве - это и есть операции квантового компьютера. Почему это может ускорить вычисления? Было очень сложно найти ответ, но самые стойкие читатели увидят его в конце статьи. Начнем разоблачения.

Читать далее
Total votes 77: ↑71 and ↓6+82
Comments95

Как улучшить английский в документации

Reading time11 min
Views36K

Я работаю техническим писателем в компании documentat.io. Мы занимаемся заказной разработкой технической документации, в том числе на английском языке. Иногда я дорабатываю уже существующие документы или спецификации к API на английском. Как правило, такие документы написаны русскоязычными разработчиками, которые неплохо владеют английским. И всё же они часто допускают характерные грамматические, пунктуационные и стилистические ошибки.

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

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

Читать далее
Total votes 81: ↑80 and ↓1+97
Comments27

Брюнетки против блондинок или как на мониторе показать цвет свечения светильника?

Reading time19 min
Views5.7K

Метод демонстрации на мониторе цветности свечения светильника в соответствии с требованиями проекта национального стандарта «Методы определения неоднородности цветности», и шаблоны в MS Excel.

Читать далее
Total votes 39: ↑39 and ↓0+39
Comments14

Системный шрифт как проприетарные куки. Необычный метод пометки вашего устройства

Reading time8 min
Views8.3K
Предположим, перед разработчиком поставлен такой вопрос — как со стороны веб-сайта определить, что у пользователя установлено конкретное приложение? Вопрос интересный. На него есть несколько способов ответа. Как вам такой вариант — поставить в систему уникальный шрифт при инсталляции программы? Ведь браузер всегда отдаёт по запросу список системных шрифтов. Значит, проблема решена.

Так делают различные программы, хотя это не назовёшь образцом правильного программирования. У метода свои преимущества и недостатки.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments8

Отладка, модификация и устранение багов в сторонних 32-х и 64-х разрядных приложениях под ОС Windows

Reading time14 min
Views5.8K

В этой статье я хочу поделиться практическими методами отладки, модификации и устранения багов в 32-х и 64-х разрядных приложениях под ОС Windows, разработанных на языке C/C++, исходные коды которых по тем или иным причинам не стали достоянием общественности.

Этот пробел отчасти можно попытаться устранить, например, с помощью плагина Hex-Rays для IDA Pro, и зачастую удаётся довольно качественно восстановить нужный участок исходного кода, обнаружив в нём проблемное место. Но после этого всегда возникает вопрос - что с этим исправленным кодом делать дальше, как и где его можно использовать? На данном этапе мне всегда хотелось взять этот отдельно декомпилированный фрагмент программы, поменять в нём что-нибудь и затем каким-то чудесным образом «поместить обратно» в программу.

Далее будет описан один из возможных способов реализации этой идеи на практике.

Читать продолжение
Total votes 26: ↑26 and ↓0+26
Comments4

Новоглифы или иероглифы будущего

Reading time3 min
Views10K

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

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

Read more
Total votes 40: ↑39 and ↓1+49
Comments47

Information

Rating
Does not participate
Registered
Activity