Search
Write a publication
Pull to refresh
0
0
Алексей Мелихов @HoochieMen

Web-developer

Send message

Использование 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() ссответсвенно, они только используют другой синтаксис.
узнать больше

Перегрузка функций в JS

Reading time4 min
Views57K
Как известно, в JavaScript нельзя создать несколько функций, различающихся только списком параметров: последняя созданная перезапишет предыдущие. Про различие на уровне типов параметров говорить не приходится вообще. Обычно, если программист хочет создать функцию с множественным интерфейсом, он пишет что-то вроде такого:
  1. // getRectangleArea(x1, y1, x2, y2) или
  2. // getRectangleArea(width, height)
  3. function getRectangleArea(x1, y1, x2, y2) {
  4.   if(arguments.length==2) return x1*y1;
  5.   return (x2-x1)*(y2-y1);
  6. }
* This source code was highlighted with Source Code Highlighter.

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

Особенности хранения сессий PHP в memcached

Reading time6 min
Views33K
Данная статья рассматривает одну из проблем хранения PHP-сессий в memcached: отсутствие их блокировки.

Введение

Ни для кого не секрет, что одним из самых популярных способов повышения производительности сайта является использование memcached. Об этом неоднократно говорили и приводили многочисленные примеры. Самый простой способ сделать это — использовать memcached для хранения сессий PHP. Для этого нет необходимости переписывать весь код, достаточно нескольких простых действий. Я не буду рассказывать, почему надо хранить сессии в memcached. Я расскажу о том, почему хранение сессий в memcached опасно.
Читать дальше →

Ну да, сайты на C++

Reading time4 min
Views35K
Проскочила пара топиков про веб на C++ и уж много товарищей недопонимают смысл использования C++ в вебе. Поэтому расскажу как я в своем опыте использовал это. Я использовал, правда, Python, но только потому что библиотеки типа WebToolKit не было под рукой.

Если честно, я в C++ разбираюсь как хакер в женских помадах — как и многие, я большей частью использую PHP (и все больше Python, но его редко для веба — больше для OpenGL), но тем не менее это не мешает мне его(C++) использовать. Это к тому, что не пугайтесь сложности языка — там не все так плохо, как кажется.

Но, что важно: «Premature optimization is the root of all evil». И это важно. Писать какую-нибудь сложную систему сразу на C++ бессмысленно (я про сайты, конечно). Оптимизировать, как правило, нужно только 3% кода. Вот про эти 3 процента я и расскажу.

Был у меня сайт и на нем на всех страницах пользователи могли кое-чего кое-куда писать (долго объяснять) и в уголке шел «поток» в реальном времени (через AJAX update каждые 5 секунд) кто куда и чего написал. Делалось, как и положено на PHP/MySQL — таблица, в ней выбираем последние (условно говоря: WHERE id>MAX(id)-10 ORDER BY id DESC) записи. Периодически удаляем все, кроме последних десяти. Работало замечательно. Пока TechCrunch про сайт не написал. Сдох сервер из-за этой части.
Читать дальше →

Xen server своими руками. Часть первая

Reading time2 min
Views63K
В комментариях к топику Системное администрирование. Начало. прочитал, что сообществу были бы интересны статьи о виртуализации. Довольно давно у меня на жёстком диске лежит описание процесса установки Xen hypervisor и гостевой ОС на сервер под управлением Ubuntu/Debian.

Итак, приступим...

Свежий глоток воздуха для Ubuntu

Reading time3 min
Views1.3K
Ура, хабратоварищи!

New Ubuntu logo

После стольких лет безделья работы команда дизайнеров Canonical в связке с Art community наконец-то представила свое виденье развития главного бренда компании, нашей почти всеми любимой Ubuntu!

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

Ознокомиться можно на вики-страничке (осторожно, english). Скромный перевод под хабракатом.
Читать дальше →

Изменение библиотеки libdc1394 для поддержки нужной камеры

Reading time3 min
Views2.1K
Когда разговор заходит о свободном программном обеспечении, то одним из аргументов «за» является возможность самому вносить изменения в код. Мне лично кажется, что конечного пользователя такая возможность волнует мало. И дело может быть не только в отсутсвии навыков программирования, но и просто в непонимании, что это возможно.

В этой статье я кратко опишу свой опыт «допиливания» библиотеки libdc1394 под себя, а вернее под ту камеру, с которой я работаю. Предполагаю, что статья может быть интересна тем людям, которые еще сами никогда ничего не подправляли в сторонних библиотеках и тем, кому приходится иметь дело с firewire камерами в линуксе.
Поехали

А где сейчас ваш клиент?

Reading time2 min
Views1.1K
Привет, Хабр.

В данной статье я хочу рассказать Вам о некоторых интересных возможностях получения клиента с минимальными затратами. Данными методами пользуюсь я лично, как руководитель веб-студии «Райнет».

Данная статья будет полезна всем руководителям и менеджерам. Причем ее содержимое лежит «на поверхности», но мало кто задумывается, что это можно и нужно использовать.
Читать дальше →

Заголовки и первые страницы реальных газет

Reading time1 min
Views1.6K
Добрый день, хабровчанин!

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

Было бы неплохо ещё добавить какую-нибудь функциональность в виде комментариев, кнопочек «Share this» и прочих вебдванольных вкусностей.

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

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

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

Трехмерный движок для Флеша — Papervision3D. Как и с чем его едят

Reading time6 min
Views12K


Papervision3D — это библиотека классов для ActionScript 3.0, которая позволяет создавать полноценные 3D флеш-ролики.
Таким образом пользователю не требуется качать какие-то альтернативные плагины (как это было с VRML, например), кроме собственно Flash Player'a.

Итак, что же повзоляет нам Papervision3D:

— Добавлять во флеш-ролик встроенные примитивы: Plane, Sphere, Cylinder, Cone, Cube, Paperplane, Arrow
— Импортировать модели созданные в 3D-редакторах, вместе с анимацией.
— Накладывать на объекты в качестве материалов однородные цвета, битмапы, мувиклипы и даже потоковое видео
— Использовать источники света
— Накладывать встроенные во флеш фильтры (Blur, Glow и т.п.) на 3D объекты
— Управлять отдельными вершинами и фейсами объектов. Пример
— Назначать на 3D объекты и материалы обработчики событий (клик, наведение мышки и т.п.)

Не стоит забывать, что Papervision3D требователен к ресурсам пользователя, так что не стоит загружать ролик большим количеством моделей и придерживаться максимального количества фейсов 3000

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

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

Интерфейс программы Киви для Айфона

Reading time3 min
Views5.3K
Недавно, ползая по аппстору, я наткнулся на программу оплачивалок Киви. Только успел обрадоваться, как оказалось, что программа сделана ужасно. Странно, что такая большая компания позволила себе выпустить такую чушь. Вот я и перерисовал их интерфейс :)


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

Стартапы-победители на конкурсе Seedcamp 2008

Reading time5 min
Views646
imageЕсли вы следите за различными сетевыми конференциями и мероприятиями, где «тусуются» представители он-лайн мира, то вероятно слышали о недавно прошедшем, наверное, правильно сказать, фестивале или конференции Seedcamp 2008 в Лондоне 19 сентября. Там была и целая часть, посвящённая стартапам и поиску инвестиций, присутствовало множество венчурных инвесторов и представителей фондов. Само мероприятие было ориентировано на европейские компании, и это вдвойне ценнее — несмотря на формирование тренда за океаном, Европа также не отстает, и многим было просто интересно — в Старом свете уже сформировалась культура стартапов или как? Оказалось, все на месте, и в результате конкурсного отбора выявлено 7 победителей — самых интересный, перспективных и рыночных. Далее мы кратко рассмотрим каждый из них.
Читать дальше →

Теория кэша (часть вторая, практическая, дополненная)

Reading time7 min
Views6.8K
Это вторая, дополнительная (upd: дополненная), часть моей статьи посвященной кэшированию информации при веб-разработке. Первая имеет название Теория кэша.

UPD: После многочисленных коментариев я сильно переработал статью, внес в неё больше конкретики и примеров, а так же убрал спорные моменты (например, касательно memcached). Спасибо всем, за конструктивную критику.

В данной статье я попытаюсь описать практические стороны кэширования, ориентированные, прежде всего, на сайты и системы управления контентом. Сразу предупреждаю, это мое личное мнение, которое не претендует на истину в последней инстанции. Большинство терминологии — моё, вы можете использовать его, если считаете нужным на своё усмотрение. Конструктивная критика приветствуется.
Читать дальше →

Свобода или страх. Делайте свой выбор

Reading time3 min
Views2.6K
Сегодня на хабре для меня получился занимательный микс из статей — волчьи будни и эффект бабочки. Вроде разные такие статьи, а обе зацепили, заставили думать. Причем поначалу я не могла собрать мысли воедино и понять, что же объединяет эти казалось бы разные статьи. И через некоторое время меня осенило – свобода самовыражения.

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

Курс молодого бойца: как ужиться с хостером

Reading time5 min
Views1.5K
Вдохновившись очередной историей человека, который был отключен хостером за спам со своего аккаунта пишу этот пост. Основан он на рассказах знакомых клиентов, саппортов и админов, постах на форумах и страшных историях из соседних топиков.

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

Однако этот пост не о том, как засудить своего хостера. А скорее, о технической стороне таких отношений.

Итак, как не потерять свой хостинг, свои деньги и своих клиентов.

Внимание, данный пост может вызвать у вас обострение ненависти к автору, хостерам или их клиентам. Я предупредил.

Внимание #2, букв много. Да-да-да. Если вы «ниасилили», не надо сообщать эту радостную весть в комментарии.

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

Ubuntu Server на домашнем компьютере. Раздадим интернет, скачаем torrent

Reading time4 min
Views50K
В последнее время все больше и больше входят в моду домашние сервера, используемые для хранения контента, закачки торрентов, да и просто для раздачи интернета. Не так давно, воодушевившись обзорами домашних серверов, из подручных средств был собран домашний сервер:

Жесткий диск: 500Gb
Материнская плата на 478 сокете
Процессор: Pentium 4 — 2.6Ghz HT
Все это в стареньком корпусе…
image
Итак, что мы имеем:
•Домашний сервер
•Городскую локальную сеть, выдающую интернет посредством VPN соединения

Задачи:


Использовать сервер как средство хранения контента
Возможность скачки торрентов
Раздача интернета всей семье посредством VPN

Итак...поехали!

Обслуживание тысяч запросов в секунду на примере XBT Tracker

Reading time5 min
Views8.2K
Недавно проводили тест, результаты которого показали, что одно приложение обрабатывает 2000 запросов в секунду на скромном сервере, где это было не единственной нагрузкой. При этом результат каждого запроса записывается в 3-5 таблиц в MySQL. Честно говоря, меня такой результат удивил, поэтому решил поделиться с хабрасообществом описанием архитектуры этого приложения. Подобный подход применим от баннерных показов до чатов и микроблогов, надеюсь кому-нибудь покажется интересным.

Во-первых, это приложение однопоточное. Всё делается одним процессом, работа с сокетами — неблокирующими epoll/select, никаких ожидающих ввода/вывода потоков (threads). С развитием HTTP, сначала появлением Keep-Alive, затем AJAX и набирающим популярность COMET, количество постоянных соединений с веб-сервером растёт, на нагруженных проектах измеряется тысячами и даже десятками тысяч, и если для каждого создавать свой поток (thread) со своим стеком и постоянно переключаться между ними — ресурсов сервера очень быстро не хватит.

Второй ключевой момент — что один SELECT… WHERE pk in (k1, k2, ..., kN) выполняется быстрее, чем несколько SELECT… WHERE pk=… Выполняя работу с базой данных большими пачками можно уменьшить не только число запросов в секунду, но и общую нагрузку.
Читать дальше →

Ещё пара слов о разработке сайтов по договору

Reading time4 min
Views21K

Что такое хорошо


Договор — это хорошо. Хороший договор — ещё лучше. Я искренне рад, что есть люди, согласные с этим. (Именно люди: ибо не один, не два, не три и даже (остросюжетный триллер) не четыре человека.)

Но все мы при этом понимаем: чтобы договор мог быть назван хорошим, недостаточно мнения вашего знакомого или штатного юриста. Хороший договор значит тот, с которым не возникает проблем. Прежде всего, в суде. Но судьи ведь тоже люди. Им легче работать по инструкции. Правда, чтобы она появилась, нужна обобщённая судебная практика, со всеми её плюсами и минусами. А сейчас судебные дела, связанные с разработкой сайта — единичные случаи.

Поясняю, что это значит. Суд не связан ничем. Если где-нибудь в Новосибириске решили, что так, то это не значит, что в Москве не будет эдак. И наоборот. Мало того, даже в одном суде у разных судей решения могут быть совершенно разными.

Отсюда вывод № 1: сейчас нельзя назвать ни один из имеющихся (в том числе, здесь, на хабре) договоров хорошим. Но это ещё не всё.

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

Страны, регионы, города

Reading time1 min
Views121K
Карта мира
Хочу поделиться базой стран, регионов и городов на русском языке. Возможно, кому-то пригодиться в своих проектах. В базе 106 стран, 922 региона и 10969 городов!

Если кто не понял о чем речь, то вспомните, например, как на ВКонтакте указывается город: выбирается страна -> подгружается список регионов -> выбирается регион -> подгружается список городов

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

Information

Rating
Does not participate
Location
Alicante/Alacant, Испания
Date of birth
Registered
Activity

Specialization

Backend Developer, Web Developer
Senior