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

Web-developer

Send message

Паттерн проектирования «Приспособленец» / «Flyweight»

Reading time6 min
Views34K
Почитать описание других паттернов.

Проблема


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

Описание


Как уже отмечалось, существует большое количество программных систем, предназначением которых, является конструирование сложных составных объектов из большого числа более мелких и простых объектов. При этом, гибкость и универсальность подобных систем, достигается за счет предоставления пользователю полного набора инструментов и примитивов. Важно понимать, что примитивами, в данном контексте являются элементарные объекты, из которых в последствии конструируются составные. Причем, уровень на котором, объект считается примитивным, на самом деле, определяет применимость и эффективность данной системы. Однако, не всегда существует возможность спроектировать систему вплоть до самых низких уровней абстракции. Затраты на память и низкая производительности системы, при прямом подходе, не позволяют этого сделать. Поэтому, при проектировании подобных систем, зачастую применяют паттерн «Приспособленец».
Читать дальше →

Как легально получать деньги из-за пределов России

Reading time5 min
Views202K
Дано: заказчик за рубежом, желающий работать с Вами и платить вам евро или доллары.
Найти: оптимальный способ организовать работу с ним, чтобы платить налоги и спать спокойно.

Сразу скажу, что получение денег на пластиковую карту без уплаты налогов может вылиться в серьезные проблемы (про ответственность написано в конце топика). Объяснения, что деньги «от бабушки внучку на мороженное» при суммах больше 10К$ в год уже не прокатывают, особенно если в реквизитах «бабушки» будет стоять что-то вроде «GMBH Star Development» Вероятность того, что возьмут за задницу достаточно высокая и поэтому лучше не рисковать и делать все по Закону, тем более, что ничего сложного в этом нет
Читать дальше →

SVN: Полгода спустя

Reading time3 min
Views2.4K
В продолжение работы, которую пол-года назад проделали компания 2Товарища и Антон Исайкин, мы (aldonin и dasm32) решили провести сканирование 1000000 самых популярных сайтов современного Web-а, начиная от google.com и заканчивая wordpress.com.

Мы использовали Perl для написания сканера. Первая его версия не использовала богатые возможности по созданию и использованию потоков. Но когда в течении 3х дней в результате было просканировано всего лишь 25% сайтов — жалкие 250000, срочно был поднят вопрос о повышении производительности :)
После небольшой, но неоценимой помощи товарищей с perlmonks.org многопоточность была вполне задействована, и всего за день была проверена остальная часть имеющейся у нас базы.

Результаты, конечно же, нас удивили.
Читать дальше →

Якоб Нильсен :: Прокрутка и внимание

Reading time7 min
Views7K
image

Представляю вашему вниманию мой второй перевод — новую статью Якоба Нильсена, вышедшую вчера.

Пользователи интернета тратят 80% времени, изучая информацию на «первом экране». Несмотря на то, что прокруткой они тоже пользуются, только 20% их внимания приходится на то, что расположено ниже «первого экрана».

В веб дизайне существует большая неразбериха с т.н. «первым экраном» и важностью показа самой главной информации в области, изначально видимой пользователем. (Т.е., фактически определение таково: «первый экран» обозначает «видимый без дополнительных действий».)

Читаем дальше?

Числа Фибоначчи и золотое сечение

Reading time1 min
Views4.2K
На Хабре я уже писал про числа Фибоначчи и золотое сечение. Но не смог удержаться, чтобы не выложить новое видео с новыми примерами этого чуда во многих областях нашей жизни.

Закрепляем jQuery — 25 отличных советов

Reading time19 min
Views168K
Перевод отличной статейки. Думаю, будет полезна как новичкам, которые только приступили к использованию jQuery, так и тем, кто уже какое-то время с ним работает. А кого-то, возможно, заставит глянуть эту чудесную библиотечку. Многие советы имеют отношение не только к jQuery, но и к JavaScript в целом. Лично для меня была весьма и весьма познавательной, посему и захотелось донести это «до масс». Перевод не дословный, но передающий смысл и максимально адаптированный к русскому языку.

Далее все написано от имени автора оригинальной статьи.

Введение


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

Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).

Я называю себя «среднестатистическим» пользователем jQuery и я думаю, что всем остальным будет интересно почитать и что-нибудь почерпнуть из «фишек», «трюков» и техник, которые я освоил за последний год. Статья получилась куда длиннее, чем я предполагал изначально, так что в самом начале я привел «содержание» для более удобной навигации и возможности при желании пропустить не интересующие моменты.

Содержание


  1. Загружайте фреймворк с Google Code
  2. Используйте «шпаргалку» (cheat sheet)
  3. Соединяйте все ваши скрипты и уменьшайте размер файла
  4. Используйте возможности Firebug для ведения логов
  5. Минимизируйте операции выборки в пользу кэширования
  6. Сводите манипуляции с DOM-деревом к минимуму
  7. Оборачивайте все в единый элемент, когда речь идет о любой вставке в DOM
  8. Используйте «id» вместо классов, где это возможно
  9. Задайте контекст своим селекторам
  10. Используйте последовательности вызовов методов с умом
  11. Научитесь правильно использовать анимацию
  12. Научитесь назначать и делегировать события
  13. Используйте классы для сохранения состояния
  14. Еще лучше — используйте встроенный в jQuery метод data() для сохранения состояния
  15. Пишите собственные селекторы
  16. Подготавливайте HTML и модифицируйте его, когда страница загружена
  17. Используйте «отложенную загрузку» (lazy loading) для определенного контента для выигрыша в общей скорости и преимуществ для SEO
  18. Используйте служебные функции jQuery
  19. Используйте «noconflict» для переименования глобального объекта «jquery», когда используете его с другими фреймворками
  20. Как узнать что картинки загружены?
  21. Всегда используйте последнюю версию
  22. Как проверить, что элемент существует?
  23. Добавляйте класс «JS» в элемент «html»
  24. Возвращайте «false» для отмены поведения по-умолчанию
  25. Короткая запись для события готовности документа


Rock'n'Roll!

Идея для гео-сервиса

Reading time2 min
Views1.6K
Вчера столкнулся с проблемой — лежал сайт аэропорта Домодедово, а сильно хотелось глянуть онлайн табло прилета. В голове образовалась мысль «а вот бы попросить людей в аэропорту, чтобы глянули на табло и написали мне время прилета», немного подумав, образовалась

концепция сервиса:


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

Чат 2.0 или как быстро знакомиться с новыми людьми

Reading time2 min
Views3.4K
Чего не дают социальные сети? Не знаю как вам (у кого-то такой проблемы точно нет), но мне периодически не хватает возможности быстро найти собеседника. Допустим вы хотите прямо сейчас пообщаться с человеком на какую-то заданную тему, возможно чтобы это был человек схожий с вами по интересам и каким-то другим произвольным параметрам. Как вы будете решать эту задачу сейчас? Вы можете зайти в ЖЖ, Вконтакте, Хабр или аську, делать поиск и отправлять сообщения понравившимся людям. Иногда вам ответят сразу, иногда через какое-то время, иногда вообще не ответят. Вы можете зайти в IRC или любой веб-чат и попытаться привлечь внимание к своей персоне — это может сработать, но часто люди отвлечены на общую болтовню и не расположены для приватных серьезных бесед. А вы хотите коммуникации тет-а-тет прямо сейчас, без лишних поисков.
Как это могло бы работать?

Все помнят как работают интернет-шашки? Вася запустил шашки в Москве, а Петя в Австралии, они автоматически соединяются друг с другом и начинают играть. Поскольку игра входит в стандартную поставку WinXP, желающих играть очень много и заявки удовлетворяются почти мгновенно.

Ну… идея уже понятна: а что если сделать чат, который бы работал по такому же принципу? Допустим я хочу поговорить о политике (смысле жизни, компьютерах, линуксах, литературе), я отмечаю галочкой соответствующую тему (или набор тем), выбираю язык и жму кнопку. Где-то, за три тысячи километров от меня, Вася выбрал такую же тему и мы соединяемся для чата. При подборе собеседника можно дополнительно анализировать его профайл: возраст, пол, интересы, город. Например, я хочу поговорить только с молодой девушкой или только с человеком, список интересов которого совпадает с моим не менее чем на 70%.

Конечно, для того чтобы это работало, необходимо огромное количество активных пользователей. Без них, Вася, будет ждать собеседника очень долго. Можно реализовать это не только в виде отдельного сайта, но и как апплеты для известных соц сетей: аудитория большая, профайлы с необходимой информацией уже есть. Зарабатывать можно ненавязчивым баннером в окне чата + платные недорогие аккаунты без рекламы.

Как вам идея? Может быть аналоги уже давно существуют, а я, по своей серости, не знаю?
Открыт для сотрудничества по этому вопросу ;)

UPD: Идея именно об организации быстрого (близкого к мгновенному) подбора собеседника для разговора тет-а-тет на заданную тему. Это похоже на кнопку «Мне повезет» в Google: вы не тратите время на ковыряние результатов, а сразу попадаете на какой-то конкретный сайт. Плюс ваш «результат» будет гарантированно готов для разговора_прямо_сейчас. Чего не добьешься в аськах, форумах и сайтах знакомств.

Транспромо

Reading time4 min
Views671
Карло Биасоони рассказывает о преимуществах транспромоЭто новый вид рекламы, который дает небывалый процент отклика — до 30. И все это за счет IT-технологий.

30% — очень много. Представьте, почти каждый третий получатель рекламы звонит продавцу, что бы узнать, сколько это стоит, уточняет характеристики, задумывается о покупке. Это же просто мечта любого рекламодателя!

Транспромо уже широко распространен в Европе, начинает победное шествие по США и Японии.

Родилось чудо на стыке трех технологий:
— почтовая рассылка (Direct Mail),
— печать по требованию (On Demand),
— современные информационные технологии, способность получать и анализировать сложные объемы данных.
Кого заинтриговал, прошу сюда

Ещё одна возможность использования вашего гео-местоположения

Reading time1 min
Views1.4K
GeotargetingКак часто у вас бывали моменты, когда вы создавали подобные события в своём календаре:

[21:00] Кинуть бутерброд из сумки в холодильник — загниет.
[23:00] Незабыть взять диск для Гоши.


А было ли вам неудобно, если оповещение о них приходило в тот момент, когда вы ещё были не дома? И на следующий день — та же ситуация…

Идея заключается в том, что-бы использовать гео-положение вашего телефона(коммуникатора) как дополнительное измерение(помимо времени) о наступлении события.
Читать дальше →

Я найду

Reading time2 min
Views852

Концепция.


Проект позволит найти пропавших людей, животных. Человек у которого кто-то пропал заходит на сайт, размещает информацию о пропаже, указывает на карте где его видели (где он был) в последний раз. Затем, другие люди, которые хотят помочь при регистрации указывают местоположения, в которых они регулярно обитают (работа, учеба). В случае если тот, кто пропал попадает в местоположение пользователя, то ему высылается уведомление о том, что в его местности тогда-то, пропал кто-то. Если пользователь видел его, то он может выслать дополнительную информацию тому, кто размещал пропажу.
Читать дальше →

Обзор электронных платежных систем. Что выбрать?

Reading time4 min
Views65K
В процессе разработки довольно интересного проекта для туристической компании возникла необходимость интеграции на сайт одной из платежных систем, дабы пользователи сайта могли без каких-либо проблем и ограничений оплачивать собственные заказы.

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

i360. Семантика во всем

Reading time4 min
Views1.1K


Тони Сукиенник (Tony Sukiennik) верит в преимущество людей перед силой алгоритма, когда это касается развития семантических технологий. Его компания, infoGenome никому не известный стартап, который был в тени в течение 4,5 лет, решила проявить свой потенциал, сделав семантику доступной с помощью инновационных возможностей «перетаскивания». Созданное ими ПО — i360 это в действительности приложение «Mahalo of semantic apps,» которое основано на умении пользователя добавлять смысловые тэги (метаданные) к той информации, которой мы пользуемся ежедневно. С помощью i360 вы можете добавить семантику куда угодно.
Читать дальше →

elFinder — файловый менеджер для сайта. Новый вкус

Reading time3 min
Views4.1K
Некоторое время назад мы представляли уважаемой публике наши open source продукты для веб-разработчиков — редактор elRTE и файловый менеджер elFinder. После анонса мы получили немало отзывов и надо сказать были изрядно удивлены, что интерес к файловому менеджеру оказался заметно выше чем к редактору.

Мы почесали головы, свалили в одну кучу все безумные идеи о том, каким должен стать новый elFinder, просеяли их через сито основной концепции «минимально необходимый функционал», многократно пропустили через мясорубку кодинга, приправили новыми вкусными возможностями и долго томили в печи тестирования.

И сегодня с удовольствием от хорошо сделанной работы предлагаем попробовать наше фирменное блюдо elFinder!

elFinder

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

Почему 9 женщин не могут родить ребёнка за 1 месяц или О применении имитационного моделирования в управлении проектами

Reading time7 min
Views38K

Введение


Думаю, многие из вас слышали выражение «9 женщин не могут родить ребёнка за 1 месяц!». Контекст этого выражения очевиден — в разработке ПО его применяют в качестве аллегории, когда протестуют против совершенно неприемлемого сжатия сроков. Здесь под сжатием понимают сокращение сроков разработки путём расширения команды при сохранении общей трудоёмкости разработки.
image

Совершенно очевидно, что сжимать сроки до бесконечности невозможно. Существует определённый предел. Например, известным экспертом в области оценки трудоёмкости разработки ПО Стивом Макконнеллом (Steve McConnell) этот порог определён как 25% от исходных оценок (см. мою предыдущую статью).
Но этот топик не об оценках трудоёмкости…
Вот я выше написал «совершенно очевидно...». Думаете, это действительно очевидно? Всем?
Мой недавний опыт показал, что это очевидно далеко не всем. Проект был очень крупный и срок сдачи неумолимо приближался. Было принято решение резко расширять команду, чтобы успеть. Довод про «9 женщин» никто не принял. Команда была расширена и в срок мы всё равно не успели. Можно ли было как-то, кроме как на словах, показать, как будут развиваться события? Вот о том, как смоделировать такую ситуацию, и будет моя статья.
Читать дальше →

Для преступников ботнет Зевс (ZeuS) становится все удобнее и удобнее

Reading time4 min
Views18K
Да, я знаю что недавно про него было, и скоро будет еще. Но вот что думают буржуины.

image
Какой-то ботнет

Краткая справка
  • № 1 в списке самых разыскиваемых ботнетов Америки
  • Зараженные компьютеры: 3.6 миллиона
  • Использование преступниками: воровство вводимой пользователем информации (кейлоггер), вставка поддельных HTML форм в системы онлайн-банкинга
За 10 000 $ можно приобрести модуль Зевса, дающий полный контроль над зараженными компьютерами
Читать дальше →

Настройка Wifi в Linux при помощи Adhoc на примере Ubuntu

Reading time2 min
Views50K
Эта тема уже не раз поднималась, но хорошей и легкой инструкции я так и не нашел.
Данная статья расчитана на новичков в мире Linux поэтому тут используются наиболее легкие методы настройки.
Читать дальше →

jQuery Tools v1.0.1

Reading time1 min
Views3.9K
jQuery Tools Logo
jQuery Tools v1.0.1 — это инструмент/библиотека представляет собой файл весом в 5,8 кб включающий в себя наиболее важные компоненты для вебдванольных сайтов, а именно: табы, всплывающие подсказки, плавные переходы, прокрутки, всплывающие окна и т.д.

Не буду тянуть резину, лучше, как говориться, один раз увидеть, чем сто раз услышать!
Переходим по ссылке и смотрим более 50 (!) демок:

Несколько понравившихся мне демонстраций. Очень рекомендую!
Маскируем фоновое изображение;
AJAX-табы с поддержкой истории переходов;
Неколько всплывающих окошек на одной странице.

Information

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

Specialization

Backend Developer, Web Developer
Senior