Pull to refresh
187
0
Альберт Степанцев @AlexLeonov

Программист. CTO. Архитектор. Преподаватель.

Send message

Ярославские колдоёбины

Reading time 1 min
Views 502
Проект "Колдоёбина.РУ", о котором я писал в предыдущем посте, внезапно, что называется «пошел». И пошел неплохо.

— Добавили центр Ярославля
— Получили миллион ценных советов по развитию сервиса
— Скоро откроем еще пару городов

И даже получили пожертвование в размере $5 на развитие!

Следите за новостями, как говорится.

P.S. Я пока не готов писать это в «Я пиарюсь». Перфекционизм, знаете ли…
Total votes 31: ↑18 and ↓13 +5
Comments 9

Колдоёбина.РУ

Reading time 1 min
Views 804
Запустили небольшой, но интересный проект на Ronny CMSKoldoёbina.ru

Суть проста — сервис оценки проезжести дорог. Для регионов это очень ценно и актуально, зачастую в незнакомом городе невозможно ездить по карте, не зная заранее, есть ли асфальт на данной улице, или проехать по ней можно только на танке.

Технически все очень просто — Ronny CMS как основа, несколько текстовых страниц, модуль на основе Яндекс.Карт, на карты накладываются отрезки, к ним — голосование и комментарии.

Этот сайт — по сути зачетная работа одного моего «студента» (программиста-стажера), он ее успешно сдал.

Не хочу выкладывать в «Я пиарюсь», поскольку пока еще не уверен в том, что это всем интересно, но отметить в персональном блоге — можно.
Total votes 49: ↑33 and ↓16 +17
Comments 36

Провайдеры, абоненты и забавные случаи

Reading time 1 min
Views 581
Тут на днях дома почти сутки не было интернета от Корбины, она же нынче Билайн. Сразу оговорюсь — к Билайну никаких претензий, форс-мажор признали, компенсировали полностью.

Но в этой истории есть несколько забавных моментов:
Читать дальше →
Total votes 16: ↑11 and ↓5 +6
Comments 22

Скупые строчки новостей

Reading time 1 min
Views 466
news.mail.ru/incident/3541131
lenta.ru/news/2010/03/20/dead
www.vesti.ru/doc.html?id=348419

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

Начальник. Полковник. Суббота… Он не отсиделся дома, он честно и до конца исполнил свой долг. Я считаю, что он — герой. И не просто герой, а Герой России.

Что можем сделать мы, простые сисадмины, программисты, девелоперы, SEOшники, ITшники?

Написать:
Президенту — letters.kremlin.ru
в Государственную Думу — www.duma.gov.ru/letter_pr.html
в Общественную Палату — ip.oprf.ru/treatments/send
обращение с просьбой присвоить Евгению Чернышеву звание Героя России. Посмертно.

P.S. Опыт общения с государственным органами и их представителями показывает, что таких людей — исчезающе малое количество. Поэтому новость лично меня глубоко потрясла. Я не верил, что такие еще есть.
Total votes 83: ↑52 and ↓31 +21
Comments 30

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

Reading time 3 min
Views 65K

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


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

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

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

Однако скоро восьмибитный байт стал общепринятым.
Читать дальше →
Total votes 71: ↑64 and ↓7 +57
Comments 36

Автоматическая посадка стотонного утюга или А с кем работаете Вы?

Reading time 6 min
Views 9.9K
Продолжу «космическую» тему в своих постах. На этот раз хочу рассказать об одном малоизвестном аспекте программы «Энергия — Буран», а именно — о системе автоматической посадки орбитального корабля.

Кратко о программе


imageО программе «Энергия — Буран» написано немало, я бы порекомендовал всем интересующимся сразу отправиться на специальный сайт buran.ru, на котором очень много достоверной информации.

Если вкратце резюмировать, то программа «Энергия — Буран» предусматривала создание универсальной тяжелой ракеты-носителя «Энергия» стотонного класса и, в качестве полезной нагрузки для нее — орбитального многоразового корабля «Буран».

Корабль «Буран» во многом был аналогом американской системы Space Shuttle: крылатый и бесхвостый планер, плиточная теплозащита, грузовой люк, сходные массо-габаритные параметры (вывод 30 тонн и возвращение с орбиты 20 тонн груза, экипаж до 7 космонавтов), но, поскольку техника не стоит на месте, а наш корабль разрабатывался позже, имел и существенные отличия. «Буран», в отличие от американского аналога, был изначально предназначен для стыковки с орбитальными станциями и другими кораблями, имел систему спасения экипажа (ее отсутствие погубило в свое время экипаж «Челленджера»), и, самое главное — мог выполнять задачи выхода в космос, работы на орбите и посадки в полностью автоматическом режиме.

Читать дальше →
Total votes 173: ↑169 and ↓4 +165
Comments 184

mod_rewrite — просто о сложном

Reading time 4 min
Views 63K

Что это такое?


mod_rewrite — это модуль для веб-сервера Apache, предназначенный для преобразования URL-ов. Модуль использует в своей работе правила, которые могут быть описаны как в конфигурации сервера (httpd.conf), так и в файлах .htaccess непосредственно в файловой структуре Вашего сайта. Правила описываются в виде регулярных выражений PCRE

Hello world


Простейший пример. Допустим, Вы захотели, чтобы никто не знал, что Ваш сайт написан на PHP и решили замаскировать расширения файлов. Можно, конечно, внести соответствующую директиву в конфигурацию Apache и тогда все файлы с расширением ".msl" («My Super Language») будут обрабатываться интерпретатором PHP. Но можно поступить проще:
создаем в корне нашего сайта файл .htaccess со следующим содержимым
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)\.msl$ $1.php [QSA,L]


Первая директива включает механизм mod_rewrite в текущей папке и во всех ее подпапках. Вторая указывает модулю mod_rewrite, что текущая папка в файловой системе соответствует корню сайта. Третья — непосредственно правило преобразования URL.

Прочесть его можно так:
Если сразу после начала строки ("^") идет произвольное количество любых символов ( "(.*)" ), причем мы хотим запомнить, что именно это за символы, окружая их скобками, затем идет точка ("\.") (экранируем точку, потому что одиночная точка — это просто любой символ), затем символы «msl» и на этом строка заканчивается ("$"), то заменим исходный URL на следующий: возьмем первую запомненную подстроку в скобках из правила, прибавим к ней ".php", добавим все дополнительные параметры адреса, которые могли быть "[QSA]" и на этом закончим, не будем применять дальнейшие преобразования, если они есть "[L]"

Все, теперь Вы можете смело менять все ссылки, заканчивающиеся на ".php" на ".msl" и писать в своем блоге, что изобрели новый скриптовый язык. Apache, встретив ссылку на «index.msl» с помощью mod_rewrite на лету преобразует ее в «index.php» и вызовет нужный скрипт.

А что еще умеет mod_rewrite?


Читать дальше →
Total votes 45: ↑33 and ↓12 +21
Comments 12

О Робокассе наглядно

Reading time 4 min
Views 93K
Вчера вечером добавил интерфейс взаимодействия с Робокассой в свою CMS.

Кратко о платежной системе


Робокасса — интегратор платежных систем. Она позволяет организовать прием платежей в пользу магазина через множество известных электронных валют (Webmoney, ВКонтакте, ЯндексДеньги, Деньги@Mail.Ru, RBK Money и другие), через терминалы оплаты ЭлексНет, и, самое главное — через SMS.

Доступно два варианта подключения — для юридических лиц и ИП, с выводом денег из системы на расчетный счет и для физических лиц с возможностью вывода в электронные валюты.
Читать дальше →
Total votes 49: ↑38 and ↓11 +27
Comments 48

Продолжаем тему, ТКС и Алмаз

Reading time 4 min
Views 3.3K
Поскольку предыдущая тема про ракету Н-1 вроде бы понравилась хабражителям, рискну продолжить.

Сегодня я расскажу еще об одном малоизвестном широкой публике космическом эпизоде — военной станции «Алмаз» и о тяжелом транспортном корабле ТКС (Транспортный корабль снабжения).

image
Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Comments 13

Н-1, апофеоз и epic fail шестидесятых

Reading time 8 min
Views 5K
Посвящается недавнему семейному походу в музей космонавтики

О чем этот пост?


Я попробую в доступной форме рассказать о самом удивительном и, наверное, самом трагическом эпизоде советской космонавтики — об истории разработки ракеты сверхтяжелого класса «Н-1».

Н-1 на стартовом столе

Как все начиналось


Официальное начало проекту «Н-1» было положено Постановлением Правительства CССР от 23 июня 1960 г. «О создании мощных ракет-носителей, спутников, космических кораблей и освоении космического пространства в 1960-1967 гг.» В Постановлении предусматривалось «проведение в 1960-1962 гг. проектно-конструкторской проработки и необходимого объёма исследований в целях создания в ближайшие годы новой космической ракетной системы со стартовой массой 1000-2000 т, обеспечивающей вывод на орбиту вокруг Земли тяжёлого межпланетного космического корабля массой 60-80 т, мощных жидкостных ракетных двигателей с высокими характеристиками, ЖРД на жидком водороде, ядерных и электрореактивных двигателей, высокоточных систем автономного и радиотехнического управления, систем космической радиосвязи и т.п.»

На самом же деле Постановление закрепило уже ведущуюся к тому моменту эскизную разработку в ОКБ-1 Королева ракеты-носителя, предназначавшейся для широкого круга задач — вывод тяжелых геостационарных спутников, большой орбитальной станции, и, наконец, запуск ТМК — тяжелого межпланетного корабля.
Читать дальше →
Total votes 50: ↑49 and ↓1 +48
Comments 23

Одна маленькая фича, которой мне не хватает в PHP…

Reading time 1 min
Views 632
… это ключевое слово deprecated в объявлении функции (метода).
Если интерпретатор его встречает — генерирует ошибку уровня E_WARNING.

Особенно грустно от отсутствия этого слова потому, что в 5.3 уже есть даже специальный уровень E_USER_DEPRECATED, но нет ничего, что могло бы генерировать такую ошибку, кроме неочевидного и неудобного trigger_error()

Всего одно слово, но как много оно могло бы изменить. Очень жду и верю, что будет.
Total votes 20: ↑8 and ↓12 -4
Comments 32

Ronny CMS, введение

Reading time 4 min
Views 1.4K

Когда деревья были маленькими


Начну издалека — с истории. Когда-то давно был PHPNuke. От этой CMS форкнулся XOOPS.
Когда разработчики XOOPS решили перейти на тогда еще молодой и малоизвестный шаблонизатор Smarty — случился еще один форк, и часть команды ушла делать свою CMS, без блэкджека — e-xoops, сохранившую Native PHP.

Где-то в 2004 году автор пришел в русскую команду e-xoops. Пришел случайно, не планируя оставаться надолго. Быстренько сделал пару сайтов на этой CMS. Внес пару хаков. Вместе со всеми следил за эволюцией и переименованием системы в RunCMS.

Вскоре очередной клиент потребовал очередной интернет-магазин. К тому времени сложилась интересная ситуация — я с напарником bigazzzz хорошо знали изнутри RunCMS, многое в ней нравилось (а многое — нет), но магазины, если возникала нужда, строили на сторонних решениях (osCommerce и прочий ад...) Время было, опыт тоже, желания — выше крыши, поэтому решили на базе RunCMS создать свой магазин, в виде модуля для CMS.

Сначала он был простеньким, но с каждым новым сайтом, следуя за пожеланиями заказчиков развивался. Ко второй версии он по объему кода превзошел саму CMS, по функционалу — многих аналогов и получил собственное имя — RunSTORE.

Шли годы, развивался RunSTORE, развивалась и RunCMS, в которую мы тоже старались вносить усовершенствования. Однако случилось странное — зарубежным «владельцам» CMS не понравилось то, что большую часть кода в ней пишут русские разработчики (а главным постепенно стал MichaelXIII). В один прекрасный день «владелец» закрыл репозиторий, уничтожил всю базу кода и выгнал всех разработчиков, заявив, что откатывается на предыдущую версию.

А мы к тому времени успешно продали RunSTORE. Новый владелец строил планов громадьё, но что-то у него не задалось. Результат — нет ни RunSTORE, ни RunCMS, и заняться нечем* -)) А писать хотелось…
*- шутка, заняться всегда есть чем, но хочется ведь и для души что-то сделать...

Так родился форк от RunCMS под названием Ronny CMS.
Да, это тот же Nuke/xoops/Runcms, но наверное, самый современный и цельный из всех имеющихся. А может и нет -))
Читать дальше →
Total votes 83: ↑57 and ↓26 +31
Comments 75

Ответ предыдущему топику. Пиар SendPost.RU

Reading time 1 min
Views 622
Ребята, ну нельзя же так…

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

Открывали ООО, получали реальный юридический адрес и реальный московский телефон. Покупали 1С, сажали в офис специально обученную девочку на прием заказов.

Не торопясь открылись, запустили пару пробных кампаний в AdWords и Бегуне. Получили небольшой выхлоп.

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

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

А Вы вчера зарегистрировали домен, набрали картинок из клипарта и запустились.

Отлично, я считаю. Спасибо. Удачи Вам в бизнесе.

P.S. «Я пиарюсь»? Вот оно — SendPost.RU
Total votes 77: ↑41 and ↓36 +5
Comments 76

Вдогонку к предыдущему посту или О разных методах хранения конфигов

Reading time 3 min
Views 659
Настоящее приложение просто обязано быть конфигурируемым.

Новостная лента — не лента, если админка не позволяет указать, сколько же новостей выводить на главной. Блог — не блог, а унылый бложек, если нельзя тонко настроить миллион параметров — от заголовка, до разного цвета комментариев от девочек и от мальчиков.

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

С конфигом связаны две проблемы —
1. Как и где его хранить?
2. Как и откуда его получать?
Взаимосвязь этих проблем прослеживается очень четко, поэтому их можно свести в одну — «Как хранить конфиги?»
Читать дальше →
Total votes 13: ↑4 and ↓9 -5
Comments 34

Читаем мануалы — об одном секрете include

Reading time 2 min
Views 771
Для тех, кто приходит в мир PHP с С или других языков зачастую бывают откровением некоторые особенности языка, которые описаны в документации, но, тем не менее, часто ускользают из виду.

Сегодня я хочу рассказать о нестандартном (с точки зрения большинства программистов) использовании оператора include в PHP

Оказывается, что этот оператор, помимо своей основной работы — включения в Вашу программу внешнего файла, может еще и вести себя как функция, то есть возвращать значение.
Читать дальше →
Total votes 49: ↑31 and ↓18 +13
Comments 33

О некоторых аспектах дорожного строительства

Reading time 2 min
Views 445
Навеяно вчерашним апокалиптичным вечером, который я провел борясь с непогодой на Ярославке.
Личный антирекорд скорости — почти 7 часов от Костромы до МКАДа, и все из-за неожиданного снега.

Введение в тему


Несколько недель назад во Владимирской области на трассе М8 открыли первую очередь объезда печально знаменитых «владимирских горок». Этот участок традиционно считался самым сложным и самым аварийным на всей трассе — около 20 километров крутых подъемов и спусков, резкие повороты, узкая дорога, высокие обочины и постоянно запрещенный обгон.

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

Вот здесь я попытался на карте изобразить как выглядит объезд:
maps.google.ru/maps/ms?ie=UTF8&hl=ru&msa=0&msid=106474660129920883535.0004783ea2139601d1b19&t=h&z=12
Читать дальше →
Total votes 18: ↑14 and ↓4 +10
Comments 20

Как я подключался к QIWI

Reading time 6 min
Views 34K

Зачем мне это было нужно?


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

Было принято решение принимать платежи через QIWI, во-первых потому что их автоматы есть практически везде, а во-вторых (тссс, большой секрет!) они готовят запуск системы прямых платежей со счета сотового оператора, без всяких дурацких СМС и девяностодевятипроцентных комиссий.

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

Сказано – сделано!


Для сайта был взят вполне заурядный VDS, на котором собран вполне заурядный же серверный набор – nginx спереди, Apache позади.

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

Для работы с SOAP проще всего взять с гуглокода класс nuSOAP (http://code.google.com/p/nusoap-for-php5/).

Затем нам надо сделать две вещи:
  1. Отправку на сервер QIWI информации о попытке платежа
  2. Прием от QIWI на наш сервер пакета с информацией об изменении статуса платежа.

Документация, жаль, что не очень подробная, есть здесь: https://ishop.qiwi.ru/docs/OnlineStores_Protocols_SOAP.pdf
Читать дальше →
Total votes 71: ↑67 and ↓4 +63
Comments 56
2

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity