Search
Write a publication
Pull to refresh
3
0
VEnis @VEnis

User

Send message

Три первых шага к оптимизации LAMP

Reading time2 min
Views5.5K
Бытует мнение, что связка LAMP (Linux+Apache+Mysql+PHP) не требует особой настройки и работает «из коробки». Это далеко не так. После того, как я долго убеждал товарища установить кеширующий акселератор PHP xcache, я решил провести небольшой эксперимент и попробовать выключить xcache на своём виртуальном сервере, находящемся под небольшой нагрузкой (около хита в секунду). В реальной жизни нагрузка на процессор мала, а вот память загружена сильно, т.к. её немного (256МБайт).

Результаты эксперимента превзошли все ожидания.
Читать дальше →

widget своими руками

Reading time8 min
Views12K
Привет.

Наверное, многие из вас пользовались стандартными javascript-виджетами, написанными как безвестными разработчиками, так и крепкими профессионалами, так и гуру. Есть великолепные коллекции виджетов, поставляемых в качестве плагинов к известным фреймворкам (вроде jQuery, Prototype JS, YUI), так и целые фреймворки, акцентирующие свое внимание на создании виджетов, вроде Ext JS или qooXdoo.

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

Об этом и пойдет речь в сегодняшнем посте — как сделать простейшее диалоговое окно и alert средствами чистого javascript, без применения каких-либо фреймворков.
Поехали?

Манипуляции с аудио, как с MIDI

Reading time2 min
Views6.8K
На Хабре проскакивали упоминания про новые интересные возможности обработки фото или видео, но тоже самое происходит и в аудио-среде. Не заметили, что наши «звезды» в последние годы стали лучше попадать в ноты? :)

Суть технологии: даже многоголосое аудио уже можно редактировать как MIDI — изменять высоту, длительность, время начала, громкость. Смотрите видео.



В чем прелесть и как этим воспользоваться?

Методичка по работе с клиентами. Для начинающих менеджеров веб-студий

Reading time6 min
Views25K
(2008 год, письмо старшего менеджера веб-студии — младшему)
( профи вряд ли найдут что-то новое, молодым будет интересно)
Привет. Вот краткая инструкция, основанная на личном опыте. Так сказать, курс молодого бойца.
наша задача — заработать как можно больше денег, при минимальных телодвижениях.

Итак, получили письмо от клиента


обычно есть следующие варианты
  1. клиент явно перспективный и обратился «выборочно» именно к нам — есть большая вероятность, что переговоры будут удачными — тогда лучше сразу набивать стрелку и устанавливать личный контакт и все выяснять на месте. Хотя, границы бюджета лучше выяснить в любом случае.
  2. клиент интересный, но многое неясно из его письма ( нет ТЗ, нет бюджета, он написал в несколько студий, сайт потенциально сложный, сайт неинтересный и тд. ). Тут важно прислать ему БРИФ на заполнение, выяснить сроки и бюджет. Согласовать бюджет сроки — уже потом встречаться в случае, если все устраивает.
  3. Письмо подозрительно короткое и не «пахнет интересом». Например, «нужен обувной интернет-магазин, сколько стоит? Как быстро сделаете? Виталий» — тут вряд-ли чтото выгорит + вероятно это пробивон по ценам от конкурентов.
    В этом случае — цену говорим в полтора раза дето дороже, интересуемся «укладываемся ли мы в их бюджет» в положительном случае — можно встречаться. Иначе — скорее всего трата времени.

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

Обзор шаблонизатора Quicky: Производительность и Гибкость

Reading time5 min
Views5.2K
Quicky — hi-end шаблонизатор, написанный на PHP отличающийся гибкой функциональностью, и в то же время, высокой производительностью. За основу взят синтаксис и функционал Smarty.


содержание:
переход со Смарти, на Quicky
— — чем Quicky лучше Smarty?
Quicky быстрее PHP-native?
Quicky темная сторона силы.
Комьюнити Quicky. (теперь все тут http://code.google.com/p/quicky/)
Богатые возможности Quicky.
Вместо заключения. Личное мнение.
Читать дальше →

Создание UML по существующему PHP коду

Reading time2 min
Views14K
Когда большинство проектов давно находятся на стадии поддержки, а не разработки, то поддержание документации в актуальном виде зачастую не проводится. Тогда довольно полезно будет получить диаграмму UML по существующему коду. Это также необходимо в случае, если предпроектная документация велась не полностью или проектированию подвергались не все части системы. Вопрос особенно актуален, когда появляется новый разработчик.

В этой статье я рассмотрю 2 скрипта, реализованных на PHP:
  • Консольный скрипт php2xmi
  • Библиотека PHP_UML
Читать дальше →

MySQL и JOINы

Reading time6 min
Views149K
Поводом для написания данной статьи послужили некоторые дебаты в одной из групп linkedin, связанной с MySQL, а также общение с коллегами и хабролюдьми :-)

В данной статье хотел написать что такое вообще JOINы в MySQL и как можно оптимизировать запросы с ними.

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

Как зарегистрировать домен бесплатно

Reading time2 min
Views150K
image
На удивление оказывается, что многие незнают о существовании зон, свободных для регистрации. Более того, многие платят за регистрацию доменов в этой зоне деньги — стандартная цена у известных регистраторов от 5 до 15 у.е. за то, что можно сделать самому бесплатно.

Вот какие домены можно зарегистрировать абсолютно бесплатно:
Украина
.net.ua, .od.ua, .org.ua, и множество вида регион.ua
Россия
.com.ru, .net.ru, org.ru, pp.ru, .msk.ru, spb.ru и множество остальных типа регион.ru

Ниже инструкция типа «домен бесплатно для чайников»

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

Визуализируем данные на JavaScript

Reading time3 min
Views4.5K

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

Существует немалое число серверных библиотек и утилит, способных генерировать сложные графики. Однако я считаю, что такой подход не всегда оптимален. Если мы можем производить визуализацию на стороне клиента с помощью JavaScript, то почему бы нам не воспользоваться такой возможностью? Логика работы подобной связки проста: сервер генерирует данные, а клиент их визуализирует.

Разумеется, вы можете воспользоваться Flash, Silverlight или Java-апплетами, однако в этом обзоре я хотел бы вам показать библиотеки визуализации, написанные на чистом JavaScript.

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

1000 замечательных иконок для веб страниц

Reading time1 min
Views6.6K

Fugue Icons


image
Отличный пак из 1000 иконок в размере 16x16

Эти иконки распространяются по лицензии Creative Commons Attribution 3.0 license.

Ссылка на сайт
Скачать пак | Посмотреть иконки (1199.25 КБ)

Анти-паттерны Test Driven Development

Reading time4 min
Views20K
Я надеюсь, что как грамотный разрабочик, вы имеете представление о unit-тестировании и сделаете себе в голове пару мысленных отметок о том, чего надо избегать при написании тестов. Знакомьтесь:

Лжец (The Liar)

Unit-тест, который успешно выполняет все кейсы и выглядит работающим правильно, однако при более детальном рассмотрении обнаруживается, что он на самом деле не тестирует то, что должен.

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

Контекстное меню на javascript: небольшое, но мощное

Reading time5 min
Views14K
Вы наверняка не раз видели javascript-реализации контекстных меню на базе популярных библиотек, таких как jQuery и prototype. А значит обязательно сталкивались с основными их недостатками: неудобностью API, большим количеством кода, требовательностью к ресурсам, любовью к генерации огромного количества html кода. В один прекрасный момент эти проблемы пересилили мою лень и я решил бороться с ними, поставив следующие задачи:
  • Минимум html кода, генерируемого для меню (зачем нам засорять ДОМ)
  • Лаконичность js кода для создания меню (API вызова без копипасты)
  • Оптимум гибкости при работе (многоуровневые, динамически модифицируемые меню)
  • Как можно меньше кода в реализации библиотеки (6302 байта в несжатом виде)
  • Минимальное количество jQuery-вызовов (чтобы можно было легко от них отказаться тем, кто jQuery не использует)
  • Inline-события где это возможно вместо биндов (меньше ресурсов сожрет)

Контекстное меню

UPD: разместил проект в google code, пользуйтесь, развивайте:
svn checkout js-cmenu.googlecode.com/svn/trunk js-cmenu-read-only

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

Как я отказался от $300 000

Reading time4 min
Views3.4K
Когда нам по двадцать с копейками лет, когда нам, по большому счету, нечего терять, у нас есть время, навыки и жадность риска, почему бы не предпринять Попытку Всей Жизни? Если ничего не удастся — а у большинства это будет именно так — то конца света не наступит. Но если удастся, то представьте себе награду.
Говорит Tom Preston-Werner

Кластеризация memcached и выбор ключа кэширования

Reading time4 min
Views24K
Серия постов под общим заглавием “Web, кэширование и memcached” продолжается. В первом мы поговорили о memcached, его архитектуре и возможном применении.

Сегодня речь пойдет о:
  • выборе ключа кэширования;
  • кластеризации memcached и алгоритмах распределения ключей.

Следующий пост будет посвящен атомарности операций и счетчикам в memcached.

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

jQuery Timers

Reading time3 min
Views64K
При проектировании интерфейсов пользователя когда-нибудь обязательно встанет задача использования таймеров, и в этой статье я хочу рассказать о замечательном плагине jQuery Timers, который значительно облегчит работу по созданию и применению таймеров в Ваших приложениях.
jQuery Timers — это высокоуровневая абстракция методов setTimeout и setInterval. Используя jQuery Timers, Вы сможете «прикреплять» таймеры к элементам непосредственно в Вашем коде и использовать еще некоторые возможности.
Как обычно, сначала посмотрим пример, а потом разберем исходный код.

Пример и исходный код скачать можно здесь

image
Привет Isis, давно тебя не было, почитаем дальше

Expert Python Programming

Reading time2 min
Views6.2K
Expert Python Programming Совсем недавно (24.09.08) Tarek Ziadé анонсировал публикацию своей замечательной книги (IMHO).

 Для кого написана


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

Expert Python Programming это не очередная книга о синтаксисе языка программирования Python, это книга о платформе Python, об основных библиотеках и инструментах, используемых для написания профессиональных приложений. В ней рассматриваются такие процессы разработки программного обеспечения, как непрерывная интеграция, документация, тестирование, релизинг, рефакторинг и прочее.

Из книги вы узнаете какие использовать IDE, DVCS, фреймворки тестирования, технику оптимизации; как выпускать и поддерживать разработанные приложения; как документировать код, используя reStructuredText и Sphynx; как распространять с помощью setuptools и других инструментов (PasteScript, zc.buildout, builbots); как использовать систему issue/bag трекинга Trac.

Ссылки


* Детальная информация о книге
* Подробный обзор Мишеля Симонато (Michele Simionato)
* Блог автора
* Chapter 10, Documenting Your Project. [PDF 3MB]

Далее немного информации о каждой главе

Ускоряем wordpress

Reading time11 min
Views10K
Привет.
Думаю, среди читателей хабра найдется немало тех, кто имеет stand-alone blog на движке wordpress.

Так вот, для вас, дорогие мои, у меня есть две новости, как водится, плохая и хорошая.
Плохая состоит в том, что wordpress — довольно-таки тормознутая штука.
Виноваты в этом в основном криворукие производители тем и, особенно, криворукие производители плагинов. Особенно кривой плагин, на мой вкус, wp-ajax-edit-comments, который является образцом быдлокодинга.

Хорошая — в том, что это можно поправить.

Делается это примерно так:

Борьба с червём GetCodec

Reading time1 min
Views745
Сегодня ко мне в слезах прибежала жена — говорит, все MP3 испортились.

Пошёл смотреть. В Windows Media Player файлы проигрываются нормально, а в Winamp, iTunes и на айподе квакают, хрюкают и ведут себя крайне неподобающе.

Натравил на файлы NOD32. Антивирус опознал червя GetCodec, о котором несколько месяцев назад уже писали на Хабре. NOD32 пошуршал, сказал, что всё получилось, но файлы не вылечил.

Я открыл Гугл и стал разбираться. Выяснилось, что червь не пережимает файлы в WMA, а засовывает MP3-поток в контейнер ASF, а потом переименовывает обратно.

В интернете советовали похимичить с тегами, но это, само собой, не помогло. Пережимать файл в MP3 — тоже не вариант. Только через полчаса понял, что поток-то никуда не делся.

Выручил FFmpeg. Лёгким движением руки достаём звук и сохраняем в новый файл:
ffmpeg -i ill.mp3 -vn -acodec copy healthy.mp3

Вышла новая сборка бесплатного сниффера 0x4553-Intercepter

Reading time1 min
Views18K
Список изменений можно посмотреть на официальном сайте — intercepter.nerf.ru

[0x4553-Intercepter] позволяет:

# Перехватывать пароли следующих типов: ICQ\IRC\AIM\ftp\IMAP\POP3\SMTP\LDAP\BNC\SOCKS\HTTP\WWW\NNTP\CVS\TELNET\MRA\DC++\VNC\MySql\Oracle
# Перехватывать сообщения таких IM систем как: ICQ\AIM\JABBER\YAHOO\MSN\GADU-GADU\IRC\MRA
# Менять MAC адреса сетевых карт.
# Просматривать трафик в сыром виде, с возможностью фильтрации.
# Специальный eXtreme режим для перехвата данных на не определенных портах.
# Сохранять пакеты в файл pcap формата и проводить оффлайн анализ дампов.
# Удаленный анализ трафика через RPCAP демона.
# Встроенный ARP poison.
# Перехват и сохранение в eml формате POP3SMTP сообщений.

Работает на Windows 9xNT(2KXP2k3Vista).

Детали работы программы описаны в файле-помощи внутри архива программы. Демонстрация основных функций представлена в двух видео-туториалах:

intercepter.nerf.ru/intercepter_tutor1.zip
1. ARP Poison
2. Remote Capture
3. ARP Defender

intercepter.nerf.ru/intercepter_tutor2.zip
1. eXtreme mode
2. MAC Changing
3. PCAP Offline Analyzing

Скачать 0x4553-Intercepter — intercepter.nerf.ru/0x4553-Intercepter.v076.zip

UPD: Технические вопросы и баг-репорты просьба задавать на форуме программы intercepter.mybb3.org
или по почте intercepter.mail@gmail.com

Компоненты Zend Framework отдельно

Reading time1 min
Views1.3K
Яни Хартикайнен практикуясь в использовании Tokenizer-а PHP написал очень полезную штуку, позволяющую скачать в ZIP отдельные части Zend Framework со всеми зависимостями. Например, для Zend_Acl скачаются

Zend/Acl.php
Zend/Acl/Resource/Interface.php
Zend/Acl/Role/Registry.php
Zend/Acl/Role/Interface.php
Zend/Acl/Role/Registry/Exception.php
Zend/Acl/Exception.php
Zend/Exception.php
Zend/Acl/Assert/Interface.php


Пользуемся

Information

Rating
Does not participate
Location
Украина
Registered
Activity