Pull to refresh
15
0
Башуров Владимир @VVBash

User

Send message

ВебМани тихо и незаметно усилили защиту. Возможно, у некоторых будут затыки с платежами

Reading time2 min
Views9K
WebMoney усилило безопасность денежных переводов, в связи с чем многие могут потерять время и нервы.
Так как я их уже потерял, пишу этот пост, чтобы получить профит вы эти грабли обошли стороной.

Картинка для привлечения внимания

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

Подробности, инструкции
под катом
Total votes 103: ↑92 and ↓11+81
Comments137

Запрет индексации сайта поисковыми ботами при помощи.htaccess

Reading time1 min
Views5.6K
При активной разработке многие используют копии сайта в других доменах, для эксперементов или доработки сайтов (не на работающем же вносить изменения).
И вот многие сталкиваются с проблемой как отгородить поисковики от этого домена и притом оставить рабочую версию сайта.

Проще всего и без вмешательств в код это сделать при помощи .htaccess
Создаем файл .htaccess и пишем в нем:

SetEnvIfNoCase User-Agent "^Yandex" search_bot
SetEnvIfNoCase User-Agent "^Yahoo" search_bot
SetEnvIfNoCase User-Agent "^igdeSpyder" search_bot
SetEnvIfNoCase User-Agent "^Robot" search_bot
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
SetEnvIfNoCase User-Agent "^msnbot" search_bot
SetEnvIfNoCase User-Agent "^Aport" search_bot
SetEnvIfNoCase User-Agent "^Mail" search_bot
SetEnvIfNoCase User-Agent "^bot" search_bot
SetEnvIfNoCase User-Agent "^spider" search_bot
SetEnvIfNoCase User-Agent "^php" search_bot
SetEnvIfNoCase User-Agent "^Parser" search_bot

Order Allow,Deny
Allow from all
Deny from env=search_bot


для проверки работоспособности можно использовать следующий PHP-скрипт

<?php
if(empty($_POST)) {
?>


ну вот теперь можно полностью эксперементировать и никто не узнает про существование экспериментальной копии Вашего сайта ;)
Открываем сайт представлясь под любым User-Agent
User-Agent
Total votes 30: ↑27 and ↓3+24
Comments23

Алгоритм «газетной» вёрстки web-страницы

Reading time3 min
Views1K
Сей пост специально пишу в личный блог, дабы не засорять общие.

На работе встала задачка: есть энное количество статей, возможно, с картинками, и просто картинок, и эту кучку добра надо автоматически заверстать на веб-страницу в формате газеты — т.е., в несколько колонок, одну статью в одну колонку, другую — в три, но по высоте меньше. И ещё все картинки вписать в колонки, чтобы смотрелось точь-в-точь как разворот газеты.
Мне почему-то не хочется верить, что я первый, кто столкнулся с такой задачей. Это не отменяет того, что я уже примерно представляю себе алгоритм ;) Но тем не менее, хотелось бы услышать тех, кто уже сталкивался с такой задачей. Или просто тех, кому задача показалась интересной. Да кого, угодно, на самом деле =)

Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments23

Эти замечательные VPN или о чём нужно помнить пользователям shared-ресурсов.

Reading time3 min
Views2.8K
Вводная информация:
Провайдером мне предоставлен «доступ к сети с использованием технологии ADSL». Я являюсь пользователем Fedora Core 6. Эта операционная система постепенно выживает winXP с моего компьютера, не исключено, что скоро на большем из двух дисков тоже поселится какой-нибудь дистрибутив GNU Linux.

«Доступ к сети...» хорошо звучит, верно? И он на самом деле есть – внутри виртуальной частной сети провайдера можно поднять, к примеру, http-, irc- (что я и сделал) сервера. Можно и другие, но это менее актуально (трафик внутри сети тарифицируется, значит ftp отпадает, а что такое jabber мало кто из «подключенцев» слышал). Конечно динамический ip вносит некоторую долю неудобства, но в своем чате как-то приятней общаться.
Но речь пойдёт не об этом. Решил я как-то забить в адресную строку Konqueror`а что-то вроде smb://192.168.240.* (local ip address по версии pptpconfig или inet addr по версии ifconfig, по сути – динамические ip-адреса в виртуальной частной сети). С четвёртой попытки я получил возможность лицезреть shared-ресурсы другого компьютера. «Расшарены» они были, судя по всему, из расчёта, что их будут видеть пользователи локальной сети одного квартала. Увы, скорость соединения и тот факт, что трафик внутри сети тарифицируется (выяснил опытным путём – скачав какой-то mp3-файлик) не позволяли набить свой винт шедеврами советского кинематографа. Как же найти другие ресурсы? Ручной перебор – это долго и малоэффективно… Поскольку подключался я по протоколу Samba, значит в эту сторону и надо копать… ...man samba и почти сразу же натыкаемся на утилиту nmblookup. nmblookup -A позволяет просканировать машину с указанным ip на предмет shared-ресурсов (и ресурсов samba тоже). Если ввести несколько ip через пробел, то nbmlookup проверит их все. Поскольку я так и не разобрался как задать маску, то пришлось написать небольшой скриптик, выводящий интересующий меня диапазон адресов:
#!/bin/bash
for i in `seq 0 255`;
do
nmblookup -A 192.168.240.$i
done
Должен заметить, что на скорости 128kB/s сканирование 256-и ip занимает несколько минут. Первый поиск дал примерно полтора десятка машин. В их число попали несколько серверов с фильмами/музыкой/варезом для локальных сетей, и несколько компьютеров предприятий. На следующий день «попался» компьютер предприятия, на котором админил мой друг. Дело в том, что из-за проблем с программой типа банк-клиент, 2 машины его сети не были прикрыты прокси и были напрямую подключены к adsl-роутеру. Поскольку права сотрудников не были должным образом ограничены, то они пооткрывали диски друг для друга. Рабочие документы, базы данных, переписка, фотографии – всё открыто.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments67

Проблемы с округлением в CSS

Reading time2 min
Views644
Посмотрите на эту страницу. Синим цветом выделены 4 плавающих блока с шириной равной 25% у каждого, которые находятся в контейнере с шириной 50px. Теперь вопрос: Какова ширина каждого блока?

Ширина эта должна быть равна 12.5px, но т.к. мы можем использовать только целые значения, то приходится округлять значения. И тут же возникает вопрос: В какую сторону округлять? В большую, в меньшую или в обе? Результаты думаю вас удивят, как и меня.


В итоге мы имеем три абсолютно разных лагеря.

Округление в меньшую сторону — И Opera и Safari округлили значение ширины до 12px. В результате чего образовался 2-x пиксельный пробел (помечен зеленым цветом) справа от блоков. Если вы когда-либо озадачивались, почему ваша красивая навигация не заполняет все пространство контейнера, теперь вы знаете ответ.
Округление в большую сторону — 6-й и 7-й Internet Explorer увеличивают ширину до 13px, что приводит к «поломке» структуры сайта.
Округление в обе стороны — Firefox 2 и 3 сочетают оба подхода, округляя ширину одних блоков в меньшую сторону, а других в большую. Побочный эффект заключается в том, что ширина блоков теперь имеет разное значение, несмотря на то, что в CSS задано одно значение. К тому же, если получить значение ширины с помощью Javascript, то оно будет равно 12.5px, не давая понять в какую сторону было произведено округление. Есть и еще один неприятный момент. В Firefox 3 меняется порядок округления.

David Baron, один из разработчиков Mozilla, разъяснил ситуацию:

— Мы стараемся соблюдать все нижеописанные правила, которые, однако же, не могут быть удовлетворены одновременно:

1. 4 смежных объекта шириной/высотой 25% (например), начинающиеся у одного края внешнего контейнера, должны заканчиваться у другого. Не должно появляться никаких свободных или лишних пикселей.
2. Объекты, которые являются логически смежными, всегда должны визуально касаться друг друга. Не должно быть никаких пустых пробелов или наложений, возникающих из-за ошибки округления.
3. Объекты с одинаковой шириной должны занимать такое количество пикселей, которое было задано.
4. Границы объектов не должны быть размыты.

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

Оригинал: Sub-Pixel Problems in CSS

Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments4

Настройка WiFi в Ubuntu

Reading time2 min
Views5.5K
Уже более полугода использую Ubuntu. Вроде бы все в ней меня устраивает, но иногда жизь омрачают мелочи вроде неполной поддержки железа, чаще всего вайфая. В этом хабратопике я хочу поделиться опытом настройки вайфая на своем железе, дабы попытаться избавить начинающих юзеров от многочасового гугления и бывалых линуксоидов от их вопросов. Делаю я это по просьбе хабраюзера smartov. Если вы можете помочь составить наиболее полный справочник по теме, буду рад добавить в статью и ваш опыт.

Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments60

Печать из браузера

Reading time4 min
Views8.1K
Web наступает. Все больше и больше обычных настольных приложений переезжает в Internet. Уже никого не удивить онлайновым текстовым или графическим редактором. А уж различные многопользовательские комплексы, базы данных, системы отчетности — тут раздолье для веб-технологий. Например, еще несколько лет назад было бы вполне нормально сделать систему регистрации и учета клиентов скажем стоматологической поликлиники или библиотеки в Delphi, добавить базу данных и сетевую часть. Но сейчас такое решение окажется неразумным: гораздо проще, удобнее, а значит и эффективнее использовать все то, что предоставляет нам Web, даже если приложением будут пользоваться только внутри локальной сети. Кроме того, такое решение кроссплатформенное, что актуально в связи с наметившейся тенденцией перехода к свободным ОС. Все что нужно на клиентских компьютерах — наличие браузера, никаких установок, настроек и прочего.

Но у решения все делать в web есть недостаток (даже не один, но я сейчас не буду перечислять все): неудобство при печати отчетов, бланков документов и прочих печатных страниц. Это связано с тем, что веб-страницы рассчитываются прежде всего для отображения на экране монитора и не подтачиваются для печати, что нередко ведет к расползанию печатной страницы. К счастью это все временные трудности и их можно обойти. Можно, например, генерировать отчеты в pdf или doc. Но я считаю это не слишком удобным: пользователю надо устанавливать программы, работающие с этими форматами, каждый раз выкачивать с сервера сгенерированный файл, печатать из сторонней программы, а не браузера. Поэтому стоит приложить усилия к созданию страниц, правильно выводящихся на печать прямо из браузера.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments12

Что нам стОит карту пользователей построить?

Reading time5 min
Views609
Несколько недель? назад прочитал на хабре про интеграцию с google maps. К сожалению не нашел ссылку, но смысл в статье шел о городском сайте на который пользователи могли самостоятельно добавлять объекты на карту. Идея выглядела довольно сексуально, но в комментах автор признался, что писАл этот функционал несколько месяцев((

Данный факт поверг меня в жёсткое уныние(
Анализ скриптов на симпатичных сайтах интегрированных с gmaps, навроде этого
dom показывал внушительные километры кода… И так бы я и продолжал сидеть в депрессии, пока случайно не забрел таки на сайт с хелпом от собственно гугла.

И как выяснилось — вся информация о сроках и объемах этой задачи как минимум саботаж и провокация! Итак, строим карту пользователей на основе сервиса Google maps
Примерно такую:


Читать дальше →
Total votes 57: ↑41 and ↓16+25
Comments34

Google maps с человеческим адресом.

Reading time1 min
Views645
Увидел статью про gmap и решил добавить немного своей инфы.
Буквально пару недель назад надо было интегрировать gmap непосредственно с сайтом. Было дано 35 зон и их надо было показывать на определенных страницах. Конечно, можно было создать 35 переменных и установить соответствие зона-координаты. Но это было бы как-то нудно )
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments6

Интегрируем google maps

Reading time2 min
Views2.8K
Google maps — отличное средство для картографии и сейчас мы будем интегрировать его себе на сайт благодаря открытому API. Интегрировать будем не только фиксированное положение но и произвольное, а именно — создадим в базе данных таблицу «locations», впишем там поля title, x, y.

Теперь нам надо редактировать каждое местоположение. Создадим полотно, где будет отображаться карта.
<div id="map" style="width: 250px; height: 250px"> </div>

Дальше — прикрутим вызов библиотеки из google. Поскольку я использую smarty, то я передаю ключ разработчика в виде переменной.
<script src="http://maps.google.com/maps?file=api&v=2&key={$google_maps_hash}" type="text/javascript"></script>


Теперь сделаем функцию, которая будет заниматься всей гразной работой — создавать карту в нашем div элементе, позиционировать согласно заданным координатам, устанавливать bubble. В случае если мы редактируем эти координаты, то функция будет по обратной связи прописывать в скрытые input-поля некоей формы «registration_form» новые координаты перенесённого pin-указателя.
<script type="text/javascript">
function load_map(x,y,title) {

if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(x, y), 13);
map.enableScrollWheelZoom();

point = new GLatLng(x, y);
marker = new GMarker(point);

map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.addOverlay(marker);
marker.openInfoWindowHtml(title);
/*
var mgr = new GMarkerManager(map);

GEvent.addListener(marker, "dragend", function() {
//var center = map.getCenter();
var strCenter=marker.getPoint();
marker.openInfoWindowHtml(document.forms['registration_form'].title.value);
document.forms['registration_form'].geo_x.value=strCenter.lat();//arrCenter[0];
document.forms['registration_form'].geo_y.value=strCenter.lng();//arrCenter[1];

});
*/
}
}
</script>
Total votes 19: ↑19 and ↓0+19
Comments30

Сброс пароля, редактирование реестра Windows из Ubuntu

Reading time2 min
Views38K
В связи с вирусами в винде и невозможностью запусить regedit, понадобилась возможность редактировать реестр извне. Нашел, пока, единственную утилиту в линуксе chntpw, которая изначально разрабатывалась для сброса паролей, а потом приобрела функцию редактирования реестра.
Читать дальше →
Total votes 92: ↑78 and ↓14+64
Comments39

Решение проблемы с вертикальной синхронизацией в видео на Ubuntu 10.04

Reading time2 min
Views47K
Этот топик я писал в песочницу, однако благодаря @BSDaemon, я получил инвайт еще до его (топика) публикации.
Продолжительное время Ubuntu я обходил стороной. Но недавно решил поставить. Все хорошо, красиво и вроде бы стабильно, но столкнулся я с одной неприятностью: при просмотре видео в полноэкрнном режиме, при ярких динамичных сценах, картинка будто бы делиться на части, и эти части не состыковываются между собой:

image
Сразу оговорюсь: у меня видеокарта GeForce, поэтому проблема, а также ее решение будет актуальна для пользователей видеокарт компании Nvidia. Подобный рассинхрон появляется только при включенном Compiz. По скольку Compiz меня радует не только красотой, но и удобством, отказываться от него я не собирался, вследствие чего стал искать решение.
Читать дальше →
Total votes 94: ↑73 and ↓21+52
Comments62

Flowplayer — Open source Flash плеер

Reading time1 min
Views31K
Лого с сайте

Flowplayer — Бесплатный видео-плеер для веба
FlowPlayer — это Flash медиа плеер. Вы можете использовать его нв ваших HTML страницах чтобы воспроизводить видео файлы. «Это ваш персональный YouTube».
Читать дальше →
Total votes 48: ↑46 and ↓2+44
Comments78

Создание превью изображения на основне свойства Overflow

Reading time3 min
Views6.3K
По просьбам пользователей после прочтения статьи Визуализация данных на CSS

Цель данной статьи заключается в том, чтобы реализовать возможность создания превью для изображения, размеры которого можно устанавливать самостоятельно. Бывает так, что у нас нет свободного места на странице, чтобы показать превью картинки полностью. Но и делать из картинок обрезки не хочется. Трюк, приведенный в статье, позволит создать нужные нам размеры превью и отображать полный его размер при наведении курсора на превью.
читать продолжение
Total votes 62: ↑58 and ↓4+54
Comments39

CSS в помощь JavaScript программисту

Reading time3 min
Views14K
С помощью JavaScript можно без проблем манипулировать всеми характеристиками узлов на html-странице. Но, как правило, изменение характеристик узлов «вручную» средствами JavaScript слишком трудоемкая работа, и требует от программиста знание тонкостей HTML и CSS.
Возможности CSS позволяют большую часть этой задачи переложить на верстальщика, а программисту останется лишь реализовать манипуляцию состояниями этих узлов. Такой подход к решению задачи позволяет обойти большую часть «подводных камней» и решить многие задачи без особых трудностей.
простой и наглядный пример отражающий суть
Total votes 40: ↑29 and ↓11+18
Comments62

Устанавливаем и настраиваем LAMP и Trac+SVN на Ubuntu

Reading time4 min
Views16K
Прочитав эту статью, я осознал, что Trac+SVN очень помогут в работе и решил настроить эту связку у себя на машине.

С недавних пор я использую Убунту линукс, потому установка и настройка проходили с учетом особенностей данной системы. LAMP у меня уже был установлен ранее, так же как и inadyn. В итоге я получил достаточно гибкую и удобную систему управления своими проэктами, к которой есть доступ по сети. Интересно, как сделать?
Делюсь опытом
Total votes 25: ↑25 and ↓0+25
Comments34

Практический JS: проблемы innerHTML

Reading time3 min
Views41K
Примечание: ниже перевод статьи Julien Lecomte «The Problem With innerHTML», в которой автор рассматривает проблемы при использовании метода innerHTML в современных браузерах и предлагает ряд советов, как ее можно избежать. Мои комментарии далее курсивом

Свойство innerHTML крайне популярно среди веб-разработчиков в силу своей простоты и удобства, поскольку оно совершено элементарно позволяет заменить HTML-содержание у конкретного тега. Можно также воспользоваться DOM Level 2 API (removeChild, createElement, appendChild), но использование innerHTML гораздо более простой и эффективный способ для модификации DOM-дерева. Однако, есть ряд проблем при использовании innerHTML, которых следует избегать:

  • Неправильная обработка свойства innerHTML может привести к атакам, связанным со script-инъекциями (XSS) в Internet Explorer, когда HTML-строка содержит вызов <script>, помеченного как отложенный: <script defer>...</script>
  • Выставление свойства innerHTML уничтожит все текущие вложенные HTML-элементы со всеми обработчиками событий, что потенциально может вызвать утечки памяти в некоторых браузерах.


Есть и еще несколько более мелких недостатков, которые тоже стоит упомянуть:

  • Нельзя получить ссылку на только что созданные элементы, вам приходится добавлять код для получения ссылки на них вручную (используя DOM API).
  • Вы не можете выставить innerHTML для всех HTML-элементов во всех браузерах (к примеру, Internet Explorer не позволяет выставить innerHTML для строки таблицы (tr)).


Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments50

И снова о speed performance вашего сайта

Reading time3 min
Views1.9K
Уф… наконец-то я решился написать свой первый пост.

В этом посте я хочу рассказать вам о некоторых простых, и в тоже время эффективных способах ускорения загрузки вашего сайта.
Все методы основаны на LAMP + nginx + drupal, но я уверен что всё это верно и для остального тоже.
Разговор пойдёт о первой загрузке сайта, то есть когда у клиента нет ещё кеша в браузере.
Читать дальше →
Total votes 54: ↑47 and ↓7+40
Comments76

Практический JS: разгоняем все, что движется

Reading time1 min
Views864
Примечание: ниже находится перевод статьи «Speed Up Your Javascript Load Time», в ней автор рассматривает некоторые наиболее эффективные техники и методы действия по уменьшению времени отработки JavaScript'а на клиенте. Большая часть из них общеизвестна, но в статье важно не просто их перечисление, а общий подход для решения задачи оптимизации времени загрузки. Далее мои комментарии курсивом.

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

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

читать дальше на webo.in →
Total votes 51: ↑49 and ↓2+47
Comments27
1

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered