• Как я был разработчиком, а теперь тимлид
    0
    Виталий, какие перспективы карьерного роста у разработчика, который не хочет перекладывать бумажки в jira?
  • Как я научился не волноваться и полюбил микросервисы, часть 1: Эффекты плохого кода
    0

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

  • Как я научился не волноваться и полюбил микросервисы, часть 1: Эффекты плохого кода
    +1

    Городить микросервисы имеет смысл в условиях неразберихи и переизбытка разработчиков. Таким образом можно явно распределить ответственность между командами и улучшить диагностируемость системы (мониторинг компонентов, хелсчеки).
    Крайне важным при этом становится соблюдение контрактов и поддержка обратной совместимости (с версированием интерфейсов).
    Процесс миграции и разделения монолита может занять годы.
    Что касается масштабирования, хороший монолит не слишком уступает тут сервис-ориентированной архитектуре. Как правило все упирается в централизованные хранилища и диспетчеры.
    Действительно полезное свойство — параллельные композиционные релизы, когда из-за ошибки в одной задаче, не приходится перестраивать весь реализ.
    Не стоит рассматривать СОА как способ оптимизации производительности, межкомпонентные задержки и блокировки скорее всего ухудшат общую скорость.

  • Как я научился не волноваться и полюбил микросервисы, часть 1: Эффекты плохого кода
    0

    По опыту живого проекта, общий код выделяется в библиотеки которые потом доставляются менеджером зависимостей (например composer для php, или glide для golang). Зависимости актуализируются согласно семантическому версированию.


    Что касается контрактов, для REST есть спецификация описания интерфейсов swagger, из неё можно сгенерировать клиентскую библиотеку (методы и структуры) и внедрить её как зависимость.


    В общем случае (rabbitmq, protobuf) протокол взаимодействия (методы и структуры) должен быть описан в клиентской библиотеке.

  • Как я png в 4 раза уменьшал
    0
    Интересно было бы сравнить с BPG
  • Как жить, если у тебя ноутбук, а экранов стало не хватать
    0
    Вывод через USB DisplayLink обладает спецификой из-за ограниченной пропускной способности, на кино или видео игры ее конечно не хватает. Но окно IDE или консоль с логами работают вполне.
  • Нелегкий выбор Python или PHP. А может и то и другое?
    0
    В моем опыте набор кода значительно менее затратен чем придумывание. Кроме того IDE позволяет авто-дополнениями сильно сократить количество печати.
  • Sypex Geo 2.2 — теперь с GeoNames и ОКАТО
    0
    Есть проблема с одноименными населенными пунктами, так например адрес 77.106.95.186 принадлежит российскому Северску в Томской области, но определяется как украинский из Донецкой области.

  • Ускоряем PHP (с ReactPHP)
    +1
    В чем преимущества и фундаментальные отличия от phpDaemon (http://daemon.io/)?
  • Группировка с условием
    0
    Четвертое решение уже сейчас не будет работать в таком виде на Maria DB (https://mariadb.com/kb/en/derived-table-merge-optimization/), чтобы работало достаточно добавить LIMIT с заведомо большим числом в derived выборку
    SELECT article, dealer, price FROM ( SELECT article, dealer, price FROM shop ORDER BY price desc LIMIT 1000000000000 ) as t GROUP BY article ORDER BY NULL;
  • Tribute to HIEW
    0
    возможно имеется ввиду нуль-терминированная строка 0Ah,00h
  • Способы подсчета статистики посещения страниц сайта «на лету»
    +1
    В качестве окна можно использовать лог веб-сервера, это значительно уменьшит расходы на подсчет т.к. позволяет вообще не обращаться к бд при кэшировании страницы. Что касается таблицы в памяти, можно использовать буфферизированную запись лога (такая возможность есть например в nginx).
  • Не надо бояться солнечных панелей
    +4
    возможно имеется ввиду ускорение тока
  • Есть ли у вас SSD на рабочем компьютере?
    +3
    Для многих пользователей, которые не перезагружают компьютеры без крайней необходимости, а хранят их в сонном состоянии вместе с запущенными программами, SSD не особо актуален, гораздо полезнее иметь достаточный объем кэширующей оперативной памяти.

    Так например в официальных рекомендациях по улучшению производительности Adobe Photoshop применение SSD отнесено к последним мерам.
  • Первое апреля в Интернете-2013
    +2
    на stackoverflow.com запустили чат с «экспертом»
  • В реестр запрещенных сайтов внесена заметка о реестре запрещенных сайтов
    +13
    интересно, в этом реестре есть хоть один блок по существу (против педофилов и прочих самоубийц)?
  • Colada — удобная работа с коллекциями
    +2
    Как описать x() в phpdoc (для автокомплита правильных геттеров)?
  • Программа zxcvbn: реалистичная оценка надежности пароля
    0
    больше пользы было бы от этой программы на серверной стороне, а не клиентской
  • Выводы по SQL injection
    0
    Лучшая практика — это та, которая лучше подходит к задаче. И мой комментарий был на обвинение в пропаганде «спагетти-кода».
  • Выводы по SQL injection
    0
    Нет никакого «должно», есть только «может».

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

    Например, у нас есть замечательная библиотека для работы с БД, она умеет автоматически собирать синтаксически правильные запросы, но при этом потребялет в качестве оплаты за свои услуги дополнительные ресурсы. Внезапно перед нами встает задача, которая загоняет библиотеку в мемори лимит. Что делать?

    Если решение требует нетривиального использования БД, с конструированием сложных вложенных запросов основанных на критериях определяемых в разных местах кода, что делать?

    Ручная сборка запросов — это как ассемблерные вставки в коде драйвера устройства, неудобно, опасно, но иначе не взлетит :(
  • Выводы по SQL injection
    –2
    Речь не об этом, а о том, что в этом споре нет единственно верного решения. Если вам нужно внести модификации в некачественный код — скорее всего придется поступиться своими принципами в угоду скорости разработки. Контекст и условия задачи имеют вес больший, чем стереотипы и привычные приемы.
  • Выводы по SQL injection
    –1
    С точки зрения обработки ошибок некорректный запрос не очень отличается от нотиса при использовании неинициализированной переменной, в результате ошибочной обработки данных может возникнуть запрос

    SELECT * FROM user WHERE user_id =

    с пустым значением user_id, при принудительном обеспечении синтаксической целостности этот запрос пройдет без ошибок, иначе он не выполнится тем самым указывая на некорректность предварительной обработки данных.
  • Выводы по SQL injection
    –1
    Разбрасывать или не разбрасывать подготовку данных по коду пределяется условиями и контекстом задачи, в этом вопросе нет решения идеального для любой ситауции.

    Совершенно точно необходимо производить очистку данных на входе программы, но валидация и подготовка внутри может быть в любом удобном месте любым удобным способом.
  • Выводы по SQL injection
    –1
    принудительное экранирование внутренних данных может послужить причиной сокрытия серьезных логических ошибок
  • Выводы по SQL injection
    0
    экранирование такой строки может быть сделано в частном порядке: $a = «foo\\'bar»; либо $a = mysql_real_escape_string(«foo'bar»);
    если предполагается ее использовать в качестве литеральной части запроса
  • Есть ли практический смысл использовать для итераторов префиксный оператор инкремента ++it, вместо постфиксного it++
    –1
    кстати, в php потеря скорости при $i++ по сравнению ++$i в пределах 10-20% )
  • WebP, новый формат изображений для интернета
    +4
    Интересна эффективность этого алгоритма в сравнении с вейвлетными, например JPEG2000.
  • HDR видео с помощью двух 5D Mark II
    +2
    Сначала была гонка компрессии динамического диапазона в «музыке», теперь идет для изображений. Отличный тренд, спасибо маркетологам!
  • Что интересного нам расскажет EXPLAIN EXTENDED?
    0
    вероятно это от того, что в innodb не хранится статистика таблицы (например количество всех записей), в отличие от myisam
  • Yandex.com
    0
    наверное это из-за промежуточного click.yandex.ru|com
  • Comment from a drafted post.
  • Линукс – эффективен (Часть I)
    0
    между прочим, я не перечислял свойства фара, поэтому вам не уместно говорить о замене его тотал коммандером (это к вопросу о передергиваниях).
    в современных условиях не ос определяет инструментарий, а наоборот.
    ваше использование фара ограничивалось нажатиями f5/f6?
  • Линукс – эффективен (Часть I)
    0
    я ни слова не сказал про тотал коммандер, фар - консольный менеджер, вся его обвеска (которой пользуюсь я) - консольная. я люблю консоль и активно ей пользуюсь. а вы по видимому плохо представляете что такое фар, поэтому врядли умеете им пользоваться и естественно не можете его адекватно его оценить (
  • Линукс – эффективен (Часть I)
    0
    если подходить с такой точки зрения, то конечно, клиентский линукс - отличный выбор для трудолюбивой технической аристократии, которой не хочется делить одну и ту же ось с ленивым быдлом
  • Линукс – эффективен (Часть I)
    0
    возможно кисть и палитра вам тоже не покажутся полезными/удобными, но ими творят шедевры...
  • Линукс – эффективен (Часть I)
    0
    я сразу написал "имхо". вы как то агрессивно воспринимаете обсуждение своей любимой ос. естественно лучше всего указать достоинства/недостатки чего-либо я могу на своем примере. подтверждением моих слов служит то, что ос виндовс используется подавляющим большинством пользователей в качестве клиентской.
  • Линукс – эффективен (Часть I)
    0
    системы юних-семейства отличаются стабильностью и устойчивостью к нагрузкам, это делает их хорошими серверными решениями, но все что касается гуя и прикладного по под них отдает самодельством. игры в первую очередь делают под директх, сам факт эмуляции виндовс под линукс говорит о том, что пользователям приходится считаться и пользоваться по чужой ос. профессиональные графические инструменты есть для виндовс и мак. в виндовс есть FAR! ))
    этих факторов достаточно, чтобы не считать линукс полноценной и подходящей МНЕ "домашней" операционкой.
  • Линукс – эффективен (Часть I)
    –1
    не очень понятно какое особенное отношение имеет линукс к программированию на пхп. имхо линуксу самое место в серверной стойке, а не в клиентской машине.
  • RELAY — файловый менеджер в формате ВЕБ 2.0
    0
    Именно эта реализация на перле плоха т.к. входной поток она пишет в темп, а темп потом парсит через стандартный POST-парсер, в итоге возникает довольно существенная лишняя работа, кроме того становится сложно обработать например поле защиты от роботов до принятия всего пакета - лишний трафик. в качестве приемника можно использовать _все_что_угодно_ работающее в CGI-режиме. В идеале конечно написать приемник отдельным сервером на c, но это сложновато. У меня например, приемник-парсер самописный на PHP (CGI), при приеме на лету проверяются все необходимые поля и файлы кладутся на нужные места, очень удобно.
  • Ещё раз об облаке тэгов
    0
    может быть стоит перейти к более нелинейной системе выбора размера, чтобы малозначимые теги лучше отделялись друг от друга.