• Как спарсить резюме с Superjob?

    viktorvsk
    @viktorvsk
    Откройте прекрасный мир HTML DOM парсеров
    А если нужно взаимодействие со страницей - тогда какой-нибудь mechanize или phantomjs, casperjs
    Ответ написан
    Комментировать
  • Есть ли волонтерство в веб-разработке?

    viktorvsk
    @viktorvsk
    В хостингах нет проблем сегодня. Особенно, для такого уровня, как спрашивает автор.
    Поддержка - тоже не проблема в таком контексте. Предлагается дать толчок, а дальше - хотите пользуйтесь, хотите сами учитесь, хотите уже целенаправленно ищите кого-то, или платите деньги. Тут все ок.

    Тут вопрос в другом. В том, как вы отчасти сказали, - никому не нужен сайт. Всем нужно решение проблемы. И обычно, когда проблема поставлена - на нее есть средства, бюджет, выделены люди, кто найдет исполнителя, кто будет контролировать его работу, кто будет заниматься развитием и поддержкой.

    Когда же цели нет, значит, о ней и не задумывались. И предлагая услуги по созданию сайта, вы сами захотите застрелиться, когда узнаете, что "Сайт - это когда в гугле появляется" и т.д.

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

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

    viktorvsk
    @viktorvsk
    apache-utils ab
    jmeter
    Яндекс.танк

    Вообще, часто все зависит от самого приложения (какого типа процессы, какого типа запросы...).
    Начните с самого простого: ab -n 3000 -c 100 http://site.com/
    Ответ написан
    Комментировать
  • Связаны ли сервисы Google Диск, Документы и Фото?

    viktorvsk
    @viktorvsk
    А что, если попробовать - то это плохо скажется на карме фотографии, тот факт, что ее откуда-то уже удалили?
    Ответ написан
    Комментировать
  • Как увеличить число одновременных соединений при использовании unicorn?

    viktorvsk
    @viktorvsk
    worker_processes должны устанавливаться в зависимости от количества ядер процессора (2 к 1, обычно), а не к памяти. В теории, даже если у вас 100 воркеров, в идеале, каждый из них должен загружать одно ядро на 100%

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

    Вот неплохая статья о возможных вариантах:
    merbist.com/2011/02/22/concurrency-in-ruby-explained

    В принципе, вы можете попробовать и простые шаги, как вы написали: взять другой веб-сервер. Например, начать с puma. Она должна потреблять намного меньше памяти и работать в потоках. Хотя, большого увеличения RPS вы врядли заметите. После можно попробовать использовать, скажем, Rubinius (интерпретатор руби с реально многопоточностью) для Puma. А вдруг.

    Thin здесь врядли поможет, но почему б не попробовать - дело нескольких минут.

    P.S.
    Надо заметить, что для серьезного приложения и 200 RPS 4GB - это, обычно, staging для разработки.
    Ответ написан
    Комментировать
  • Какую зарплату просить на собеседовании front-end junior'у?

    viktorvsk
    @viktorvsk
    Какой-то вы не особо фронт эндщик, если считаете, что плюсы, жава и т.д. - более серьезные языки, нежели жскрипт :)

    djinni.co Можете посоздавать здесь анонимные объявления и поприцениваться.

    Если с английским нормально и время не поджимает - можете попробовать схватит пару заказов на upwork/elance: даже если ничего не выгорит, получите реальный опыт, что да как.

    Конечно, на самом деле, все зависит от:
    В целом, умею и знаю практически все, что необходимо знать современному front-end'еру: JavaScript (знаю что такое замыкания и асинхронный код), Node.js, AngularJS, Backbone, различные препроцессоры, фреймворки, сборщики и т.д.


    того, насколько реально вы это знаете. С таким разбросом технологий и без реального опыта - верится с трудом, особенно, думаю, с трудом вериться будет тем, кто вас будет брать на работу.

    Если у вас действительно все хорошо, то все, что вам нужно - это реальные проекты (придуманные, опен-сорс, или для друзей, неважно) на гитхабе - претендовать можете и на 1000 спокойно, а на паре собеседований, что б проверить почтву, назвать ~$10/час

    P.S.
    И если действительно уверенно чувствуете себя хотя бы в 20% того, что описали - то просто выбросьте слова junior/middle/senior/опыт работы из лексикона и жизнь станет проще.
    Ответ написан
    2 комментария
  • Будут ли проблемы с доступностью приложения при динамической отдаче больших файлов?

    viktorvsk
    @viktorvsk
    Правильно понимаете, воркеры будут занят, пока не отдадут контент.
    Для таких вещей созданы сервисы типа Amazon S3, Viddler, Google drive, Dropbox и т.д.
    Коротко: вы, используя данные своего аккаунта (Api key, access token), генерируете токен для доступа (определенный одноразовый url) для загрузки/отдачи приватного контента

    Конечно, это актуально, если контент приватный.
    Если у вас в public (для раздачи nginx) лежат файлы и вас устраивает, что скачать их может каждый, а залоггировать - только если скачано с веб-интерфейса и джаваскриптом (очень нестабильное решение) отправлен коллбэк, мол, "скачано" - то проблем с воркерами не будет.
    Ответ написан
    4 комментария
  • Как сделать, что бы форма отправлялась одним кликом а не 2-мя?

    viktorvsk
    @viktorvsk
    Не знаю, зачем вам нужно это return savePost() но со второго раза отправляется, по всей видимости, от того, что savePost() в первый раз возвращает false

    function savePost()
    {
      // Различные валидации. t - это переменная, которая содержит значение 
      // true/false в зависимости от того, пройдена ли валидация
      var t=true;
      if ($('#post_form input[name=post_name]').val().length<1) 
      {
        $('#post_form input[name=post_name]').css('background-color','#edc4c4');
        t=false;
      }
      else $('#post_form input[name=post_name]').css('background-color','#ffffff');
      if ($('#post_form textarea[name=post_text]').val().length<1) 
      {
        $('#post_form textarea[name=post_text]').css('background-color','#edc4c4');
        t=false;
      }
      else $('#post_form textarea[name=post_text]').css('background-color','#ffffff');
    
      // Если валидация пройдена
      if (t)
      {
        // Сформировать строку параметров из формы
        var qString = $('#post_form').formSerialize();
    
        // Отправить форму асинхронным запросом
        $.post("/include/save_post.php", qString, function (data)
        {
          // Если все прошло нормально, вывести окно и перегрузить текущую страницу
          alert("Изменения сохранены");
          top.location.href=top.location.href;
        });
      }
    
      // Блокировать переход по форме
      return false;
    }


    Данные у вас отправляются асинхронно (http/ajax-запросом). Так сделано специально.
    Или вы не видете окна "Изменения сохранены"? Или после этого не перезагружается страница?

    Если вам не нужна асинхронная отправка, то можно оставить вот так, сохранив валидацию:
    function savePost()
    {
      // Различные валидации. t - это переменная, которая содержит значение 
      // true/false в зависимости от того, пройдена ли валидация
      var t=true;
      if ($('#post_form input[name=post_name]').val().length<1) 
      {
        $('#post_form input[name=post_name]').css('background-color','#edc4c4');
        t=false;
      }
      else $('#post_form input[name=post_name]').css('background-color','#ffffff');
      if ($('#post_form textarea[name=post_text]').val().length<1) 
      {
        $('#post_form textarea[name=post_text]').css('background-color','#edc4c4');
        t=false;
      }
      else $('#post_form textarea[name=post_text]').css('background-color','#ffffff');
    
      return t;
    }
    Ответ написан
    9 комментариев
  • Как называется такой странный принцип (или эффект)?

    viktorvsk
    @viktorvsk
    в софте есть ошибка, но пока она не обнаружена, софт работает вполне корректно, но как только ее обнаружили, работа с софтом становится не возможной

    Психология это называется. Или паранойя.
    В 99,99% случаев софт можно вернуть к начальному состоянию (перезапустить, переустановить...)
    Если и существует 0,01% случаев, которые попадают под ваше описание, то это явно не принцип и не эффект, т.к. проявляется слишком редко.

    Но я вот не могу придумать пример, подскажете?
    Ответ написан
    7 комментариев
  • Как правильно установить init скрипт от thin?

    viktorvsk
    @viktorvsk
    А что вы пробуете сделать?
    Thin - это сервер-приложения на руби. Обычно, он сам запускается командойrails server или rackup, например.
    Так же, его можно запустить с помощью thin start в директории, где есть файл config.ru
    Про команду thin install слышу первый раз, если честно.

    Видимо, вы устанавливаете редмайн. Тогда следуйте руководству по установке, в чем там проблема?

    Как правильно использовать thin из gemset?

    Вопрос задан некоректно. Гемсеты к гему никакого отношения не имею, это просто namespace, так сказать (отдельная дирекотрия на диске)

    Но я не хочу засорять систему

    Если действительно не хотите, то используйте bundle exec вместо gemsets и rbenv вместо RVM :). Особенно на сервере.
    Ответ написан
  • Как выполнить код, в зависимости от открытой вкладки в браузере?

    viktorvsk
    @viktorvsk
    В разных "вкладках" нужно генерировать разные формы.
    Или action формы менять, например, добавляя параметр action="register.php?action=new_user"
    Или добавить поле с type=hidden и туда дописывать определенный параметр
    Ответ написан
    Комментировать
  • Как правильно отвечать на заказы вида "натянуть вёрстку на cms"?

    viktorvsk
    @viktorvsk
    Самый нормальный вариант - это ждать, пока заказы из области "натянуть верстку на CMS" пропадут. Ну, или пропадут заказчики такого уровня.

    Нормального решения здесь нет. Очевидно, что в 90% случаев, заказчик в данном случае не особо компетентен в вопросе. Пути 2:
    - Попробовать разъяснить варианты решения: почему это сложно, сколько это может занять времени, нужно оно в таком виде или может следует упростить требования и т.д.
    - Попытаться решить все проблемы за него.

    В первом варианте рискуешь потерять заказчика, во втором - время, деньги, репутацию.
    Ответ написан
    5 комментариев
  • Как правильно использовать if (var != 5 || var != 4)?

    viktorvsk
    @viktorvsk
    Шта?
    Я как-то тоже туплю и не могу придумать число, которое будет одновременно равно и пяти и четырем :(

    Условие в заголовке всегда будет равно true. Вы понимаете, что значит != и || ?

    Если у вас проблема в том, что не выполняется условие (кстати, вместо алерта используйте лучше console.log()), то смотрите код вокруг - у вас просто не выполняется эта строчка с ифом.
    Ответ написан
    3 комментария
  • Как понять Python?

    viktorvsk
    @viktorvsk
    Самый быстрый вариант для простых решений - это задача + сайт с API языка + stackoverflow
    Ответ написан
    Комментировать
  • Как устроено хранение данных?

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

    Что бы ответить на остальные вопросы в общем и в частности о том, как хранить данные на разных серверах, то ключевые слова для поиска: репликация базы данных, шардинг, distributed databases и производные.
    Ответ написан
    Комментировать
  • Как всё успевать и не быть роботом?

    viktorvsk
    @viktorvsk
    - Ничего не нужно, никто никому ничего не должен
    - Работать нужно не минимум 8 часов, а то и больше, - а эффективнее (комплексное понятие)
    - Жить нужно комфортно (так же комплексное понятие, для разных людей включает разные аспекты: кому зарядка с утра, спорт, здоровое питание, кому - красноглазенье по ночам, утро в обед, пиво перед компом...)
    - Саморазвитие - это хорошо, но это так же строго индивидуально - кому книги, кому видео уроки, кому фильмы, кому хобби - если вы связываете вашу работу с интеллектуальной деятельностью, это значит, что вам нужно развивать интеллектуальные способности, а не способности в вашей предметной области. Книжки читать, как не крути - тоже сугубо индивидуально по эффективности. Разве что художественную литературу, на мой взгляд, не помешает читать людям всех профессий.
    - Планы - это неотъемлемая часть жизни. Настолько же неотъемлемая, как и неспособность их соблюдать. Нет, вы не зря составили все эти списки со спортом, здоровой едой, сном и работой по 8 часов и т.д.. И да, у вас не получится соблюсти все пункты. Эти 2 факта нужно принять, осознать и не сдаваться.
    Ответ написан
    24 комментария
  • Как реализовать блок прилипающий к верху страницы при ее прокрутке?

    viktorvsk
    @viktorvsk
    В 3 простых шага:
    1. Делаете так, чтобы блок всегда прилипал к верху страницы: position: fixed
    2. Отслеживаете нужное событие (например, проверяя расстояние до верха страницы при скролле:
    $(window).on('scroll', function(){ if ( $(window).offset.top > 200){ console.log("> 200"); })

    3. При выполнении условия из пункта 2 добавлять класс из пункта 1 к нужному элементу $('selector').addClass('fixed');
    Ответ написан
    3 комментария
  • Существует ли универсальный алгоритм разбора УРЛа?

    viktorvsk
    @viktorvsk
    Посмотрите любой веб-сервер и попробуйте поотправлять параметры.
    param1/param2/param3

    Что это такое - слабо понятно.
    Возьмите любой популярный фреймоврк и посмотрите, как там работает диспатчер
    Кто вам сказал, что param1/param2 - это не param1 в который входит неэкранированный слэш?

    А лучше - озвучьте преследуемую цель.
    Ответ написан
  • В каких вузах изучают CUDA?

    viktorvsk
    @viktorvsk
    Но, как оказалось, светилам российской науки никакое параллельное программирование на графических ядрах не нужно

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

    Не путайте вузы и кружки\техникумы\курсы
    Ответ написан
    2 комментария