• Какие есть сервисы по изучению PHP?

    @kaktys123
    HTML, CSS, JS
    на торренте найди курсы учебного центра специалист там много по каким сферам есть и по php есть они старые но для начала нормально. их посмотри. потом по документации остальное сам изучишь что не будет хватать тебе ну и то что есть в новых версиях. Ну и все дальше практиковаться только. Больше бесплатных вариантов не знаю а платные не факт что лучше будут)
    Ответ написан
    Комментировать
  • В сторону какого ЯП для web смотреть с дальнейшей перспективой?

    @sergealmazov
    Выбор языка программирования - это вкусовщина по большей части. И тут могут начаться холивары.

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

    Если вы ищете работу, чтобы стабильность была и все в таком духе, то, как вы понимаете, есть много факторов. Например, страна, где вы проживаете. Если рынок труда требует PHP-программистов (я сейчас к примеру), а вы знаете C#, то будут востребованы те, кто пишет на PHP, а не на C#. Это очень просто выяснить, зайдя на сайты с вакансиями. Посмотрите кто нужен.

    В нашей воображаемой стране рынок предлагает (условно) 10000 вакансий на PHP, и всего 40 на C#. Вот тут вопрос риторический, что вам изучать.

    В другой стране перспективы могут быть другими. Там, к примеру, нужен Ruby.

    Я сейчас очень грубо привожу примеры. Но все же.

    Далее. Допустим, вам финансовый вопрос не важен. Повезло с родителями, умом, вы выиграли в лотерею, изобрели лекарство от смерти или вы высокооплачиваемый актер или певец, ну и просто молодец. В общем, нет у вас такого вопроса. Программирование вам чисто хобби. Тут вы можете не ориентироваться на рынок труда и выбрать экзотические языки. Узнаете про Haskell, LISP, OCaml (хотя и он сейчас возрождается под соусом ReasonML), может начнете писать сайты на C++ в качестве бекенда (и такое бывает), или фронтенда (привет, WebAssembly). Тут тоже действительно не важно, что изучать. Главное, в кайф.

    Для себя я давно решил, что разрабатывать сайты (для себя, разумеется, свои проекты) буду на Clojure/ClojureScript, чем до сих пор и занимаюсь. Свое мнение не навязываю, в холиварах не участвую.
    Ответ написан
    Комментировать
  • В сторону какого ЯП для web смотреть с дальнейшей перспективой?

    Jeer
    @Jeer
    уверенный пользователь
    Приведу субъективное сравнение php и c#.
    Первое, это высокоуровневые языки и если брать разработку одну и ту же задачу можно сделать как на одном, так и на другом языке.
    Второе, как уже говорилось, на php написано большее количество сайтов (для стран СНГ), существует бОльшее сообщество и больше специалистов. Не надо думать, что это хорошо, из-за этого цена на специалиста ниже. Это хорошо для заказчиков, и именно из-за этого факта появляется куча заказов на фрилансе для php, так как нужно именно дёшево. Такие проекты обычно трепят уйму нервов и дают мало денег. Справедливости ради стоит сказать, что некоторые люди могут быть фрилансерами. Многие пробуют, но вот именно хорошо получается далеко не у всех.
    Про документацию было сказано, она уже давно избыточна для обоих языков (русскоязычная в том числе), на это даже не нужно смотреть.
    Если рассматривать какие-то корпоративные разработки. Когда тебя нанимает большая компания, ну или просто в офисе, то работы хватает всем. Вот сколько раз я менял работу, у меня никогда не возникало трудностей, специалистов не хватает. Так вот, по сути, ты будешь делать одну и ту же работу, что на php, что на c# (в разных конторах), но за эту работу на c# ты будешь получать больше денег.
    Вот мой аргумент в форме вопроса: "зачем делать одинаковую работу и получать за неё меньше денег"? Пиши на c#.
    Ответ написан
    Комментировать
  • В сторону какого ЯП для web смотреть с дальнейшей перспективой?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Все самое интересное в вебе уже лет десять как на фронт уехало, так-что что там ловить на бэке я не очень понимаю, кроме экзотических случаев все сводится к написанию еще одного REST-сервера с преферансом и барышнями. На чем писать - не суть как важно. Я могу сравнивать PHP и JS, т.к. с первого мигрировал на последний. Пару лет назад JS я откровенно недолюбливал, но жизнь заставила, я стал его изучать глубже и, внезапно, понял, простил и полюбил... После определенной практики мозг перенастроился на JS, теперь писать на PHP мне некомфортно, т.к. он как JS не умеет. Главное отличие PHP от JS в том, что первый синхронный, а второй асинхронный однопоточный. И с этим придется жить, так-как на бэкенде стиль программирования будет кардинально различаться. Например PHP без свистелок сохранять состояние между запросами не умеет, из-за этого куча накладных расходов. С другой стороны JS умеет, но толку от этого не густо, потому что на более-менее серьезном проекте придется масштабировать и, всё равно, использовать что-то для персиста стейта. С другой стороны если упал PHP, скорее всего это только один поток, а JS упадет - так все коннекты отвалятся, сколько есть. В общем плюсы и минусы есть у обоих, но для меня плюсы JS перевешивают его минусы.
    Ответ написан
    Комментировать
  • Где практиковать python?

    @Nehmar
    www.codewars.com много задач разбитых по уровнях сложности. Доступно для многих ЯП в том числе и для Python
    Ответ написан
    Комментировать
  • Какая ошибка в коде?

    @milast
    Как по мне, стиль написания очень тяжелый для понимания, что тут происходит. Это маленький кусок кода и здесь еще можно разобраться, но в другом случае вы уже сами через пару месяцев будете много времени тратить только на понимание написанного.
    Поясню:
    constructor : function(passengersData) {
        for (passenger in passengersData) {
            passengers.push({
                name: passenger.name,
                age: passenger.age
            });
        }
    }

    По мне так этот кусок кода значительно легче и привычнее воспринимается с первого взгляда, нежели нижеследующий:
    constructor: (passengersData) -> 
        for passenger in passengersData 
            passengers.push 
                name: passenger.name 
                age: passenger.age


    То есть в первом случае я обращал внимание только на название переменных и понимаю происходящее. Во втором случае мне еще приходится напрягаться на изучение синтаксиса.
    Ответ написан
    Комментировать
  • Кто писал свою CMS?

    Epsiloncool
    @Epsiloncool
    Программер, веб-девелопер, гейм-девелопер
    Да, писал на базе PHP. Основной идеей была модульность и автоматическое отслеживание изменений.

    1) Какой системой вдохновлялись или брали за образец?

    Никакой, считал все остальные CMS "недосистемами", недостойными подражания.

    2) Писали ли к ней инсталятор или предполагался другой способ установки?

    Нет, предполагалось, что это PHP скрипт, который начинает работать сразу после установки.

    3) Какой использовали визуальный редактор для админки? Один из 2 известных, что-то другое, или свой?

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

    4) Была ли у неё какая-то специализация - магазины, визитки, лендинги, что-то ещё?

    Нет, модульность подразумевала полную универсальность.

    5) Разделяли ли ядро и дополнительные модули?

    Да, ядро было небольшим, весь функционал был (предполагался) в модулях.

    6) Предусматривалась ли какая-то система шаблонов? (юзали ли шаблонизатор или на php)?

    Да, в качестве шаблонизатора для страниц можно было использовать plain-php или smarty-шаблонизацию.

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

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

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

    Нужно было просто посмотреть существующие CMS и использовать одну из них. Жаль потерянных лет.
    Ответ написан
    Комментировать
  • Экран не включается после закрытия крышки ноутбука?

    wbrapist
    @wbrapist
    Ты в порядке?
    При закрытии крышки, Windows убаюкивает и пробуждает твой ноутбук, а Ubuntu просто "вырубает" его.

    Не сравнивай Windows и Ubuntu. Убунту тебе придётся ковырять, решая какие-то идиотские проблемы, которых нет на той же Винде. Просто прими это как есть. Пусть Убунту не такая красивая, отзывчивая и так далее, но она доступная. Плюс ко всему, ты же не просто так завёл её, что-то тебе понравилось в ней (конечно, если это не тот вариант, где "пацаны посоветовали").

    Немножко погулил за тебя и нашёл много кукареканья про неизлечимый баг, а также про то, что на проприетарных драйверах на видеокарточку такое может быть, попробуй открытый драйвер.
    Ответ написан
    9 комментариев
  • Вы в браузере набрали адрес сайта, нажали Enter. Расскажите максимально подробно о технических процессах происходящих далее?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Действительно, уважаемый. Это слишком. Вряд ли я затрону все тонкости, но попробую наметить примерный путь:

    0) Пользователь вбивает в адресную строку браузера адрес сайта (нажимая клавиши на клавиатуре, которые замыкают определённую дорожку в матрице, по которой происходит определение нажатой клавиши, что через шину USB в какой-то момент передастся OS, где это поймает HID-драйвер и вызовет определённое прерывание, что OS передаст как событие/или_ещё_как в программу, которая вызовет соотвествующую функцию из API менеджера окон, которая изменит содержимое строки и в результате когда-то будет перерисован UI-элемент, а если нажат был Enter, то начнётся следующее).
    1) Браузер вытащит из input'а строку с запросом и посмотрит, похоже ли это на адрес. Если да, то добавит недостающие уточнения (например, http или file протокол, порт и подобные довольно стандартные вещи). Если нет - то скорее всего создаст запрос в поисковую систему, установленную по умолчанию (я более не буду опускаться до таких бессмысленных деталей, как вызовы API-функций, иначе я буду набирать это сообщение ОЧЕНЬ долго). В любом случае на выходе мы по сути получим URL, который надо загрузить. Протокол file:// мы рассматривать не будем, ftp далеко не везде есть, https:// на не хватит вечности, так что остановимся на http, который по сути есть tcp/ip по умолчанию на 80 порту с определённым форматом общения.
    2) Окей, url есть. Теперь нам нужен адрес, к которому обращаться. Так как http это tcp/ip - нам нужен ip адрес. Здесь нам помогают dns-сервера. Обычно, нормальный провайдер устанавливает у себя кэш-сервера dns, которые не обращаются по стопицот раз за vk.com к ответственному серверу com-зоны. Давайте не будем отвлекаться на то, как происходит там общение, если что - вот (вики тем хороша, что часто содержит внизу релевантные ссылки). Скажу лишь то, что на выходе мы получаем ip адрес(а).
    3) Имея адрес мы можем запросить страницу. Собственно, всё что после первого слэша - это как-бы параметры для http-сервера: какую именно страницу запрашивать, он всё же не телепат. Конечно, можно было бы немного схитрить и отправить читать про tcp/ip, но ведь существует и shared-hosting. Ограничемся лишь его упоминанием. Собственно, по полученному адресу отправляется GET запрос, который и обрабатывает сервер, находящийся по полученному IP-адресу.
    4) Сервер же, получив адрес, начинает распарсивать строку, медленно вытягивая нужные данные из баз-данных и настроек, выполняются сотни скриптов, иногда делается ещё не одна сотня различных запросов на другие сервера (здесь и разного вида метрики и разного вида HADOOP и т.д.). Пройдя сквозь скрипты и темплейторы в самом конце мы получаем html-страницу, готовую к употреблению. Её-то сервер и отправит в ответе (после заголовков, конечно).
    5) Вот и началось самое интересное. Получив html страницу браузер начинает жутко надругаться над CPU, HDD и GPU, попутно сжирая тонны RAM и мусоря в swap. Виной всему нереальные для полного соблюдения стандарты от небезызвестной w3c.org. Для облегчения многие делают костыли, вроде webkit, а некоторые и вовсе забивают на него и пилят свой стандарт с преферансом и картёжницами (впрочем, в последнее время становиться лучше). Здесь снова начинаются сотни вызовов API ОС, windows manager'а и прочих библиотек, вроде boost, qt или libpng. В ходе работы в RAM строится макет, по которому потом строится нечто вроде PDF (тоже сильно векторный), что, потом, обрабатываясь быстрыми шейдерами на GPU, выдаётся на экран. Опять же, многое пропущено, но вряд ли кому-либо, кроме парня в свитере с оленями, действительно интересно, как работает GDI, DirectX или OpenGL.
    6) Ах да, мы же забыли про тысячи js-скриптов, миллионы картинок и анимации с котиками, а также о таких дополнительных плюшках, как flash-player или java-weblets. В кратце, что js, то и flash и java - это виртуалка, со специальной архитектурой. Они, виртуалки, конечно разные (хотя flash и js довольно похожи, ещё бы - ECMAScript один и тот же). JS - самый интегрированный внутрь браузера, он же и самый медленный чисто визуально (ибо последние два имеют доступ к быстрому GPU), хотя самый быстрый в попугаях. Второй постепенно вымирает и представляет из себя, так же как и третий специальную shared-библиотеку, о которой браузер как-нибудь узнал и которой скармливает специальное содержимое помечанное специальным тегом html. Третий уже почти умер и встречается лишь изредка или в каком-нибудь энтерпрайзед со страшным legacy-базой. Ну здесь из сылок разве только гугл. Ибо сколько всего - даже не сообразишь. Да и вообще, эта тема ещё скучнее GDI, DirectX и OpenGL и к свитеру с оленями требуются ещё очки с толстенными стёклами, дающие стопицот к терпению и задроству над матаном. Если в кратце, то в случае JS, всё что было загружено в память и не думает выгружаться и формирует этакое дерево - DOM, над которым с помощью специального API и происходят модификации. При этом, перед тем как исполниться, весь JS-код компилируется, в нативный для VM байт-код. То же самое в общем-то и со вторым и третьим, разве только они не имеют доступа к DOM и организовать его - дело тех ещё костылей. Ах да, забыл ещё про Silverlight (или как оно там пишется), который сдох, не успев родиться. Так же как и Java, жив в серьёзном энтерпрайзе, не поскупившийся не "дешёвую" поддержку MS.
    7) Ну... А дальше пользователь нажимает на нужную гиперссылку и всё по новой.

    За кадром остались такие костыли, как ajax, websockets и прочая асинхронная ересь. С ней всё в миллионы раз сложнее. И к очкам со свитером потребуется ещё и... а чёрт их знает, что они там ещё носят. Ну да ладно, я искренне завидую тем парням (и девушкам), которые разбираются во всей этой машине. Целиком. Ибо это лишь верхушка айсберга. Разбавленная не лучшей памятью и ужасным гуглом.

    P.S. Не бейте сильно за грамматические и синтаксические ошибки. Спеллчекер приказал долго жить, да и 5 утра как никак.

    UPDATE
    На хабр выложили неплохой перевод дающий некоторое представление, как браузер ругается над памятью и процессором. Хотя и весьма поверхностное,
    Ответ написан
    26 комментариев
  • Какие тестовые задания дают на верстальщика?

    kumaxim
    @kumaxim
    Web-программист
    Объемные тестовые задания, которые займут более 1-3 часов у потенциального соискателя, всегда должны оплачиваться. Во времена, когда я стоял у руля в одной региональной веб-студии, я в таких случаях делал одно из следующего:
    1. Человек оформляется задним числом, т.е. реально на работу он выходит, скажем, 8 числа, а договор у него с 6. Два дня он делал тест, поэтому логично бы оплатить ему это время
    2. Человек оформляется днем выхода на работу, однако, в течении месяца он может два дня пропустить. Он просто говорит мне, скажем в понедельник,: "Максим, в среду меня не будет" и ОК.

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

    Если ты джун и у тебя вообще нет ни одной работы, тогда сделай им эту страничку, но с оговоркой, что потом ты ее выложишь к себе на Githab Pages и будешь показывать в качестве примера работы другим компаниям, если они тебя не возьмут по каким-то причинам. По крайней мере, если ты не получишь работу, ты получишь первую работу в портфолио. Плохое портфолио - лучше чем отсутствующее.
    Ответ написан
    1 комментарий
  • Перепрыгивание ладьи через фигуру того же цвета что и она сама?

    Очевидно, надо проверить все промежуточные клетки на пустоту.
    Ответ написан
    Комментировать
  • Что лучше купить б/у мак или новый ноут на Windows?

    6 лет сижу на маке. Пару месяцев назад устроился на новую работу, там к сожалению винда, и это ужас. На маке работаю в раз 5 быстрее. Возможно просто привычка.
    б/у маки брать не рекомендую, лучше уже ubuntu качнуть
    Ответ написан
    1 комментарий
  • На какой бесплатной CMS можно оперативно сделать лёгкий сайт?

    Телепатически выглядит, что Wordpress - то, что вам надо.
    Только будьте аккуратны с плагинами - с ними можно занести заразу.
    Ответ написан
    2 комментария
  • На какой бесплатной CMS можно оперативно сделать лёгкий сайт?

    @user_root
    Fullstack-программист
    WordPress подойдет под ваши требования. Есть ещё очень простая CMS Textolite, которая предназначена для удобного редактирования контента сайта прямо "из браузера". Для лендингов и сайтов-визиток, сделанных на html файлах, очень удобно.
    Ответ написан
    Комментировать
  • Где узнать всё о семантике вёрстки?

    hvdd
    @hvdd
    Кратко о себе
    Давайте разберёмся
    3fb27f0eccd54d829cdc6271fd558024.jpg

    Самый важный и простой шаг — лечение дивянки использование html5 тегов для разметки страницы.

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

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

    Кстати, обязательно читайте комментарии к статьям, они тоже очень полезны.

    P.S. После просмотра этих видео вы поймете, почему картинка под спойлером очень крутая.
    Ответ написан
    1 комментарий
  • Как называется плагин для Sublime Text который автоматически добавляет комментарий в конце закрывающего блока HTML с классами и идентификаторами?

    @flareair
    Если вдруг еще не пробовали, то попробуйте Emmet.
    Он умеет вот так:

    Вводите
    .container|c
    Жмете Tab
    <div class="container"></div>
    <!-- /.container -->
    Ответ написан
    6 комментариев
  • Какие библиотеки, плагины и прочее для верстки вы используете в своих проектах?

    SergGrbanoff
    @SergGrbanoff
    UX/UI Desinger, Front-End Developer
    Фреймворки, библиотеки и плагины для верстки сайта.

    1. Bootstrap - самый популярный HTML, CSS, и JS фреймворк в мире для разработки отзывчивых, mobile-first проектов в вебе.

    2. slick - Адаптивный слайдер для сайта

    3. Owl Carousel 2 - красивый, отзывчивый карусельный слайдер

    4. Fotorama - плагин для создания галереи на сайте

    5. MagnificPopup - плагин для создания модальных окон

    6. FancyBox - построениe всплывающих окон

    7. Mmenu - мобильное меню


    8. bxSlider - отзывчивый jQuery-слайдер для контента


    9. Fullscreen Slit Slider - слайдер с интересной анимацией

    10. parallax.js - эффект Parallax

    Первая 10-ка
    Ответ написан
    Комментировать
  • Возможно ли решить данную задачу?

    @Mercury13
    Программист на «си с крестами» и не только
    1018 — это обычное 64-битное целое. long long в Си, long в Java, int64 в Delphi.

    Очевидно, задача переводная, спичка не только match (это слово у них очень многозначное), но и matchstick. Причём переводил то ли автомат, то ли редкий надмозг, пример неговорящий, и откровенно непонятно: то ли где находится число 11, то ли что на 11-й позиции. Будем решать 2-ю задачу: что на 11-й позиции.

    1. Определить количество разрядов (для этого хватает несложного цикла) и какой номер у данного числа среди N-значных чисел.
    2. А теперь находим, сколько есть N-значных чисел из M спичек. Рекуррентное соотношение:

    Q[N, M] = sum{k = 1..9} (Q[N−1, M−q(k)]), если N — найденная нами значность, но не 1-ца,
    Для остальных N формула та же, но суммирование 0…9.
    q(0) = 6, q(1) = 2, q(2) = 5, и т.д. — кол-во спичек в цифре.
    Граничное условие: Q[0, 0] = 1, Q[0, M] = 0 для остальных M.
    «Методом выкручивания рук» также примем, что для отрицательных M все Q равняются 0.

    Решаем рекуррентное соотношение динамическим программированием.
    3. А теперь самое интересное: воспользовавшись таблицей динамического программирования, находить цифру за цифрой, начиная со старшей.

    Например, у нас 15-е число. Первый шаг опустим, поверьте мне: это 4-е двузначное, начиная с нуля.
    2-й шаг.
    Q[1,2] = 1
    Q[1,3] = 1
    Q[1,4] = 1
    Q[1,5] = 3
    Q[1,6] = 3
    Q[1,7] = 1
    Q[2,4] = 1
    Q[2,5] = 2
    Q[2,6] не вычислял, главное — запредельно большое.

    Q[2,0]…Q[2,3] равняются нулю.
    Вычитаем Q[2,4] — получается 3.
    Вычитаем Q[2,5] — получается 1.
    Вычитаем Q[2,6] — не получается. Итого у нас шесть спичек, остаётся 1.

    3-й шаг, работаем по цифре.
    Ноль, Q[1, 6−6] = 0. Остаётся 1.
    Единица, Q[1, 6−2] = 1. Остаётся 0.
    Двойка, Q[1, 6−5] = 0. Остаётся 0.
    Тройка, Q[1, 6−5] = 0. Остаётся 0.
    Четвёрка, Q[1, 6−4] = 1. Не вычитается, остаётся 2 спички, 1 знак и номер 0. Записываем цифру 4.
    Ноль, Q[0, 2−5] = 0. Остаётся 0.
    Единица, Q[0, 2−2] = 1. Не вычитается, остаётся 0 спичек, 0 знаков и номер 0. Записываем цифру 1.

    Итого получили 41.
    Ответ написан
    3 комментария
  • На чем писать интернет-магазин PHP или NodeJS или...?

    @BorisKorobkov Куратор тега PHP
    Web developer
    50 тыс. товаров - это мелкий магазин. Пишите на том ЯП, который лучше знаете.
    Или возьмите любой готовый интернет-магазин.
    Ответ написан
    Комментировать