Как стать автором
Поиск
Написать публикацию
Обновить

Разработка

Сначала показывать
Период
Уровень сложности

Терминологию master/slave в фреймворке django заменили на leader/follower из соображений политкорректности

Время на прочтение1 мин
Количество просмотров63K
Сегодня в мастер ветку Django приняли совершенно дикий с точки зрения логики pull request.

Во всем проекте, включая код, общепринятые термины master/slave были изменены на leader/follower.

Вот как обосновал это автор патча fcurella:
Документация и некоторые тесты содержат ссылки на master/slave конфигурацию БД.
Несмотря на то что эта терминология использовалась достаточно долгое время, эти термины могут нести расистcкую подоплеку для пользователей.
Этот патч заменяет все использования master и slave на leader и follower.

Видимо Мизулина это достаточно интернациональный термин, а не только российский.

KPHP от ВКонтакте

Время на прочтение1 мин
Количество просмотров149K
Буквально несколько минут назад Павел Дуров на своей странице ВКонтакте представил новый вариант PHP, названный KPHP.
Слово автору:

В конце мая, перед началом сезона отпусков, суточная посещаемость ВКонтакте достигла очередного рекорда — почти 50 млн. пользователей. Именно тогда мы завершили перевод всего кода ВКонтакте на компилируемый язык программирования, который разрабатывали более года, — KPHP. В результате практически все страницы сайта стали грузиться более чем 2 раза быстрее.

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

Руководство новичка по эксплуатации компоновщика

Время на прочтение32 мин
Количество просмотров218K
David Drysdale, Beginner's guide to linkers (http://www.lurklurk.org/linkers/linkers.html).

Цель данной статьи — помочь C и C++ программистам понять сущность того, чем занимается компоновщик. За последние несколько лет я объяснил это большому количеству коллег и наконец решил, что настало время перенести этот материал на бумагу, чтоб он стал более доступным (и чтоб мне не пришлось объяснять его снова). [Обновление в марте 2009: добавлена дополнительная информация об особенностях компоновки в Windows, а также более подробно расписано правило одного определения (one-definition rule).

Типичным примером того, почему ко мне обращались за помощью, служит следующая ошибка компоновки:
g++ -o test1 test1a.o test1b.o
test1a.o(.text+0x18): In function `main':
: undefined reference to `findmax(int, int)'
collect2: ld returned 1 exit status

Если Ваша реакция — 'наверняка забыл extern «C»', то Вы скорее всего знаете всё, что приведено в этой статье.
Читать дальше →

Используем хабракомментарии как машину Тьюринга

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

Как это вообще взбрело мне в голову?



У каждого хабракомментария есть свой адрес. Строение адреса коментария:
habrahabr.ru/blogs/gtd/135090/#comment_4486120
То что до "#" — это ссылка на топик, а после — якорь, указывающий положение комментария на странице.
Если в комментариях указывать ссылки на другие комментарии, а потом жмякать по ним, то страница будет прокручиваться до нужного места. Еще у самих коментариев есть пара стрелок ↑ ↓ позволяющих перемещаться между ответами на комментарии.
«Эй!» — подумал я, — «что-то в этом есть». Сначала я размышлял над пределом запутанности комментариев, если в них ставить ссылки друг на друга. Но потом понял что тут кроется вообще что-то из элементарного программирования, сильно похожее на машину Тьюринга. Но какой-то детали не хватало, а ссылки в содержании комментариев использовать не хотелось. На помощь пришло добавление в избранное!
Читать дальше →

Стив Джобс о флеш-технологии. Прикладная риторика

Время на прочтение9 мин
Количество просмотров6.1K
imageТак вышло, что я слежу за положением дел вокруг критики флеш со стороны Apple, поэтому не могу не обратить внимания на очередное открытое письмо Стива Джобса по поводу отказа поддерживать флеш.

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

Софи́зм (от греч. σόφισμα, «мастерство, умение, хитрая выдумка, уловка, мудрость») — ложное умозаключение, которое, тем не менее, при поверхностном рассмотрении кажется правильным.

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

Главная цель ритора — не раскрытие истины, но чёткость и убедительность при помощи вероятного (εἰκός), для чего чрезвычайно полезны всякие софизмы.


В своём эссе Джобс выдвигает следующий тезис:

Apple блокирует флеш не по бизнес-мотивам, защищая свой App Store, а по причинам технологического характера
I wanted to jot down some of our thoughts on Adobe’s Flash products so that customers and critics may better understand why we do not allow Flash on iPhones, iPods and iPads. Adobe has characterized our decision as being primarily business driven – they say we want to protect our App Store – but in reality it is based on technology issues.


Посмотрим, какие доводы он приводит в доказательство этого тезиса.
Читать дальше →

Векторизуем изображение генетическим алгоритмом

Время на прочтение21 мин
Количество просмотров6.5K
Итак, на выходных мы должны весело отдохнуть, а потому попробуем векторизовать изображение генетическим алгоритмом.
Векторизованный доктор Хаус
Хочу знать как!

Перестаньте молиться на принципы S.O.L.I.D

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

В мире разработки программного обеспечения существует множество "священных коров" — принципов и практик, которые принимаются как данность и редко подвергаются критическому анализу. Особенно показательна ситуация с принципами SOLID на русскоязычных ресурсах: достаточно открыть Хабр, чтобы найти 100500 статей о SOLID, и в каждой из них принципы интерпретируются по-разному.


Само существование такого количества "объяснительных" статей говорит о фундаментальной проблеме: если принципы требуют толкования, значит их названия не являются самодостаточными и интуитивно понятными. А если каждый разработчик понимает принципы по-своему, возникает вопрос — зачем вообще нужны принципы, которые не дают однозначного руководства к действию? Принципы SOLID, предложенные Робертом Мартином, давно стали одной из таких "священных коров". Однако пришло время честно признать: то, как мы используем SOLID сегодня, часто противоречит изначальным идеям и в целом иногда может приносить больше вреда, чем пользы. Зависит от контекста.


SRP не SRP


Самый яркий пример искажения первоначального замысла — это интерпретация принципа единственной ответственности (SRP).

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

Что нового в мире обхода блокировок Интернета в середине 2024

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

Представляю вашему вниманию короткий обзор что же произошло в России и в мире в области цензуры интернета и того, как этому противостоят энтузиасты. На всякий случай напоминаю, что статья «Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному» заблокирована на Хабре для пользователей из РФ, но по‑прежнему без проблем открывается через прокси/VPN с иностранных адресов. Ну а мы сейчас разберем, что же изменилось с тех пор.

Сегодня в программе: Замедление YouTube — проблемы с Google Cache или намеренное вредительство? Можно ли заблокировать Shadowsocks и как РКН смог это сделать? Новые транспорты в XRay: HTTPUpgrade и SplitTunnel. Новости из мира Tor, и многое другое.

Читать далее

Обман обманщиков: форк-бомба нового уровня

Время на прочтение4 мин
Количество просмотров64K
Сразу предупреждаю: не копируйте примеры кода из этой статьи и не запускайте их в своей командной оболочке.
Есть люди, которые развлекают себя жестокими шутками над новичками, обманом подводя их к запуску разрушительных инструкций в командной оболочке.



Часто это принимает форму грубо замаскированных команд, вроде той, что показана ниже. Её запуск приведёт к выполнению в текущей директории команды rm -rf *, которая всё удалит. Вот эта команда:

$(echo cm0gLXJmICoK | base64 -d)

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

Невменяемый, необъятный масштаб браузеров

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

Увидев вот эту публикацию про браузерные войны, я хотел бы представить альтернативное наблюдение за тем, как мы докатились до такой жизни. Но Дрю ДеВолт уже всё сказал за меня.

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

С помощью wget я скачал все 1217 спецификаций W3C, опубликованных на текущий момент. Существенная часть из них должна быть реализована в браузере, чтобы современный веб работал. Я подсчитал объём этих спецификаций. Как думаете, насколько сложен современный веб?

Читать далее

Железячники умирают. Опыт работы в сфере ремонта цифровой техники

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

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

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

Погружайся

Как мы первыми в мире роботизируем кормоуборочные комбайны

Время на прочтение5 мин
Количество просмотров26K
Недавно мой коллега рассказал как мы роботизируем зерноуборочные комбайны и чему научились за этот сезон.

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

Работа на комбайне во время уборки кормовой кукурузы похожа на езду в машине в густом тумане, только вместо тумана на протяжении всего пути высокая зеленая стена из растений, из которой может выскочить кабан, столб или человек. Перемолов человека (история есть в моей прошлой статье), комбайнеры седеют и больше не могут работать. Кроме этого, в этом «зеленом тумане» надо суметь не врезаться в рядом едущий силосовоз, следить за точностью загрузки силоса с хоботом длиной до 7 метров, из которого вылетает по 50-60 кг силоса в секунду, и равномерно заполнять фургон, чтобы он не гонял полупустым туда сюда.



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

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

Юлия → Iuliia. Всё о транслитерации

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

Транслитерация


Транслитерация — это запись кириллических слов латиницей (Анна → Anna, Самара → Samara). Её используют в загранпаспортах, водительских удостоверениях, трансграничной доставке, библиотечных каталогах и множестве других международных процессов.


Так вышло, что я недавно окунулся в эту тему, а в Википедии она раскрыта слабо. Поэтому расскажу, что к чему (спойлер — если вы думаете, что с транслитерацией всё плохо, то на самом деле всё ещё хуже).


И конечно, поскольку это Хабр — предложу open-source библиотеки для решения проблемы.

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

Ближайшие события

Да, я пишу десктопные приложения под Windows

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


Здравствуйте, меня зовут Владимир и я анонимный разработчик десктопных приложений под Windows. В этом месте все должны сказать «Здравствуй, Владимир!», а кто-то может быть добавит «Молодец, что осознал!». А потом все похлопают. Нет, правда, иногда от чтения Хабра у меня возникают именно такое ощущение, что нормально, нет, даже не «нормально», а допустимо и одобряемо сегодня писать только микросервисы для каких-то стартапов, которые будут по какому-то REST API отдавать данные какому-нибудь фронтенду на Ангуляре, который и будет, наконец, показывать пользователю что-то невероятно полезное, вроде таблицы с аггрегированными отзывами о стрижках пуделей с возможностью посмотреть на гуглокартах где бы в вашем городе можно было сделать именно такую стрижку вашему пуделю (несуществующему). А никаких других программ писать уже нет-нет, никак нельзя! Что за чушь?!

Да, многое сегодня происходит в вебе и на мобильных устройствах, но, знаете ли, далеко не всё. Значительная часть приложений по-прежнему является десктопным софтом. И даже (о, ужас!) не под Mac Os или Linux, а под тот самый богомерзкий Windows. И, знаете ли, софт этот живёт, развивается, поддерживается и является ежедневным рабочим инструментом миллионов людей. И никуда он мигрировать не собирается, потому что есть причины, по которым иногда именно десктопное приложение является лучшим вариантом.
Читать дальше →

Легендарный криптограф Диффи попытался остановить патентного тролля

Время на прочтение3 мин
Количество просмотров113K
Патентные тролли в последнее время становятся всё более наглыми. Пользуясь недостатками американского законодательства, они зарабатывают миллионы долларов, подавая иски против рядовых компаний и предпринимателей. Одним из последних примеров стала активность фирмы TQP Development, которая предъявила нескольким сотням компаний претензию в использовании запатентованной схемы «криптографически защищённой электронной коммерции». В патенте, фактически, описано одновременное использование SSL и RC4.

Почти 140 компаний выплатили TQP Development в общей сложности более 45 миллионов долларов. Среди них — такие гиганты, как Amazon (заплатила $500 тыс.) и Microsoft ($1 млн).
Шантаж продолжался бы и дальше, но на сцену вышел интернет-магазин Newegg. Он отказался платить лицензионные отчисления и потребовал рассмотрения дела в суде.
Читать дальше →

Прекратите проверять Email с помощью регулярных выражений!

Время на прочтение4 мин
Количество просмотров318K
Серьезно, прекратите. Это пустая трата времени и сил. Поищите регулярку для проверки Email в Google, взгляните на нее — и захочется отойти подышать свежим воздухом. Вспоминается одна очень известная цитата:

Некоторые люди, сталкиваясь с проблемой, думают: «О, я воспользуюсь регулярными выражениями».
Теперь у них две проблемы.

Джэйми Завински, regex.info
Читать дальше →

Moon+ Reader восстановлен в Google Play

Время на прочтение1 мин
Количество просмотров103K
Как вы помните, программа Moon+ Reader была убрана из Google Play из-за претензии компании Litres. Но огромный резонанс в Интернет помог автору приложения вернуть свое приложение (вернее два — платное и бесплатное) в магазин.

image

Автор поблагодарил всех за поддержку и объявил 50% скидку на Moon+ Pro Reader. Поздравим же его!

В поисках идеального css-фреймворка. Требования, реализация, maxmertkit

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


Я обожаю twitter bootstrap. Прост, местами логичен, достаточно красив, подходит для быстрого прототипирования веб-интерфейсов. Но этого оказалось недостаточно. Взяв twitter bootstrap в большой проект, мне пришлось целиком его разобрать и переосмыслить css-фреймворки как боевые единицы в веб-проектах. В результате переосмысления родились требования к любому css-фреймворку, удобному как верстальщику, так и frontent-разработчику.
Требования и реализация

Подборка инструментов для эффективной frontend разработки

Время на прочтение3 мин
Количество просмотров101K
В эту прекрасную пятницу осмелюсь предложить хабрасообществую небольшую подборку приложений, предназначенных для увеличения продуктивности во время работы с фронтэндом. Если ваш любимый апп здесь не представлен — добро пожаловать в комментарии!

Form Builder

image

Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
еще 24 ссылки

Подробности о «раздевающих» сканерах в аэропортах

Время на прочтение2 мин
Количество просмотров22K
Как вы уже наверно слышали, в аэропортах США собираются использовать сканеры, которые могут «заглядывать под одежду».
Но в чём их особенность?

Сначала приведу новость с Security Lab:
Полноразмерные «раздевающие» сканеры для досмотра пассажиров под одеждой, установленные в аэропортах США, могут записывать, хранить и даже передавать данные по интернету. Об этом сообщает Информационный центр по защите частной жизни в электронной среде (EPIC), ссылаясь на спецификацию используемого оборудования, опубликованную министерством внутренней безопасности США.
Читать дальше →