• Стоит ли уходить с разработки WordPress?

    vicodin
    @vicodin
    Имею некоторый опыт
    Если вы сдаётесь в любимой сфере, то почему думаете, что не сдадитесь в нелюбимой? Если постоянно развиваться в выбранной сфере, всегда можно добиться высот.
    Ответ написан
    Комментировать
  • Что лучше? Как правильней?

    profesor08
    @profesor08 Куратор тега CSS
    А <img src="img.png"> уже запретили?
    Ответ написан
    41 комментарий
  • Какую легковесную cms на базе Laravel выбрать для проекта?

    mashletov
    @mashletov
    Math.random()
    Никакую. Нормальной поддерживаемой CMS на Laravel нет.
    Ответ написан
  • Возможно ли решить задачу без циклов?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Возможно, но это извращение (никогда так не делайте!):
    eval(JSON.stringify(array).replace(/[^\d]+/g, '+') + '0') // 31

    Перевести массив в JSON-строку, все не-цифры заменить на знаки «+» и выполнить полученное выражение.

    Например:
    const a = [1, 2, [3, 4, [[5, 6], 7], 8]];
    // Вжух! и получится строка:
    "+1+2+3+4+5+6+7+8+"
    Ответ написан
    4 комментария
  • Возможно ли решить задачу без циклов?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Чтобы итерировать массив, всегда нужен минимум один цикл (если считать даже рекурсию таковой). Поэтому ответ - нет.
    UPD: только это настолько бессмысленно, что даже вредит скорости. Я взял вариант Сергей Соколов и 0xD34F и добавил очевидный вариант
    [].concat.apply([], array).reduce(function (res, item) { return res + item; })

    И замерил их скорость.
    const array = [
      [1,4],
      [11],
      [3,5,7]
    ];
    function sum(arr) {
      if (!arr.length) {
        return 0;
      }
      let val = arr[0];
      if (val instanceof Array) {
        val = sum(val);
      }
      return val + sum(arr.slice(1));
    }
    
    
    console.time('eval');
    for (let i = 0; i < 1000; i++) {
    	eval(JSON.stringify(array).replace(/[^\d]+/g, '+') + '0') // 31
    }
    console.timeEnd('eval');
    
    console.time('sum recursion');
    for (let i = 0; i < 1000; i++) {
    	sum(array);
    }
    console.timeEnd('sum recursion');
    
    
    console.time('sum normal');
    for (let i = 0; i < 1000; i++) {
    	[].concat.apply([], array).reduce(function (res, item) { return res + item; })
    }
    console.timeEnd('sum normal');

    На таком массиве при 1000 выполнений у меня вот такие результаты
    eval: 44.69287109375ms
    sum recursion: 2.64501953125ms
    sum normal: 0.951904296875ms

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

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    С жёстким диском описание ситуации выглядит странновато - обычно всё-таки при повреждении видео-файлы начинают либо "рассыпаться" (крупные пиксели рандомного цвета, разъезжающаяся на полосы или зависающая картинка), либо обрываться при воспроизведении.

    Для начала вы можете сделать проверку диска R.tester'ом. Он может делать как автоматическую диагностику, используя встроенные скрипты, так и показать вам графики скорости чтения / времени доступа, на которых будут видны проблемные места.

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

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

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

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

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

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

    Но работа будет недёшевой, т.к. карта явно microSD, а это монолит. На всякий случай, вот краткая памятка о центрах восстановления данных.

    P.S.
    Стандартной проверкой дисков aka CHKDSK пользоваться срочно прекратите. Check disk может запросто покромсать вам файлы так, что потом их уже никто не восстановит.
    Ответ написан
    4 комментария
  • Присвоить id в обратном порядке?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никаким.

    Если шаловливые ручки тянутся потрогать id, то это может означать только две вещи
    - либо надо надавать по ручкам линейкой и объяснить владельцу, что уникальный идентификатор - это не цыферька для красоты, а идентификатор, намертво привязанный к строке в БД, который никогда не меняется, и умирает вместе с ней.
    - либо уникальный идентификатор для этой таблицы вообще не нужен, и его надо убрать
    Ответ написан
    4 комментария
  • Почему я не могу печатать русские буквы в mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Чтобы сделать запрос с русскими буквами, надо заходить не под рутом, а под нормальной учетной записью.
    Под рутом в консоли будет применяться дефолтная кодировка, а до версии 8.0 это Latin1, в которой русских букв нету.

    При заходе под нормальным юзером консоль mysql автоматически подхватит текущую кодировку клиента командной строки.
    Ответ написан
    Комментировать
  • Как отрефакторить такой код?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Общую часть похожих кусков кода превращаем в функцию, а то, чем они различаются, будем передавать в эту функцию в качестве параметров:

    [
      { del: 'region_id', search: 'regionName' },
      { del: 'district_id', search: 'districtName' },
      { del: 'area_id', search: 'areaName' },
      { del: 'city_id', search: 'cityName' },
      { del: 'place_id', search: 'cityName' },
      { del: 'name', search: 'streetName' },
    ].forEach(n => {
      if (this.tableParam[n.del]) {
        delete this.tableParam[n.del];
        this.searchForm.get(n.search).patchValue(null);
      }
    });
    Ответ написан
    5 комментариев
  • Как лучше поступить в случае, когда намечается огромное количество данных?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега PostgreSQL
    Седой и строгий
    Большие данные измеряются не количеством строк в таблицах, а объёмами этих данных. И пока у вас не петабайты, большими они не являются. И упомянутый вами в тегах highload - это про количество запросов в секунду, а не количество строк в таблицах.

    Структуру БД надо подбирать под структуру запросов. Для плоского селекта по индексируемым полям 20-30 миллиардов строк в таблице проблемой не являются.
    Ответ написан
    4 комментария
  • Почему так много удаленки на Bitrix?

    Gorky
    @Gorky
    Веб-разработчик
    Так, мой комент с матом удалили. Напишу без мата (хотя это очень сложно) - много удаленки потому что битрикс очень плохая система и никто не хочет с ней работать кроме ушлых разрабов которые берут за это басновсловные деньги. А распространена она так, потому что продавая лицензии студии и частники получают партнерские отчисления. Втюхивают и подсаживают на этот ад, заламывая цены, если отказываются платить - бросают и привет мытарства по фрилансу. Одна и та же доработка например формы обратной связи обойдется на битриксе в два-три-двадцать раз дороже чем на условном вордпрессе. Бесплатных плагинов и готовых решений очень мало. Отвратительная документация, архитектура, комьюнити. Я 15 лет в веб-разработке и единственное что могу посоветовать - никогда не связывайтесь с этим ужасом если вы клиент и хотите себе сайт. А вот если вы разраб и хотите хорошо заработать на несчастных - то вперед, битрикс самое то.
    Ответ написан
    10 комментариев
  • Почему так много удаленки на Bitrix?

    @spaceatmoon
    Очень сильный маркетинг.

    Ради интереса как-то хотел сделать один заказ на битриксе, там все-то нужно было доработать компонент. При просмотре кода будущего проекта я обалдел. В одном компоненте, а именно в одном его файле было всё: роутинг, контроллеры, модели, вьюха. Это было настолько убого, что хотелось плакать и смеяться. Тех денег этот геморой не стоил, так и закончилось моё знакомство с битриксом.
    Ответ написан
    8 комментариев
  • За работу в офисе больше платят, или как верстальщики 1000$ зарабатывают?

    opium
    @opium
    Просто люблю качественно работать
    Частные случаи возможны, но глобально на рынке верстальщики не знающие жс никому не нужны нынче.
    Ответ написан
    3 комментария
  • Обязательно ли читать книгу по языку/технологии что бы быть тру и продвинутым кодером?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вы не найдёте ни одного авторитетного программиста с мировой известностью, который бы утверждал, что курсы и видео-уроки лучше книг. Обычно это утверждают либо профаны, оправдывающие своё нежелание читать, либо авторы курсов, делающие деньги на лентяях и глупцах. И я лично за 18 лет в отрасли встретил множество программистов, но ни одного хорошего, выучившегося по курсам и видео-урокам.

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

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

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

    Кроме того, чтение развивает абстрактное мышление - основной инструмент разработчика.
    Ответ написан
    16 комментариев
  • Можно ли избавиться от setInterval?

    @alexalexes
    Геттеры и сеттеры.
    Только если ваша переменная является свойством объекта, тогда вы можете задать свою set-функцию, которая не требует от остальной части скрипта какой-то модификации.
    На глобальной переменной my_var делается это так:
    Object.defineProperty(window /*- объект, где располагается свойство */, "my_var" /* - свойство, которое нужно опекать */,
    {
      get: function() // сторожим чтение значения
      {
        alert('Кто-то прочилал my_var!');
      },
      set: function(newValue) // сторожим запись значения
      {
        alert('Кто-то записал my_var! Новое значение: ' + newValue);
      }
    });
    my_var = 123456;  // пробуем записать что-то
    you_var = my_var; // пробуем извлечь значение
    Ответ написан
    Комментировать
  • Пора ли использовать CSS переменные?

    KornevaViktoria
    @KornevaViktoria
    Frontend Developer
    а в чем смысл?
    полностью отказаться от препроцессоров все равно не получится, так так в настоящее время там больше возможностей. (миксины, функции и т.д). Пока все это не появится в чистом css не вижу смысла использовать.

    Можно пример, где bootstrap использует css переменные? потому что мне кажется он использует возможности sass
    Ответ написан
  • Как защитить идею?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Суд в горах. — Гоги, за что ты убил Гиви? . — За мечту! — Объясни суду. Гоги: — Я убил его не за то, что он лез на второй этаж к моей жене, каскадер, понимаешь ли! И не за то, что он спал с моей женой и тещей, дегустатор, понимаешь ли! А за то, что когда я спускал его с лестницы, он сказал:"Я еще сюда вернусь!" Мечтатель, понимаешь ли...
    Ответ написан
    Комментировать
  • Cайт без CMS какие минусы и плюсы?

    Sanes
    @Sanes
    веб студия предлагает весь сайт реализовать без CMS!

    Это следует понимать, как без тиражной или популярной CMS.
    Т.е. будет какой-то свой велосипед, который знают только они.
    Ответ написан
    5 комментариев
  • Правильно ли я понял, как надо выполнить задачу?

    DevMan
    @DevMan
    <?php
    
    $list = [
    	['number' => 3],
    	['number' => 2],
    	['number' => 45],
    ];
    // 1st example
    echo array_sum(array_column($list, 'number')), PHP_EOL;
    
    // 2nd example
    echo array_reduce($list, function ($carry, $item) {
    	return $carry += $item['number'];
    }), PHP_EOL;
    
    // 3rd example
    array_walk($list, function ($item) use (&$sum) {
    	$sum += $item['number'];
    });
    echo $sum, PHP_EOL;
    
    // 4th example
    array_map(function ($item) use (&$sum2) {
    	$sum2 += $item['number'];
    }, $list);
    echo $sum2, PHP_EOL;

    https://ideone.com/xSbmOX
    Ответ написан
    Комментировать