• Как дать клиенту для просмотра из интернета локальный сайт?

    BuriK666
    @BuriK666
    Компьютерный псих
    Если вообще без заморочек, то TeamViewer.
    Ответ написан
    Комментировать
  • Как минимизировать затраты времени на фронт-энд?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Покупайте готовые шаблоны. Минимальная доводка и вуаля. themeforest.net/category/site-templates
    И зря вы не хотите использовать Bootstrap. Идеальный инструмент для программистов, которые не хотят заморачиваться с фронтендом.
    Ответ написан
    3 комментария
  • Как разбить строки php?

    27cm
    @27cm
    TODO: Написать статус
    $str = '/category1/category2/page.html';
    
    $parts = preg_split('/(?<=\w\/)(?=\w)/', $str, -1, PREG_SPLIT_NO_EMPTY);
    for ($i = 1; $i < sizeof($parts); $i++) {
        $parts[$i] = $parts[$i - 1] . $parts[$i];
    }


    ideone.com/5usIN4
    Ответ написан
    Комментировать
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотря зачем)). Я когда делаю Code Review критерии следующие:

    * Безопасность:
    - Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так - бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов - это вполне норм))
    - Никаких trigger_error, только исключения.
    - Исключения ДОЛЖНЫ быть человеко-понятны, всякие "Something went wrong" можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
    - Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.
    - За eval как правило шлю на **й.
    - @ допускается только в безвыходных ситуациях, например проверка json_last_error.
    - Перед работой с БД - обязательная проверка данных.
    - Никаких == и !=. Со swtich - единственное исключение, по ситуации.
    - Если метод возвращает не только bool, а еще что-то - жесткая проверка с ===, или !== обязательна.
    - Никаких условий с присваиваниями внутри. while($row = ...) - тоже идет лесом.
    - Магические геттеры/сеттеры разрешаются только в безвыходных ситуациях, в остальном - запрещены.
    - Конкатенации в sql - только в безвыходных ситуациях.
    - Параметры в sql - ТОЛЬКО через плейсхолдеры.
    - Никаких глобальных переменных.
    - Даты в виде строки разрешаются только в шаблонах и в БД, в пхп коде сразу преобразуется в \DateTimeImmutable (в безвыходных ситуациях разрешено \DateTime)
    - Конечно зависит от проекта, но как приавло должно быть всего две точки входа: index.php для web и console(или как-то по другому назваться) - для консоли.

    * Кодстайл PSR-2 + PSR-5 как минимум, + еще куча более жестких требований (для начала все то что в PSR помечено как SHOULD - становится MUST)
    - В PhpStorm ни одна строчка не должна подсвечиваться (исключением является typo ошибки, например словарик не знает какой-то из аббревиатур, принятых в вашем проекте). При этом разрешается использовать /** @noinspection *** */ для безвыходных ситуаций.
    - Если кто-то говорит, что пишет в другом редакторе и у него не подсвечивается, на эти отговорки кладется ВОТ ТАКЕЕЕНЫЙ мужской половой **й и отправляется на доработку)).

    * Организация кода:
    - Никаких глобальных функций.
    - Классы без неймспейса разрешаются только в исключительно безвыходных ситуациях.

    * Тестируемость (в смысле простота тестирования) кода должна быть высокая.
    - Покрытие кода обязательно для всех возможных кейсов использования каждого публичного метода с моками зависимостей.

    * Принципы MVC:
    - Никаких обработок пользовательского ввода в моделях, от слова совсем.
    - Никаких ***ть запросов в БД из шаблонов.
    - Никаких верстки/js/css/sql-ин в контроллерах.
    - В моделях НИКАКОЙ МАГИИ, только приватные свойства + геттеры с сеттерами.
    - В моделях разрешено использовать метод save(при наличии такого разумеется) только в исключительных ситуациях. Во всех остальных - либо insert, либо update.

    * Принципы SOLD:
    - Никаких божественных объектов умеющих во все.
    - Если метод для внутреннего пользования - private, никаких public.
    - Статические методы разрешаются только в случае безвыходности.

    * Принцип DRY разрешено нарушать в случаях:
    - Явного разделения обязанностей
    - В тестах (каждый тест должен быть независимым, на сколько это возможно)

    * Работа с БД:
    - Запрос в цикле должен быть РЕАЛЬНО обоснован.
    - За ORDER BY RAND() - шлю на***й.
    - Поиск не по ключам (конечно если таблица НЕ на 5 строк) запрещен.
    - Поиск без LIMIT (опять же если таблица НЕ на 5 строк) запрещен.
    - SELECT * - запрещен.
    - Денормализация БД должна быть обоснована.
    - MyISAM не используется (так уж)) )
    - Множественные операции обязательно в транзакции, с откатом если чо пошло не так.
    - БД не должна содержать бизнес логики, только данные в целостном виде.
    - Не должно быть нецелесообразного дерганья БД там, где без этого можно обойтись.

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

    * О людях:
    - "Я привык писать так и буду дальше" - не вопрос, ревью пройдешь только когда поменяешь свое мнение.
    - "Я пишу в vim-е и мне так удобно" - здорово, код консолью я тоже в нем пишу)) но есть требования к коду, если в них не сможешь - не пройдешь ревью.
    - "Я скопировал этот страшный метод и поменял 2 строчки" - это конечно замечательно, но по блейму автор всего этого метода ты, так что давай без говняшек, хорошо?
    - "Оно же работает!" - вот эта фраза переводится примерно так: "да, я понимаю, что пишу полную хрень, но не могу писать нормально потому, что руки из жо", я правильно тебя понял?))
    - "У меня все работает!" - рад за тебя, а как на счет продакшна?
    - "Там все просто" - не используй слово "просто", от слова "совсем". Вот тебе кусок кода (первого попавшегося с сложной бизнес логикой), где там ошибка (не важно есть она, или нет)? Ты смотришь его уже 2 минуты, в чем проблема, там же все "просто"))

    * Всякое:
    ActiveRecord (это я вам как в прошлом фанат Yii говорю) - полное говно, примите за исходную. По факту у вас бесконтрольно по проекту гуляют модельки с подключением к БД. Не раз натыкался на то, что в тех же шаблонах вызывают save, или update (за такое надо сжигать).
    То, что используется Laravel - это печально((. Что бы выполнить требования приведенные выше, приходится "воевать" с фреймворком.

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

    UPD

    Формализировал данные критерии по ссылочке: https://github.com/index0h/php-conventions
    Ответ написан
    55 комментариев
  • Как найти наставника чтобы изучить Laravel?

    winbackgo
    @winbackgo
    Самое простое - поставить задачу и решить ее на FrameworkName. Если фантазии для задачи не хватает ищем на фрилэнс биржах. Задача должна быть не слишком сложной, но это должен быть полноценный сайт.
    Ответ написан
    Комментировать
  • Как построить, структурировать изучение и повторения анг. языка?

    Extremesarova
    @Extremesarova
    Биоинформатика, машинное обучение, анализ данных.
    1) LinguaLeo. Это онлайн-платформа для изучения и практики иностранного языка, на которой по данным сервиса, на сентябрь 2014 года на нём зарегистрировано 9 500 000 пользователей.
    С помощью этого сайта можно изучать грамматику, тренировать слова, читать тексты, слушать аудио, смотреть видео (все, конечно же, на английском языке). Грамматических курсов огромное количество для всех уровней владения языком (многие из них платные, но их цена равна 1-3 занятиям у репетитора). Написаны профессионально с примерами и заданиями для проверки знаний. При регистрации для нормального обучения необходимо будет купить годовой "золотой статус" за 700-1000 рулей (цена день ото дня варьируется), который позволит вам открыть доступ ко всей функциональности (кроме некоторых платных курсов).
    LinguaLeo постоянно начинает сотрудничества с крутыми международными образовательными онлайн-платформами. Последние из них: Coursera, British Council, TED. Эти платформы предоставляют, в основном, видео, в связи с этим, в видеоплеер был встроен специальный инновационный интерактивный перевод, который позволяет быстро добавлять слова из видео себе в словарь, а потом изучать и тренировать их.
    При регистрации будет проведен тест на знание английского языка и будут предоставлены индивидуальные рекомендации по изучению. Там есть огромное число тематических наборов слов для изучения. Более того, вы можете сами создавать такие наборы. Я вот уже давно это практикую, например, для разных книг у меня разные наборы слов.
    Сервис имеет мобильные приложения для всех популярных платформ.
    Уникальный сервис (я уже с 2012 года здесь занимаюсь). Не нужно жалеть 1000 рублей! An Education is Priceless.
    Также для lingualeo есть удобное расширение для браузера (у меня chrome), которое при нажатии на английское слово сразу дает перевод, озвучивает произношение и позволяет добавить его к себе в словарь для дальнейшего изучения.
    2) Duolingo. Отличный сервис для изучения языка. На десктопной версии сайта вы сможете тренировать грамматику (без теории, только практика), а так же сможете переводить тексты и загружать свои. То есть, если вы видите какую-нибудь интересную статью на каком-нибудь сайте, то можно ее загрузить на этот сайт и удобно переводить - будет предложен перевод для каждого предложения и каждого слова.
    Имеются приложения для iOS и Android. В мобильных версиях только грамматика.
    3) Memrise. Лондонский стартап. Тут можно тренировать слова. Реализован интервальный алгоритм запоминания. Кто будет заниматься рекомендую курс Upper-intermediate English от Cambridge (тут уже нужно знать базовые слова) и курс, который поможет выучить эти базовые слова.
    4) Anki. Невероятно мощная и бесплатная программа (windows, mac, android, для iOS платная), которая использует технику интервальных повторений, о которой говорилось в предыдущем пункте. Все можно настроить под себя :)
    Очень крутой сервис. С помощью интервального алгоритма слова запоминаются очень хорошо даже, если сначала вы их совсем не знаете.
    Видите незнакомое слово, добавляете его, пишите перевод, добавляете произношение, и пример использования.
    4) Cambridge - English Grammar in Use. Это приложение, основанное на знаменитой книге. Тут полный курс грамматики (есть британское произношение примеров - очень хорошее). Есть приложение и для iOS. Стоит ~ 600 рублей. Полностью на английском. И для его выполнения рекомендую пройти базовые слова (можно использовать пункт 3).
    5) BBC Learning Language. Отличный сайт, созданный специально для изучения английского языка. Можно выбрать уровень знаний. Там вы найдете курсы, видео, подкасты.
    Да, точно, подкасты.
    6) Подкасты. Есть, по крайней мере, 3 приличных подкаста по изучению английского языка.
    ESL Podcast - самый лучший подкаст (IMHO). Два типа выпусков : диалог и беседы на определенные темы.
    6 Minute English - часть проекта BBC Learning Language. Тоже очень крутой подкаст.
    British Council - слушайте подксаты, смотрите видео, все все все.
    Grammar Girl, The English We Speak, ...
    7) Видео и каналы на YouTube. Мне больше всего нравится группа каналов от сайта engvid. Там интересно рассказывают про разные вещи: и грамматика, и произношение, и идиомы, и фразовые глаголы и многое другое. На сайте можно выбирать видео по уровню владения языком. Если вы зарегистрируетесь на lingualeo, то у них есть специальный раздел при сотрудничестве с engvid с тем интерактивным плеером, про который я писал раньше. Очень мне эти видео нравятся.
    Видео - ororo.tv . Тут можно смотреть разные сериалы и мультики, но больше часа в день платно. Этим сервисом я не часто пользовался последнее время.
    8) Совсем недавно узнал про такую возможность обучения. Создателя этой системы зовут A.J. Hoge. А сама система называется Effortless English System.
    Во-первых, у него есть подкаст. Можно слушать тут. А, если у вас есть устройство на андроиде или iOS, то там можно скачать какой-нибудь проигрыватель для подкастов, найти там этот подкаст и многие другие, и слушать там. Называется он Effortless English Podcast.
    Во-вторых, у него есть курсы, которые описаны на сайте (рейтинг по 180 отзывам 4.73/5 - круто).
    Вот тут можно видео посмотреть на кого нацелен этот курс. Я не знаю какой у вас уровень по знанию слов и грамматики (его можно поднять с помощью предыдущих пунктов, для слов хорош memrise, для всего остального lingualeo), но вам должно подойти в любом случае (как и мне), потому что разговорный английский очень сложно развить, не разговаривая с носителями языка, а тут должно быть очень классно.
    Подкаст бесплатный, а сами курсы вы можете найти на популярных трекерах. Точнее здесь. И там еще есть ссылка на Power English. Вот я него я и хочу начать, а пока только подкасты слушал.
    Общие рекомендации:
    Английским рекомендую заниматься каждый день. Выделять, хотя бы, 20 минут (лучше час).
    Кроме специальных сервисов вы можете читать книги на английском (можно на сайте LinguaLeo). Для начала можно читать детские сказки (простая грамматика и слова), потом переходить к популярным книгам, сюжет которых вы знаете и читали не раз - к таким, которые больше всего нравятся. Мне вот нравится серия книг про Гарри Поттера и я её перечитываю на английском языке. Я еще скачал аудиокниги по этой серии и очень классно слушать, и одновременно читать - получается сразу два навыка тренируются. Как я уже сказал, что на lingualeo есть эта серия и я читаю там - удобно, видишь незнакомое слово, ткнул на него и оно добавилось в словарь, и потом можно проходить его на различных тренировках (слово - перевод, перевод - слово, собрать слово из букв, аудирование, и другие). Кстати, на lingualeo тоже добавили интервальную тренировку, но она чуть хуже, чем на memrise.com.
    Более того, я рекомендую вам читать новости на английском (лучше конечно британские) - The Guardian, The Telegraph; но и американские можно, например, Business Insider.
    Ну и, конечно же, читайте тематическую литературу. Там будет необходимая в профессии лексика.
    Ответ написан
    2 комментария
  • Какой есть хороший инструмент для прототипирования сайтов?

    vbiralo
    @vbiralo
    WEB-Разработчик
    1) Wireframe.cc: пожалуй, самый простой сервис, находка для быстрых набросков
    https://wireframe.cc/

    2) Balsamiq: простой и интуитивно понятный ресурс
    balsamiq.com

    3) Axure: идеальный ресурс для проектировщиков и менеджеров
    www.axure.com

    4) Invision: мощный онлайн-сервис, с огромным набором дополнительных функций
    www.invisionapp.com

    5) POP: приложение, бумага и карандаш - это все, что вам требуется для создания интерактивного прототипа
    https://popapp.in/

    6) Moqups: Помимо прототипов можно создавать карты сайта, диаграммы и многое другое
    https://moqups.com/

    7) Mockflow: удобный инструмент, с неперегруженным функционалом
    www.mockflow.com

    8) Proto.io: незаменим для проектирования интерактивных прототипов приложений
    https://proto.io/

    9) UXPin: полезный и интересный сервис для профессионалов
    www.uxpin.com

    10) Omni Graffle: излюбленный сервис для приверженцев iOS
    www.omnigroup.com/omniGraffle
    Ответ написан
    3 комментария
  • Синхронизация работы двух slideToggle?

    Stalker_RED
    @Stalker_RED
    Как-то так:
    $('#xxx').slideUp(300, function(){
        $('#yyy').slideToggle(300) // это выполнится ПОСЛЕ того как отработает slideUp
    });

    Но у вас там три slideToggle, а не два. И один из них, который menuMargin - вообще странный. Вы уверены, что меню всегда высотой 150?

    Можно всё вообще переделать. jsfiddle.net/7svsbqar
    Ответ написан
    Комментировать
  • У кого есть опыт фриланса в Китае, Гонконге, Тайване?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Насколько я знаю в Китае есть определенные сложности с доступом в мировой интернет. Много чего недоступно оттуда. Можете покопаться что про разные страны/города пишутна портале https://nomadlist.com/ - цифровые кочевники - путешествующие фрилансеры всех мастей :)
    Ответ написан
    8 комментариев
  • Какие проекты сделать на github чтоб показывать работодателям?

    Yeah
    @Yeah
    Варианты:

    1. Плагин к какой-нибудь существующей системе. Например для Wordpress, PHPCI и пр.
    2. Берешь 2 каких-нибудь публичных API и пилишь мини-мэшап, чтобы на основании данных с этих API делалось что-то интересное. Например: берем API VK и last.fm и делаем свой мини-плеер с рекомендациями из last.fm и музыкой из VK. API можно глянуть тут:

    www.quora.com/What-are-some-cool-fun-APIs
    https://www.reddit.com/r/webdev/comments/27nqyk/wh...
    www.computersciencezone.org/50-most-useful-apis-fo...
    www.webdesignerdepot.com/2011/07/40-useful-apis-fo...
    blog.mashape.com/list-of-fun-and-interesting-apis-...
    webresourcesdepot.com/15-free-apis-you-didnt-hear-...
    https://gearside.com/public-json-feeds/

    3. Подвид предыдущего. Объединяем API Flickr и какого-нибудь авиаагрегатора (например, aviasales или kayak). Пользователю показывается лента с красивыми фоточками и тут же цена на билет и копка заказа
    Ответ написан
    Комментировать
  • Где взять ссылки на красивые анимированные лендинги для образца?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Почти вся годнота проскакивает тут:
    www.cssdesignawards.com/wotd-award-winners
    www.awwwards.com/awards-of-the-day
    www.thefwa.com (у них неудобный просмотр)
    Соответственно можете и по месяцам/годам чекнуть.
    Вот несколько примеров, которые я скоро буду пристально изучать:
    https://www.chelseacollective.com/
    www.lempens-design.com

    Не относится к лендингам, но недавно около часа изучал его сайт и работы, очень крутой чувак:
    https://caferati.me/
    Ответ написан
    1 комментарий
  • Как найти удалённую практику для начинающего python программиста?

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

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

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

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

    @b1nary
    php junior
    мне уже 27 лет и возможно работодателей это смущает

    Мне уже 38 лет. Представляете как меня это смущает, однако сегодня еду на собеседование.
    Ответ написан
    Комментировать
  • Начинающему программисту: есть примеры реальных заданий для джуниора Python?

    @endemic
    Python. Написать программу, которая "выдирает" текстовый контент с популярных новостных сайтов типа ленты.ру. Программа должна запускаться из консоли командой "program_name url" и сохранят обработанный текст в текстовый файл. Ну и соответственно чем качественене архитектура и больше всяких обвесок типа дополнительных комманд, возможности подгружать плагины обработки разных сайтов, интеграция с CI, TDD итп, тем лучше
    Ответ написан
    Комментировать
  • Тяжело ли, зная язык программирования на уровне джуниора, найти удаленную работу?

    Если кинуть объявление, что обучаю бесплатно программированию для web с последующим трудоустройством, то начинают ломиться просто толпы народа. Результат? 99% из них пропадают через месяц. Потому что не хотят или не умеют работать и учиться самостоятельно (при оказании любой консультативной помощи). Потому что не могут заниматься периодически не очень увлекательными вещами, потому что распыляются. Так через месяц они захотят стать дизайнерами, еще через месяц фотографами и т.п.
    К чему я это говорю? Вы столкнетесь с тем же самым. Сдюжите? Самостоятельно обучаться сложно и надо иметь fun, как говорят американцы, с этого должно переть. Иначе будет фигня... Надоест все через месяц.
    Ответ написан
    7 комментариев
  • Какую литературу можно почитать по вопросам: как организовать обучение и эффективно использовать время?

    LiliaV
    @LiliaV
    программист, начинающий сисадмин
    Выделить конкретную задачу и тратить на нее какое-то четко определенное количество времени в день. Таких задач в течение дня может быть несколько.
    Например:
    Я учу испанский 1 час в день, но каждый день. Чтобы закрепить привычку нужно это действие повторять в течение 21 дня, дальше без этой привычки уже даже как-то некомфортно начинаешь себя чувствовать.
    Ответ написан
    1 комментарий
  • Как лучше учить английский?

    @nuubie
    Начал учить в 24 года английский с абсолютного "0", т.к. в школе/универе учил только немецкий, в 28 лет сдал IELTS на 7.0.

    Несколько советов:
    1. Рекомендую учить английский только по учебникам на английском. Много времени потратил впустую на попытки выучить по Драгункиным, Илонам Давыдовым, Бонкам и т.п... Лучший вариант - взять самые простые уровни Headway и Cutting Edge и последовательно их проходить .
    2. Нужен наставник, чем выше левел, тем более опытный. Upper-Intermediate - Advanced нужен профессиональный преподаватель, желательно сам прошедший хоть какой-то международный экзамен или сертификацию.
    3. Практика - регулярное общение с носителями языка очень быстро убирает т.н. "языковой барьер" даже если сам два слова не можешь связать.
    4. Чтобы грамотно говорить и писать - надо зубарить грамматику регулярно. Лучшие учебники по грамматике: English Grammar in Use и MyGrammarLab, остальное выбирайте на свой вкус. Кроме грамматики есть еще куча нюансов в зависимости от стиля общения/письма: formal/semiformal/informal, в зависимости от страны British/American/Australian English.
    5. Регулярность занятий: выделял 20 - 30 часов еженедельно для самостоятельных занятий, когда стало больше практики на работе - достаточно 4 - 6 часов на самостоятельное изучение и 4 - 6 часов на курсы на работе+speaking club с носителями языка.
    6. Очень помогает понять свои слабые стороны и адекватно оценить текущий уровень сдача экзаменов IELTS, TOEFL.
    7. Многое зависит от целей которые вы перед собой ставите, просто поехать пообщаться в другой стране достаточно с уровнем pre-intermediate+язык жестов :) Если для карьеры - то лучше сразу брать курсы Market Leader или Business Result, English for IT pros и т.д. Во-первых, лексики нужной быстрее наберетесь, во-вторых, материал будет понятней, т.к. тесно связан с вашими интересами.
    8. Есть масса аудиоподкастов и видеоуроков, мне нравятся: EnglishBusiness Pod, ESL Pod, EnglishVid, openlanguage.com
    Ответ написан
    3 комментария
  • Как лучше учить английский?

    @evgeny13
    6 лет в школе и столько же в институте дали мне только словарный запас. Живьем вообще не мог говорить и понимать, что говорят другие. Мог только читать со словарем. Очень помог двухнедельный интенсив в англии, но не благодаря занятиям в классе, т.к. они за редким исключением бестолковые, а благодаря реальному общению с одногрупниками после занятий. Потом еще месяц в Тайланде от рассвета до заката в англоязычной среде и только в конце такого полуторамесячного интенсива я почувствовал приемлемый для себя результат.
    Из того, что есть в инете, наиболее полезен для меня learnathome. Недетская прокачка главных вещей в языке - умения понимать, что говорят другие и строить собственные фразы. Единственный момент - он не для полных нулей. Для полных нулевиков больше подойдут lingualeo или livemocha. Они помогут заучить начальные слова и правила. Duolingo хорош для оттачивания мастерства в письменных переводах.
    Ответ написан
    Комментировать