Задать вопрос
  • Форумы на которым можно предложить услуги по веб разработке?

    muhammad_97
    @muhammad_97
    PHP-разработчик
    Лучше все-таки на фриланс-биржах.

    https://www.upwork.com
    https://freelansim.ru
    Ответ написан
    Комментировать
  • Как повысить компрессию JS кода не нарушая внешний вид (читабельность)?

    ShadowOfCasper
    @ShadowOfCasper
    Middle User Interface Web Developer
    Всё равно весь front-end пилится на локалке. Я использую gulp с тасками, которые мне строят в build минифицированные js,css + sourcemaps - я заливаю всё, что компилирую в build на сервер с помощью небольшого git-хака. Вернее хука. Вернее пары хуков (погугли "git и публикация сайта"). А исходники остаются на локалке. Неминифицированные и читабельные. Никаких правок интерфейса на сервере - мы не в 2007м. Если нужны правки -
    правим на gulp serve, потом - gulp build && cd build && git add . && git commit -m 'cy4u praBku' && git push hub master , идём дальше наслаждаться своим мохито))
    Ответ написан
    Комментировать
  • Как повысить компрессию JS кода не нарушая внешний вид (читабельность)?

    @Fixid
    Что вам мешается заливать на сервер только максимально оптимизированную версию? Кому нужна эта стилистика? Браузеру все равно. Если вы хотите дебажить JS прямо на проде то это плохая идея.
    Ответ написан
    Комментировать
  • Говорят, что API социальных сетей RESTful, почему?

    nazarpc
    @nazarpc
    Open Source enthusiast
    https://ru.wikipedia.org/wiki/REST

    В отличие от веб-сервисов (веб-служб) на основе SOAP, не существует «официального» стандарта для RESTful веб-API. Дело в том, что REST является архитектурным стилем, в то время как SOAP является протоколом. Несмотря на то, что REST не является стандартом сам по себе, большинство RESTful-реализаций используют стандарты, такие как HTTP, URL, JSON и XML.

    Я использую не только POST, GET, PUT, DELETE методы в своих API, но и дополнительные кастомные, например, если устанавливается какой-то компонент в системе я отправляю запрос методом INSTALL, если удаляю то UNINSTALL, когда нужно зарегистрировать пользователя то метод будет REGISTRATION, а когда получить права доступа пользователя то GET_PERMISSIONS.

    В итоге получается подобная однообразная структура API с которой очень легко и естественно работать:
    GET api/users/1
    UPDATE api/users/1
    CHANGE_PASSWORD api/users/1
    GET api/users/1/persmissions
    DELETE api/users/1
    REGISTRATION api/users
    SEARCH api/users

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

    В wiki об этом написано более формально(пункты 1-5), но поскольку требования достаточно общие то реализации существенно отличаются и ничего с этим не поделать.
    Ответ написан
    2 комментария
  • Как по максимуму безопасно востановить данные с жесткого диска?

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

    @basrach
    При такой реализации проблемы вылезут сразу, как только случится несколько одновременных запросов к вашей службе из-за отсутствия синхронизации потоков, если только вы не используете Single режим для службы. Но тогда непонятны заморочки c Parallel.ForEach и прочие очереди.
    1. в addCall несколько потоков могут попытаться добавить один и тот же ключ в словарь calls и это будет exception
    2. в invokeAll перед выходом очищается словарь calls, при этом на момент выходы из этого метода в нем вполне могут оказаться новые команды, которые будут также удалены
    3. Wait() перед выходом из AddDataToDevice заблокирует поток, который будет ждать окончания выполнения другого потока, который был запущен в Parallel.ForEach - странно выглядит
    4. В методе getInfo не обрабатывается ситуация отсутствия ключа в словаре, в таком случае будет выброшено исключение
    5. перед вызовом invokeAll не проверяется был ли завершен предыдущий вызов. Если первый вызов invokeAll не успел завершиться за минуту и придет второй, то тут вообще начнется каша от исключений при переборе ключей словаря, до отправки одних и тех же команд несколько раз
    6. Данные из словаря callsInfo не удаляются, что при длительной работе приведет к утечкам со всеми вытекающими
    Но если вы используете Single mode для WCF service-а, либо в один момент времени может быть только один запрос на сервис, то наверное будет работать.
    Ответ написан
    2 комментария
  • Какая служит для обновления GIT?

    ArXen42
    @ArXen42
    git это все таки не браузер вроде хрома, сам себя обновлять не будет)

    Под linux этим обычно занимается пакетный менеджер, под виндой скорее просто нужно запустить инсталлятор новой версии.
    Ответ написан
    Комментировать
  • Простой бесплатный VPS с минимумом ресурсов?

    planc
    @planc
    https://aws.amazon.com/ru/ec2/
    для регистрации нужна карта(я регал виртуальной от яндекса ) + телефон
    с карты снимут доллар и вернут через месяц
    бесплатный микро инстанс на год
    Ответ написан
    1 комментарий
  • Когда клиент думает что вы хотите делать ненужное лишь бы стянуть с него денег, как аргументировать?

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

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

    Так что по большему счету не парьтесь. За свои ошибки клиент платит деньгами. Если нет - ищите другого клиента.
    Ответ написан
    Комментировать
  • Как объяснить заказчику суть работы бекенда?

    Therapyx
    @Therapyx
    Data Science
    Если человек упертый на свой волне - поверь, никак.
    Это как с друзьями, которые узнают, что ты умеешь делать сайтики, а потом предлагают свои великие бизнесс планы по захвату мира на ххх часов рабочего времени. Ты им говоришь, обьясняешь что да как, обьясняешь вообще всю суть разработки. А в ответ слышишь вбросы, по типу:
    - да что там делать? Это же пару кнопочек нарисовать.
    - Молчание... Так и скажи, что не умеешь! :D

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

    @Wexter
    Показывайте превью, включайте видео по клику, при переключении на другое - возвращайте превью обратно
    Ответ написан
    Комментировать
  • Можно ли сменить Bitcoin-клиент на другой?

    И можно ли с нескольких разных устройств юзать один кошелек?

    Да.

    Можно ли эти 12 слов использовать для входа в любую программу

    Нет. Кодовая фраза используется в качестве seed. В каждой программе свой алгоритм, поэтому одна и та же парольная фраза даёт разный результат.

    Вам нужно экспортировать из программы закрытые ключи кошелька, а затем импортировать их в другую программу. Ключи никому не давайте и не пересылайте по открытым каналам.
    Ответ написан
    Комментировать
  • У вас «математический склад ума»?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Математический склад (кузница, рынок, ратуша, амбар) ума, это не про длину выражений, а про применение методов рационального мышления. Умеете их применять - ура, можете считать, что завели себе в голове небольшой складик с математикой. (Рис 0x00)
    b_warehouse_easter%5B1_0%5D.png
    Рис 0x00 - складик математического ума (на самом деле, нет)
    Ответ написан
    3 комментария
  • При включении ПК с видеокартой БП уходит в защиту. Без неё все норм. Вопрос как починить видюху(если это она)?

    Kolyagrozamorey
    @Kolyagrozamorey
    инженер-электроник службы ИТ ХАЕС
    Мощности блока питание не хватает. С более мощным будет нормально работать
    Ответ написан
    4 комментария
  • При включении ПК с видеокартой БП уходит в защиту. Без неё все норм. Вопрос как починить видюху(если это она)?

    73656c6565
    @73656c6565
    أنتوني
    Либо по мощности перебор(БП не вытягивает) либо коротит питание) Берете мануал, считаете мощность, эта плата жрет 116(считай 150Вт). Если нет - "прозвонку" по цепи питания делайте.
    Ответ написан
    2 комментария
  • Автомонтирование USB-накопителя через udev. Почему отключается через 1-2 секунды?

    dimap101
    @dimap101 Автор вопроса
    ИП, разработка АИС, микроконтроллеры
    В процессе проверки разных возможных причин удалось установить, что такая проблема имеется только с ФС exFAT и NTFS. Накопители с FAT32 монтируются нормально. Но нужен exFAT (или NTFS, хотя нежелательно) - накопители по 64Гб.

    Осталось дело за малым - понять, почему автомонтирование exFAT срабатывает криво, а вручную работает нормально.

    Проверил через udevadm monitor - при FAT32 не появляется UDEV-event "change".
    Также через "udevadm monitor --property" сверил все данные при "add" и "change" - все идентично, т.е. на самом деле никаких предпосылок к появлению "change" нет.

    UPDATE: на нескольких форумах нашел аналогичную проблему и якобы она заключается в том, что udev убивает все дочерние процессы в течении 30 секунд. Но все же непонятно какая связь 30 секунд, и пропадания через 1-2 секунды по UDEV-event "change", причем FAT32 работает нормально.

    Тем не менее начал искать другое решение, HAL использовать не стал ввиду устаревания. Установлен devmon из пакета udevil, поставил в автозагрузку, все работает, проблем нет.
    Ответ написан
    Комментировать
  • Почему Одноклассники не распознают доменную зону .shopping?

    drugoi
    @drugoi
    Front-end Developer
    Скорей всего просто зона не входит в список существующих у ОК.
    Напишите в поддержку, только они это решить смогут добавив новые зоны в парсер.
    Ответ написан
    Комментировать
  • Хочу открыть платный wi-fi, надо найти аналог биллингу hotspotsystem,есть такие с исходным кодом?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    6. ...и круто подсесть за незаконное предпринимательство - потому что провайдерствовать можно только с лицензией. А еще Вам нужен будет СОРМ - потому что по "пакету Яровой" Вы обязаны много чего хранить. Потому что завтра с Вашего хотспота Вася запостит ЦП, Петя напишет "#крымненаш", а Коля пошлет ложное сообщение о минировании соседнего ТЦ...
    Ответ написан
    4 комментария
  • Как запретить запуск портативных приложений?

    Spetros
    @Spetros
    IT-шник
    Политиками установить запрет на запуск всех, кроме разрешенных.
    Т.е. разрешить запуск из стандартных папок, куда имеет возможность записи только администраторы.
    Ответ написан
    3 комментария
  • ASP.NET Как передать массив из javascript в контроллер?

    @mletov
    1) На клиенте сериализуйте передаваемые данные в json

    2) Создайте в C# класс, аналогичный структуре элемента массива созданного json, например, SomeClass.

    3) Создайте действие в контроллере, получающее на вход лист такого класса
    public ActionResult MyAction(List<SomeClass> data)
    {
              ....
    }


    4) Передайте ajax'ом данные в это действие контроллера
    Рекомендую воспользоваться jquery/angular, а не заморачиваться с чистым js, смотря что у вас на клиенте используется.

    PS Не забудьте сверить метод передачи и метод, прописанный в Annotation действия (POST, GET, PUT, DELETE)

    PPS В вашем случае, возможно, все проще и можно на вход действия получать
    public ActionResult MyAction(string[] data)
    {
              ....
    }

    Зависит от того, какая структура массива. Что он содержит: числа, строки, объекты?
    Ответ написан