• Где могут быть заданы перенаправления сайта на другой домен?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Конфиг сервера. Это может быть .htaccess в корне проекта, а также кконфигурация самого virtual host. Еще вполне может оказаться что перед Apache стоит Nginx, тогда смотреть и его конфиг.
    2. Если п.1 мимо - смотрим wp-config.php, константы WP_HOME и WP_SITEURL
    3. Если п.2 мимо - константы не определены, то смотрим в базу данных, таблица wp_options, опции с такими же названиями (только в нижнем регистре).
    4. Если и в БД все ок, пробуем добавить выше упомянутые константы в конфиг и указать там нужные значения.
    5. Если это все не помогло - ищем по всему коду слово redirect.
    Ответ написан
    2 комментария
  • Как правильно скрыть сайт от ПС во время наполнения?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    - В robots.txt запрещаем индексацию
    - Добавляем в шапку noindex
    - Отключаем карту сайта
    - Закрываем доступ для неавторизованных посетителей, чтобы только админы и редактора могли ходить по сайту, для всех остальных одна страница-заглушка "coming soon"
    - Когда сайт готов к публикации - открываем карту сайта, разрешаем индексирование, подключаемся к Google / Yandex Webmaster Tools, сабмиттим сайт в очередь на индексацию.
    Ответ написан
    Комментировать
  • Как (и возможно ли) дотянуться до Junior JavaScript Developer в кратчайшие сроки?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Во первых: совершенству нет предела.
    Во вторых: невозможно объять необъятное и впихнуть невпихуемое.
    В третьих: как ты не крутись, а технологии развиваются быстрее, поэтому отставание неминуемо, как следствие приходится всегда чем-то жертвовать ради чего-то более важного.

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

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

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

    Я бы, для начала, досконально убедился, что это вот именно прям вот то самое, чем я бы хотел заниматься ближайшие лет пять, а то и десять, потому что иначе не стоит даже и начинать.

    Меня на программирование пропёрло весьма рано, лет в 14-15. Я ощущал собственное безграничное могущество, послушная железяка выполняла любое моё повеление, любой мой каприз, при условии, что он правильно сформулирован. Если железка не делала что нужно, или делала что не нужно, то это всегда была моя вина, это значило что я прокосячился. Подобное осознание настигло меня весьма скоропалительно, после чего мозг начал усиленно дисциплинироваться, и количество лютых фейлов пошло на убыль.

    Коммерческая разработка - это, примерно, от 70% времени/сил на дебаг и фиксы, потому что мало где процессы поставлены грамотно. По хорошему до сего дня (а мне под 40) я только одну команду видел, где процессы прям вообще очень хорошо поставлены и мне посчастливилось какое-то время с ними поработать. За эти несколько месяцев я подрос на целую голову. Самостоятельно достичь сходных результатов было бы весьма затруднительно.

    Сам я сменил стек совсем недавно, начал в конце 15 года, и процесс продолжается до сих пор. Сменил я по одной простой причине - во всех моих прежних проектах большая часть логики с бэка уехала на фронт, и прекраснейший jQuery перестал справляться чуть более чем полностью. Он, по прежнему, хорош, но задачи, которые приходится решать, требуют совершенно других подходов. Для себя я выбрал React, но в целом на рынке имеются альтернативы. По моим данным очень большим спросом пользуется Angular 2+.

    Когда говорят о фронтенд разработке, постоянно говорят о технологиях, стеке, но почти никто не упоминает, что не стеком единым... Существенная часть разработки - это, для начала, понять задачу и построить у себя в голове модель. Заказчики бывают разные, от очень толковых, до очень безтолковых. Соотношение первых ко вторым примерно 1% и всё остальное... Т.е. в большинстве случаев тебе скажут минимум, своеобразно, плюс ты это поймёшь по своему. Потом, по ходу пьесы, в самые неподходящие моменты, начнут всплывать подробности, которые: забыли упомянуть; ну это же очевидно, ты же профи; мы сами не знали, это только выяснилось; ну это же мелочи, мы думаем тебе это будет не сложно; а ты не спрашивал; и т.п....

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

    Казалось бы, а какое это имеет отношение к джуну? Да прямейшее, потому, что, редко в какой команде джуна возьмут как джуна. Обычно джуна берут чтобы платить поменьше, а работы накинут где как мидлу, а где и как синьору, потому что, нередко, бизнес не жирует, ресурсы жестко ограничены, задачи нужно решать хоть как-то, а решения принимают люди, которые ничего в нашем деле не понимают...

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

    Когда я менял стек, то я тоже был какое-то время 35-летним джуном. С этим ничего не поделать, потому что, внезапно, стек это не просто так, и имеется масса нюансов, которые с наскоку не освоишь. Чтобы все пощупать, попробовать на зубок, понять и осознать требуется время и усилия, иногда много времени и много усилий. Да, весь прежний багаж служит опорой и поддержкой, и там, где настоящий джун будет копаться недели, ты за пару часов по аналогии поймаешь идею и двинешь дальше. Но эти пару часов никто не отменял, а идей которые нужно отловить сотни, если не тысячи...

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

    Даже если тебе попадается практически идеальный проект, внезапно оказывается, что твоя оперативная память это 5-7+-2 объекта, а удерживать в голове одновременно нужно сотни...

    Зачем я все это рассказываю? Затем, что это реальность, которая для джунов не делает исключений.

    Термин "фигак-фигак и в продакшен" встречается повсеместно, т.к. ресурсы (деньги, время, кадры) практически всегда весьма жестко ограничены и ничего ты с этим не поделаешь.

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

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

    Теперь относительно того что делать - если в бэкграунде нет сильных скиллов по алгоритмике и структурам данных (олимпиады по программированию, универский курс информатики), то прям очень сильно рекомендую прокачать. Будучи наставником на нескольких курсах фронтенда я постоянно встречают студентов, которые "вроде бы" знают язык, но затрудняются скомпоновать пару циклов с условиями, вот буквально просто виснут на неопределенное время, причем без результата. Лично я рекомендую кодварс. Своих студентов я прокачиваю именно там. Достаточно прорешать 30-40 задачек, чтобы базовые скиллы ушли на уровень рефлексов и перестали парить мозг. Правда желательно решать это все с наставником.

    Косвенный бонус тут будет в том, что ты привыкнешь решать задачи на JavaScript. Я когда менял стек, поначалу мыслил на PHP, и подобный финт на кодварс позволил мне переформатировать мышление на JS. Вот мой профиль на кодварс как пруф: https://www.codewars.com/users/iCoderXXI

    Далее, когда ты освоишься в JS практически, очень неплохо будет досконально разобраться в том как работают замыкания и прототипное наследование. Это прям основа основ, и это спрашивают на каждом первом собесе.

    Понять надо настолько глубоко, чтобы легко и просто, с юморком, рассказывать это любой первой встречной бабушке, да так, чтобы та всё поняла... Это вот прям залог успеха в JS, потому что все остальное держится на этих двух китах. В ютубе имеется курс Зоракса (Zorax) и JavaScript Weird Parts, оба про то же самое, первый на русском, второй на инглише. Кантор, безусловно, крут, но эти двое объясняют попроще и понятнее (имхо).

    После этого прокачиваемся в использовании встроенных методов JS, таких как map, reduce, includes, replace и пр. (на том же кодварс)

    После этого нужно прокачаться в ES6+, стрелочные функции, let/const, деструктурирование, рест оператор, классы, промисы, генераторы, async/await, декораторы - без этих продвинутых штук в современных фреймворках ловить нечего.

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

    Потом уже заостряемся на API форм, DOM, AJAX (fetch/axios), вебсокетах, Localstorage и пр.

    И вот только теперь можно переключаться на фреймворки. Проще всего освоить Vue (по слухам), наибольшим спросом пользуются React и Angular, для общего развития так же неплохо бы немного послушать про Ember.JS.

    React только на первый взгляд выглядит простым, на самом деле это только view-библиотека, а в любом нормальном SPA есть много чего еще кроме view, поэтому React всегда идет в компании Redux, Router, и еще целой толпы всего, что тоже придется осваивать, не только с точки зрения API, но и с точки зрения философии (а нахрена оно вообще сдалось?)

    Перед походами на собесы очень желательно иметь портфолио из нескольких готовых проектов, вылизанных стилистически.

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

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

    Еще вроде большие компании вроде Яндекса устраивают летнее обучение, с последующим трудоустройством лучших кандидатов, но это не точно.

    Оптимистичный прогноз - 6-12 месяцев плотного фигачинга и ты в тренде.
    Ответ написан
    7 комментариев
  • Какую технологию выбрать для интернет-магазина?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Есть - популярный конструктор лендингов

    Его название значительно улучшит качество ответов. Например у той же tilda есть api и тогда может быть оправданно взять framework и использовать то что есть. А если использовать нельзя, то для магазина конечно готовое решение проще и быстрее, если его функционал совпадает с функционалом cms.

    Но вопрос сложный. И что-то предлагать не видя ТЗ и не видя того что уже есть сложно и не правильно. Надо вникнуть и просчитать все варианты. Выбрать оптимальный.
    Если сами сомневаетесь, возможно есть смысл привлечь кого-то с большим опытом, как консультанта.
    Ответ написан
    2 комментария
  • Какую технологию выбрать для интернет-магазина?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Продумайте сразу как не попасть пол бан поисковиков.
    cache-vla01v.cdn.yandex.net/download.cdn.yandex.ne...
    Мы стараемся не индексировать или не ранжировать высоко:
    а)Сайты, копирующие или переписывающие информацию с других ресурсов и не создающие ориги-
    нального контента.
    б) Группы сайтов одного владельца/компании, предоставляющие пользователю одни и те же товары
    или услуги, созданные с целью заполнения нескольких позиций в результатах поиска и сбора тра-
    фика.

    могут подвести ваши лендинги под указанное выше
    Ответ написан
    1 комментарий
  • Интернет магазин с нуля для начинающего

    @pikla
    напишу свой план действий которым пользовался уже больше 5 раз, он позволял в кротчайшие сроки (2 недели) запустить интернет магазин б2б.
    1. определиться на кого будет зарегистрирован домен (на юр.лицо или на физика. это важно, т.к. в будущем может например понадобиться установить сертификат ssl его можно зарезать только на юр.лицо, и прочие такие вещи)
    2. регистрирую домен и покупаю хостинг (что бы не забивать себе голову покупаю все в одном мести, покупаешь хостинг и тебе домен в подарок на год дают)
    3. использую движок opencart, ищу тему оформления, обычно потом перелываю ее под себя, и когда определился с темой, сморю под какую версию она адаптирована, и ставлю движок нужной версии.
    4. потом приступаю к устанавлию все необходимые модули (улучшеное письмо о заказе, обратный звонок, улучшения админки для управления товаром и т.д.)
    5. подготовили информацию которую будут видеть посетители (описание разделов сайта, товаров, фото, прайс листы, контактную информацию и т.д.)
    6. тест всего сайта и тестовые покупки.
    7. сео оптимизация и работа с интернет окружением вокруг сайта (соц.сети, каталоги, ссылки).
    все.
    Ответ написан
    6 комментариев
  • Кто работает на upwork только по верстке?

    vicodin
    @vicodin
    Имею некоторый опыт
    Работаю не только верстальщиком, но некоторые проекты на чистую верстку в работе имею. Без всяких натяжек на WordPress. Конкуренция низкая, так как хороших верстальщиков на Upwork мало(по той же причине не могу делегировать свой поток заказов - просто некому).
    Сейчас верстаю за 50$/hr.
    Английский может быть начальным, но должен не быть таким, если хочется иметь хороший рейт.
    Ответ написан
    32 комментария
  • Что почитать по разработке API?

    @immaculate
    Программист-путешественник
    Мне понравилась эта книга: REST API Design Rulebook: Designing Consistent RESTful Web Service Interfaces (купил в электронном виде на Amazon, книга издательства O'Reilly, возможно, сейчас ее можно купить у них дешевле или вообще почитать бесплатно).

    Сложно спроектировать грамотный API, и данная книга в этом помогает. Разжевано как и для чего использовать разные HTTP methods, как лучше спроектировать структуру URL, и многое другое. Подробно, понятно, пошагово.
    Ответ написан
    Комментировать
  • Стоит ли учить Ruby и Rails в 2016 году?

    Freika
    @Freika
    Senior Ruby on Rails developer
    Прям для вас писал: frey.su/should-i-learn

    Добавлю еще, что как только вы займетесь Ruby, вы услышите о нем столько, сколько не слышали за всю жизнь. Также и с любым другим инструментом, не только с языками. Работы на Ruby и Ruby on Rails навалом.
    Ответ написан
    16 комментариев
  • Как перестать вариться в собственном коде?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну про angular styleguide вам уже написали. Так же добавлю что было бы неплохо почитать про SOLID принципы применительно к javascript и в принципе поучить сам javascript. Так же разберитесь наконец что такое MVC (не читайте одну статью, за 40 лет почти эти три буквы для многих стали значить слишком много разного), MVVM и т.д. Так же есть неплохой список вопросов который можно использовать как план изучения angular. Но еще больше профита даст внедрение TDD.

    Раз никто не занимается менторством, то найдите себе оного. И желательно не живого, так как живые менторы склонны к субъективизму.

    Идеальный ментор - юнит тесты. Причем основную ценность для вас они будут представлять когда кода который вы собираетесь тестировать вы еще не писали.

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

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

    ну и больше пробуйте, эксперементируйте. А для этого опять же нужны тесты.

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

    @Scribblex
    Я рекомендую изучать JS примерно таким путем:
    – чтение learn.javascript.ru (чтение и, естественно, практика);
    – параллельное прохождение модулей по JS на codeschool;
    – держите перед глазами актуальные вопросы для собеседования JS-разработчика (habrahabr.ru/post/239065/), стараясь на них ответить;
    – читайте хороших авторов: Дуглас Крокфорд, Джон Рейзиг, Стоян Стефанов;
    – найдите на GitHub людей, которые согласятся ревьюить Ваш код, я серьезно!

    Ну и не забывайте: чем чаще Вы пишите код, тем лучше получается; чем сильнее стараетесь разобраться в основах языка, тем легче будут даваться в освоении фреймворки и паттерны.

    Желаю успеха!
    Ответ написан
    10 комментариев
  • Верстка -> Frontend -> Full Stack developer - какой оптимальный путь развития?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что бы быть full stack вы должны понимать что происходит на каждом уровне вашего приложения. от кнопочек которые вы верстаете, до того как обрабатываются запросы на сервере, в плодь до взаимодействия с базой данных через все прослойки.

    Вне зависимости от выбранного языка или фреймворка, принципы остаются примерно те же. С Symfony мы можем говорить о гексагональной архитектуре, луковой архитектуре, data mapper и т.д. С nodejs мы тоже можем обо всем этом говорить но там не особо развиты идеи data mapper (на данный момент). Приходится жить с active record или dbal. Ну и опять же управление зависимостями в js и в php по разному организованы, хотя суть (dependency inversion) остается той же.

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

    voidnugget
    @voidnugget
    Программист-прагматик
    Эмм... для начала нужно выучить мат часть и разобраться что такое B-tree и R-tree и как они фигурируют в современных СУБД, разобраться что такое "6ая нормальная форма" (второй курс универа).

    Если это мускуль у которого "бесконечная длинна" таблички - от 200Гб и до 1Тб, то достаточно просто использовать ENGINE ARCHIVE c R-tree индексом. В противном случае (если меньше 200Гб) нужно (учить мат часть и вправлять мозги) рефакторить базу. Лучше слезть с MySQL на PostgreSQL, а вот c MongoDB - куча проблем. Стандартные СУБД на основе B-tree для баз от 200Гб+ не подходят. MySQL исключение из-за модульности системы хранения, имеется ввиду ENGINE ARCHIVE, но так как там нет T-tree - нужен нормальный кэш. PostgreSQL даже похуже будет - нужно ковырять различные расширения типа cstore_fdw и т.п.

    uint64 ID'шник в виде хэша - очень спорное решение, даже если и предположить что в какой-то вселенной нет коллизий, то точно не в этой, и дополнительно нужно прогонять фильтр Блума. Хотя, лучше всего, просто использовать композитные ключи и не заморачиваться.

    Можно ещё попробовать HBase в Apache Phoenix обернуть, там уже есть всё готовое - и фильтр Блума и индексация, можно даже X-tree оформить. HBase, кстати, хорошо масштабируется на запись, а Cassandra, наоборот, - на чтение.

    Шардинг (партицирование) и репликацию нужно оформлять когда схема хорошо нормализирована, и когда более-менее ясно какие таблички нужно масштабировать на запись, а какие на чтение - где-то нужен CA, где-то CP, а где-то AP... (CAP теорема)

    Очень весело в PostgeSQL писать сишные функции для агрегации в материализованные представления, особенно весело с GPGPU.
    Ответ написан
  • Какие задачи нужно уметь выполнять на JS начинающему?

    copist
    @copist
    Empower people to give
    Какие задачи нужно уметь решать на чистом JS, перед тем как переходить к изучению библиотек и фреймворков?


    Кроме синтаксических конструкций, математических и логических выражений, нужно знать:
    • Область видимости переменных
    • Замыкания
    • Объектно-ориентированное программирование, в частности наследование через прототипы
    • Шаблон проектирования "модуль"
    • Операции над DOM
    • Понимание принципов событийно-ориентированного программирования
    Важно - нужно знать, откуда копипастить.
    Тебе нужно быть очень хорошо знакомым с одной-двумя-тремя популярными библиотеками на JavaScript. В идеале ты должен иметь представление о том, что определённый класс задач может быть решен с помощью определённых библиотек, хотя бы одной, но такие знания приходят с практикой. Вообще ты должен быть знаком с ними так близко, чтобы помнить, в какой части мануала по библиотеке можно найти описание форматов входных данных нужной тебе функции и какой будет результат, чтобы скопировать и вставить в свой код, а потом поправить, чтобы работало.

    Важно - инструменты программиста JavaScript
    У тебя должен быть удобный инструмент для разработки (IDE, Integrated Development Environment), чтобы он тебе подсвечивал код (syntax highlight) и подсказывал о синтаксических ошибках (syntax check), о формальных параметрах функций (type hinting), о стиле кодирования (code style), помогал писать код (live templates).
    Ты должен знать, как отлаживать скрипты в популярных браузерах (Firebug, Chrome Developer Tools и другое). Что такое точки останова, как управлять исполнением во время останова, как посмотреть и поменять содержимое переменных, как настроить останов по условию.

    Хотелось бы узнать что это за задачи(упомянутые вами 80%)


    Реальные задачи джунов:
    1. Возьми из сборника задач по javascript любой скрипт случайно и вслух расскажи, что он делает.
      Важно - читать и понимать чужой код намного важнее, чем писать свой. И на работе тебе это приддётся делать чаще, чем ты думаешь. Чтобы подключить к своему проекту чужую JS либу, нужно понимать что она делает, как она конфигурируется, как управлять её поведением. Скажу точно, что написать свой скрипт, который строит графики, намного сложнее, чем понять, как настраивается highcharts.

    2. Напиши скрипт на JS, который в заданном тексте удалит один или два символа, выбранных случайно
      1. Усложнение: удалять можно только буквы в словах, а знаки пунктуации и цифры удалять нельзя
      2. Усложнение: принять, что этот текст является программной на Javascript, удалить одну-две команды JS, но только если они не в строковых литерах (break как команду удалить можно, а в строке "break my heart" нельзя)
      3. Усложнение: воспользуйся этим скриптом и "попорти" код какого-нибудь другого скрипта на Javascript, а потом отладь, найди ошибку и восстанови работоспособность
      Важно - этим обычно все и занимаются - ищут баги. Только в реальной жизни они и без этого скрипта появляются. И не по одному, а прям пачками.

    3. На страницу HTML нужно встроить график курса доллара по отношению к рублю. Формат входного массива значений курса определи сам, исходя из своего скрипта для построения графиков.
      1. Усложнение: на одном графике должны быть два курса, по разным шкалам. Наприме, курс доллара к евро и курс юаня к рублю
      2. Усложнение: первоначально график вывести в детализации по месяцам, но чтобы можно было "приблизить" (drilldown) детализацию до дней
      3. Усложнение: первоначально график вывести текущем месяце, но чтобы можно было загрузить данные для предыдущего месяца без перезагрузки страницы (AJAX)

    4. При клике по картинкам, вставленным в текст HTML, показывать всплывающее окно для просмотра увеличенной картинки.
      1. Усложнение: в всплывающем окне сделать навигацию по картинкам, вперёд/назад и к нужной картинке
      2. Усложнение: в всплывающем окне вместо картинки показать видео-ролик с Youtube
      3. Усложнение: в всплывающем окне показать текст HTML

    5. По клику на кнопку "Click me" показать всплывающую форму.
      1. Усложнение: реализовать проверку данных на корректность перед отправкой формы (непустое значение, минимальное количество символов, максимальное количество символов, минимальное числовое значение, максимальное числовое значение)
      2. Усложнение: если в значении текстового поля встретилась гиперссылка, то считать её за 22 символа при любой длине этой ссылки (как в твитере)
      3. Усложнение: реализовать отправку формы на сервер через AJAX, без перезагрузки страницы
      4. Усложнение: саму форму в виде HTML загрузить с сервера через AJAX, в момент клика по кнопке "Click me", правила проверок данных должны как-нибудь "извлечься" из самой загруженной формы, например из аттрибутов полей ввода

    6. К форме ввода данных на поле ввода даты "навешать" всплывающий календарь для выбора даты.
      1. Усложнение: сделать форму календаря мультиязычной. Хотя бы через настройки на том же JavaScript
      2. Усложнение: сделать так, чтобы с помощью календаря можно было выбрать диапазон дат, чтобы она была привязана к двум полям формы "дата начала" и "дата окончания", и чтобы значение в поле "дата начала" обязательно была меньше чем в поле "дата окончания"
      3. Усложнение: сделать так, чтобы с помощью в календаре можно было видно визуально этот диапазон
      4. Усложнение: диапазон может быть открытым, но не пустым, то есть пользователь должен задать хотя бы дату начала или дату окончания.

    7. Сделать пред-просмотр веб-страницы HTML с разными темами. Тему страницы выбирать через селектор на javascript, а показывать в фрейме.
      1. Усложнение: сделать селектор "тип устройства", чтобы менять размер фрейма (например, "iPhone 5c 1136x640") и "чекбокс" для смены ориентации страницы "горизонтальная" или "вертикальная" (соответственно 1136x640 или 640x1136)
      2. Усложнение: в селекторе тем предусмотреть поиск тем по подстроке, и аналогично поиск устройств по части названия (авто-дополнение, auto-complete)
      3. Усложнение: тема страницы должна меняться без перезагрузки фрейма



    Задачи повышенной сложности, исходя из личного интереса
    1. Реализовать форму для многошагового мастера: форма должна состоять из нескольких страниц (шагов), пользователь может переключать страницы через какие-нибудь элементы управления "вперёд/назад" или "перейти на страницу".
      1. Усложнение: реализовать функциональную связь значений, когда некоторые данные зависят друг от друга (ввёл число в поле "количество" и в поле "сумма" значение пересчиталось)
      2. Усложение: доступность некоторых полей ввода должна зависеть от данных (например, если указал "есть личный самолёт", то значит можно ввести "марка самолёта")
      3. Усложение: видимость некоторых страниц должна зависеть от данных из предыдущих страниц (например, если указал "есть личный самолёт", значит появилась страница "ТТХ самолёта"; иначе страница должна скрыться)

    2. Реализовать однопользовательскую браузерную игру "змейка", "тетрис", "найди пару"
    3. Реализовать многопользовательскую браузерную игру "крестики-нолики", "морской бой" на два игрока в режиме "hot seat"
      1. Усложнение: два игрока на разных компьютерах, ходы передаются по websocket
      2. Усложнение: ограничение на ожидания окончания хода 15 секунд, по окончании ожидания автоматически делается случайный ход

    4. Реализовать todo-list. Пользователь вводит список, затем он превращается в строки с "чек-боксами". Когда "чекбокс" включен, строка зачёркивается.
      1. Усложнение: пользователь может переименовывать, удалять, добавлять строки
      2. Усложнение: список хранить в localStorage браузера, чтобы при перезагрузке страницы он восстанавливался
      3. Усложнение: пользователь может иметь несколько независимых списков todo

    5. Реализовать простой графический редактор. Пусть рисуется точка в месте, где пользователь кликнул.
      1. Усложнение: добавить переключатель режимов "точка"/"линия", в режиме "линия" рисуются линии между двумя последовательно кликнутыми точками
      2. Усложнение: можно менять толщину, цвет линий, размер точек
      3. Усложнение: последовательность кликов можно воспроизвести ещё раз с самого начала, равномерно или с реальной задержкой между кликами, с обычной скоростью или ускоренно
      4. Усложнение: можно выгрузить получившийся рисунок в формате PNG или SVG, причём SVG c анимацией воспроизведения



    Можно использовать любую существующую библиотеку.
    Например,
    для построения графиков www.highcharts.com
    для загрузки и передачи данных через AJAX: jquery.com + что-нибудь на сервере
    для всплывающих диалогов с картиками, видео и формами: fancyapps.com/fancybox и https://jqueryui.com/dialog/
    для валидации форм rickharrison.github.io/validate.js
    для календаря https://jqueryui.com/datepicker/
    для автодополнения https://jqueryui.com/autocomplete/
    для передачи данных между несколькими пользователями socket.io или обычный AJAX
    Ответ написан
    16 комментариев
  • Как вы повышаете собственную продуктивность?

    stasparshin
    @stasparshin
    не забывайте помечать ответы. дрочу на статистику
    + Вести список дел
    + Вести список проектов
    + Выбирать главное и стараться уменьшать первые два
    + Стараться каждый день сделать один MIT (most important task)
    + Записывать все идеи в инбокс и только потом переносить в списки
    + Найти подходящее для этого всего приложение
    + Прочесть GTD Девида Аллена
    + Заводить помидор, когда работаешь. Техника Помодоро.
    + Выключить звук на телефоне.
    + Бороться с остальными поглащателями времени.

    Но это все возможно только после принятия тезиса о том, что нет такой проблемы как "нехватка времени". Времени у всех одинаково. Успешные люди — это те, кто находят время для важных вещей.
    Ответ написан
    7 комментариев
  • Как найти удалённую практику для начинающего python программиста?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Присоединяйся к разработке the-tale.org

    Все исходники открыты: https://github.com/Tiendil/the-tale

    Берёшь задачу делаешь, делаешь пул-реквест, получаешь критику, пока всё правильно не будет сделано, и код попадает в рабочий проект.

    В вики на гитхабе рассказано подробнее.
    Ответ написан
    3 комментария
  • Выбор средств для разработки высоконагруженного веб приложения?

    Главная фишка высоконагруженных приложений не в выборе технологий, а в архитектуре. Зачастую, узким местом приложения является база данных. Первое, что нужно сделать - это научиться масштабировать данные. Ищем по ключевым словам "шардирование", "репликация".
    После того, как данные масштабируются, можно думать о включении кэширующего слоя. Ищем "memcached", "redis".
    Если начинает не справляться фронтенд (фронтенд бэкэнда), подключаем балансировщик нагрузки. Как на уровне DNS, так и на уровне отдельных инстансов фронтенда.
    Раздаете много статики? CDN вам в помощь.
    Много сложных и ресурсоемких вычислений, результат выполнения которых не требует моментального отображения клиенту? Разворачиваем очереди задач и считаем это в фоне.
    А уж какую технологию выбрать java или php это Вам виднее. То, что лучше знаете и сможете поддерживать.

    Советую почитать ruhighload.com/scale
    Ответ написан
    1 комментарий
  • Какое приложение сделать?

    DR_Demons
    @DR_Demons
    Могу Вам подкинуть конкретные задания для джуна IO, Collections.

    ссылка так же для джунов очень рекомендую курсы епам в Рязани, как раз сейчас набор, если хотите чему то научиться то довольно не плохой вариант(это не реклама, просто в свое время мне они очень помогли)
    Ответ написан
  • Какова техника верстки landing page?

    mrusklon
    @mrusklon
    Не получается? Яростно гугли!
    Наткнулся на канал недавно , по моему очень содержательно:
    • Часть 1: Адаптивная HTML верстка на примере сайта автосервиса(смотреть)
    • Адаптивная HTML верстка на примере образовательного Landing Page(смотреть)
    Ответ написан
    3 комментария
  • Как не волноваться на собеседовании?

    @sen4ik
    QA Engineer
    Перед интервью заранее пишу речь в которой рассказываю о себе и о предыдущем опыте. Включаю в рассказ что-то запоминающееся. Учу речь наизусть. Заранее готовлю вопросы. Как только прихожу на интервью, предлагаю сначала рассказать о себе, обычно интервьюэры не отказываются. Четко рассказываю заученную речь, отвечаю на вопросы если таковые есть, задаю свои.
    Ответ написан
    Комментировать