• Насколько опасен амперсанд в выводе html?

    usdglander
    @usdglander
    Yipee-ki-yay
    Не опасен. htmlspecialchars просто "экранирует" спецсимволы, чтобы при выводе "&", "<" и ">" вы увидели именно эти символы, на не преобразованные в теги и спецсимволы.
    Ответ написан
    Комментировать
  • Как сервер определяет что браузер закрыт (сессия)?

    Stalker_RED
    @Stalker_RED
    Когда вы закроете браузер вот эти вот куки будут удалены. По их отсутствию сервер и определит.
    yNGCPiK.png

    Можно настроить браузер (или поставить плагины) которые будут сохранять текущие сессии. В хроме я использую session buddy, в фоксе тоже как-то работает, может TabMixPlus это делает, может какая-то галка в настройках, не помню уже.
    Ответ написан
    Комментировать
  • Возможен ли твик Windows Framework для превращения в OS X?

    @LiguidCool
    Вы не работая с Макосью просто не понимаете, что дело не во внешнем виде. Поставив в винду Dock вы получите все туже винду.
    Ответ написан
    Комментировать
  • Как сделать такую регулярку?

    Moskus
    @Moskus
    MySQL использует синтаксис POSIX ERE.
    Следовательно, shorthand class \d использовать нельзя, нужно писать [0-9].
    Далее, ?! - это negative lookahead, который не поддерживается. Но если переписать выражение, как ^[0-9]{6}.*, оно даст, естественно, обратный эффект - "только строки, начинающиеся с шести цифр".
    Но не забываем, что мы пишем SQL-запрос, а не просто регулярку. Потому вот это сработает:
    SELECT .. WHERE myfield NOT REGEXP '^[0-9]{6}.*'
    Ответ написан
    3 комментария
  • Как удалить индексы из массива?

    iNickolay
    @iNickolay
    Массив (в некоторых языках программирования также таблица, ряд, матрица) — тип или структура данных в виде набора компонентов (элементов массива), расположенных в памяти непосредственно друг за другом. При этом доступ к отдельным элементам массива осуществляется с помощью индексации, то есть через ссылку на массив с указанием номера (индекса) нужного элемента. За счёт этого, в отличие от списка, массив является структурой данных, пригодной для осуществления произвольного доступа к её ячейкам
    (c) wiki

    Ну а если коротко, то массив
    array(14, 15, 12)
    это и есть массив
    array([0] => 14, [1] => 15, [2] => 12)
    Ответ написан
    2 комментария
  • Eloquent ORM не получается составить запрос?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Для этого в Eloquent (и не только) существуют связи, в Вашем случае - один ко многим, т.е. одна сумка -> много фотографий.

    P.S. Eloquent - это такая очень удобная штука, встроенная в Laravel, для работы с данными из БД, в т.ч. позволяющая быстро настраивать связи между объектами.

    ----------

    Ещё есть вариант сделать это прямо на уровне SQL-запроса, для MySQL выглядеть будет примерно так:
    SELECT service_category.*, GROUP_CONCAT(service.id SEPARATOR ',') AS ids
    FROM service_category 
    LEFT JOIN service ON service.category_id = service_category.id
    GROUP BY service_category.id

    В данном примере, таблица service ссылается на таблицу service_category через поле service.category_id. В качестве результата получаем вот такой дополнительный столбец, где перечислены все "service"ы для текущей категории (их ID) с разделителем через запятую:
    59e33ec521904576522071.png

    UPD. Тот запрос который у Вас в примере - это НЕ Eloquent, это QueryBuilder.
    Ответ написан
    1 комментарий
  • Kак взять url с # символам?

    Stalker_RED
    @Stalker_RED
    RFC2396, section 4.1
    When a URI reference is used to perform a retrieval action on the
    identified resource, the optional fragment identifier, separated from
    the URI by a crosshatch ("#") character, consists of additional
    reference information to be interpreted by the user agent
    after the
    retrieval action has been successfully completed. As such, it is not
    part of a URI
    , but is often used in conjunction with a URI.
    Хеш не является частью URI, и не передается при обычном запросе.

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

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Фреймворки это просто каркас. Чтоб все это сооружение имело смысл, в нем должна быть бизнес-логика. И вот там-то паттерны как раз нужнее всего.
    Ответ написан
    2 комментария
  • Стоит ли изучать паттерны проектирования, если ты всю жизнь будешь писать на фреймворках?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Стоит ли изучать паттерны проектирования, если ты всю жизнь будешь писать на фреймворках?

    Стоит ли пить вино, если всю жизнь будешь есть сыр?

    Изучать стоит, что бы понимать, зачем в том, или ином фреймворке использован подход А, а не подход Б. Или почему, например, laravel - сборник антипрактик.
    Ответ написан
    Комментировать
  • Как выполнить обмен между двумя высоконагружеными сервисами, если их количестов соеденений больше 65556?

    @lega
    с помощью протокола http
    Нет смысла в таком кол-ве портов, переходите на keep-alive (напр zmq), и 1-10 портов хватит чтобы загрузить на 100% железо/сеть
    Ответ написан
    Комментировать
  • Как узнать какие есть git репозитории на устройстве?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    Никак.
    репозитории не устанавливаются в какой-то спец список, так что только поиск.
    Но для поиска не нужно ставить какойто everything, просто встроенный поиск подойдет не хуже
    Ответ написан
    2 комментария
  • Чем отличаеться promise от обычных коллбэков?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Не то же самое

    function ajax() {
      return fetch(target, fetchOptions)
        .then((response) => {
          if (!target) throw new Error('Invalid url');
          if (response.ok) return response.json();
          throw new Error(`${response.status} ${response.statusText}`);
        })
        .then((json) => {
            if (json['statusOk']) return json;
            throw new Error(json['message'] || 'Server response was not ok');
        });
    }
    
    ajax(action, { body: formData })
      .then((json) => {
        console.log('RESPONSE', json);
      })
      .catch((error) => {
        console.error(error);
      });


    Мы можем писать сколько угодно зенов, в каждом что-то делать с данными.
    Если в любом месте вылетит ошибка, она будет нормально обработана в кэтче.
    Код при этом линейный, без дикой вложенности.
    С коллбэками вам нужно на каждом этапе отслеживать ошибки и возвращать их. Легко потеряться, что откуда всплыло или где пропало.
    Альтернатива обработки ошибок — трай/кэтч. Но это не работает на асинхронном коде.
    function myFunc(cb){
      var err = true;
      // имитируем асинхронную операцию
      setTimeout(function(){
        cb(err);
      }, 10);
    }
    
    try {
      myFunc(function(err){
        if (err) throw new Error('Oops');
      });
      alert('Всё как бы хорошо!');
    } catch(e) {
      alert(e.message);
    }

    Этот код выведет сообщение 'Всё как бы хорошо!', хотя всё плохо, была ошибка. https://jsfiddle.net/r3zfa4ee/

    С промисами иначе:
    function myFunc(){
      let promise = new Promise((resolve, reject) => {
        let err = true;
      
        // имитируем асинхронную операцию
        setTimeout(() => {
          if (err) {
            reject('Ooops!');
          } else {
            resolve(123);
          }
        }, 10);
      });
      
      return promise;
    }
    
    myFunc()
      .then(data => {
        alert('Всё точно хорошо!');
      })
      .catch(e => {
        alert(e);
      });

    Здесь уже ошибка будет обработана как надо и мы увидим сообщение 'Ooops!' https://jsfiddle.net/43yh8jad/

    Мы можем выполнить промисы последовательно. Мы можем выполнить их параллельно. Мы можем запустить их на параллельное выполнение, но дождаться только первого отработавшего (так называемая promise race). Разумеется всё это можно и без промисов написать, но какая будет разница в объеме кода и в сложности его понимания?

    А еще есть async/await...
    Ответ написан
    Комментировать
  • Как правильно называется вакансия?

    @protven
    Он на взлете (опять) зарубежом, используется как правило аналитиками (data scientist). Взлет связан в основном с хайпом вокруг анализа данных, машинного обучения и бигдаты. R очень хорош для быстрого прототипирования на небольшом наборе данных или уже для "окончательного" анализа и визуализации, опять же на небольшом или среднем наборе данных, которые прошли предварительную обработку и очистку. Много библиотек связанных с матстатистикой, машинным обучением, анализом данных, визуализацией. Оракл обещал вставить возможность писать хранимки на R в свою базу данных, но я не следил сделали ли.
    Я проходил в свое время курсы на Coursera по анализу данных, мне R как сам язык понравился средне. Сейчас идет конкуренция между R и питоном с библиотеками типа numpy, pandas, sklearn и тд за звание лучшего инструмента для анализа данных. Плюс есть вендорские инструменты, типа SPSS, которые предлагают ту же возможность.
    Что касаемо вакансий в вашем регионе, то они есть, но их мало. Вот пример https://hh.ru/vacancy/20496633?query=%D0%B0%D0%BD%...
    Я бы не стал расчитывать что в России вообще, а тем более за пределами Москвы вы сможете легко найти работу аналитиком данных, не имея реального опыта и успехов в этой области. Но, повторюсь, за рубежом профессия Аналитка Данных сейчас очень популярна и язык R часто считается одним из необходимых инструментов, которым он должен владеть (см. ремарку про питон).
    Ответ написан
    2 комментария
  • Как побороть страх?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Ну смотри, у тебя есть два варианта: продолжать бояться и остаться там, где ты есть, или попробовать и с большой вероятностью добиться того, чего хочешь. Ни один вариант не гарантирует успех, но первый гарантирует провал. Да и вообще, чего бояться то? Что тебе укажут на то, что ты не знаешь? Так это же наоборот хорошо, можно доучить и попробовать ещё раз!
    Ответ написан
    Комментировать
  • Как побороть страх?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    1. Беря на работу новичка, работодатель никогда не ждет от него умения справиться с первой задачей полностью самостоятельно. Есть испытательный срок, никто не банит вас от гугла, никто не заставляет работать в одиночку над проектом. На техническом интервью вас спросят достаточно, чтобы понять хватит ли у вас технических знаний чтобы работать, или чтобы разобраться.

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

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

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

    Все от бизнеса зависит, от продукта. В софтверных компаниях, где делают именно продукт, полагаю, вклад выше. Но опять же, в условном гугле несколько десятков тысяч программистов. Из которых добрая половина латает дыры и в принципе занимается monkey job. А, например, 20% спецов работают над продуктами, которые приносят большую часть прибыли.
    Ответ написан
    Комментировать
  • Как получить список IP, с которых происходят подключения к базе?

    @feanor7
    Системный администратор
    1. список можно получить в реальном времени через netstat
    2. можно включить лог по порту в iptables
    Ответ написан
    1 комментарий
  • Как лучше организовать 2 сайта на одном хостинге?

    tema_sun
    @tema_sun
    Это не так. На любом shared хостинге будет не одна сотня сайтов с одинаковым ip.
    Ответ написан
    Комментировать
  • Как лучше организовать 2 сайта на одном хостинге?

    saboteur_kiev
    @saboteur_kiev Куратор тега Сетевое администрирование
    software engineer
    Где слышал? Приведи источник, а то "слышал".
    Размещай сколько угодно.
    Ответ написан
    Комментировать
  • Мёртв ли QML? Стоит ли забыть раз и навсегда о кроссплатформенных гибридных приложениях на Qt?

    Nipheris
    @Nipheris Куратор тега C++
    Моё мнение таково:
    1) популярность QML на "том же Upwork" зависит от популярности C++ на "том же Upwork";
    2) C++ - язык крупномасштабной командной разработки, либо же разработки узкоспециализированной;
    3) заказы на крупномасштабную командную разрабоку всегда будут составлять лишь небольшую часть заказов на Upwork ввиду природы этого ресурса (т.к. на этом ресурсе не только крупные заказы а ЛЮБЫЕ заказы);
    4) вывод: Upwork - плохой критерий оценки пригодности QML для продакшена.

    Что касается React Native - это инструмент для задействования frontend-рабочей силы в сфере, где специалист QML/C++ будет более дорогим. Это разумный выбор для приложений и компаний, где ещё нет C++ разработчиков но есть JS разработчики, и где ещё нет C++ кодобазы, но есть JS, либо ещё нет никакой вообще.

    Примерно с таким же успехом я могу заявить, что Electron - лучший инструмент для продакшен-десктопа. Ну понятно наверное о чём я говорю.
    Ответ написан
    1 комментарий