• Какое решение по корпоративной почте показалось Вам наилучшим?

    Попробуйте рассмотреть целесообразность варианта нанять специалиста со стороны для конфигурации почтовой системы. По сути, это разовая операция - правильно сконфигурированный сервер не будет требовать постоянной поддержки. 1 и 4 пункт не кажутся столь страшными.
    Гугол предлагает отбекапить ящики - когда-то успешно съехали с него, когда объёмы почты превысили допустимые.
    Ответ написан
    5 комментариев
  • Какое решение по корпоративной почте показалось Вам наилучшим?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    посмотрите https://www.zoho.com/mail/
    они погибче монстров, но , собственно, кроме перечисленных других нет (хз что там в Яху и Gmx, но, думаю, еще больше misunderstings)
    Ответ написан
    1 комментарий
  • Какое решение по корпоративной почте показалось Вам наилучшим?

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

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

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

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Как правильно сделать? Куда смотреть?

    Смотреть в код.

    По звездам: у вас там rowspan стоит больше, чем столбцов.
    По кофейной гуще: лишние или незакрытые теги.
    Ответ написан
    Комментировать
  • В таблице появляются лишние строки?

    Austin_Powers
    @Austin_Powers
    Web developer (Symfony, Go, Vue.js)
    40f7911f992349b5bd340561f8510cc0.jpeg
    Ответ написан
    Комментировать
  • Есть ли смысл придумывать сложные пароли?

    tomnolane
    @tomnolane
    профессиональный разработчик
    9dc87212c52d4739bbfe5e664b90a6cb.PNG
    краткий ответ: чем длиннее пароль, тем тяжелее(дольше по времени ломать) взломать/подобрать.
    т.е. пароль fGyr[1 взломают быстрее, чем 1111111111111111 (16 символов) оригинал
    п.с. это если касается "грубой силы" - методом подбора (к примеру в hydra)

    п.с.с. а так, если данные передаются не по защищённой связи (к примеру через протокол http, а не https) - то не важно какой пароль, при MITM - его увидят целиком и полностью

    или нас, рядовых пользователей, взламывать не станут

    цель взлома далеко не всегда является корыстной. Иногда это "развлечение" или даже "тренировка", и кто будет "объектом" не важно (будь то пользователь ВК или почта, или худенький интернет-магазин)

    п.с.с.с. использовать 1111111111111111 конечно не стоит, но хотябы так: 1111111111111111_ms
    Ответ написан
    Комментировать
  • Как сделать сохранение значений веб-формы в EXCEL-фаил и отправить как вложение из веб-формы (Веб-формы 1С-Битрикс)?

    coderisimo
    @coderisimo
    Уважаемый Четырёхлистник , вы уже задавали этот вопрос ранее и задаете вновь. Важно понять , что вопрос получился глобальный и если , полученные в первый раз советы вам не понятны следует использовать хитрую методику. "Ешьте слона частями" ))))) . Рекомендую, ибо данный подход мне, как неофиту, очень пригодился. Итак , как отправить значения веб-формы в виде эксель файла? Разбейте задачу на подзадачи. Например :
    1) Получаем данные из формы в PHP скрипте
    2) Подключаем туда же библиотеку PHPExcel
    3) Создаем посредством PHPExcel документ Excel и добавляем в него данные из формы.
    4) Сохраняем созданный документ куда нужно
    5) Отправляем созданный документ получателю.

    Есть еще непонятные этапы? Включите их в список. Результат - глобальная задача разбитная на подзадачи. Приблизительно так в вашем случае выглядит слон, разделенный на кусочки ))). Переварить их гораздо проще, искать ответы тоже. Т.е если вам не понятен первый пункт - вы ищите ответы в сети или задаете вопрос здесь. Решили п.1 ? Переходите ко второму. Удачи.
    Ответ написан
    3 комментария
  • Как следить за процессом работы потока в %?

    @Aves
    Можно сделать что-нибудь в таком роде:
    const stream = require('stream');
    const fs = require('fs');
    
    class PercentWatcher extends stream.Duplex {
      constructor(fd) {
        super();
        this.size = fs.fstatSync(fd).size;
        this.handled = 0;
      }
      _read() {}
      _write(chunk, encoding, callback) {
        this.push(chunk);
        this.handled += chunk.length;
        console.log(`\n\n${Math.round(this.handled / this.size * 100)}%\n\n`);
        callback();
      }
    }
    
    const fd = fs.openSync('file.txt', 'r');
    
    fs.createReadStream(null, {fd}).pipe(new PercentWatcher(fd)).pipe(process.stdout);
    Ответ написан
    2 комментария
  • Спрашивать ли бюджет у клиента или сразу называть свою цену?

    Atanvar
    @Atanvar
    Frontend developer
    Спрашивать, но главное как

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

    У вас какое-то неправильное представление о том, как это делается.

    Сайт обычно состоит из ограниченного числа html-шаблонов, которые заполняются данные. Так вот, разметку нужно задать один раз для шаблона, а потом уже туда подгружать данные. Чтобы правильно чекнуть разметку, можно использовать валидатор от Яндекса. Делается все достаточно просто, нужно лишь прочитать документацию, чтобы знать какие теги использовать.
    Ответ написан
    3 комментария
  • Как вынести расчёт из JavaScript?

    victorzadorozhnyy
    @victorzadorozhnyy
    сделайте по rest api запрос расчета на стороне сервера
    Ответ написан
    1 комментарий
  • Как удалить массив А, если значение его ключа пересеклось со значением массива B?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $A = array_udiff($A, $B, function($a, $b) { return $a['id'] - $b['id'] });
    Ответ написан
  • Какой правильный подход к написанию тестов под задачу?

    Tyranron
    @Tyranron
    Тесты тестам рознь. Они бывают очень разные.
    Все зависит от того, что именно Вы хотите протестировать.
    Могут быть тесты производительности. Они проверяют что скорость выполнения кода/приложения/запроса удовлетворяет определенному значению.
    Могут быть нагрузочные тесты. Они проверяют что приложение/система держит определенные нагрузки.
    Могут быть тесты, которые проверяют систему на предмет соответствия определенным стандартам безопасности (PCI compliance check, к примеру).
    В принципе, тесты могут тестировать любой интересующий Вас аспект/метрику кода/приложения/чего-угодно.
    Чаще всего тесты пишут, чтобы проверить правильность работы заложенной в приложение бизнес-логики.

    Все выше упомянутые случаи имею общую черту - какие-либо ожидания, которые подтверждаются, или не подтверждаются тестами.
    Соответственно тесты, как таковые, непосредственно связаны с понятием спецификации кода/приложения/модуля/чего-угодно. Собственно, в BDD (behavior-driven development) тесты часто так и называют - spec (спеки).

    Идея проста и никаких тайн не содержит:
    Вы пишете спецификацию, а тесты доказывают что приложение соответствует спецификации.
    Эта идея применяется на любом уровне от самых низкоуровневых модулей, до высокоуровневых частей системы, и самой системы в целом.

    Ваша задача не "повалить систему REST api", а удостовериться, что она работает ожидаемым и требуемым образом (что делать должна, и чего не должна). Именно подобные требования и нужно вносить в спецификацию.

    Вот очень упрощенная спецификация для Вашего примера:
    Допустим если rest_api на вход примет json файл

    1. Если на вход ничего не подано, rest_api должен вернуть ошибку 1 (отсутствует тело запроса).
    2. Если на вход подан не JSON, rest_api должен вернуть ошибку 2 (некорректный запрос).
    3. Если структура JSON не содержит всех необходимых параметров, rest_api должен вернуть ошибку 3 (некорректные параметры).
    4. Если передан валидный запрос, rest_api должен вернуть результат в нужном формате.
    5. Если передан валидный запрос повторно, rest_api должен вернуть ошибку 4 (файл уже обработан).
    Соотвественно, тесты проверяют выполняется ли каждый пункт спецификации.

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

    P.S. Разработка программного обеспечения - самая открытая и прозрачная современная профессия. Ни в какой другой области я не встречал аналогов дотягивающих до open source движения, и такого громадного кол-ва докладов/статей в свободном доступе, где люди охотно делятся опытом и понимаем, такого кол-ва обучающих площадок, такого рвения помогать друг другу становиться лучше в профессиональном плане.
    Потому, в следующий раз, прежде чем говорить о "средствах манипуляции" и "пруф-линщиках", откройте глаза, зайдите на тот же Github, где можно вот-так просто взять и посмотреть "как оно делается", не поленитесь почитать "пруф-линки", где тема фундаментально разжевана по полочкам, послушать доклады с конференций. Вам все сообщество ставит большую такую миску с кашей под нос - бери и ешь. Если Вы хотите, чтобы Вам рот открыли, ложку в рот положили, и ещё и челюстью подвигали, - так это делают в детском саду воспитатели.
    Ответ написан
    3 комментария
  • Какой правильный подход к написанию тестов под задачу?

    @red-barbarian
    Чем больше тестов, тем лучше.
    Тесты не гарантируют корректность кода и идей.
    Нормальный тест это "тест черной коробки" - мы не знаем как она реализуется, но мы может проверить как она реагирует на воздействия из вне.
    Если мы залезли в черную коробку и копаемся внутри, то ранее написанные тесты дают некоторую гарантию, что мы ничего не поломали.

    Ну и наконец, если использовать разработку через тестирование, то интерфейс черной коробки получается чаще всего заточены под нужды системы, а не под шаткое понимание образа коробки у программиста.
    Ответ написан
    4 комментария
  • Как узнать, на какой функции PHP уходит в "вечный запрос"?

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

    curl_setopt($ch, CURLOPT_TIMEOUT, 400); // время в секундах
    // тут ваш код запрос страницы
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    					
    if ($httpcode == 0) { throw new Exception("No connection"); }
    if ($httpcode == 504) { throw new Exception("504 can't connect"); }


    внутри throw new Exception можете выводить в ошибку урл который запрашивали, либо вообще через debug_backtrace выводить от куда ноги растут.

    Если хотите без эксепшина, то просто пишите куда-то логи
    Ответ написан
    1 комментарий
  • Создание элемента - какая схема лучше?

    @vintage
    Совсем идеальный вариант: клиент генерирует GUID и для него создаёт свою локальную запись. Далее сразу или по нажатию кнопки "сохранить", происходит синхронизация с сервером. Если на сервере нет записи с таким GUID, то она создаётся. Если есть, то проверяются права доступа и если всё ок, то изменения применяются.

    Чем это хорошо:
    1. Все запросы идемпотентные (их можно безопасно повторять при затыках сети).
    2. Даже у не сохранённой на сервере записи есть уникальный идентификатор, что сильно упрощает клиентскую логику.
    3. Не захламляется база данных временными записями.
    4. Логика работы клиента не зависит от протокола взаимодействия. Вам не нужно предварительно создавать запись, прежде чем её редактировать, не нужно иметь две различные логики работы для записей с локальными идентификаторами и с серверными. Просто создаёте записи и работаете с ними, а взаимодействие с сервером обеспечит отдельный заменяемый адаптер.
    5. GUID можно генерировать сразу человекопонятным. Например, для блога это может быть "vintage/2017-03-08T12:47:33". Обратите внимание, что тут мы не позволяем создавать более одного поста в секунду. Записи, созданные в одну и ту же секунду будут одной и той же записью.
    6. Вы сами решаете когда и как сохранять данные на сервер и это не навязывается вам протоколом.
    7. На запись, которая ещё не сохранена, уже можно дать ссылку. Фактически создана она будет лишь после первого редактирования. Актуально для вики проектов, где вы сначала создаёте ссылку, потом по ней переходите, и только тогда уже заполняете.

    Чем это плохо:
    1. сквозная нумерация не представляется возможной. Но она и редко когда необходима.
    2. Идентификаторы получаются относительно длинными. С другой - они могут содержать некоторую метаинформацию. Например - когда, кем и где создана.
    3. В базе для GUID должна быть дополнительная текстовая колонка с уникальным индексом. Но скорее всего всё-равно у вас такая будет, когда начнёте внедрять [slug](https://ru.wikipedia.org/wiki/Семантический_URL#Slug) для человекопонятности.
    Ответ написан
    1 комментарий
  • Где искать грамотных российских WordPress разработчиков?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Очередной "умный" спам.
    Хорошие разработчики есть везде, на любой бирже. Не верю, что найти не можете.
    Другое дело, что стоят они хороших денег и редко подходят аутсорсерам.
    Поэтому они могут не откликаться на вакансии, есть рейтинги.
    Ответ написан
    1 комментарий
  • Где искать грамотных российских WordPress разработчиков?

    VasyaPertrov
    @VasyaPertrov
    Изготовление и безопастность сайтов. WP и др.
    ИМХО лучше всего искать на форумах и тп ресурсах, где видно кто на что как отвечает. Хорошие специалисты редко сами предлагают себя, но им всегда можно постучать "в личку" (в любые доступные контакты)
    Ответ написан
    7 комментариев
  • Что выбрать, слайдер на чистом CSS или с использованием JS?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Что выбрать, слайдер на чистом CSS или с использованием JS?

    Ответьте на следующие вопросы и ответ придет сам собой:
    • Можете ли вы в слайдере на чистом CSS сделать поддержку touch-устройств (свайпы)?
    • Можете ли вы в слайдере на чистом CSS сделать поддержку клавиатуры (фокус на весь слайдер и переключение слайдов стрелками)?
    • Можете ли вы в слайдере на чистом CSS адекватно останавливать его на hover, чтобы юзер мог прочитать написанное на слайде?
    • Можете ли вы в слайдере на чистом CSS легко добавить или убрать слайд, не сломав все остальное?


    P.S.: Как человек, создающий всякое на чистом (и не очень) CSS, понимаю ваше стремление, но продукт делается в первую очередь для пользователей.
    Ответ написан
    Комментировать