• Когда использовать jpg а когда png?

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

    JPEG для фоточек, и всего такого, где много мелких разноцветностей.
    Ответ написан
    Комментировать
  • Чем восстановить жесткий диск на Mac (APFS)?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Знаю, что в теории можно удалить диски, отформатировать, что бы избавиться от ошибок, а потом попытаться восстановить данные, но не уверен, что это сработает с APFS диском, рисковать не хочется.

    Очень хорошо, что вы написали сюда перед тем, как прислушаться к этому "доброму совету".
    Ни в коем случае так не делайте! Любые операции записи (а форматирование их подразумевает) уничтожают данные (как минимум, частично) и либо снижают шансы на восстановление в целом, либо ухудшают возможный результат.

    С учётом того, что файлы вы формально не удаляли, т.е. есть шанс того, что ФС цела, вы можете, воспользоваться Р.сэйвером, он бесплатный и умеет читать данные с APFS. Но для этого диск потребуется вынуть и подключить к машине с Виндоус:
    https://rlab.ru/tools/rsaver.html

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

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

    Если несмотря на это, вы хотите рискнуть, вы можете самостоятельно провести его диагностику с помощью R.tester'а, но для этого тоже потребуется Windows:
    https://rlab.ru/tools/rtester.html

    P.S.
    Вы не упомянули какой именно Мак вы используете, так что на всякий случай убедитесь, что у вас не используется Fusion drive. При неграмотном его разделении последствия обычно печальные, мы регулярно с ними сталкиваемся: https://habr.com/ru/post/374509/
    Ответ написан
    1 комментарий
  • Выделил redis 300mb оперативы и когда остальная система запрашивает память, то иногда влазит в память redis и валится. Что делать?

    kotomyava
    @kotomyava
    Системный администратор
    Redis error: OOM command not allowed when used memory > 'maxmemory'

    У вас происходит не то, что вы, вероятно, думаете.

    У вас просто кончается выделенная redis память, т.е. вы упираетесь в maxmemory 300000000.
    Надо или разобраться, что туда в таком количестве пишется(или почему не удаляется).
    Или изменить стратегию удаления данных из него, например, удалять не только что expire, как по умолчанию, а всё что угодно, что давно не использовалось(maxmemory-policy allkeys-lru, !данные будут пропадать!)
    Или выделять больше памяти.
    Или не использовать его как базу данных, т.к. он не для того нужен... =)

    Также, в определённых случаях, redis может использовать до 2х раз больше памяти, чем в него записано данных, если идёт большое количество операций записи.
    Ответ написан
    Комментировать
  • Apache очень долго грузит страницы, как исправить?

    @MechanID
    Админ хостинг провайдера
    Надеваю фуражку КО
    1 Найти причину.
    2 Исправить ее.

    Теперь по сути. Такое поведение может быть вызвано разными проблемами, нехватка ресурсов на впс, тормоза mysql, неправильная настройка apache+php, и много чего еще. Каждую версию надо проверять. Предоставленной вами информации хватает только на догадки.
    Ответ написан
    Комментировать
  • Apache очень долго грузит страницы, как исправить?

    alekstar79
    @alekstar79
    А почему сразу apache, что на других серверах, например nginx было не так? То есть я о том, как формулируется вопрос? И ты предполагаешь сразу что виноват апач? Тогда поставь nginx + php-fpm А так проблема может быть в чем угодно. Вот так на вскидку и не скажешь...
    Ответ написан
    1 комментарий
  • Легаси-монстр. Как побеждаете?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Нынче удобный способ с вебсервисами.
    Ищете функционал, который можно выделить в отдельный компонент, пишете компонент, в старом коде меняете API и перенаправляете на новый компонент.

    Повторить до тех пор, пока от старого кода ничего не останется.

    Но я соглашусь с RidgeA - бизнес не будет выделять на это деньги просто так.
    Сперва нужно поработать над этим, убедить бизнес, что технический долг это не пустые слова и вы все ближе к блокеру, когда из-за сложности проекта все больше и больше вещей завязывается не на знания технологий, а на ключевых людей, которые просто знают нюансы проекта. Увольнение любого такого человека приводят к огромным рискам для проекта в целом. Предложить варианты, как это потихоньку будет убираться и потихоньку к этому идти.
    Ответ написан
    Комментировать
  • Легаси-монстр. Как побеждаете?

    @MasterMike
    Из вопроса не очень понятно, что именно составляет ваш интерес отрефакторить этот проект.

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

    Касательно сути вопроса поддержу уже сказавших свое мнение: постепенное помодульное переписывание старого кода на современный лад. Старый код работает вместе с новым и так далее, пока от legacy ничего не останется.
    Ответ написан
    3 комментария
  • Легаси-монстр. Как побеждаете?

    @RidgeA
    Немного банальностей:
    1. Бизнес не даст ресурсов на переписывание проекта с 0: время и большие риски
    2. Бизнесу как правило все-равно какое говно там крутится, лишь бы деньги приносило.
    3. Если более-менее адекватное руководство - нужно донести идею постепенного рефакторинга кода по мере необходимости в процессе фикса багов и разработки новых фич и тем самым аргументировать что на разработку новых фич/фикс багов нужно больше времени.

    Как я бы делал:
    1. Тесты на существующие функции (если возможно, видел методы в контроллерах с мешаниной вызовов методов моделей, созданием DTO и сохранением их через репозиторий, прямых http-запросов и запросов в бд на 1000+ строк, покрыть такое тестами - невозможно)
    2. Составить план рефакторинга, где отметить что и где надо сделать, коротко, в основном для команды разработчиков.
    3. Постепенно рефакторить старый код по мере взаимодействия с ним.
    4. Новый код - писать сразу правильно, для взаимодействия со старым кодом где нет возможности/времени его переделать - делать какие-то адаптеры, что бы не распространять токсичный код.
    5. Как оперативная мера защиты от SQL иньекций можно поставить что-то вроде этого https://github.com/nbs-system/naxsi
    6. Мониторинг кода, который не используется - pinba.org , по мере обнаружения такого кода - удалять безвозвратно (в крайнем случае есть VCS, я надеюсь). Начать с более высокоуровнего кода - контроллеры, напримерю. Плюс IDE в этом могут помочь и grep.
    7. Как вариант - новые фичи можно пилить в отдельном проекте (v2), крутить оба и постепенно переходить на новый, со временем старый (v1) выкинуть (и начать делать новый - v3 :-) )
    Ответ написан
    3 комментария
  • В какой программе компилировать .с файлы для консоли?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    стандартный gcc можетгуглите кросс-компиляция.
    GCC это умеет
    Ответ написан
    Комментировать
  • В какой программе компилировать .с файлы для консоли?

    Вариант 1: www.mingw.org/wiki/HostedCrossCompilerHOWTO
    Вариант 2: Для Windows 10 установить консоль Linux и в ней делать компиляцию (https://docs.microsoft.com/en-us/windows/wsl/insta... )
    Вариант 3: Виртуальная машина VirtualBox c установленным Linux
    Ответ написан
    Комментировать
  • Как исправить ошибку подключения к redis?

    @Kostik_1993
    Web Developer
    Может нужно установить Redis? Может IP не доступен? Может порт другой? Может он не включен?
    Ответ написан
    4 комментария
  • В чем суть serverless подхода?

    neuotq
    @neuotq
    Прокрастинация
    Начну с того, что если вы таки активный разработчик и не очень можете понять этот принцип, возможно он вам просто не нужен. И это не значит что вы плохой разработчик, просто не пересекались с таким видом проблем.
    Что касается serverless, название больше отражает не факт отсутствия сервера и работы с ним как таковым, а скорее еще меньше возни с настройкой и поддержкой серверного окружения (даже меньше чем с докером после того как все настроено и поднято). Те это следующие шаг после условных микросервисов.
    Его часто удобнее называть функция как услуга, так как де факто часто реализуется запуск именно функции по запросу.
    Если кратко описать для чего это нужно, то представим себе что у нас есть микросервис у которого затраты на содержания его постоянного аптайма как то слишком велики относительно времени работы/потребления ресурсов в живую. Да и в целом сервис выходит как то слишком микро даже для микросервиса.
    Вот тут мы и придумываем такую штуку, которая будет ОЧЕНЬ быстро(относительно старта минимальной виртуалки/образа и чего другого) запускаться, быстро делает свою маленькую работу и выключается.
    Из ключевых особенностей отмечу что функции должно быть в целом пофиг на своего состояние, она не знает изначально о предыдущем запуске и тп(те быть stateless). Все что нужно приходит в запросе.
    Ври значит если у вас есть задача, которая удовлетворяет этим условиям, можно использовать этот удобный сервис и для масштабируемости, и для экономии и для кучи других фич.
    Примеры:
    ресайз изображений.
    Генератор статистических сайтов(через админку производим обновление статистических файлов, это бывает не часто).
    Чат боты
    Разные спец информеры с определенной логикой.
    И тд и тп, что хорошо ложится в определенную относительно простую функцию с простым входом данных(или без) и простым результатом работы.
    В целом это решение не панацея, более того нужно четко понимать насколько выгодно/невыгодно переделывать на серверлесс платформы свою функцию, ведь мы точно жертвуем той же производительностью(помним что сервис не висит и не ждет нас постоянно, а пусть и очень быстро, но запускается), понижается прозрачность исполнения и усложняется отладка и прочее.
    Но в любом случае, достаточно часто плюсы перебивают минусы, популярность у этого принципа есть. люди активно пользуются, так что много шишок уже набито, в целом зрелая штука.
    А и да, насчет конкретного вашего вопроса.
    PHP AWS Lambda нативно не поддерживает, все через костыли, впрочем с почти вменяемой производительностью.
    И так как все таки AWS Lambda все же ближе к самому популярному нынче принципу serverless - функция как сервис, я не уверен что это правильная идея будет запускать атм Ларавел.
    Те мы имеем минусы: отсутствие нативной поддержки PHP и такие заточенность под что-то простое, в итоге .. ну не знаю.
    Я думаю плюшки serverless в виде нет мороки с настройкой сервера/облака можно решить многими другими сервисами. Впрочем может быть это будет не так выгодно в вашем случае, нужно исходить и рассчитывать по вашему сценарию работы вашего приложения. А потом решать, что лучше подходит.
    Ответ написан
    1 комментарий
  • Как поднять сервер на Linux и задеплоить приложение?

    @aol-nnov
    3 шаг: установить сервер приложений по вкусу/требованию заказчика/желанию левой пятки
    4 шаг: окей гугл, как "задеплойтить приложение" %имя_выбранного_сервера_приложений%
    Ответ написан
    2 комментария
  • Почему кирилица занимает по 2 байта на символ в utf8?

    https://ru.wikipedia.org/wiki/UTF-8
    https://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D...
    https://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D1%80%D...
    Потому, что в юникоде под кириллицу выделили 5 блоков двухбайтового диапазона.
    Ответ написан
    Комментировать
  • Какие языки учить для бекенд-разработчика(web)?

    Студент it(математического, эконом) универа - java/.net
    Живешь в Москве/Питере/Киеве/Минске - java/.net/python
    Живешь не в столицах - php
    Нет профильного образования - php
    Дофига лет - php
    Хочешь найти работу - php
    Хочешь писать асинхронные прослойки для веб-служб - node.js
    Хочешь писать хорошие асинхронные прослойки для веб-служб - Go
    Достала жена и дети, хочется сидеть заниматься делом и пить пиво после работы с мужиками - Java
    Достала жена и дети, хочется сидеть заниматься делом и пить пиво после работы, и потрахивать баб за 35 - .Net
    Ты не такой как все, ты личность, ты человек - Ruby
    Хочешь свалить в Канаду, США, Австралию - java/.net/python
    Ответ написан
    6 комментариев
  • При смене версий PHP вырастает нагрузка на диск, что делать?

    kotomyava
    @kotomyava
    Системный администратор
    Проанализируйте, что же именно делает в это время mysql, хотя бы запустив mytop, и посмотрев explain частых и долгих запросов.
    У вас может просто отсутствовать какой-нибудь нужный индекс в таблице, или неудачно какой-то запрос составлен, и используется активно full scan или file sort.
    Ответ написан
    Комментировать
  • Как найти битые картинки в папке (Gif, Png, Jpeg), а так же PDF?

    Moskus
    @Moskus
    С картинками - можете поэкспериментировать с тем, чтобы прогонять по ним команду identify -verbose из ImageMagick. На битые она должна ругаться тем или иным образом.
    Ответ написан
    Комментировать
  • LINQ или foreach?

    Stalker_RED
    @Stalker_RED
    в последние лет 10 идет к тому, что скоро бОльшая часть программистов просто забудет про стек, кучу, оптимизацию SQL-запросов
    бОльшая часть программистов никогда и не умела в оптимизацию SQL-запросов.

    “лучше день потерять, потом за 5 минут долететь” не работает в нашей отрасли?
    Бизнес смотрит где выгода. Если он без этой схемы тратит два дня, то да, лучше потерять и долететь. Если он без этой схемы тратил 10 минут, и летал раз в месяц, то пятиминутная экономия окупится через 288 "полетов" (через 24 года). Оно ему точно надо?

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

    Это не значит, что никому в мире не нужен хайлоад и хороший код. Просто массовому рынку это не всегда выгодно, это норма.
    Ответ написан
    Комментировать
  • LINQ или foreach?

    sim3x
    @sim3x
    Что с точки зрения економики лучше:
    - искать 12мес команду из талантливых программеров, которые за год могут не_написать проект
    - найти команду из средних и плохих разрабов и на фреймворках наклепать решение за 6 мес
    ?

    Про стоимость железа / быстродействие.
    Если ваш набор тулз не дает огромного прироста в скорости разработки, или набор сам не оптимизирует код, или набор не заставляет писать оптимальный код, то вам стоит его сменить
    И название набора не имеет никакого значения
    Ответ написан
    Комментировать