Задать вопрос
  • Какие существуют способы защиты стилей CSS?

    opium
    @opium
    Просто люблю качественно работать
    мне кажется мания величия затмила ваш мозг глупейшими проблемами, вместо того чтобы код красиво оформить и выкладывать на гитхаб и делиться им, вы решили его зачем то прятать, просто задумайтесь, что хорошего вы сделали в жизни и почему не выкладываете его на гитхаб?
    Ответ написан
    11 комментариев
  • Как заработать новичку на низкоуровневом программировании?

    svd71
    @svd71
    найди на хабре одного товарисча с ником dihalt и напиши ему в личку. Он когда то хвалился, что может работу делить. Не за бесплатно, конечно.
    Ответ написан
    Комментировать
  • Как называется архиректура такой игры?

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

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

    Событие в очереди представляет собой некое описание события, а также метку времени, по которой событие должно произойти (например, здание строится 2 часа, значит в качестве метки будет записано время на два часа позже отправки запроса на постройку).

    В бесконечном цикле сервер делает следующее: выбирает все события, время завершения которых уже наступило, и обрабатывает их: изменяет уровни/координаты объектов, пересчитывает характеристики, изменяет флаги, удаляет событие из очереди.

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

    То все все делается на сервере. Клиент может только: получить доступную ему информацию на текущий момент, получить информацию о времени завершения всех событий, относящихся к нему, послать запрос на добавление какого-либо события в очередь.
    Ответ написан
    3 комментария
  • В чем заключается работа веб мастера ?

    Diode-Bot
    @Diode-Bot
    веб мастер - это как тыжпрограммист, только в вебе
    Ответ написан
    Комментировать
  • Как изменить вид url сайта php?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    в стародавние времена это делалось целиком и полностью на mod-rewrite.

    Сейчас же проще использовать какой-нибудь микро-фреймворк, аля silex/slim и тд.
    Ответ написан
    Комментировать
  • Кто знает простую PHP библиотеку для работы с MySQL?

    Для создания админки и удобной работы с БД отлично подойдёт Yii. Отличный PHP-фреймворк, документации полно, есть отличное русскоязычное сообщество
    www.yiiframework.com/doc/guide/1.1/ru/database.ar
    Ответ написан
    4 комментария
  • Что делать если с ростом проекта архитектура превратилась в кашу и быдлокод?

    dizballanze
    @dizballanze
    Software developer at Yandex
    Главное тесты пишите, иначе рефакторить проект практически нереально.
    Ответ написан
    2 комментария
  • Что делать если с ростом проекта архитектура превратилась в кашу и быдлокод?

    demimurych
    @demimurych
    Просто пишите дальше код. Развивайтесь.
    Ведь если бы Вы этого не делали - не написали кучу быдло кода, сейчас бы вы не понимали что можете все сделать лучше.
    Есть время - занимайтесь рефакторингом. Это крайне интересно.
    Ответ написан
    Комментировать
  • Где обучиться верстке?

    RadiationX
    @RadiationX
    Front-End разработчик
    Слушай, лучше всего ты сможешь обучиться верстке, верстая что-то - какой-нибудь макет допустим. Может тебе покажется что ты тратишь время зря, но самостоятельно верстая ты научишься более правильно верстать, потому-что ты сам будешь исправлять различные ошибки и справляться с проблемами.
    Ответ написан
    Комментировать
  • Как организовать вечный онлайн в соцсети ВКонтакте?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    https://debian.pro/1618
    Самое простое будет, наверное.

    Заодно и защиту от самодурства самизнаетекого получите.
    Ответ написан
    4 комментария
  • Как побороть боязнь чистого листа?

    @killla
    Иди грузчиком работать. Кодинг это не твоё.
    Ответ написан
    24 комментария
  • Как побороть боязнь чистого листа?

    Meehalkoff
    @Meehalkoff
    Просто перестань придумывать отговорки и начни уже делать то, что нравится. Соберись, тряпка! Жизнь слишком коротка, чтобы тратить ее на свои страхи и комплексы ;)
    Ответ написан
    Комментировать
  • Вы в браузере набрали адрес сайта, нажали 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 комментариев
  • Что выбрать для высоконагруженного сайта?

    Rpsl
    @Rpsl
    Кратко о себе
    У вас "преждевременная оптимизация".
    Ответ написан
    Комментировать
  • Что выбрать для высоконагруженного сайта?

    @rowdyro
    Нанять людей у которых есть данный опыт.
    Ответ написан
    1 комментарий
  • Большой веб проект у себя дома - это реально?

    Tkreks
    @Tkreks
    Системный инженер
    Что за школьничество, ей богу. Вы уж извините, если, как вы говорите вы планируете строить такой крупный проект, то для начало надо было провести расчеты. И первое с чего нужно было начинать - это затраты. По скольку Вы мыслите о размещение у себя дома, то я смело могу думать, что у вас только на уровни планов. Вот некий план, по которому Вам бы хорошо продумать все.
    1 - Идея проекта (уникальная или нет)
    2 - Планируемая посещаемость (если вы только запускаете свой проект, рассчитывать на 100 000 уников глупов, повезет если 100 будет набираться, особенно если идея не нова)
    3 - Планируемые статьи доходов
    4 - Планируемые статьи расходов и тут лучше остановиться поподробнее.
    Покупка оборудования? Вот так с ходу? Когда еще альфы версии нет...Пффффф...
    Может разумнее сделать так - Делаете проект (если несколько человек работают над ним) то запустите на домашнем компе необходимые сервисы и работайте совместно (ОБЯЗАТЕЛЬНО ПЕРЕД ЭТИМ ПРОДУМАТЬ МАШТАБИРУЕМОСТЬ ПРОЕКТА). После того, как готов предрелизный вариант - тестите все. В том числе и досите сами себя. После арендуете виртуалку, исходя из требований по минимальным ресурсам (Для пилотного запуска) берете напильник и пилите пилите пока блестеть не будет. Затем должен начаться маркетинг...После того как видите что народ накатывает, можно увеличить ресурсы на виртуалке, и делать это до тех пор, пока с нагрузкой она будет справляться. Когда лимиты исчерпаны, ресурсов жутко не хватает, вспоминаете, что когда то вы продумали маштабируемость, и можете арендовать уже дедитектед сервер, а ваши машины которые с ебее, можете оставить дома и использовать их для репликации...
    Все сказаное выше, мое имхо...
    Ответ написан
    5 комментариев
  • Возможно разобраться в Битриксе за 2 дня?

    Sanes
    @Sanes
    Познакомиться за 2 дня можно.
    Ответ написан
    Комментировать
  • Как доверстать такой макет?

    Нашелся добрый человек который Вам сверстал это в прошлом вашем вопросе.. Но у Вас все еще хватает наглости просить дальше..
    Для подобных заданий создали фриланс!!!
    Ответ написан
    6 комментариев