Pull to refresh
1
0
Леха Козаков @stand_up

User

Send message

Icon Ambulance — Скорая пиктографическая помощь

Reading time2 min
Views814
Перевод одной истории, произошедшей в Калифорнии.

Воскресным утром, 6-го января 2008 года я был в церкви когда мой телефон завибрировал. Как можно более незаметно я проверил телефон и заметил, что на экране значится — «Абонент не определён». Я решил проигнорировать звонок.

После службы, когда мы с моей семьёй шли к машине, я просмотрел сообщения на телефоне. Там было одно от Стива Джобса. Оно гласило: «Вик, перезвони, пожалуйста, мне на домашний. Я хотел бы обсудить кое что важное.»
Читать дальше →
Total votes 113: ↑77 and ↓36+41
Comments61

Как обелить свой телефон

Reading time2 min
Views14K
Так получилось что сегодня наткнулся на уже подзабытую, но все еще актуальную, тему отключения «серых трубок». Судя по новости, массовые репрессии в обозримом будущем всё таки начнутся. Так, что буду рад поделится своими знаниями с теми, для кого эта проблема всё еще актуальна.

Напомню теорию. Любой телефон который пересек границу Украины «нелегально» заносится в так называемый «серый» список, а по прошествии трех месяцев, нахождения в нем, соответственно, в «черный» и перестает регистрироваться во всех сотовых сетях. Это касается и телефонов друзей/родственников приехавших погостить из СНГ или более дальнего зарубежья, и реально ворованных аппаратов, и конечно практически всех новых айфонов и им подобных которые выгоднее заказать/привезти чем покупать на месте.

Для законопослушных граждан, которые в силу тех или иных событий стали счастливыми обладателями таких трубок, есть несколько официальных способов легализации, но все они весьма бюрократичные, и неудобные, а в некоторых случаях неприменимы вовсе. Но к счастью есть «lite» метод легализации, который то ли был оставлен специально, для своих, то ли для реселлеров, то ли появился когда народу стало совсем плохо, но простые потребители, как правило, о нем не знают…
Читать дальше →
Total votes 86: ↑70 and ↓16+54
Comments78

Реализуем DI-контейнер на PHP5 с помощью Reflections

Reading time5 min
Views1K
Этот топик для тех, кто представляет, что такое DI (Dependency Injection) но никогда не задумывался «как оно там унутре все работает».
Прочитать, что такое DI, можно например тут или тут

Не ставилось целью разработать свой Production DI-фреймворк. Хотелось разобраться как можно реализовать подобную функциональность наиболее удобно (Phemto, упомянутый выше, показался менее удобным, чем, например, способ от Microsoft Unity)

Реализованный вариант конфигурируется в коде (не через XML, как некоторые другие реализации, хотя это кому как удобнее).
Каждый используемый тип должен быть предварительно зарегистрирован, но не надо перечислять его аргументы, как например в Phemto — контейнер сам выяснит типы аргументов конструктора через Reflection.

Посмотреть код реализации...
Total votes 8: ↑4 and ↓40
Comments4

OAuth: описание протокола простым и понятным языком

Reading time16 min
Views190K
OAuth — популярный протокол, который позволяет социальным сервисам интегрироваться между собой и дает безопасный способ обмена персональной информацией. OAuth может связать между собой 2 сервиса, каждый из которых имеет свою пользовательскую базу — именно их я в данном случае называю «социальными». Когда начинаешь работать с OAuth, первое ощущение — что протокол весьма сложен и избыточен. В этой статье я попытаюсь объяснить основы OAuth человеческим языком.

Пример кросс-авторизации


Вернемся в 2005-й год и представим, что мы пишем социальную сеть. В ней имеется форма импорта контактов из адресной книги GMail. Что нужно для доступа к контактам GMail? Конечно, логин и пароль от ящика. Но если мы попросим ввести их на нашем сайте, пользователь заподозрит неладное. Где гарантия, что мы не сохраняем на сервере введенные пароли? Поэтому нам хочется, чтобы пароль вводился только на сайте GMail, и после этого доступ к контактам через API GMail предоставлялся нашей социальной сети (возможно, на время).
Под катом - повествование с примерами
Total votes 134: ↑124 and ↓10+114
Comments34

Точная проверка Email адреса регулярным выражением

Reading time2 min
Views3.4K
Как все знают, один из самых удобных способов проверки e-mail адреса является регулярные выражения. Недавно пришлось столкнулся с проблемой максимально точной проверки адресов. Данная проверка была необходима в системе автоматической рассылки спама опросников, где каждый список адресов подгружался автоматически одним большим файлом. Требовалось исключить максимальное количество заведомо невалидных адресов.
Проблема заключалась в том, что все шаблоны проверки е-мэйла, которые можно встретить в интернете, МСДН и других источниках не удовлетворяли требованиям проверки. Обратившись к первоисточникам в виде RFC 2821 и RFC 2821, я выяснил как же точно и правильно валидирвоть адреса.
Читать дальше →
Total votes 47: ↑35 and ↓12+23
Comments57

Save-закладка

Reading time1 min
Views1.8K

В моем графическо-рукодельном баловстве под названием iconote многих позабавила закладка с иконкой Save. Решил выложить ее в виде векторного файла — зачем изображению без дела валяться:)
Т.е. можно распечатать, желательно на плотной бумаге, и пользоваться на здоровье:)



AI-файл
EPS-файл
PDF-файл
Total votes 63: ↑60 and ↓3+57
Comments6

Семь контент-проектов объединили в «Веб-Медиа холдинг»

Reading time1 min
Views440
В Рунете появился ещё один олигарх. О своих амбициях объявил Сергей Калугин, бывший гендиректор крупнейшего кабельного оператора «Национальные телекоммуникации» НТК (на фото). В интервью «Коммерсанту» он сообщил, что покидает прежнее место работы ради управления новым холдингом.

В течение прошлого года Калугин без особой огласки скупил семь контент-проектов в Рунете (общая сумма составляет, видимо, несколько десятков миллионов долларов). Однако из-за кризиса выгодно продать их теперь невозможно, так что приходится самому идти в этот бизнес.

В состав «Веб-Медиа холдинг» войдут:
1. Photosight.ru (известное сообщество фотографов).
2. Credit.ru.
3. Bank.ru.
4. Looky.ru
(социальная сеть для подростков).
5. Menu.ru.
6. Inout.ru.
7. Weekend.ru.


Суммарная аудитория проектов составляет около 150 000 посетителей в неделю. При этом, как легко заметить, проекты рассчитаны абсолютно на разные аудитории.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments1

Надгосударственное управление

Reading time1 min
Views1.3K
На Хабре уже публиковался пропогандистский ролик «Дух времени» (Zeitgeist). Так вот это — гораздо сильнее: Лекция в Управлении ФСБ, Санкт-Петербург, В. А. Ефимов, 2003 г., 2 часа (!), но они того стоят с начала и до конца.



Нужно в тематический блог переместить, но кармы нехватает.
UPD.: — Саморазвитие?
UPD2: Господа «умники»! А что вы знаете о таком учёном как Никола Тесла? Этот великий человек продемонстрировал людям электромобиль, работавший от «черной коробочки». Машину тестировали в течение недели — она каталась и не требовала подзарядки. Чудо? Фильм «Престиж» — выдумка близкая к правде.
— А чудо состоит в том, что «критический разум» до сих пор высмеивает идею «эфира», победил тупой Эдиссон.
ru.wikipedia.org/wiki/Никола_Тесла
logos-z.narod.ru/4/3/04.htm
Total votes 109: ↑68 and ↓41+27
Comments215

Прототип бионического глаза и звуковая капча

Reading time1 min
Views1.3K
В догонку к статье Прототип бионического глаза позволит людям, потерявшим зрение, снова видеть.

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


Как не странно почти каждый из пользователей Хабра может облегчить жизнь слабовидящим людям. Если вы не в курсе, слепые пользуются компом на ровне со зрячими, через специальные речевые проги. Я работал с невидящим прогером и суппортером, и однозначно могу сказать, что работоспособность его была на порядок выше многих зрячих.
Читать дальше →
Total votes 106: ↑103 and ↓3+100
Comments81

Дизайн форм подписки на RSS, или капля креатива

Reading time1 min
Views1.3K
Заканчивая «причесывать» свой блог, мне оставалось лишь приделать форму подписки на RSS. В итоге это затянулось на несколько часов :)

Нет, вы не подумайте, что мне не хватило ума вставить простой код от FeedBurner :) Просто, мне вдруг до безобразия захотелось сделать для этой формы какой-то эффектный дизайн…

Сначала хотелось сделать форму как можно компактнее, без лишних кнопок, заголовков и т.д. 
В итоге получилось такое:
rssforms1.jpg
Но и этого мне было мало :)
Читать дальше →
Total votes 60: ↑49 and ↓11+38
Comments107

Новый jQuery плагин адаптивной галереи c автоматической группировкой

Reading time3 min
Views30K
image

На сайте tympanus.net представлен новый экспериментальный jQuery плагин для создания галереи, который можно использовать для решения разных задач, например, простой показ изображении, сгруппированных определенным образом или отображение целых альбомов пользователей с фотографиями без перезагрузки страницы. Разумеется, галерея адаптивная, что позволяет удобно использовать ее как на компьютерах с большим экраном так и на мобильных устройствах.
Как использовать этот плагин?
Total votes 54: ↑49 and ↓5+44
Comments17

Пишем плагин для jQuery

Reading time8 min
Views246K
Эта статья призвана дать представление об основных правилах, подходах, дающих наилучшие результаты, и распространённых ошибках, на которые стоит обратить внимание при разработке плагинов для jQuery.
Читать дальше →
Total votes 171: ↑138 and ↓33+105
Comments67

Особенности работы с Apple push notification service

Reading time3 min
Views29K
Добрый день, уважаемые хабражители. Совсем недавно я закончил разработку apns-сервиса и хотел бы поделиться некоторыми особенностями работы с ним. Статья не является пошаговой инструкцией, а описывает трудности и подводные камни с которыми может столкнуться разработчик. Примеры кода буду приводить на Ruby, но все написанное актуально и для других платформ, в частности, PHP.
Читать дальше →
Total votes 32: ↑25 and ↓7+18
Comments9

Асинхронные запросы к MySQL

Reading time3 min
Views35K
В mysqlnd появилась возможность выполнять запросы к MySQL асинхронно, то есть продолжить работу скрипта не дожидаясь выполнения запроса и формирования результата. Преимущество такого подхода очевидно, ведь можно выполнить массу полезной работы во время ожидания запроса, но для начала я приведу немного другой пример:

Допустим у Вас есть 3 запроса (q1, q2, q3), каждый запрос выполняется за определенное время (t1, t2, t3), например так:

SELECT 1 AS val, SLEEP(1) AS sleep
SELECT 2 AS val, SLEEP(2) AS sleep
SELECT 3 AS val, SLEEP(3) AS sleep


В случае синхронного выполнения запросов, Вы сможете получить результаты их выполнения через t1 + t2 + t3 (ex: 6 секунд), а в случае асинхронного выполнения запросов уже за max(t1, t2, t3) (ex: 3 секунды)

Примеры работы с асинхронными запросами, а также другие примеры работы с mysqlnd можно найти на github

Под катом reverse engineering, segfault и больше подробностей работы с асинхронными запросами
Total votes 40: ↑37 and ↓3+34
Comments16

Memcached и метки. Реализация для фреймворка Kohana

Reading time4 min
Views3.1K
Приветствую всех.

Уже довольно давно разрабатываем проект на кохане и встала необходимость эффективного кэширования данных. Не то, чтобы вопрос производительности стоит очень остро в данный момент, но, хотелось бы подготовится заранее, а не писать систему кэширования в ночь после волны посетителей. Да и посещаемость постоянно растет, а в некоторые моменты бывают всплески до 3х раз по сравнению с обычным днем.

Собственно, в выборе системы кэширования особых вопросов не было — на ум сразу приходит всем известный memcached.

Если вы хотя бы немного смотрели memcached, то должны были отметить, что, по большому счету, он поддерживает только 2 операции: получение значения, запись значения. Нет никакой возможности вытянуть все ключи по определенному признаку или паттерну. Сделано это сознательно, с целью сделать его максимально простым, а значит, максимально быстрым.

Итак, представим ситуацию, что мы храним в кэше данные записей блога под ключами post_. В определенный момент нам требуется сбросить все записи с постами, при этом не очищая кэш полностью (там могут хранится другие данные, значения которых все еще актуальны). Ситуация получается безвыходная. Мы не знаем список ключей постов, получить их нет возможности, сбросить ключи по паттерну тоже невозможно. Что же делать?

Решение есть.
Total votes 25: ↑20 and ↓5+15
Comments19

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

Reading time2 min
Views47K
Когда я работал над сервисом заметок jotsky.com, еще до работы в Островке, надо было сделать ввод телефонного номера из двух инпутов. Примерно такой:



Я сделал навигацию с помощью стрелочек. Сделал, чтобы по мере заполнения фокус переключался к следующем инпуту. А вот сделать правильную вставку из буфера обмена у меня никак не получалось.
Читать дальше →
Total votes 175: ↑162 and ↓13+149
Comments98

Выпадающее меню в панели номеров страниц Twitter Bootstrap

Reading time2 min
Views6.7K
Вчера я делал верстку для панели с номерами страниц с использованием Twitter Bootstrap и мне потребовалось добавить туда выпадающее меню (для выбора вариантов сортировки и количества элементов на странице).



Bootstrap не содержит стандартных стилей для выпадающих меню в панели номеров страниц. Я написал свои стили для выпадающих меню, возможно, кому-то они будут полезны.

Версия .less (просто подключите вместе с twitter bootstrap)
Версия .css и пример использования
Демо

Пример использования
Total votes 44: ↑34 and ↓10+24
Comments23

Полезные штуки для iOS-разработчика #1

Reading time4 min
Views83K
На Хабре в свое время было несколько статей «Очень много полезных штук для AS3». Автор попытался собрать ссылки на самые полезные и интересные библиотеки. И т.к. в последнее время я разрабатываю под iOS, решил последовать его примеру и сделать то же самое, но для своей платформы. Описания почти прикладывать не буду, все есть на страничках проектов.
Читать дальше →
Total votes 114: ↑109 and ↓5+104
Comments80

Как правильно сортировать контент на основе оценок пользователей

Reading time5 min
Views91K


В оригинале название звучит как «How Not To Sort By Average Rating». Я подумал, что дословный перевод «Как не сортировать по усреднённому рейтингу» будет малопонятен и хуже отражает содержание статьи.

Постановка проблемы


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

Неправильное решение №1

Рейтинг= (Число положительных оценок) - (Число отрицательных оценок)

Читать дальше →
Total votes 458: ↑423 and ↓35+388
Comments134

Information

Rating
Does not participate
Location
Днепропетровская обл., Украина
Date of birth
Registered
Activity