Search
Write a publication
Pull to refresh
0
0
Мирон Яновский @Yanovsky

User

Send message

Getting Started with MongoDB and PHP

Reading time18 min
Views62K
Generation Next
За последний год произошла небольшая революция в мире СУБД, связанная с появлением безсхемных (безструктурных) СУБД таких как Apache CouchDB. В этих базах данных используется другой подход нежели в реляционных БД. Они достаточно быстро становятся популярны среди Web-разрабочиков из-за своей гибкости, простоты и легкой интеграции с современными технологиями такими как JSON.
В данной статье изложен краткий обзор MongoDB, одной из новых поколений безсхемных СУБД, которая получила большое внимание разработчиков.
Let's get started!

Javascript играет в шахматы — размер скрипта 1 KB!

Reading time1 min
Views20K


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

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

Альтернативный вид страницы для opera speed dial

Reading time1 min
Views3.3K
Давно искал способ детекта Speed Dial от Opera, чтобы для Speed Dial отдавался специальный вид страниц.
Путем экспериментов было установлено, что в режиме «скриншотера Speed Dial» Opera устанавливает жесткие значения для document.documentElement.clientHeight и document.documentElement.clientWidth в 768 и 1024 соответственно, естественно при наличии body тега внутри документа.

Вот, собственно, код, который детектит «opera speed dial mode»:
var sd = document.documentElement.clientHeight == 768 && document.documentElement.clientWidth == 1024 && window.opera;

Страница для теста dl.dropbox.com/u/2899751/opera-speed-dial/test.html
Исходинк pastebin.com/msfc9aYj

Просто добавляем dl.dropbox.com/u/2899751/opera-speed-dial/test.html в одну из ячеек Opera Speed Dial.
В нормально режиме будет выдаваться «Common page» в режиме Speed Dial будет валлпапер с андроидом droidfreeapps.com/wp-content/uploads/2010/01/android_logo.gif

Календарный период — улучшаем интерфейс

Reading time2 min
Views4.4K
Работая над интерфейсом очередного крупного проекта я старался дотошно проработать каждый его элемент. Конечно нет предела совершенству и, как это обычно бывает, заканчивая один проект ты уже видишь кучу его недостатков, делаешь анализ и выводы на будущее.

Тем не менее, в результате, работая над drop-down выбором календарного периода, в голову пришла интересная мысль не разбивать дату на две отдельные формы «С» и «По», как это всегда делают, а объединить их в одну форму и выпадающий блок.

Конечно кодеру предстоит в данном случае немного больше попотеть, но пользователю очевидно будет намного легче ориентироваться в календаре. Выбирая начальную дату он сразу же наглядно и быстро может выбрать конечную дату своего запроса, в том же окне, и не надо держать в голове и пытаться запомнить что же ты выбрал в предыдущей форме. Тем более в input-формах практически никогда не выводят день недели и, в процессе выбора конечной даты запроса, зачастую забываешь какой день недели собственно был у первой выбранной даты?

Если короче, сейчас сплошь и рядом, в том числе на именитых туристических сайтах, используют две отдельные формы для определения календарного периода, при чём одновременно, как правило, можно открыть только одну из них:

image
Пример обычной формы на Booking.com. Календари «С» и «По» разнесены в разные блоки

Как же улучшить этот интерфейс?

Начинаем работать с Drupal: полное практическое руководство (часть 2)

Reading time6 min
Views33K
Продолжение первой части.

Создадим страницу вакансий с помощью модуля Views

Хотя вы и можете самостоятельно писать запросы к базе данных для чтения содержимого, дело это долгое и сложное, даже с учетом мощного API Друпала.
Для построения страницы со списком вакансий мы задействуем Views — модуль, позволяющий извлекать содержимое из базы данных вообще без написания кода.
Попросту говоря, Views — это пользовательский интерфейс построения MySQL-запросов. Views — это невероятно мощный модуль, но порой его бывает трудно освоить начинающим пользователям. Лучший способ разобраться с Views — немного с ним поиграть, чем мы сейчас и займемся.
Читать дальше →

Начинаем работать с Drupal: полное практическое руководство (часть 1)

Reading time17 min
Views206K
Здравствуйте!

Выношу на суд хабраобщества перевод замечательной статьи Getting Started with Drupal: A Comprehensive Hands-On Guide. Данный материал является незаменимым руководством для начинающих друпальщиков, поскольку в нем рассматриваются не только установка и базовые принципы, но и два из «трех китов» Друпал-сайтостроения — Views и CCK. Самое приятное, что вся статья посвящена практическому созданию полезного сайта (доски объявлений). Право, во времена Друпала 4.7, когда я только начинал с ним знакомиться, о таких подробных и внятных руководствах можно было только мечтать.
Читать дальше →

Обзор нескольких новых плагинов jQuery

Reading time4 min
Views6.4K
Довольно часто я наступаю на одни и те же грабли. Стараясь выполнить какой-нибудь проект побыстрее, я с головой ухожу в реализацию необходимой функциональности. А через неделю, мне на глаза обязательно попадается описание библиотеки, фреймворка или плагина, воспользовавшись которыми, я мог бы выполнить свою часть работы в разы быстрее. В общем, сейчас я стараюсь быть в курсе готовых решений в интересующих меня областях. В последнее время мне часто приходится работать с javascript и поэтому, сейчас я уделяю особое внимание библиотеке jQuery и ее плагинам. Должен сказать, что упускать из виду такое разнообразие готовых решений просто нельзя. Данная статья сделана на основе обзора «50 Awesome New jQuery Plugins», который я прочитал пару дней назад.
Читать дальше →

Виртуальные карты: месяц в продаже, полет нормальный

Reading time2 min
Views8.8K
Месяц назад мы запустили новую услугу — продажу виртуальных карт MasterCard PrePaid.
Сегодня мы смотрим на статистику платежей вместе с нашим партнером, банком Интеркоммерц, и хотим рассказать вам о том, как идут дела.

В номинации «самые популярные магазины» первые три места ожидаемо заняли PayPal, App Store и Amazon.
Это и понятно: PayPal помогает переводить средства в другие страны, в App Store продается уже четверть миллиона приложений для iPhone и других яблочных продуктов, а на Amazon`е огромный выбор литературы на английском.

Популярнее всего у наших пользователей магазины, расположенные в США, Англии, Нидерландах… и, конечно, в Люксембурге.
А всего наши пользователи платили виртуальными картами в 38 стран, включая Японию, Исландию и Гибралтар.

Самый крупный платеж по виртуальной карте — на 449 долларов — в магазине радиоуправляемых моделей. Напомним, что максимальный номинал нашей MasterCard PrePaid — 14 000 рублей, что связано с требованиями российского законодательства.

Самый частый вопрос пользователей: «А можно мне довключить SMS-оповещение?»
Дело в том, что SMS-оповещение обязательно нужно, например, для привязки виртуальной карты к PayPal, а «довключить» его потом нельзя.
Мы очень постарались и снизили стоимость услуги до 19 рублей. Подключайте смело!

Самый большой неудавшийся платеж — 48 500 рублей. При этом на счете самого пользователя в Яндекс.Деньгах даже не было такой суммы — вероятно, дописались несколько случайных ноликов.

Самая обидная ошибка — на покупку не хватило трех рублей (а покупка была в иностранной валюте). Пользователь связался с нашим партнером, банком Интеркоммерц, где ему посоветовали подождать смены курса. Через день тех же денег хватило.

Мы видим, что сервис востребован пользователями, и решили не повышать комиссию с 1 сентября. Комиссия по-прежнему составляет 1,99% (но не менее 19 рублей). Напомним, что виртуальные карты MasterCard PrePaid можно купить ежедневно и круглосуточно в рублях, долларах или евро, а максимальный номинал карты — эквивалент 14 000 рублей.

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

F3: маленький PHP-фреймворк с огромными возможностями

Reading time7 min
Views27K


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

Fat-Free чем-то похож на известный Ruby-фреймворк Sinatra. Автор Fat-Free помешан на минимализме и чистоте кода, что положительно отразилось на этом простом каркасе для разработки самых разнообразных приложений.

Fat-Free состоит из одного файла и весит всего 55KB. При этом фреймворк обладает таким функционалом: специфический и довольно удобный шаблонизатор, гибкое кеширование, автоматическая защита от спама, интегрированные средства для юнит тестов, профайлер кода.

Он настолько маленький и быстрый, что даже может использоваться для контроля траффика Web-сервера.

Это, также, единственный фреймворк, который защищает Ваше приложение от хотлинкинга и DoS атак.
Читать дальше →

MakeMeLaughNow — анализ червя нового поколения в Facebook (перевод)

Reading time5 min
Views1.1K
В недавнем топике высказали пожелание, что было бы хорошо, если бы кто-то перевел. Я посмотрел текст — вроде не так много. Поэтому, кому интересно, смотрим…
Читать дальше →

Бюджетная маркерная доска

Reading time2 min
Views130K
Что такое маркерная доска и с чем ее есть, наверное, в курсе уже все. И этот пост — о варианте самодельной доски. Сделать такую штуку в нашем офисе меня сподвиг офис Яндекса, с их стенами, обклеенными пленкой, по которой можно писать маркером. Не прошло и месяца, как я решил
исполнить желание...

jQuery для JavaScript-программистов

Reading time12 min
Views71K
Примечание: ниже расположен перевод статьи «jQuery for JavaScript programmers», в которой автор высказывает свое мнение об этой библиотеке, ориентируясь, в первую очередь, на продвинутых программистов, и приводит несколько десятков примеров ее использования.

Когда jQuery увидела свет в январе 2006, я подумал: «очередная красивая игрушка». Выбор CSS-селекторов в качестве базиса было, конечно, изящной идеей (подробнее о ней в моей заметке getElementsBySelector), но использование цепочек преобразований выглядело немного замысловато, и сама библиотека, по-видимому, не покрывала всех возможных случаев. Я расценивал тогда jQuery только как временное и проходящее решение.

Только несколько месяцев спустя понял я, насколько же ошибался по отношению к ней. jQuery является просто произведением инженерного искусства. Она умело покрывает достаточно широкой диапазон повседневных функций и предоставляет при этом удобный API для расширений, с помощью которых можно добавить любую другую функциональность. Абстрактность в ней заложена на уровне ядра — речь идет о выборе DOM-элементов — и она извлекает из него максимум пользы. И что важнее всего, использование этой библиотеки подразумевает следование хорошему стилю в программировании и хорошо сочетается с другими частями JavaScript-кода.

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

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

8 вещей, которые я хотел бы знать, когда начинал свой бизнес

Reading time3 min
Views12K

Предисловие


В мире, наполненном стартапами, успех или неудачу сложно предсказать. Но одно можно сказать точно: тот, кто решается открыть своё дело, уже никогда не будет таким, как прежде. Постоянные трудности, связанные с появлением новых возможностей и проблем, делают процесс удивительным и интересным. Я думаю, что именно поэтому многие люди начинают своё дело, несмотря на наличие другой (более простой) альтернативы — работать на кого-то другого.
За свою жизнь я открыл несколько фирм и могу сказать, что некоторые извлечённые мной уроки были интуитивно понятны и доступны, в то время как другие — далеко не так просты и очевидны. Однако, учитывая временные и денежные затраты на понимание этих уроков, ни один из них я не могу назвать дешёвым.
Эти уроки изменили моё мировозрение, изменили меня как личность. Я рад, что мне пришлось столкнуться с ними, но это не значит, что я не хотел бы знать их изначально.
Вот эти восемь вещей, которые я хотел бы знать, когда начинал своё первое дело.
Читать дальше →

Обзор типов индексов Oracle, MySQL, PostgreSQL, MS SQL

Reading time6 min
Views206K
В одном из комментариев здесь была просьба рассказать подробнее об индексах, и так как, в рунете практически нет сводных данных о поддерживаемых индексах различных СУБД, в данном обзоре я рассмотрю, какие типы индексов поддерживаются в наиболее популярных СУБД
Взглянем?

Позиционирование элементов по разным сторонам блока

Reading time3 min
Views105K
Здравствуйте, дорогие читатели. Сегодня я расскажу вам о малоизвестном способе разнести два элемента по разным сторонам блока, в котором они находятся. Например вот так
Читать дальше →

Несколько других советов для PHP-разработчиков

Reading time3 min
Views9.9K
Навеяно вот этим.

Я решил вспомнить некоторые особенности PHP, связанные с производительностью.

Отмечу, что включил в свой небольшой список лишь то, что обычно вызывает удивление у junior developers, с которыми мне приходилось работать.
О банальных вещах, вроде «одинарные кавычки вместо двойных», думаю, знают все, поэтому постараюсь кого-нибудь удивить.

Результаты и выводы, сделаны на основании нескольких версий PHP, который крутятся на знакомых мне серверах, а именно 5.2.6 из Debian Lenny, 5.3.2 из Ubuntu, и 5.2.14 из dotdeb. Возможно, на других платформах, есть отличия.
Читать дальше →

Пико-проектор SP-H03

Reading time2 min
Views19K
Вот представьте: вы с друзьями поехали на дачу, стемнело, хочется посмотреть какой-нибудь интересный (скачанный, конечно же, легально) фильм. Но как быть? Смотреть вдесятером даже на семнадцатидюймовом ноутбуке мягко говоря неудобно. А старый телевизор, отвезенный на дачу по принципу «не жалко даже если украдут», с очень маленькой вероятностью оборудован USB-разъемом. Эту проблему можно красиво решить с помощью пико-проектора, который можно поставить, например, на крышу машины и направить на стену дома. LED пико-проектор SP-H03 размером с пачку сигарет (7x7 см) и весом всего в 170 грамм создаст вам небольшой кинотеатр под открытым небом.



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

R.I.P. «Ну, Погоди!» или повесть о копирайте

Reading time3 min
Views15K
Эта история не грустная, не поучительная и не громкая.
Это просто реальный рассказ о судьбе одного iPhone приложения.


Если вы начинающий разработчик под iPhone (или другую мобильную платформу) и вам в голову пришла идея вроде «а не сделать ли мне вот эту игрушку из моего детсва», то статья может оказаться полезной для вас.

Если вы просто любите читать о фейлах других, тоже добро пожаловать под кат.
Читать дальше →

Поддержка MySQL в Node.js: node-mysql-libmysqlclient

Reading time4 min
Views16K
Я довольно долго откладывал этот анонс, однако сейчас настало его время.

Встречайте: node-mysql-libmysqlclient v0.0.7, коннектор к MySQL для Node.js, поддерживающий синхронное и асинхронное выполнение запросов к БД и имеющий API, близкое к API аналогичных коннекторов для PHP/Perl/Ruby etc.

Читать об истории создания и возможностях последней версии коннектора.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity