• Как отказать так, чтобы не порвать отношения с заказчиком?

    teke_teke
    @teke_teke
    programador
    Начните издалека -- где впервые появились деньги, для чего, как они выглядели. Потом расскажите историю по калькулятор и компьютер. Дальше расскажите как вы стали программистом и как вы любите это дело, бла-бла-бла. Ну дальше привнесите элемент неожиданности.
    Ответ написан
    Комментировать
  • Как организовать систему управления доступом в автобусы?

    x67
    @x67
    турникеты не нужны? ну тогда тетрадочку в клетку на 48 листов, туда аккуратными буковками вписывать паспортные данные тех, кому можно, а потом им на лоб ставить штамп. Если у кого в салоне нет штампа на лбу, побить и выгнать!
    Начнем с определения условий решения задачи, можно ведь нанять армию Лихтенштейна, которая будет сторожить автобусы, но уверен у вас найдутся причины отказаться от такой затеи.
    1. Какова стоимость разработки системы? Что-то готовое - около нуля, свое мудрить - от нуля и до бесконечности.
    2. Сколько эта система может стоить? Турникеты дорого, а тетрадка со штампом не удовлетворяет каким-то условиям. Тоже надо найти компромисс
    3. Стоимость эксплуатации системы. Можно тратить по триллиону в месяц, из них 40к кондуктору, остальное на премию, а можно закупить турникеты, которые придется обслуживать раз в n времени
    4. Спец. требования? Простота - эт понятно. Защищенность на каком уровне должна быть? печатать проездные на месяц на листочках - довольно недорого, но так может каждый, даже работник организации В.
    Помимо того, надо понимать как происходит процесс погрузки и разгрузки, какие условия работы.. Например, загружая людей через переднюю дверь, закрыв остальные, можно будет возложить обязанности вышибалы-билетера на водителя. Тогда вам нужны или электронные пропуска и считыватели соответственно, или обычные пропуска, но со списком или обновляемые каждый месяц к примеру.
    Я почему-то ратую за электронные пропуска хотя бы на основе nfc меток. Тогда в качестве считывателя подойдут спец.смартфоны со спец.программкой, выдаваемые водителям. Но для защиты от их копирования, спец. программа должна будет как минимум считывать код и определять клиента, перезаписывать на нфц метку новый код, по которому однозначно можно определить этого самого клиента, деактивировать старый и синхронизировать все это с сервером. Все это выльется в некоторую стоимость разработки ПО, закупки устройств и ежемесячное обслуживание(интернет для смартов, содержание сервера), но позволит быть уверенным, что ни один работник категории В не проникнет в автобус, а также обеспечит хорошую гибкость. Возможно дешевле будет использовать уже готовую систему пропусков, не создавая новый велосипед.
    QR коды - дешево в использовании, но никакой защиты и удобства. Потерять бумажку легко, а для защиты придется каждый раз генерировать новые билетики и отдавать их работникам категории А и Б.
    Еще неплохой вариант - рассылка смс с индивидуальными кодами. Смартфоны несмотря на 2016 есть не у всех, но вот телефоны то точно есть. При этом эти коды могут быть одноразовыми, что не позволит их просто отдавать друзьям категории В, которые тоже хотят кататься. Но и тут удобство не на первом месте - телефон может разрядиться или потеряться.
    Ответ написан
    4 комментария
  • Существует ли онлайн тест на знание английского языка с открытым типом вопроса и пояснением грамматических ошибок?

    SEOBot
    @SEOBot
    SEO Noob
    Тут вопрос в том какую цель вы преследуете.
    1) Если Вам нужен тест который поможет правильно оценить Вашу грамматику и дать подсказки, то я использую на Android English Grammar Test
    2) Если Вам нужны проверки текста в процессе работы/написания, то есть отличное расширение для Chrome (+расширение для WORD, etc) Grammarly (FYI, для того чтобы попробовать PREMIUM на месяц, нужно рашарить Grammarly по рефке кому-то из друзей)
    Вот примеры разъяснений к вашему примеру (я пользую проплаченный PREMIUM)
    82ae470ca0d94489a0b1facf2cc1b64d.png0f443642e6c14bc78bf26608f062779b.png
    3) Вот хороший сервис, где Вас могут "пруфридить нативы". Вы пишите текста, выкладываете. Пользователи их вычитывают, правят, дают рекомендации Lang8
    Ответ написан
    Комментировать
  • Подгрузка отзывов на сайт, как сделать?

    kirill_782
    @kirill_782
    Днем я Маринетт
    1. Из бд прогружаете 4 записи, если из 4, то выводите три с кнгопкой, иначе без кнопки
    2. При помощи смещений выбираете требуемый промежуток и делаем аналогично 1 пункту
    3. Проверяем offset.
    4. На сервере браузеру передаем флаг об окончании отзывов.
    5. css: display:none
    6. Подгруженные отзывы помещаем в отдельный блок
    7. Попробуйте window.location.hash.
    Ответ написан
    Комментировать
  • Как организовать временное хранение картинок?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Всё предельно просто.

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

    У Вас есть картинки, которые привязаны (должны быть) к какому-то объявлению, которое создаётся ранее. С помощью CRON'а, вы находите объявления, которые более не ликвидны (недоопубликованы например) и по простой связи находите их картинки и удаляете всё сразу (и объявления и картинки).

    Другой вариант: у Вас объявление создаётся позже, чем картинки. То есть, картинки некоторое время, до полного формирования объявления существуют в некоем вакууме. В этом случае, Вы добавляете каждой картинке поле - "дата загрузки" и выбираете все картинки, дата загрузки которых была более суток назад и которые не привязаны ни к одному объявлению (т.е. поле объявление_id == NULL).

    Всё это делается по CRON'у, который запускает какой-то метод контроллера (судя по тому, что Вы используете Symfony). Обычно эту задачу решает утилита wget, которую запускает CRON. Что бы предотвратить "случайные" запуски со стороны пользователей - можно добавить проверку по GET-параметру, содержащему какой-нибудь хеш.
    Ответ написан
  • Можно ли получить имя переменной?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Начиная с C#6.0: nameof(val)
    Ответ написан
    2 комментария
  • Может ли два exe-файла x86 и x64 использовать общие dll?

    xpert13
    @xpert13
    Full Stack Developer
    Не можете, разрядность исполняемого файла и используемых ею библиотек должны совпадать. Исполняемый файл делит с библиотекой своё адресное пространство, а у x86 и x64 разный размер ячейки памяти, они не смогут правильно работать в одном адресном пространстве.
    Ответ написан
    Комментировать
  • Как узнать получить данные наследованного класса в EF 6?

    Вы изучите для начала маппинг в БД 3 вида при наследовании.
    TPH, TPT, TPC
    https://msdn.microsoft.com/ru-ru/data/jj591617.aspx
    metanit.com/sharp/entityframework Глава 7. Наследование в Entity Framework
    Посмотрите как в БД сохраняется.
    Ответ написан
    1 комментарий
  • Как изменить объект формы из другого класса?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Контролы нужно изменять только из того треда, в котором они создаются, то есть в основном потоке!
    Можно оборачивать изменяющий код в делегаты Action и передавать в Control.Invoke() формы. Пример
    Ответ написан
    3 комментария
  • Почему исходный код cgi-скрипта при запросе отображается в браузере, но сам скрипт не выводит html-разметку?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Скрипт надо хендлить. То есть веб-сервер должен понимать, что это скрипт и выполнять его, а не отображать как страничку.
    Убедитесь, что выполнение скриптов разрешено в вашей папке
    <Directory "/var/www/htdocs/somedir">
        Options +ExecCGI
    </Directory>


    Убедитесь, что расширение файла прописано в хендлере
    AddHandler cgi-script .cgi .pl

    Можно даже указать хендлер конкретно для этой папки:
    <Directory "/home/*/public_html">
        Options +ExecCGI
        AddHandler cgi-script .cgi
    </Directory>
    Ответ написан
    2 комментария
  • Как работает деинсталятор?

    Ответ написан
    Комментировать
  • Каков набор утилит для компьютерной помощи?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Уже доводилось отвечать здесь на подобный вопрос. Но раз он возник заново, повторю свой тогдашний ответ.
    Да, использовал когда-то Hiren's BootCD. Но вот уже несколько лет применяю сборку Multiboot, существующую в форме как LiveDVD, так и LiveUSB, и имеющую следующие фишки:
    1. Не один, а аж целых 4 разных WinPE - на базе WinXP, Serwer 2008, Win7 и Win8.1. Выбор - в стартовом меню grub4dos. Если на данном железе не заводится одна - пробуем вторую, какая-нибудь да заведётся!
    2. В каждую WinPE интегрирован пакет 2k10 из пары сотен утилит на все случаи жизни.
    3. Есть и внесистемные утилиты и тесты с доступом сразу из grub4dos.
    4. И наконец, на борту присутствуют чистые дистрибутивы Windows - XP, 7, 8.1. "Семерка" и "Восьмерка" - во всех вариантах (выбор при старте установки), всегда можно подобрать "родной" для данного аппарата, если ключ зашит в BIOS.
    Для компьютерной "скорой помощи" более чем достаточно!

    UPD. Обнаружил, что существует ещё более современная инструментально-восстановительная сборка LiveUSB - это Jinn'sLiveUSB x86/x64 UEFI [Ru] (текущая версия 5.2). В ней добавлена инструментальная сборка Линукс PE Parted Magic, новая версия пакета 2k10, содержащая вместо двухсот более 400 утилит, а дистрибутивы Windows дополнены Win10. Требуемый объём флэшки - 16 ГБ или более. К сожалению, запускается только через UEFI, на привычной MBR не работает. Всё это я выяснил из её описания, и поскольку на практике ещё не пробовал эту сборку, безошибочности этой информации не гарантирую.
    UPD2: Опробование сборки Jinn'sLiveUSB показало, что включённые в её состав дистрибутивы Винды - не чистые, автор сборки загрязнил их многочисленными добавками и активаторами.
    Ответ написан
    4 комментария
  • Каков набор утилит для компьютерной помощи?

    @nirvimel
    В изолированной системе энтропия не уменьшается - закон физики.
    Засранная система не станет чистой - закон Microsoft.

    Самый быстрый и правильный вариант:
    0. Забыть про всякие чистильщики, настройщики и прочую легальную вирусню, которую некоторые еще ставят себе добровольно.
    1. Сгрести все ценное на внешний диск (если под это не отведен специальный раздел, т.е. хард нарезан цельным куском).
    2. Отформатировать хард (заодно правильно нарезать, чтобы под ОС шел ОТДЕЛЬНЫЙ раздел).
    3. Поставить чистую ОС.
    4. Вернуть все ценности на место (неактуально, при наличии отдельных разделов под это и под ОС).
    5. Убрать админские права с юзера и запаролить админа - защита от 90% вирусни.
    6. Настроить инкрементальный бекап всего юзерского профиля - защита от оставшихся 10% вирусни.
    7. Поставить (анти)вирус, чтобы комп стал тормозить как раньше.
    Ответ написан
    6 комментариев
  • C# unit testing best practices?

    DimonSmart
    @DimonSmart
    Kaspersky Lab Developer
    Тут уже ответили по самым популярным.
    Добавлю ещё Microsoft Fakes
    Неплохо подходит для тестирования взаимодействия с большим внешним кодом который сложно замочить.
    В качестве интересного примера - специальные компоненты для юнит-тестирования sharepoint.
    Ответ написан
    Комментировать
  • Какие существуют способы защиты от атак на сервис, использующий смс подтверждение?

    @hoarywolf
    Усложнить отправку формы простым curl-om.
    Используйте сессии, загружайте в hidden переменные значения ajax-ом, проверяйте, что пользователь загрузил не только html-файл формы, но и какое-то изображение, что он выполняет скрипты и тд. Понятно что от эмуляции браузера это не спасет, но жизнь злоумышленникам усложнит.

    Кстати, можно еще отслеживать перемещения мыши, хотя бы в пределах формы, mouseover и mouseout на ее элементах, прокручивание страница, ввод текста в элементы формы (а не программное изменение value как в phantomjs) и на основании всего этого рассчитывать вероятность бота. При невысокой активности этим всем можно пренебречь, но в моменты атаки учитывать для выявления ботов.
    Ответ написан
    2 комментария
  • Как создать обобщение для списка лямда выражений?

    impwx
    @impwx
    Разработчик
    Во-первых, вы можете унаследоваться от Dictionary и не переизобретать методы:

    class AbstractExpressionList<T>: Dictionary<string, Func<T, T>> { }

    Во-вторых, ваш метод Execute уже написан авторами LINQ и называется Enumerable.Aggregate. Внутри он устроен примерно так:

    public T Aggregate(IEnumerable<T> values, T accumulator, Func<T, T> projection)
    {
        var current = accumulator;
        foreach(var value in values)
            current = projection(current, value);
        return current;
    }

    Вам понадобится начальное значение, от которого цикл будет двигаться. Можете использовать первый элемент в списке, или default(T), или передавать пользовательское значение.

    Поскольку ваш класс будет унаследован от Dictionary, который в свою очередь реализует IEnumerable, то вы можете использовать Aggregate напрямую, не реализовывая самостоятельно:

    var data = new AbstractExpressionList<T>
    {
        ["a"] = ...,
        ["b"] = ...
    };
    var result = data.Aggregate(...);
    Ответ написан
    1 комментарий
  • Как удалить лишние коммиты?

    @Yonghwa
    121
    Мне лень переводить, чувак. Тут все подробно и все работает.
    stackoverflow.com/questions/1338728/delete-commits...
    Ответ написан
    Комментировать
  • Чем нарисовать план дома?

    @topsat
    my sweet home 3d - бесплатная программа
    сам пользовался и строил по плану потом7c699b77d58e4cd9b4701e105896455a.png
    Ответ написан
    5 комментариев
  • Чем нарисовать план дома?

    Uwe_Boll
    @Uwe_Boll
    Я Злой и Страшный Уве Болл в Разработке знаю Толк
    в sketchup при наличии прямых рук можно и каждую плиточку в санузле выложить
    Ответ написан
    3 комментария