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

    vawsan
    @vawsan
    Frontend Developer
    Есть дядьки, которые развивают стандарт. Они делают черновики новых фич, потом обкатывают, собирают фидбек и продвигают идею их внедрения в разных движках. А разработчики браузеров наперегонки стараются это реализовать, чтобы их браузер был самым современным....
    https://www.w3.org/TR/html51/
    Ответ написан
    Комментировать
  • Есть ли способ поставить популярные браузеры всех версий на Windows для тестирования клиентской части?

    ipswitch
    @ipswitch
    IT-инженер
    VirtualBox + образы ОС с браузерами.
    Можно гуглить готовые, можно "вырастить" самому.
    Ответ написан
    1 комментарий
  • Как создают анимацию в html5 canvas?

    GreyCrew
    @GreyCrew
    Full-stack developer
    Как вариант для конкретных задач можно юзать специальные canvas библиотеки.
    К примеру konvajs.github.io для обычных анимаций (лично советую, очень удобный ООП подход),
    или wellcaffeinated.net/PhysicsJS для простых физических анимаций.
    Для серезного моделирования можно юзать three.js

    Но конечно будет плюсом если знаешь основы чистого canvas
    Ответ написан
    Комментировать
  • Как создают анимацию в html5 canvas?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    https://developer.mozilla.org/ru/docs/DOM/window.r...
    Никаких таймеров для анимации
    Ответ написан
    Комментировать
  • Как создают анимацию в html5 canvas?

    twobomb
    @twobomb
    Как делаю я. Обычно у меня есть функция основная функция называю ее handler. Она постоянно вызывается. А в ней уже вызываются другие функции. Ну вот мой пример https://jsfiddle.net/twobomb/b05nmjs5/
    Разработка на канвасе у меня обычно начинается со следующего кода
    var canvas, ctxW = 500, ctxH = 500,ctx;
    
    	window.onload = function(){
    		canvas = document.createElement("canvas");
    		canvas.width = ctxW;
    		canvas.height = ctxH;
    		document.body.appendChild(canvas);
    		ctx = canvas.getContext("2d");
    		handler();
    	}
    
    	function handler () {
    		 ctx.clearRect(0,0,ctxW,ctxH);
       //Тут вызов функций и прочие реализации
    
    		 setTimeout(handler,1000/60);
    	}
    Ответ написан
    Комментировать
  • Как создают анимацию в html5 canvas?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Используют свои наработки или библиотеки.
    Заранее, создают структуру приложения.
    Анимация HTML5
    PS: сводная таблица движков HTML5
    Ответ написан
    Комментировать
  • Есть ли возможность восстановить конфиг апача?

    @AKorytov Автор вопроса
    Кому интересно, часть конфига получилось восстановить при помощи этого:
    forums.whirlpool.net.au/archive/2189742
    Ответ написан
    Комментировать
  • Как заставить nginx запускать lua скрипты через luaJIT?

    starius
    @starius
    программист, аспирант МГУ
    Надо устанвить LuaJIT и пересобрать nginx с LuaJIT вместо Lua.
    В Debian для этого применили такой патч (баг):

    diff -ruN nginx-1.6.0.orig/debian/modules/nginx-lua/config nginx-1.6.0/debian/modules/nginx-lua/config
    --- nginx-1.6.0.orig/debian/modules/nginx-lua/config	2014-04-24 13:23:46.000000000 -0300
    +++ nginx-1.6.0/debian/modules/nginx-lua/config	2014-07-24 03:48:10.816586362 -0300
    @@ -131,9 +131,9 @@
                 ngx_feature="Lua library in /usr/"
                 ngx_feature_path="/usr/include/lua5.1"
                 if [ $NGX_RPATH = YES ]; then
    -                ngx_feature_libs="-R/usr/lib -L/usr/lib -lm -llua5.1"
    +                ngx_feature_libs="-R/usr/lib -L/usr/lib -lm -lluajit-5.1"
                 else
    -                ngx_feature_libs="-L/usr/lib -lm -llua5.1"
    +                ngx_feature_libs="-L/usr/lib -lm -lluajit-5.1"
                 fi
                 . auto/feature
             fi


    ```
    Ответ написан
    Комментировать
  • Что учить, чтобы расти в сторону DevOps?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    DevOps расшифровывается как Development Operations.
    В повседневные задачи DevOps инженера входит управление инфраструктурой приложений (в основном веб).
    Что должен знать и уметь такой инженер - например по клику кнопкой в нужном датацентре произошел деплой приложения. DevOps должен суметь создать этот интерфейс с кнопкой и автоматизировать процесс приобретения инстанса (например в AWS), установки операционной системы и необходимых пакетов, доставки приложения на этот инстанс, прописывания всех настроек в приложении и приведение приложения в полную боевую готовность, т.е. состояние, в котором к приложению можно пускать пользователей.

    По пунктам, что нужно знать и уметь:
    • неистово учиться и гуглить
    • сетевые технологии, на уровне маршрутизации, TCP/IP, DNS, SMTP и остальных протоколов начиная с 3 уровня модели OSI
    • сетевые операционные системы (преимущественно семейства Linux) на уровне автоматизирования установки, обновления, настройки безопасности и мониторинга
    • системы виртуализации (Xen, OpenVZ) и контейнеризации (Docker, Vagrant)
    • настраивать сервера и мигрировать конфигурации, например перейти с Apache на Nginx, или с PHP на HHVM
    • Chef
    • Puppet
    • Ansible
    • Capistrano
    • VCS
    • AWS/OpWorks/CloudFormation/CodeDeploy, OpenStack
    • Munin/Logstash/Kibana и другие связки для мониторинга
    • Continuous delivery
    • Программировать на Bash, Ruby, Python, Go, Perl, уметь понимать конфиги на самых экзотических языках, например YAML
    • TDD
    • продукты hashicorp
    • автоматизировать создание и восстановление бэкапов баз данных
    • масштабировать приложения по горизонтали (настраивать балансировщики, реверс-проксирование, шардинг и репликацию в базах)
    • рассчитывать и оптимизировать издержки на поддержание инфраструктуры приложений
    • видеть будущее инфраструктуры приложения и компании, двигать инфраструктуру в это будущее


    DevOps - это хипстерный вариант программирующего сисадмина. Нужно уметь очень быстро учиться и непрерывно осваивать новые технологии. Если какая-то технология только в альфе, вы уже должны учиться уметь ею пользоваться. В момент беты вы ее уже должны обкатывать в пилотных проектах, а релиз должен автоматизированно устанавливаться в продакшене.
    Ответ написан
    13 комментариев
  • Что все-таки возвращает конструктор Number?

    risentveber
    @risentveber
    fullstack web developer
    Возвращает специальный объект-обертку, у кототрой метод valueOf() (который вызывается при приведении объекта к числовому виду - в данном случае при сложении) возвращает исходное число.

    Интересная особенность, характерная для всех объектов:
    var a = new Number(1)
    var b = new Number(1)
    console.log(a == b)//пишет false

    A выражение
    {} + 1
    вообще не является выражением сложения объeкта с числом. Нужно писать так:
    ({}) + 1 // => "[object Object]1"
    Ответ написан
    Комментировать
  • Что все-таки возвращает конструктор Number?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Оператор new всегда возвращает объект, то же кстати происходит при передаче контекста в функцию через call или apply
    В js все что угодно (кроме undefined или null) может быть обернуто в объект, сделано это для того, что бы примитивы (числа, строки) имели методы из прототипа своих конструкторов

    У числа нет свойства Number, а в консоли Вы видите то, что возвращает Number.prototype.toString()
    Ответ написан
    Комментировать
  • Как грамотно спроектировать формат сообщений между микросервисами?

    @rare
    Накидал для вас пример. Посмотрите тут.
    Может будет полезным.
    Ответ написан
    Комментировать
  • Как грамотно спроектировать формат сообщений между микросервисами?

    @Vdm17
    PHP Developer
    Судя по вашему сообщению, подготовительную работу вы сделали (т.е. микросервисы слушают определенные очереди в RabbitMQ).
    Насчет формата данных - отправляйте в очередь сообщения в JSON-формате. Парсеры для него есть для любого языка. А вот что именно отправлять - так это уже зависит от того, что делает тот или иной микросервис. У каждого должен быть описан и задокументирован формат данных, набор полей и т.д. И уже другой микросервис (например, авторизация), который подписан на события из микросервиса аккаунтов должен понимать откуда он получил данные и правильно их обрабатывать.
    Ответ написан
    1 комментарий
  • Docker как локальный web-сервер (замена Open Server, Xampp и т.д.)?

    IvanCher
    @IvanCher
    Мысли шире
    Странные конечно ответы отмечены решениями, меня это несколько удивляет.
    Немного расскажу автору вопроса про вагрант и докер, в чем разница.
    Вагрант - это лишь обертка над virtualbox для создания заранее сконфигурированной машины в виртуалбоксе. Польза от него есть, но только для разработчиков. На продакшн сервер Вы не сможете развернуть то же окружение при помощи вагранта.

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

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

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

    На счёт того, как конкретно развернуть на докере ламп или что-то подобное, сперва прочтите Getting started на оф. сайте докера, затем гляньте на докхабе образы для веба, там их несколько и каждый описывает инетерсные подходы.

    Удачи, надеюсь мой комментарий был Вам полезен.
    Ответ написан
    11 комментариев
  • Карьера программиста после 30+. Миф или реальность?

    @sputnic
    Android Developer
    Меня в 30 взяли на энтри-левел позицию
    Ответ написан
    3 комментария
  • Логгер для NodeJS?

    mahnunchik
    @mahnunchik Автор вопроса
    https://about.me/vlasenko
    Прошёл год, написан и используется свой логгер. Ниже хочу описать причины и что получилось.

    Требования поменялись и в настоящее время они отлично ложатся на идеологию 12 factor app 12factor.net/logs

    А именно: логгер и само приложение не занимаются записью лога ни в файл ни в базу. Никаких транспортов. Лог пишется только в stdout.

    Мотивация:
    1) Мы получаем отличный лог в консоле во время разработки просто запустив приложение. Без всяких "девелоперских" режимов транспортов.
    2) В продакшене сбором и транспортом лога занимается то, что запускает наше приложение (forever, upstart, supervisor). Процесс транспортировки лога лежит не на самом приложении - это развязывает руки в использовании как своих сервисов агрегации логов (logstash), так и сторонних (loggly).
    2) Как логгер, так и само приложение избавлены от багов "толстого" логгера и транспортов.

    Требования к реализации:
    1) Быстрый старт - возможность начать использовать логгер без первоначальной конфигурации
    2) Пространства имен
    3) Гибкость в настройке формата сообщений (которые мы пишем в stdout)

    Вот так получился mag логгер

    Быстрый старт
    var logger = require('mag')();
    logger.info('my great application is running!');


    Пространства имен
    var mag = require('mag');
    var logger = mag('my-app');
    logger.info('my great application is running');


    Настройка формата сообщений.
    Мы можем подключать mag сколько угодно раз, даже в подмодулях. Подключив один раз модуль mag-hub - все сообщения пойдут через него. mag-hub - это стрим в режими объектов. Мы можем читать из него и делать с объектами логов всё что угодно, записав потом в stdout конечно.

    При написании подмодуля приложения о логировании заботиться также не нужно: https://github.com/mahnunchik/mag#for-module-developers

    Ссылки:
    1) mag logger
    2) API логгера
    3) Модуль агрегации логов в одном стриме mag-hub
    Ответ написан
    2 комментария