• Как работает веб сервер?

    @agurman
    Это все может быть реализавано от системы к системе по разному. Но на обычном компьютере, в большинстве случаев, это работает примерно так. ОС (точнее драйвер сетевой карты) получает аппаратное прерывание, когда приходят данные на карту. К слову сказать есть так называемый механизм "опложенных прерываний". Если не вдаваться в подробности, то прерывания будут приходить не на каждый кусок данных полученных картой, а только тогда, когда софт разрешит себя прерывать. То есть: получил прерывание, запретил прерывания, начал обрабатывать все что пришло и приходит, закончил, разрешил прерывания. В зависимости от системы или ее настроек, драйвер уже может что-то сделать с данными. Намеренно не употребляю слово "пакет", ибо это пока только данные, лежащие в буфере. Потом после всех проверок, они могут быть переданы сетевому стеку OS. Сетевой стэк, собственно как и драйвер, как правило является модулем ядра. На самом деле сетевой стек - это, сильно конфигурируемая и многослойная/многоуровневая и сложная подсистема ядра, и как правило представляет не один модуль, а множество. На каждом уровне, в зависимости от его настройки и/или типа данных (толко теперь уместно их называть фреймами/пакетами/дейтаграммами) может приниматься решение, что с ним делать дальше. Например: форварднуть куда-нибудь, или скипнуть, или ответить на них прямо в ядре, не передавая наверх в юзер-спайс, или все же передать. Вот если это свой пакет, то есть cвой/правильный ip, если открыт порт на прослушку, например WEB сервером (80/tcp), с помощью описанного выше механизма сокетов, тогда он будет передан в юзе-спейс web серверу на обработку. Серверы могут его тоже обрабатывать по разному. Аппачи например, по крайней мере ранние его версии, не парился особо, выделял каждому соединению по потоку загружал туда что-то, что обработает этот запрос, и уходил слушать дальше. Но сильно-нагруженные серверы, так работать не смогут, ибо потоки много "весят", поэтому есть еще куча, более продвинутых, способов обработки запросов сервером. К слову сказать, есть серверы которые прямо в ядре и живут. Зоопарк серверов, ровно как и сетевых стеков, большой и слишком сложный для одного поста. Будет время опишу полнее и грамотнее. Но "вкратце" должно быть понятно.
    Ответ написан
    Комментировать
  • Хочу научиться создавать плагины JQuery - с чего начать?

    C javascript на Codeacademy. Потом теорию закрепить на Udemy.Потом бы взял bootstrap и сверстал себе home page.
    Ответ написан
    Комментировать
  • Возможна ли адаптивная верстка под любое разрешение экрана?

    @danSamara
    Думаю вам надо изменить сам подход к вёрстке - нельзя верстать под конкретные разрешения, это тупиковый путь с бесполезными затратами времени.
    Оптимальный workflow примерно такой:
    1. Делаем максимально резиновую вёрстку. Всё что может быть резиновым - должно им быть, включая изображения. На этом этапе можно с картинками сильно не заморачиваться и делать просто { width: 100%; height: auto; }, перфекционизм - позже.
    2. Расставляем брекпоинты. Обратите внимание: их надо расставлять не по "популярным" разрешениям экрана, а в соответствии с дизайном! Как пример - вывод товаров в каталоге в виде сетки. На большом экране будет четыре товара в ряд (25% ширины), потом - три, два и, наконец, для телефонов в портретной ориентации - один товар (100% ширины). Разрешение, при котором будет "перепрыжка" товаров с четырёх в строке на три (и прочие) надо определять визуально, лучше вместе с дизайнером. Результатом этого этапа должен быть сайт, который с максимального разрешения (допустим 2000 пикселей) до минимального (200?) красиво меняется в браузере при плавном изменении размера окна.
    3. Тестируем на популярных разрешениях экрана. Заметьте, это практический последний этап. Если предыдущие этапы сделаны правильно, то на этом не остаётся никакой работы - просто проверка.
    4. Наводим лоск. Здесь уже можно заняться оптимизациями и украшательставами. В частности - сделать разные источники для каждой картинки. Не буду подробно описывать технологии, руководств много в сети, по картинкам например вот: "Отзывчивые изображения: примеры использования"
    Ответ написан
    Комментировать
  • Каков план личностного развития JavaScript программиста с нуля?

    vasiliy0s
    @vasiliy0s
    JavaScript full-stack developer
    superherojs.com - там все есть и этого хватит надолго.
    Ответ написан
    Комментировать
  • Каков план личностного развития JavaScript программиста с нуля?

    Hando
    @Hando
    Верстак
    Хорошим учебным пособием для тех, кто еще пока не настолько хорошо знает английский язык, чтобы читать на нем техническую литературу, будет вот этот ресурс - learn.javascript.ru Странно, что он до сих пор здесь не был озвучен, возможно только лишь потому, что это первое что дает поисковая выдача :)
    Ответ написан
    Комментировать
  • Каков план личностного развития JavaScript программиста с нуля?

    @Shetani
    www.codecademy.com/tracks/javascript
    https://www.codeschool.com/paths/javascript
    John Resig, Bear Bibeault "Secrets of the JavaScript Ninja"
    Douglas Crockford "JavaScript. The Good Parts"
    Стефанов С. "JavaScript. Шаблоны"
    Дэвид Херман "Сила javascript"
    Ответ написан
    1 комментарий
  • Какой ГОСТ у php разработчика?

    Remmi
    @Remmi
    Не знаю, как насчёт средних компаний, но вот неплохой материал PHP: The Right Way
    https://getjump.github.io/ru-php-the-right-way/
    Ответ написан
    4 комментария
  • Как реализовать загрузку и обработку картинок?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Возьмите простые готовые библиотеки SimpleImage/PHPThumb

    Более конкретные вопросы, как именно дать php картинку которую загрузил?

    А вот это уже слишком примитивный вопрос
    Ответ написан
    2 комментария
  • Как вернуть значение value в input?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    Ответ написан
    Комментировать
  • Есть ли плагин для генерации css из html sublime text?

    Плагина, увы, нет.
    Есть такая приблуда.
    Ответ написан
    Комментировать
  • Как добавить класс к объекту разметки после ее подгрузки через ajax?

    arutyunov
    @arutyunov
    Mooza.ru — Делаем сайты
    Функцию on используй. Она применяется и к новым элементам.
    Подробнее читай в доках jQuery: https://api.jquery.com/on/
    Ответ написан
    3 комментария
  • Как сократить количество отображаемых строк в css?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Фиксированная высота + overflow: hidden. Это костыль, но поскольку вы не брезгуете magic numbers, то вполне сгодится.

    По уму - html5hub.com/ellipse-my-text/#i.ynjfrd17pscqpw
    Ответ написан
  • Какие есть игры вида "sandbox-песочницы"?

    @ruslite
    Не ищи других игр, знай, твоя будет в любом случае лучше. Если ты найдешь пульную, то мне кажется ты тут же придумаешь новую фичу, и твоя игра будет уже лучше. Так что делай :)
    Ответ написан
    Комментировать
  • Почему мгновенно срабатывает fadeOut?

    @Kuzzy
    Ну вам нужно дождаться завершения анимации а потом уже прятать/показывать, а так у вас все сразу отрабатывает:
    $('header').fadeOut(400, function() {
      //fadeOut complete
       $(this).show(0, function() {
    ..... и так далее
    })
    })
    Ответ написан
    2 комментария
  • Почему мгновенно срабатывает fadeOut?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Эм... ну так вы же вызываете show сразу после fadeOut, не дожидаясь пока закончится оный... да и зачем вам тогда fadeOut если вы можете сделать это прямо в show установив там задержку. Либо тогда уберите вызов show и перенесите ваше замыкание в fadeOut
    Ответ написан
    1 комментарий
  • Как изменить расположение элементов WooCommerce в WordPress?

    Punkie
    @Punkie
    В папке плагина woocommerce есть файл со всеми хуками - woocommerce_hooks.php . Находите в нем отрезок, который отвечает за нужный вам кусок шаблона (в вашем случае woocommerce_single_product_summary), смотрите вызовы add_action.
    У вас они будут как раз такие, как закоментировано в коде выше, то есть:
    @hooked woocommerce_template_single_title - 5
                 * @hooked woocommerce_template_single_price - 10
                 * @hooked woocommerce_template_single_excerpt - 20
                 * @hooked woocommerce_template_single_add_to_cart - 30
                 * @hooked woocommerce_template_single_meta - 40
                 * @hooked woocommerce_template_single_sharing - 50


    В данном случае числа - это последовательность (приоритет) активации action'ов.
    Теперь вам нужно в functions.php вашей темы деактивировать эти action'ы методом remove_action и выполнить их активацию в нужном вам порядке.
    Например, вам нужно, чтобы сначала выводилось название товара, затем краткое описание, затем цена и тд.
    Код будет примерно такой:
    *тут перечисляем все строки с методом remove_action:
    
    remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5);
    remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
    ... и т.д.
    
    *Теперь вызываем те же действия по хуку woocommerce_single_product_summary, но в нужной нам последовательности:
    add_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5);
    add_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 10);
    add_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 15);
    ... и т.д.

    Числовой приоритет вызова обычно делают кратным 5 для того, чтобы можно было потом еще что нибудь впихнуть между вызовами. Например, захотите потом добавить вывод ключевых слов или уникального поля товара между названием и кратким описанием. Тогда приоритет вызова можно будет сделать 6-9 без необходимости заново перебирать весь массив вызова хука.

    Подробнее про понятия hook, action и filter читайте в официальном руководстве: Introduction to hooks: actions and filters
    Ответ написан
    7 комментариев
  • Как правильно работать на oDesk?

    Ubran_Hera
    @Ubran_Hera
    Начинал ~2 года назад (август/сентябрь) на oDesk (это была не первая моя попытка), выставил 14..15 баксов, без портфолио и истории. Первый заказ был получасовой, на 7 баксов, практически случайный (от новичка) — немного напортачил, но всё исправил, потратил времени в разы больше, но добился положительного отзыва.
    Общение сразу пошло через Skype и электронную почту, оплата — через PayPal. Это против правил, но так предложил заказчик.

    Затем оказалось, что работы у него непочатый край. До Нового Года переделывал маленькие сайтики (бизнес-проекты одного и того же человека). Взял меньшую плату, но повысил себе статистическую «среднюю ставку».

    Самое сложное было в графике и работе из дома — жена (девушка) не подходила ко мне когда я говорил по Skype/SIP, но в остальные моменты очень мешала и сбивала с толку. Ещё обижалась, что я ничего не делаю по дому и ложусь спать/встаю с разницей 3..4 часа по отношению к ней — одна комната, горящий монитор, гудящий вентилятор и т.д. Очень сложно было когда мы оба заболели (простуда).

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

    Шашлык и вино действительно хоть каждый день и стойкое желание переехать куда-нибудь в англоязычную Канаду (тем более, что часто звали). Ставка на почасовые заказы сейчас 20..35.
    Иногда чувствую себя зомби (3 часа сна два дня подряд, потом 12 часов и всё равно не выспался, 6 часов, опять 2 дня по 3 часа, потом 14..15 на выходных).

    Жизнь повернулась так, что сейчас вынужден буду выплачивать пару кредитов, включая ипотечный.
    Выбор очевиден — уволюсь рано или поздно с основной работы (уже была попытка, в целом удачная) и стану совожаворонком (рано вставать и поздно ложиться).

    Success story неполная — не даю ссылки на профиль (у меня их несколько, в т.ч. приходилось заказывать самому у себя, но это оказалось ненужной глупостью). Так что не просите — за треть проектов, особенно первых ужасно стыдно, при том, что посмотрев на некоторые из них клиенты просят «и мне так же сделай», причём никогда не угадаешь заранее что может понравиться.

    Единственное, что радует — UK, CA, NZ, US AU — WeekEnd для них — это святое. На душе легко и спокойно с 3 утра субботы до 15:00 понедельника.
    Но бывает, что заказчик шлёт мне в полседьмого утра письмо с вопросом «Как продвигается наш проект» в 6:30 утра по его часовому поясу.

    С точки зрения разработки хорошо, что разделение testing/development/working environment очень чёткое и всегда есть время откатиться — начинаю обычно в час ночи и заканчиваю полпятого утра по их TimeZone, на живом, боевом сервере никогда не экспериментирую.

    Ну и по поводу каналов в Интернет — у меня 2 FTTx и 3 «свистка» — иногда так медленно заливается на хостинг, что приходится вспоминать командную строку и перепробовать их все.

    Зато индусы иногда вымораживают своим менталитетом, даже при хороших ставках.

    Ну и естественно, я стал замечать за собой НЕНАВИСТЬ к нашим местным наебизнесменам-работадателям, которые предлагают оклады 15..22 тыс. руб./мес. работникам с образованием и опытом, особенно после того, как устроившись в одну из местных фирм-конкурентов «тайным покупателем», вернее разработчиком (чтобы посмотреть workflow, т.к. это довольно успешный бизнес-проект с большой клиентской базой) увидел тот же Job Offer с oDesk, но очень плохо, безграмотно переведённый топ-менеджером компании в редких перерывах между поездками на дайвинги.

    В «малый бизнес» я тоже пытался уйти — очень сильная конкуренция, ценовая со школотой. Потом оказалось, что это ещё не главная проблема — рынок заказчиков всё равно растёт быстрее рынка исполнителей. Главная проблема — это чудовищная пропасть между опытом заказчика — НЕ ЗНАЮТ ЗАЧЕМ ИМ ИНТЕРНЕТ И НЕ ЗНАЮТ ЧЕГО ХОТЯТ и… ПОЛНЫМ ОТСУТСТВИЕМ ЖЕЛАНИЯ ПЛАТИТЬ профессионалам.

    Ещё поразило соотношение между уровнем разработчиков и наглостью в сочетаниями с понтами у менеджеров компаний-конкурентов. Не знаю кого винить — Фурсенко, или сразу Вашингтонский кагал, но пока встречался с потенциальными заказчиками (сейчас только телефон, а лучше -электронная почта) по три раза на дню бывал в ситуации, когда выплеснув на меня ушат откровенной технической ахинеи дядя-Вася-на-джипе на вопрос «Где вы нашли эту чушь?» начинал быковать в духе «Это мне сказали девушки в конторе ИП XYZ, А У НИХ ВСЁ ЧЁТКО, ВЕДЬ У НИХ САМ ИВАН МОИСЕИЧ ЗАКАЗЫВАЕТ САЙТЫ!»

    Короче oDesk — единственный шанс для заМКАДья, кроме восстания конечно.
    Ответ написан
    8 комментариев