• В чем различие полиморфизма и перегрузки?

    @Alexander1705
    При перегрузке ты можешь перегрузить функцию для разных количества и типов аргументов, но для каждого случая нужно отдельно определять функцию.
    int plus(int a, int b) {return a + b;}
    float plus(float a, float b) {return a + b;}
    double plus(double a, double b) {return a + b;}
    unsigned long long plus(unsigned long long a, unsigned long long b) {return a + b;}
    // выбьет ошибку для любого другого типа, кроме int, float, double, unsigned long long

    При использовании шаблонов ты определяешь шаблон только однажды, а компилятор сам сгенерирует определение стольких функций сколько потребуется.
    template<typename T>
    T plus(T a, T b) {return a + b;}
    // Работает для любых типов, которые определяют opeator+


    P.S. По сути, и перегрузка и шаблоны это и есть средства полиморфизма.
    Ответ написан
    1 комментарий
  • В чем различие полиморфизма и перегрузки?

    @nesterione
    Перегрузка это и есть одно из проявлений полиморфизма.

    Всего есть различные виды полиморфизма (ответ больше для C# и Java, если для c++ что-то не так, поправьте меня):
    * динамический: это когда программа во время выполнения решает какой код исполнять. Это происходит при наследовании: когда ты переопределяешь функцию в другом классе (виртуальные методы, абстрактные)
    * статический: на стадии компиляции все известно, это как раз перегрузка методов. Компилятор исходя из аргументов выбирает нужный метод
    Ответ написан
    Комментировать
  • Как посмотреть существующие триггеры событий (Event Trigger, postgresql)?

    Melkij
    @Melkij
    PostgreSQL DBA
    Они прописываются в системной view pg_event_trigger
    https://www.postgresql.org/docs/9.6/static/catalog...

    В psql есть сокращение \dy выполняющее вот такой запрос:
    SELECT evtname as "Name", evtevent as "Event", pg_catalog.pg_get_userbyid(e.evtowner) as "Owner",
     case evtenabled when 'O' then 'enabled'  when 'R' then 'replica'  when 'A' then 'always'  when 'D' then 'disabled' end as "Enabled",
     e.evtfoid::pg_catalog.regproc as "Procedure", pg_catalog.array_to_string(array(select x from pg_catalog.unnest(evttags) as t(x)), ', ') as "Tags"
    FROM pg_catalog.pg_event_trigger e ORDER BY 1
    Ответ написан
    Комментировать
  • Как тестировать верстку?

    @soledar10
    html css3 js jquery
    1. Pixel perfect
    2. Валидность кода
    3. PageSpeed Insights
    4. GTmetrix
    5. Pingdom Website Speed Test
    6. Проверка адаптивности
    7. Проверка для Retina (srcset, svg, иконочные шрифты)
    Ответ написан
    3 комментария
  • На чем написан бэкэнд Telegram?

    Demanoidos
    @Demanoidos
    безнравственный извращенец с богатой фантазией
    Я думаю, вам вряд ли это кто-то скажет. Да и какая разница, на чём написано? Erlang - это не признак "крутости", это признак того, что в компании были по нему спецы, которые пролоббировали использование этой технологии, вот и всё :)
    Ответ написан
    Комментировать
  • Сильно ли отстает Safari от Chrome?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    В плане удобства использования для себя, вы сами ответили на свой вопрос!
    А в плане разработки, моё мнение такого, сафари сос*т! Лучше хрома я ничего для себя не нашел. Сначала использовал оперу, давно, потом на мозиллу, но после её диких лагов устал и перешел на хром. И даже не подумаю слазить. Очень удобная панель разработчика делает своё дело!
    Ответ написан
    2 комментария
  • Как правильно маскировать/демаскировать фреймы (WebSocket)?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    У вас две проблемы, одна большая, вторая маленькая.
    Большая - вы пишите в кондово-мерзком стиле, под названием "Пешу на C++ как на Си, мне пофигу". Бросайте это.

    Маленькая - прозреваю, что int у вас 32 битный, а вы его на 50 с гэком рязрядов сдвигаете. Это на грани UB, честно говоря.

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

    @nirvimel
    Когда я захожу на определенный сайт, провайдер видит URL?

    Да.

    А если я захожу на https?

    Известен IP сервера и имя домена. Больше ничего.

    Откуда провайдер узнает, что я скачиваю определенный фильм/программу через torrent?

    Торрент-клиент общается с трекером по HTTP. Все видно насквозь: конкретные торренты + вся статистика (когда начато скачивание, когда закончено, когда пошла раздача, сколько роздано). Возможно подключение к трекеру и по HTTPS, но rutracker.org такой возможности не дает (мне тоже интересно почему).

    Все пакеты которые я получаю и раздаю значит провайдер скачивает себе, чтобы узнать что это за фильм/программа?

    Провайдер не хранит у себя весь трафик. Это технически невозможно. Но трафик обрабатывается, классифицируется и ведутся логи о том какой тип трафика когда входил/уходил от абонента.

    Или он отслеживает факт скачивания .torrent файла, а затем делает вывод по идущим пакетам, что это скачивается?

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

    Когда я пользуюсь VPN, что видит провайдер?

    Видит шифрованный траффик на конкретный IP. По IP можно узнать, что этот диапазон продается под VPSы. Сам факт шифрованного трафика вешает абонента в списки тех, "кому есть что скрывать", а значит подозреваемых при любом розыске.

    Что я зашел на определенный IP и с него идут зашифрованные потоки?

    Дальнейшее направление трафика от VPN-сервера отследить невозможно (по крайней мере, на оборудовании провайдера в автоматическом режиме). Но при целенаправленной слежке за абонентом в принципе возможно по временным меткам сопоставить трафик абонента с трафиком любого сервера.

    OpenVPN будет работать через VPN IP и в браузере и при обновлении Windows, драйверов, ...?

    В зависимости от настройки. Но в общем случае, да, так.

    Читал, что в Windows есть такая особенность, что если провайдер как-то урезает пакет, то VPN отключается и сайту показывается мой реальный IP?

    Это не связанно с провайдером. Это особенность Windows. Когда VPN отваливается, весь трафик вылетает наружу в открытом виде. Опять же зависит от настроек. Но это еще одна цена "удобства" при использовании Windows.

    При этом провайдер видит на каком я сайте, что скачиваю?

    VPN отвалился - хацкер спалился.

    Таких фишек много?

    Смотря о чем речь. В сфере сетевой безопасности и анонимности различных нюансов вообще много.

    Как от них защитится?

    Учить мат.часть. Разбираться в сетевых протоколах и в устройстве ОС.

    Если пользуюсь каким-то расширением типа ZenMate, dotvpn, провайдер аналогично как и с VPN видит что что-то отправляется и приходит на определенный VPN IP?

    Расширения очень разные. Они могут базироваться на совершенно разных технологиях. Ни один специалист вам не скажет за все расширения. Не исключено, что многие из них, по сути - honeypot, то есть созданы с целью слежения за любителями анонимности, привлекают своим удобством и дают ложное чувство безопасности.

    При использовании Tor, кто-то пользуется моим IP, пока я пользуюсь чужим?

    Нет. Если у вас не сконфигурирован Exit Node.

    Что при этом видит провайдер, что я получаю потоки данных с определенных IP и каждый раз разный IP?

    У них есть система точного обнаружения использования Tor. Это факт остается в логах с теми же последствиями, что и для VPN.

    Провайдер видит URL?

    Через Tor и VPN - нет.

    Каким образом можно полностью управлять сетью на ПК, видеть что, куда и когда отправляется или приходит на ПК (Windows, Linux)?

    Видеть все: https://www.google.com/search?q=Wireshark
    Блокировать все лишнее: https://www.google.com/search?q=Comodo+Firewall
    Ответ написан
    22 комментария
  • Как узнать, какой POST запрос отправляется на сервер?

    FoxIK
    @FoxIK
    Chrome -> F12 -> Вкладка Network -> Выбираете нужный файл -> Во вкладке Headers ищите строку Form Data
    В Firefox плагин Firebug
    В Opere Ctrl+Shift+I и дальше по аналогии с хромом
    Ответ написан
    8 комментариев
  • Что выбирать: SQL vs NoSQL?

    rfq
    @rfq
    Программист
    Перечисленным вами требованиям вполне удовлетворяет простая запись в файлы. Но вы этот очевидный вариант не рассматриваете, значит, он вам не подходит. По каким причинам не подходит — вы умалчиваете, но хотите получить совет. Чтож, это открывает простор для фантазий. Я вам советую Java-Chronicle или MapDB — самые быстродействующие решения.
    Ответ написан
    Комментировать
  • Что выбирать: SQL vs NoSQL?

    opium
    @opium
    Просто люблю качественно работать
    20 миллионов для mysql это ничто.
    Ответ написан
    5 комментариев
  • Что выбирать: SQL vs NoSQL?

    @WEBIVAN
    1) сильно сомневаюсь, что 32gb ram вам хватит на 20+млн записей, для редис
    2)У редиса есть AOF при котором потери данных крайне маловероятны
    3) Редис быстрый не потому что nosql, а потому что бд в ram
    4) при корректно построенных индексах и структуре бд на 20 млн мускул не тупит, у нас на одном продакшн проекте в таблице сейчас 100 млн и все отлично шустро работает. кстати таблица переехала из редиса, когда тому перестало хватать РАМа, после тюнинга мускула быстродействие не пострадало.
    5) Как выше написали, если делать инсерты пачками, а не по одному, это значительно ускорит работу бд
    6)у хетцнера диски очень любят сыпаться, крайне не рекомендую их сервера. Сопоставимые цены у OVH, при явно лучшем качестве
    7) Как показывает мой опыт, корректно настроенный SQL достаточен в 99% случаев
    Ответ написан
    1 комментарий
  • Websockets: где работает?

    Aco
    @Aco
    Заклинатель кода
    Для кроссбраузерной работы WebSocket лучше использовать обвёртку WebSocket.js. там где нет ws используется флеш как прокси ws (правда добавляет гемор с flashpolicy, так как не у всех открыт порт 843, то флешка будет ломится и на 80). А вообще WS это общий принятый стандарт в RFC и в спецификации HTML5. Выпиливать его уже никто не будет, только дальше развивать.
    Ответ написан
    1 комментарий
  • Чат на PHP: узкое место БД - как решить?

    @resurection
    Я помню лет 10-15 назад чаты были очень популярными. Кроме чатов и форумов ничего ещё изобретено не было. Ни блогов, ни социалок, ни твиттеров ни, даже, ajax. И тусили в этих чатах тысячи человек (можно было открыть несколько каналов). Или сотка людей в чате без каналов.
    Чаты были на фреймах и каждые 5 сек. фрейм со списком сообщений обновлялся ПОЛНОСТЬЮ (весь HTML со всей пачкой сообщений).
    Железо в те времена было что-то вроде 300-400 МГц. Ваш ВДС, я уверен, порвал бы те сервера.
    Как-то странно сейчас в 2010 году слышать, что чат не выдерживает больше 30 одновременных юзеров.

    Вы пробовали на другом сервере? Хотя бы на локале сколько держит?
    Ответ написан
    3 комментария
  • Чат на PHP: узкое место БД - как решить?

    Vladson
    @Vladson
    Была как-то задача переписать чат чтоб были минимальные тормоза (сервак был и так перегружен) я воспользовался APC (в БД закидывал только отправленные сообщения «для истории») в принципе могу посоветовать подобный подход…
    Ответ написан
    Комментировать
  • Чат на PHP: узкое место БД - как решить?

    @kolesnevg
    Советы от себя
    1) попробывать сервер реализовать на node.js (один процесс вроде 800 соединений держит в секунду)
    2) тяжелые запросы насколько я понимаю у вас в случае когда в чате 30 человек, один из них пишет, вы это сохраняете в базе данных, потом 29 человек присылают запрос на «обновление» чата… и выполняется 29 выборок из БД, на мой взгляд это не совсем правильно, попробуйте немного по другому: когда один юзер присылает сообщение, вы конечно один раз сохраните его для «истории», но при этом в том же мемкэше создавайте для всех «заинтересованных» юзеров очередь обновлений, не нужно хранить одно сообщение на всех, нужно для каждого хранить полный список того в чем он заинтересован, ну и естественно когда 29 человек обратятся за обновлениями, вы вообще не будете обращаться в БД, а просто возьмете данные из кэша (и почистите его естественно)
    Ответ написан
    2 комментария
  • Чат на PHP: узкое место БД - как решить?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    что за вдс то, действительно? Если OpenVZ — то указанные вами ресурсы вы никогда не получите.
    Ответ написан
    Комментировать
  • Чат на PHP: узкое место БД - как решить?

    eternals
    @eternals
    Во-первых, надо уточнить, что за VDS. Если мастерхост, то сразу предупредите, т.к. это отдельная песня.

    Во-вторых, нужно понять, из-за чего тупит mySQL. Выше правильно писали про lock на время записи.
    Так же может не успевать диск (из-за ограничений VDS).

    Я бы попробовал перевести в бд innodb и commit в 0 выставить (сброс раз в секунду на диск).

    Далее есть такая штука как представления. И у них есть режим с кэшем в памяти. А SQL запросы уже к нему делать. К тому же их можно наплодить на разные случаи.

    Ещё хорошо бы не забыть про memory таблицы. Скажем, писать ещё и в не memory, но читать массово только из неё.

    Попутно стоит помнить про индексы. Их отсутствие делает select долгим, а чрезмерное присутствие долгим insert. Да и сами индексы новички обычно неправильно делают.

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