Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

267,66
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Пусть компьютер сам принимает решение или пишем ИИ для игры вместе

Время на прочтение7 мин
Охват и читатели65K
Вы когда-нибудь задумывались о том, насколько просто написать свой искусственный интеллект, который сам будет принимать решения в игре? А ведь это действительно просто. Пусть для начала он принимает случайные решение, но позже вы можете его воспитать, научить анализировать ситуацию, и тогда он станет принимать осознанные решения. В этой статье я расскажу, как я писал своего бота, а также покажу, как вы за несколько минут можете написать своего. Наш компьютер будет играть в клон игры Трон, а точнее в ту часть, где нужно на мотоцикле победить врагов.

image
Под катом gif-файлов мегабайт на 10.
Начать побеждать

Node.JS + taskset == немного странного юмора

Время на прочтение6 мин
Охват и читатели11K
Регулярно слышу фразу типа «Node.js не подходит для хайлоада».

Захотелось самому посмотреть.

Хотел написать комментарий к той статье, но передумал и написал больше. Автору той статьи, большое спасибо за интересный топик, задело.

В интернете кто-то не прав. Наших бъют! Обидно, да. Для себя выводы кое-какие сделал, но это же мои субъективные цифры. Что думать в целом — не знаю, пишите пожалуйста в каментах своё мнение.

UPD 3 По результатам обсуждения найдено то, что было нужно написать с самого начала, то, что я подразумевал, а именно: что тест не репрезентативный, единственное, что он показывает — что На Моей очень слабой машине нода отстаёт on Nginx на пол порядка всего. Нода, как и Nginx, почти ничего не делают, в этом смысле они «равны». Хотел показать, что есть taskset, что нода может не перегружать проц при определённых условиях, что не нужно верить тестам.

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

UPD 1 немножко по-tag'ал как «юмор», м. б. так будет правильней.
UPD 2 не верьте ни единому слову!

Читать дальше →

Карты для всех, даром

Время на прочтение9 мин
Охват и читатели53K
Программисты — редкие люди. Мы можем сделать абсолютно всё, но интернет отвечает на это зияющей пустотой, где нужно делать абсолютно всё. Особенно если живёшь в непрофильных сообществах. Запросы со всех сторон, тут нужно подлатать, там плагинчик дописать, и никто, кроме тебя. Эта история — про один из таких пробелов, который я надеялся закрыть за неделю, и та неделя всё продолжается. В программе: дорожное строительство и велосипедисты, сайт для обмена картами лучше яндекса, осмеры без осма, архитектура плагинов в форумных движках и интерактивные карты прямо в хабре.

Читать дальше →

IT-книги по свободной цене

Время на прочтение4 мин
Охват и читатели77K
Неожиданно обнаружил, что интернет-магазин books.ru в преддверии Нового Года снова запустил акцию по продаже электронных книг по свободной цене. Акция продлится до 2 января. За списком интересных по моему мнению предложений прошу пожаловать под хабракат.
Читать дальше →

Asm.js стал ещё быстрее

Время на прочтение1 мин
Охват и читатели22K
Компания Mozilla порадовала новостью об очередном улучшении производительности Asm.js. Этот промежуточный язык обеспечивает исключительно высокую скорость выполнения кода, написанного на языках вроде C и C++, является свободной альтернативой Google Native Client и работает в любом браузере (хотя в Firefox — быстрее всего).

Например, после компиляции кода C++ в Asm.js с помощью компилятора Emscripten раньше потеря производительности была примерно двукратной, теперь же код Asm.js медленнее нативной программы не более чем в полтора раза.

Некоторые из проведённых оптимизаций небольшие и незначительные, а другие более серьёзные. Например, Firefox недавно научился оптимизировать некоторые операции с плавающей запятой таким образом, что вместо чисел float64 вычисления осуществляются с менее точными числами float32, что даёт очень большую прибавку в производительности. Соответствующее изменение было внесено в Asm.js, компилятор Emscripten и движок SpiderMonkey.
Читать дальше →

Регистрация на сайте: c начала и до обеда

Время на прочтение7 мин
Охват и читатели11K
Привет хабр!
Я работаю в области web-разработки и на днях у меня появилась интересная задача – необходимо было создать сложную форму регистрации, на которой будет расположено двадцать два (22!) текстовых поля и один большой список с чекбоксами.
Я всегда руководствовался принципом, что большое количество полей на форме регистрации очень неприятно для пользователей, даже если они будут получать материальные бонусы по завершению. Поэтому я всегда старался сделать форму максимально простой, максимум в 4 поля, если это было возможно со стороны бизнеса (заказчика). И даже пренебрегал полем с капчей, использовав вместо нее скрытую js-капчу, или вовсе отказывался от нее. Но все попытки донести это заказчику были безуспешны.

Под хабракатом я попытаюсь создать максимально универсальное решение подобных задач

Читать дальше →

Запуск проекта GeeksLab и анонс конференции «Happу New Front-End! О фронтенде по-новому!» 18 января в Одессе

Время на прочтение2 мин
Охват и читатели4K

Приветствую Хабрасообщество!

В 2014 году команда RootUA Media запускает новый образовательный проект GeeksLab. В рамках проекта будут проводиться узкоспециализированные мастер-классы, семинары, различные встречи и конференции. В состав проекта GeeksLab вошли такие мероприятия: FOSS Sea, WebCamp, Odessa Innovation Week, Startup Weekend Odessa, Odessa StartUP Coffee и IT Tech Meeting (в прошлом FOSS Fest и FOSS Meeting).

Список мероприятий проекта GeeksLab пополнит конференция: «Happу New Front-End! О фронтенде по-новому!». Она пройдет 18 января в Одессе на базе Коворкингового пространства HUB Odessa. В рамках конференции будут подняты темы современной верстки, разработки фронтенда на чистом JavaScript, а также использования различных CSS и JavaScrpt фреймворков для построения фронтенда веб-проектов.
Читать дальше →

Панель отправка исходящих факсов средствами Asterisk и Node.js

Время на прочтение5 мин
Охват и читатели10K
Факс — это одна из тех вещей, которой многие желают скорейшей смерти. Тем не менее в регионах этот способ передачи информации по прежнему используется очень часто. Так и в нашей организации появилась необходимость по возможности упростить данный процесс. После изучения уже существующих здесь статей я пришел к выводу, что представленные решения не совсем подходят в моей ситуации. В частности, хотелось немного более интеллектуальную систему, чем просто основанную на call файлах. Такую, чтобы она могла перезванивать несколько раз в случае неудачной отправке. При этом пользователь должен видеть текущее состояние доставки. В совокупности с тем, что мне давно хотелось посмотреть на веб-разработку в целом и node.js в частности, было принято решение написать свой велосипед сервер исходящих факсов. Что из этого получилось можно увидеть под катом.
Читать дальше →

Сортировка при помощи HTML5 Drag'n'Drop API

Время на прочтение5 мин
Охват и читатели38K
Sortable.js — минималистичная библиотека для современных браузеров и touch-устройств, не требующая jQuery.

Как вы уже догадались из названия, библиотека предназначена для сортировки элементов при помощи drag’n’drop. Стандартным решением в таких случаях является jQuery UI/Sortable, а это ни много, ни мало 64 кб + 10 кб. Итого 75 кб gzipped в проекте, где jQuery не используется совсем. Относительно недавно на Хабре уже была статья о том, как реализовать похожий функционал, но опять же на jQuery, да и touch-устройства в предлагаемом решении не поддерживаются.

Читать дальше →

Мурлыканье кошки на javascript

Время на прочтение2 мин
Охват и читатели23K
Недавно появилась идея сгенерировать кошачье мурлыканье на javascript. Поискав в интернете эту тему — ничего не было найдено, значит надо реализовать!
Исследовав каким образом это вообще можно сделать — решил использовать такую замечательную вещь, как Web Audio API.
Современные браузеры уже более-менее нормально поддерживают эту технологию.
Читать дальше →

Несколько полезностей по работе с NPM

Время на прочтение2 мин
Охват и читатели91K
image

NPM — пакетный менеджер для node.js, аналог GEM в RoR. В статье несколько советов по его использованию.

Установка пакетов


Все знают
# Устанавливает пакет express
npm install express

Какие варианты еще есть?
Читать дальше →

NodeSchool — интерактивные уроки по Node.Js

Время на прочтение1 мин
Охват и читатели39K
image

Все мы знаем теоретический курс по node.js, недавно выпущенный Ильей Кантором. Отличный материал, свежий, полный и к тому же на русском. Но он теоретический, а нам-то хочется все потрогать, попробовать самим, получая реальный опыт. В этом нам поможет, недавно стартовавший, бесплатный проект NodeSchool.
Читать дальше →

Invisible.js — одни модели и на клиенте и на сервере

Время на прочтение2 мин
Охват и читатели7.6K
Invisible.js — библиотека, позволяющая использовать одни и те же модели данных как на клиенте, так и на сервере. На сервере работает поверх express.js на клиент отдается через browserify.

Что есть:
  • возможность один раз описать модель (включая типизацию и валидацию) и использовать ее на клиенте и на сервере,
  • связь с MongoDb (при записи на сервере — объект пишется сразу в базу, при записи на клиете, используется RESTful API, автоматически созданное на сервере),
  • хуки на изменение данных (события бегают туда-сюда через socket.io).
Читать дальше →

Ближайшие события

Очень интересный ролик про StarlingJS+Sublime+COLT

Время на прочтение1 мин
Охват и читатели4.2K
Наш друг из Македонии сделал игру на StarlingJS (Canvas), аналогичную показанную Bret Victor в его легендарной презентации.
Плюс, в ролике он показывает преимущества программирования с livecoding, «умные автокомплиты» и кейсы в Sublime Text.

Обзор литературы прочитанной за два года

Время на прочтение19 мин
Охват и читатели55K
Привет Хабра! Когда я только начинал заниматься веб-разработкой, то даже не мог представить, сколько литературы нужно прочесть и какой объем знаний получить, чтобы стать нормальным специалистом. Кроме того, сфера постоянно меняется, и знания устаревают.

Для меня проблема заключалась в том, что я не люблю читать и чтение расцениваю исключительно как неизбежную работу, которую необходимо проделать, чтобы добыть материал из печатного вида. Но так получилось, что для повышения своей квалификации читать приходится. Я установил для себя норму — одна книга в месяц. С одной стороны, это мало, с другой, — много (если действительно придерживаться плана). Ну и раз уж мне приходится читать в принудительном порядке, это должно давать какую-либо выгоду. Каждая книга — это мучение, и я не вижу смысла тратить время на литературу, которая мне ничего не даст после. Поэтому каждый раз, попадая в книжный и держа в руках очередную книгу, я задаю себе вопрос: «А зачем?! Какой толк от этих кусков бумаги?! Что я вообще тут делаю?!». Чтобы вы не тратили время на книги, которые мне кажутся бесполезными, я решил написать небольшой обзор прочитанной за два года литературы и прочих найденных источников знаний. Весь материал ниже так или иначе связан с веб-разработкой и различными её аспектами. Ниже описаны только те книги, которые я прочитал. Те книги, которые «не осилил»/не дочитал (например, про NodeJS и пару фреймворков) не привожу.
Читать дальше →

Вышел Meteor версии 0.7.0

Время на прочтение1 мин
Охват и читатели4.9K

Meteor.js — открытый (MIT) фулстек JavaScript фреймворк (и клиент и сервер). Сегодня вышла версия 0.7.0 (в начале 2014 выйдет версия 1.0).

Основное изменение — поддержка MongoDb OpLog. Это дает возможность полноценного горизонтального масштабирования (см. мой перевод). В предыдущей версии Метеора, в случае нескольких серверов, обновления данных могли приходить с задержкой до 10 секунд — теперь такой проблемы нет.

Полный список изменений смотрите здесь.

П.С. На хабре появился новый хаб: Meteor.JS — подписывайтесь.

Как масштабировать Meteor

Время на прочтение4 мин
Охват и читатели7.7K
От переводчика: MeteorJS — открытый (MIT) фулстек JavaScript фреймворк (и клиент и сервер). Текущая версия 0.7.0 — в начале 2014 планируется выход версии 1.0. Публикации на хабре: 1, 2, 3.

Подготовка к масштабированию


Диаграмма компонентов:
image
Здесь три сервера Метеор, один MongoDb-сервер и HaProxy-сервер, как балансировщик нагрузки. Для поддержки SSL поставим Stud перед HaProxy.

Давайте обсудим компоненты и их настройку.
Читать дальше →

Отладка Chrome Dev Tools из Chrome Dev Tools

Время на прочтение1 мин
Охват и читатели4.5K
Привет, Друзья.

Просто хотел поделиться небольшим советом: Если вам когда-нибудь будет любопытно почитать исходники Google Chrome Dev Tools, то к ним можно подцепиться средствами самого Хрома.

Откройте Dev Tools в плавающем окне и нажмите Ctrl + Shift + J (на макоси Cmd + Option + J). Вот скринкаст:



Понимаю, что это очевидно. Но вдруг кому-то пригодится!

Feathers.js — реактивный JavaScript-фреймворк поверх Express

Время на прочтение2 мин
Охват и читатели16K
image
Feathers.js — реактивный JavaScript фреймворк вдохновленный Sails, Flatiron и Derby. Приложение на feathers.js напоминает обычное expressjs приложение, только вместо
var app = require('express')();
нужно будет написать
var app = require('feathers')();

Для коллекций создается полноценный RESTful API, синхронизация ведется через события SocketIO.
Читать дальше →

Ход конем с использованием canvas

Время на прочтение6 мин
Охват и читатели8.5K
image
Посмотреть.

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

Одно из такой задач стала — Ход конем. Суть ее в том, что необходимо найти маршрут шахматного коня, проходящего через все поля доски по одному разу. Реализовать задачу решил с использованием canvas, немного jQuery, с учетом в будущем сделать плагин.
Подробности