Pull to refresh
47
0
claustrofob @claustrofob

User

Send message

Связываем домен и динамический IP

Reading time2 min
Views171K
Что мы имеем:
1. компьютер с осью и установленными mysql, apache, php (тут ничего писать не буду, благо мануалов хватает)
2. интернет с присваиваемым динамическим IP, роутер.

Что мы хотим:
1. Что бы люди вбивая в адресную строку браузера доменное имя второго уровня (купленное нами или полученное на каком либо сервисе), попадали на наш сайт (в независимости от того на каком IP он сейчас находиться).
2. Хотим это бесплатно.

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

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

Целебное зелье для IE5+ или IE7.js

Reading time2 min
Views7.1K
Разбирая код очередного проекта внутри тега head наткнулся на интересный код:

<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta3)/IE9.js"></script>
<![endif]-->

Только одно слово «IE9» меня пустило в замешательство. Первое что пришло мне в голову — это то, что при помощи этого .js кода браузеры под печальным клеймом Internet Explorer можно заставить работать используя свойства многообещающего IE9. Больше всего я ожидал что будут доступны свойства CSS3.0, но не тут-то было!
Читать дальше →

Работа с ANSI консолью

Reading time5 min
Views4K
imageЧасто ли нужно сделать програму для консоли? Не так часто, да? А вот я последнее время только этим и занимаюсь… Поэтому сделал класс (на самом деле сделал еще очень давно).
Этот класс позволяет выполнять такие простые операции, как подсветка текста, подсветка бэкграунда буквы или текста, установка курсора на нужную позицию, выбор консоли для вывода и ввод текста в консоль.
Читать дальше →

Из чего готовят Google Analytics Cookies

Reading time3 min
Views23K
печеньки
Добрый день.
Недавно одни из наших заказчиков выразили желание получать дополнительную информацию о посетителях своего сайта, конкретнее — о людях, заполнивших контактную форму. Это крупная европейская компания и им хотелось бы «фильтровать» своих потенциальных клиентов. Поясню на примере — допустим, решают они организовать выставку своего оборудования в Венгрии и им нужно решить, кто из венгров, оставлявших им свои контакты, скорее всего стоящий клиент, а кто «мимо проходил».
Основными показателями «надежности» клиента для нас стали: число посещений сайта, время проведенное на сайте, количество просмотренных страниц. Всю эту информацию мы получили из Google Analytics Cookies.

Что же из себя представляют печеньки от Google?

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

SGVsbG8gd29ybGQh или история base64

Reading time3 min
Views69K

Краткая предыстория


Вообще, все началось давно. Настолько давно, что вряд ли остались свидетели holy wars тех дней, когда решалось — сколько же бит должно быть в байте.

Это сейчас нам кажется само собой разумеющимся, что 1 байт = 8 бит, что в байте можно закодировать 256 различных значений. Но когда-то было совсем не так. История помнит и семибитные кодировки, и шестибитные, и даже более экзотические системы (например — ЭВМ «Сетунь», которая использовала троичную логику, то есть один троичный бит — трит мог иметь три, а не два значения, для нее было справедливо соотношение 1 трайт = 6 тритам). Но если оставить в стороне всякую экзотику, то мэйнстримом все-таки были кодировки, в которых 6, 7 или 8 бит в байте.

Шестибитная кодировка (например — BCD) позволяла закодировать в одном байте 64 различных значения, что, как казалось, было вполне достаточно для кодирования алфавитно-цифровых символов, а «лишний» седьмой бит расширял кодировку уже до 128 символов.

Однако скоро восьмибитный байт стал общепринятым.
Читать дальше →

Zen coding 0.6

Reading time1 min
Views1.6K
Поздравляю всех с выходом новой версии, мольбы были услышаны, теперь zen-coding умеет:
  • прописывать кастомные атрибуты у тегов (td[colspan=2])
  • разворачивать вложенные аббревиатуры: теперь можно буквально одной строкой написать весь документ (div#page>(div#header>ul#nav>li*4>a)+(div#page>(h1>span)+p*2)+div#footer)
  • если аббревиатура для div начинается с класса или айди, необязательно писать сам тег, #content>.section тоже сработает
  • инлайновые элементы, если их больше трех, теперь автоматически будут перенесены на новую строку
  • теперь у нас есть фильтры (можно, например, экранировать небезопасные символы добавив |e в конец аббревиатуры)
  • если указывать несколько $-символов, это сработает как предварение нулем (li.item$$$li.item001)
Кроме того добавилась поддержка PSPad, Komodo Edit, добавлены действия Toggle comment, Split/Join tag, Remove tag, пофиксены ошибки, улучшен API для редакторов, а сам проект переместился на GitHub.

Если «новая версия zen-coding» для вас — пустой звук, настоятельно рекомендую ознакомиться с этим топиком.

Обновляемся, обновляемся!

Список полезных инструментов для php разработчика

Reading time10 min
Views150K
PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку.
Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода.
Читать дальше →

Альтернативный способ записи IP-адресов

Reading time1 min
Views61K
Наверное, некоторые знают такую штуку, но думаю, далеко не все.

Как мы все знаем, адрес IPv4 представляет собой 32-битное число. Традиционно IP-адрес записывается в виде 4-х октетов, разделенных точкой, в десятичной системе счисления. Например: 77.88.21.8.
Однако существуют и другие, менее распространенные варианты записи.

Во-первых, каждый из 4-х октетов можно записать в восьмеричной или шестнадцатеричной системах счисления:
77.88.21.8 = 0x4d.0x58.0x15.0x8 = 0115.0130.025.010, или даже можно смешивать 77.88.0x15.010.

Во-вторых, адрес можно записывать в виде числа:
77 * 2563 + 88 * 2562 + 21 * 2561 + 8 * 256О = 1297618184.
Аналогично п.1 это число можно записывать в восьмеричной и шестнадцатеричной системах счисления: 1297618184 = 011526012410 = 0x4D581508.

Честно говоря, не нашел RFC, в котором описываются эти форматы, но это работает везде: в браузере, команде ping и т.д. Попробуйте сами.

Thick As Brick – простейший html шаблон для верстки

Reading time2 min
Views14K
Я почему вредный был?
Потому что у меня велосипеда не было!
Мультфильм «Трое из Простоквашино»


Когда десять раз делаешь одно и то же, на одиннадцатый раз ты волей-неволей начинаешь задумываться о том, как бы процесс оптимизировать. Так и с версткой: после десятка сверстанных страниц хочется слегка упростить свою задачу. Тут на помощь, конечно же, приходят разнообразные фреймворки (чего только стоит oocss или наикрутейший CSS-фреймворк от Яндекса или целая куча других не менее интересных фреймворков). Пригодятся и системы сборки (Ant стоит на службе у студии Артемия Лебедева, да и я потихоньку постигаю его Дао). Не стоит забывать и различные хаки и шаблоны лейаутов, коих в интернете бесчисленное множество.

Однако как быть с сайтом, для которого надо сверстать пару-тройку типичных страниц? Нет смысла тащить с собой кучу лишнего CSS-кода. Кроме того, многим верстальщикам гораздо проще написать качественный код с нуля, чем перегружать кучу заранее объявленных бесполезных классов. Что делать?

Чтобы решить эту высосанную из пальца нетривиальную задачу я написал простейший шаблон для верстки, который сильно облегчил мне работу над проектами. Шаблон примитивен и прост (потому так и зовется), на звание фреймворка ни в коем случае не претендует (минус в карму тому, кто обзовет его фреймворком! ;) ). Он несет в себе заранее объявленные CSS-классы для работы с меню, списками, формами, ресеты основных тегов (вроде сброса отступов у форм и правильных отступов у <p>) и еще кое-какие полезные для меня вкусности.

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

Ввод произвольных символов при помощи Compose Key: настройка

Reading time5 min
Views33K
Многие знают, что в Linux есть специальная кнопка: Compose. Её действие аналогично виндовым сочетаниям Alt+NumPad (Например, нажатие Alt+0169 даёт символ ©), но не требует хранить перед глазами таблицу кодов символов :) Если настроить правый Alt как Compose Key, то нажав RAlt+O+C получаем тот же значок копирайта: ©.

В статье я опишу способ назначения произвольных сочетаний клавиш для символов. Это будет удобно в первую очередь математикам: не нужно будет лазить в таблицу символов чтобы ввести «∀ε>0 ∃δ(ε)≕δ>0: ∀x∈O(x₀) |f(x)<A|» в любом приложении, поддерживающем юникод. Кроме математических символов, будут доступны всевозможные стрелочки (→⇖⇔⟲⟽), галочки (✘), буллеты (•‣★), кавычки («»), длинное тире (—), дроби(⅓, ⅞), диа⃫кр͎е̃ти⃰ческие зн⃫аки и всё что душе угодно в необъятном юникоде! :)
Хочу так же

WebSockets — полноценный асинхронный веб

Reading time7 min
Views347K
Пару недель назад разработчики Google Chromium опубликовали новость о поддержке технологии WebSocket. В айтишном буржунете новость произвела эффект разорвавшейся бомбы. В тот же день различные очень известные айтишники опробовали новинку и оставили восторженные отзывы в своих блогах. Моментально разработчики самых разных серверов/библиотек/фреймворков (в их числе Apache, EventMachine, Twisted, MochiWeb и т.д.) объявили о том, что поддержка ВебСокетов будет реализована в их продуктах в ближайшее время.
Что же такого интересного сулит нам технология? На мой взгляд, WebSocket — это самое кардинальное расширение протокола HTTP с его появления. Это не финтифлюшки, это сдвиг  парадигмы HTTP. Изначально синхронный протокол, построенный по модели «запрос — ответ», становится полностью асинхронным и симметричным. Теперь уже нет клиента и сервера с фиксированными ролями, а есть два равноправных участника обмена данными. Каждый работает сам по себе, и когда надо отправляет данные другому. Отправил — и пошел дальше, ничего ждать не надо. Вторая сторона ответит, когда захочет — может не сразу, а может и вообще не ответит. Протокол дает полную свободу в обмене данными, вам решать как это использовать.

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

Заинтриговал? Давайте посмотрим подробнее

10 способов побороть проблемы в IE6

Reading time3 min
Views2.6K

1. Используйте DOCTYPE


Лучше всегда прописывать доктайп в заголовке каждой html-страницы, причем, строгий режим рекомендуется:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

для XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

от себя добавлю, что недопускайте никаких сторонних символов перед доктайпом. Ни пробелов, ни переносов строки — иначе появятся странные поля у body и html
Читать дальше →

mod_rewrite: Просмотр списка правил только один раз

Reading time1 min
Views6.8K
С mod_rewrite есть одна проблема, об которую набиты уже наверное 15 миллионов шишек: он просматривает список правил снова и снова, пока URL удается хоть как-то изменить.

Очень часто получаеются и бесконечные циклы(например добавление расширения — оно добавляется снова и снова, если специально регэкспом не ограничить), над которыми с непривычки приходится поломать голову. Все надежды на модификатор [L] тщетны — он лишь сразу запускает следующую иттерацию обработки. Да и без бесконечного цикла лишние иттерации скорости работы не добавляют :-)

Хочу поделится достаточно простым и универсальным средством борьбы с такой особенностью, который обнаружил только-что :-)

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

PHP модуль — это всё ещё просто. Часть вторая

Reading time7 min
Views6.2K
Пока nerezus сочиняет статью о встраивании PHP, я постараюсь продолжить его рассказ о написании расширений. Рассказано будет далеко не всё, поскольку я считаю, что сложность наращивать надо постепенно, иначе материал будет трудноусвояемым и совсем не питательным. В связи с этим я всё-таки не расскажу в этот раз, как подменить операторы в классе, кто захочет, может почитать исходники модуля Operator от Сары Големон — основного автора какой бы то ни было информации о разработке расширений PHP.
Поскольку разработку я веду исключительно в линуксе, то писать мы будем без всяких хитрых аддонов к Visual Studio, ручками, с нуля :) А что, лучше сразу разобраться, а потом уже упрощать свой труд.
Поехали?

А давайте подружимся с SSH

Reading time7 min
Views3.3K
Многие мои знакомые так или иначе используют протокол SSH (заходя на свои роутеры, веб хостинги и непосредственно на собственные компьютеры дома и в офисе), при этом не все об этом знают.



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

В этой заметке вы узнаете:
  • как прописать псевдонимы для соединений
  • как настроить авторизацию без пароля
  • как передавать файлы по SSH
  • как запускать графические приложения по SSH
  • а так же получите общие советы по опциям SSHD


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

Используем jQuery в скриптах GreaseMonkey

Reading time3 min
Views15K
Я хочу рассказать об удобных и неоправданно редко использующихся новшествах GreaseMonkey версии 0.8, которая доступна уже более года. Они помогут сделать пользовательские скрипты более модульными, а главное — дадут возможность без ухищрений использовать jQuery, что позволит нам «писать меньше, а делать больше». Речь идет о новых мета-параметрах пользовательских скриптов: @resource и @require.
Читать дальше →

Пол Грэм

Reading time2 min
Views56K
Paul GrahamСколько раз я уже перечитывал статьи Пола Грэма, столько раз я удивлялся его потрясающему умению открывать глаза на вроде бы обычные вещи. И потрясающей способности интересно описывать окружающий нас мир.

Да, это он в 1998 году продал свою компанию Viaweb интернет-гиганту Yahoo, которая впоследствии назвала этот продукт Yahoo Store. Да, это он основал венчурный фонд Y Combinator. Да, это его журнал BusinessWeek включил в список 25 наиболее влиятельных людей в Сети за 2008.

Хотите читать по-настоящему интересные аналитические статьи? Вам однозначно к Полу. Я настоятельно рекомендую прочитать его заметки. Особенно если вы it-шник. Особенно если вы собираетесь открывать свой бизнес.

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

Верстка на HTML5

Reading time3 min
Views65K
html5

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

25 советов по улучшению вашего кода jQuery

Reading time15 min
Views29K
Это перевод статьи, написанной Jon Hobbs-Smith. Я счел ее довольно интересной и решил выложить в своем блоге, а также поделиться им с хабрапользователями, также как и я заинтересованными в библиотеке jQuery. Перед тем как начать хочу отметить, что написана она (как и переведена) далеко не экспертом в jQuery, поэтому если вы найдете в ней ошибку, пожалуйста, сообщите. Итак, начнем.
Читать дальше →

Угон JSON

Reading time1 min
Views5.6K
imageВ статье рассматривается метод перехвата данных отдаваемых через JSON с использованием метода "__defineSetter__", Этой уязвимости подвержены сайты JSON с которых: содержит конфиденциальные данные (иначе не спортивно), является валидным JS объектом, отдается по GET запросу. Требования к жертве: браузер поддерживает JavaScript, он включен, поддерживается метод __defineSetter__.
Читать дальше →

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity