Search
Write a publication
Pull to refresh
0
0

User

Send message

Создание игры на Javascript Canvas

Reading time13 min
Views71K

Здравствуйте! Я предлагаю вам со мной создать небольшую казуальную игру на нескольких человек за одним компьютером на Javascript Canvas.
В статье я пошагово разобрала процесс создания такой игры при помощи MooTools и LibCanvas, останавливаясь на каждом мелком действии, объясняя причины и логику добавления нового и рефакторинга существующего кода.
Читать дальше →

Всё, что надо знать о точке с запятой

Reading time11 min
Views49K
Автовставка точек с запятой (";") — одна из наиболее спорных особенностей яваскрипта, вокруг которой скопилось много непонимания.

Некоторые программисты ставят ";" в конце каждого оператора, некоторые — только там, где строго необходимо. Большинство же где-то посередине, хотя есть и такие, которые добавляют лишние ";" из стилистических соображений.

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

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

Бикубическая интерполяция, теория и практическая реализация

Reading time7 min
Views46K
Возникла задача визуализировать результаты некоторых замеров на 2-мерной карте, были известны результаты в узловых точках на равномерной сетке, соответственно, задача свелась к интерполяции полученных данных. Основное требование было — качество полученной картинки и минимальное количество артефактов интерполяции, поэтому выбор пал на бикубическую интерполяцию. Статьи в Вики мне показались суховатыми (по крайней мере для человека, который математикой не занимался со школьной скамьи), но там же нашлась ссылка на потрясающую статью, детально описывающую алгоритм. Здесь мы рассмотрим практическое применение данного алгоритма и разберем статью.
Далее

Автоответчик на звонки в Skype на Python

Reading time4 min
Views11K
Привет! Данный топик будет посвящен написанию автоответчика для Skype, который будет принимать за вас звонки, проигрывать приветствие и записывать ответ.
Читать дальше →

Обёртки для создания классов: зло или добро?

Reading time4 min
Views24K
Раз за разом я читаю, что удобные библиотеки для создания классов на Javascript, видите ли, не соответствуют идеологии языка и тем, кто их использует просто необходимо учить язык. Такое говорят невежды, которые и сами толком не разобрались ни в самом языке ни в библиотеках, которые они критикуют. И так часто говорят, что я решил написать этот топик и просто давать ссылку
var Foo = new Class({
	Extends: Bar,
	initialize: function(firstname, lastname) {
		this.parent(firstname);
		this.lastname = lastname;
	},
	sayHello: function(){
		alert(this.lastname || this.firstname);
	}
});

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

Bexf — Фрэймворк для создания расширений

Reading time3 min
Views1.6K
image

Недавно мне пришлось доточить одно расширение Оперы под себя, раньше я ими совершенно не занимался. Открываю код, о ужас! Куча непонятных цепочек пространств имен (window.opera.extension.tabs, window.opera.contexts.toolbar, window.opera.extension.broadcastMessage) которые с первого взгляда и не пойми что таят (я и не ждал легкого пути). Пришлось открыть dev.opera.com для дальнейшего изучения. Расширение я все-таки доточил и решил заодним написать фрэймворк, который значительно упрощает разработку расширений для Оперы.
Читать дальше →

Как не дать программисту написать плохой код

Reading time3 min
Views6.5K
image
Как-то раз в одной неглупой статье один неглупый хабраюзер рассказал одну неглупую идею. Суть её была в том, что в его компании настроена система, контролирующая написанный программистами код в момент попытки добавления его в репозиторий и отклоняющая код, не проходящий по некоторым критериям. Мне идея понравилась. Я (и еще 3 человека) попросили автора развить мысль и написать статью об этом, но она так и не появилась. И я решил разобраться сам.
Читать дальше →

5 вещей, которые вы могли не знать о jQuery

Reading time3 min
Views29K
jQuery очень мощная библиотека, но некоторые его богатые возможности неясны, если вы не изучали исходный код jQuery и не читали книгу jQuery Pocket Reference (автор пишет my new book), вы можете не знать о них. В этой статье представлены отрывки из этой книги — 5 полезных вещей о которых вы могли не знать.

1) Вы вы не обязаны использовать $(document).ready() Если вы хотите выполнить функцию, когда документ готов для манипулированию просто передайте её в $()

2) Вы, наверное, уже знаете, что вы можете передать тэг в функцию $() для создания элемента этого типа и, что вы можете передать атрибуты объекта (в качестве второго аргумента), которые будут установлены на созданный элемент. Вторым аргументом может быть любое свойство, который вы передаете в метод attr(). Кроме того, если какое-либо свойство имеет тоже самое имя, что и событие (click, mouseover), то значение свойства используется в качестве функции обработчика данного события.
Следующий код, например, создает новый элемент, устанавливает три HTML атрибута и регистрирует функцию обработчика события(click) на нем:
var image = $("<img>", {
                  src: image_url,
                  alt: image_description,
                  className: "translucent_image",
                  click: function() {$(this).css("opacity", "50%");}
               });

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

Использование Delegate и Undelegate в jQuery 1.4.2

Reading time5 min
Views8.8K
jQuery
В комментариях к анонсу версии 1.4.2 было много вопросов по поводу 2-х новых методов, появившихся в новой версии jQuery
Вы наверное слышали, что в jQuery 1.4.2 было добавлено 2 новых метода: .delegate() и .undelegete(). Эти два метода предназначены для тех же целей, что и методы .live() и .die() ссответсвенно, они только используют другой синтаксис.
узнать больше

ICQ бот на Python

Reading time5 min
Views13K
Привет %habrauser%! Это мой первый хабротопик. В котором я расскажу как можно сделать ICQ бот на pythone. Бот у нас будет сидеть в сети и отправлять, по запросу пользователя, список последних статей хабра.
Для реализации бота мы будем использовать библиотеку Twisted. Конечно же есть уже специализированные библиотеки для работы с ICQ на python. Такие как py-icq или nanoicq. Но так как с Twisted я был уже знаком, то выбор пал именно на него.
Читать дальше →

Roomle — онлайн сервис для планирования квартиры

Reading time1 min
Views6.1K
Если вы планируете изменения в своей квартире, но CAD системы (ArchiCAD, AutoCAD) не то, с чем вы сталкиваетесь постоянно, то это сервис то что нужно.

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

Свежая подборка jQuery плагинов

Reading time2 min
Views15K
Для меня jQuery ассоциируется с мощной и главное кросс-браузерной JavaScript библиотекой. Можно долго перечислять ее достоинства, холиварить по поводу и без, но думаю, никто не будет против посмотреть подборку интересных плагинов и уроков:
для удобства – каждая картинка ведет на демо

Hover Slide Effect



Демо | Урок
Галерея состоит из нескольких картинок, при наведении на одну из них она эффектно меняется на другую, а при клике на любую картинку — меняются все одновременно.

Остальные плагины

CSS-препроцессор LESS и его интеграция с Ruby on Rails

Reading time3 min
Views5.9K
LESS — новый препроцессор для CSS. Проще говоря, LESS позволяет использовать в вашем CSS-файле переменные, операторы, классы и вложенные конструкции. В этой статье вы узнаете об основных возможностях LESS и о том, как быстро подключить его к популярному фреймворку Ruby on Rails 3.

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

Видеохостинг своими руками

Reading time6 min
Views71K
Эта статья о некоторых технических аспектах реализации бесплатного сервиса для загрузки, хранения и просмотра видео. Будут рассмотрены вопросы настройки серверного программного обеспечения, даны примеры команд для конвертации видео и примеры кода на языке PHP.
Читать дальше →

Про сжатие видео — Введение

Reading time7 min
Views85K
Идут дни, требования к качеству видео постоянно растут. При этом ширина каналов и емкость носителей не могла бы поспевать за этим ростом, если бы не совершенствовались алгоритмы сжатия видео.
Далее пойдет речь именно о некоторых базовых понятиях сжатия видео. Некоторые из них несколько устарели или описаны слишком просто, но при этом дают минимальное представление о том, как все работает.

image
Поиск векторов движения для компенсации движения (-: Об этом далее...
Читать дальше →

Выбор VPS в Германии и установка на него Archlinux

Reading time3 min
Views38K

Задача и выбор площадки


Задача: выбрать виртуальный сервер на стабильной немецкой площадке, с недорогим трафиком и ценой до 20 евро в месяц и установить archlinux.

VPS

Поиск по хабру дал несколько полезных статей и еще один ресурс от которых можно оттолкнуться.
В итоге выбор пал на трех претендентов: server4you.net, hetzner.de, hosteurope.de.
Читать дальше →

Реанимируем dctc для борьбы с ложными файлами

Reading time3 min
Views701
Года 4 назад у меня родилась идея — написать бота, который бы отслеживал активность в нашем локальном DC-хабе — просто логировал чат и выполнял простые команды в приват. За пару вечеров был найден прекрасный консольный клиент — dctc, с которым можно взаимодействовать через unix-socket; а ещё за пару вечеров — написан простенький бот на php. При создании бота были внесены первые поправки в код dctc, чтобы он не посылал странные команды на сервер. Через некоторое время меня сделали модератором на этом самом хабе и я начал безжалостно банить. Но удобной системы для отслеживания количества банов у конкретных людей не было, но администратор каждые 5 минут генерировал информацию по текущим банам — ещё несколько убитых вечеров — и вот администрация обрела лёгкую возможность отслеживать порядковый номер бана.

Спустя ещё несколько месяцев в сети стали появляться фэйки — это когда, например, скачиваешь Шрэка, а там вовсе даже не Шрэк, а красная шапочка и трое непонятных мужиков… Некоторое время боролись своими силами, но душа поэта не выдержала — и я решил улучшить бота.
что же было сделано и как всё это заиметь себе?

Успешный опыт создания нового бизнеса

Reading time3 min
Views4.3K
На Хабре присутствует много постов на темы «как начать свой бизнес», «где снять офис», «сколько я потратил на оформление» и т.д. Очень печально, что многие из этих статей заканчиваются словами надежды, что через полгода-год я опишу, что получилось, а что нет. Спустя полгода-год не так много пользователей в итоге могут описать, что получилось, ведь не многим удалось добиться успеха, а свои ошибки мы не любим освещать.

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

Использование HDAPS в ноутбуках ThinkPad под Linux когда это необходимо

Reading time5 min
Views4.1K

Вместо введения


Став относительно недавно счастливым обладателем ноутбука Lenovo ThinkPad T410, моим первым
политическим решением стала смена государственного устроя — установка удобного для меня Linux в
качестве основной операционной системы. Посланником, несущим доброе и светлое, был выбран дистрибутив Debian Testing (Squeeze).

Согласитесь, что мало смысла покупать ноутбук бизнес-класса и не использовать хотя бы на максимум все его возможности.

HDAPS


Среди множества не только интереснейших и полезнейших плюшек, предоставляемых ThinkPad'ами есть одна о которой и пойдет ниже речь. Имя ей — HDAPS (Hard Drive Active Protection System; активная система защиты жесткого диска). Принцип ее работы подобен автомобильным подушкам безопасности, срабатывающих при аварии. На материнской плате ноутбука присутствует микрочип, контролирующий внезапное ускорение корпуса компьютера. Например, падение ноутбука. При возникновении такой ситуации система мгновенно блокирует головку жесткого диска. Когда система возвращается в прежнее, более спокойное, состояние, винчестер запускается в нормальном режиме.

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

PHP и Dropbox. Удаленное хранилище пользовательских файлов

Reading time3 min
Views15K

Применение


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

Решение


В качестве решения я предлагаю схему PHP<->Dropbox. Dropbox нам интересен тем, что каждому новому пользователю выделяеся 2Gb виртуального дискового пространства, а так же возможность отката на предыдущие версии файлов. Это обеспечивает нам стабильное хранилище, в котором не возникнет случаев безвозвратно удаленных файлов.
Читать дальше →

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Registered
Activity