Как стать автором
Обновить
59
0
Иван @ivv

Пользователь

Отправить сообщение

Bootstrap-wysiwyg: крошечный текстовый редактор

Время на прочтение2 мин
Количество просмотров104K



Текстовый редактор bootstrap-wysiwyg — это всего 1.5 Кб в минифицированном и сжатом виде и чуть больше 6 Кб исходного кода, базовые функции редактирования на основе execCommand, drag-and-drop для вставки изображений, поддержка стандартных горячих клавиш и ничего лишнего. Редактор работает в современных браузерах (Chrome 26, Firefox 19, Safari 6) и на мобильных платформах (IOS 6 iPad/iPhone, Android 4.1.1 Chrome). Зависимости — jQuery, jQuery HotKeys и Bootstrap.
Читать дальше →
Всего голосов 156: ↑149 и ↓7+142
Комментарии63

Как сэкономить деньги в Amazon Web Services — выбор эффективной архитектуры

Время на прочтение4 мин
Количество просмотров16K
Всем привет!

Сегодня поговорим на тему как «профессионально сэкономить» деньги при использовании облачных сервисов Amazon Web Services при размещении веб-решений, адаптированных для России. Мы активно используем сервисы данного облачного провайдера для проектов компании почти 2 года и постоянно занимаемся оптимизацией расходов. Довольно странно, что важная тема оптимизации расходов на Amazon Web Services, очищенная от маркетингового булшита, как-то не особо представлена в сети. Постараюсь предметно поделиться опытом и обозначить явные выгоды и ошибки, которые следует учесть при проектировании веб-систем.

Читать дальше →
Всего голосов 60: ↑54 и ↓6+48
Комментарии19

Полезные советы новичкам в дизайне под Android

Время на прочтение3 мин
Количество просмотров171K
Этот пост послужит своеобразным началом серии публикаций на тему «как я учусь дизайну под Android». Никогда не уделял гайдлайнам достаточно внимания, считая их скучными и неинтересными, но все изменилось. Сейчас я начинаю понимать, платформа достигла своей зрелости и предлагает ряд интересных решений.
Читать дальше →
Всего голосов 64: ↑50 и ↓14+36
Комментарии47

В погоне за идеей

Время на прочтение10 мин
Количество просмотров4.7K


Приветствую тебя, Хабр. В этой статье я бы хотел уделить несколько абзацев текста такой, актуальной нынче, теме, как стартапы (думаю, уже не за горами то время, когда само это слово станет у нас синонимом чего-нибудь неприличного). Но даже это еще не все. Я осмелюсь покуситься на самое-самое святое для стартапера, на его начальную Идею. Попытаюсь понять, стоит ли она все-таки хоть что-то, и существует ли какой-нибудь метод, не очень зависящий от эмоций, чтобы была возможность как-то конструктивно работать с этими идеями.

Многое, о чем я буду говорить, будет похоже на откровения капитана, а какие-то высказывания, возможно, могут кому-то показаться окрашенными в назидательный тон (хотя я никоим образом этого не хотел). Заранее прошу у читателей отнестись к тексту снисходительно, т.к. всё, что вы прочтете ниже, лишь изложение мыслей автора вслух по теме, и ничего больше.
Читать дальше →
Всего голосов 77: ↑65 и ↓12+53
Комментарии31

Некоторые “подводные камни” разработки под Android

Время на прочтение9 мин
Количество просмотров69K
Недавно наша команда завершила разработку приложения под Android. В процессе разработки и затем поддержки мы столкнулись с некоторыми проблемами технического характера. Часть из них — это наши баги, которых мы могли бы избежать, другая часть — это совсем неочевидные особенности Android, которые либо плохо описаны в документации, либо не описаны вообще.

В этой статье я бы хотел рассмотреть несколько реальных багов, которые возникли у наших пользователей и рассказать о путях их решения.

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

Читать дальше →
Всего голосов 57: ↑44 и ↓13+31
Комментарии46

OAuth на практике. Аутентификация и авторизация пользователей сайта через популярные социалки

Время на прочтение14 мин
Количество просмотров346K
Думаю, не мне одному чрезвычайно надоели ресурсы, требующие регистрации по каждому поводу и без. С обязательной капчей, которая правильно введется только с пятого раза, с подтверждением по е-мейлу, которое обязательно свалится в спам и то — только через сутки. Придумывать каждый раз новую пару логин-пароль — забудется, вводить одно и то же на всех сайтах — небезопасно. Местами прокатывают пары вида «qwerty:qwerty» или «login:password», но, увы, далеко не везде. Надоело. Не счесть, сколько раз я, увидев надпись «только зарегистрированный пользователь может ****», просто кривился и закрывал вкладку, чтобы больше ни разу на этот сайт не заходить. Неужели администраторы ресурсов сами этого не понимают?
Читать дальше →
Всего голосов 126: ↑116 и ↓10+106
Комментарии180

Практическая оптимизация и масштабируемость MySQL InnoDB на больших объёмах данных

Время на прочтение5 мин
Количество просмотров20K
Данный пост не будет рассказывать про индексы, планы запросов, триггеры для построения агрегатов и прочие общие способы оптимизации запросов и структуры БД. Так же не будет рассказывать про оптимальные настройки с префиксом innodb_. Возможно прочитав текст ниже вы лучше поймёте смысл некоторых из них. В данном посте речь пойдёт об InnoDB и его функционирование.

Какие проблемы может помочь решить этот пост?


  • Что делать если у вас в списке процессов множественные селекты которым казалось бы никто не мешает?
  • Что делать если всё хорошо настроено, запросы пролетают как ракеты и список процессов постоянно пустой, но на сервере высокий LA и запросы начинают работать немного медленнее, ну например вместо 100мс получается 500мс ?
  • Как быстро масштабировать систему, когда нет возможности всё переделать?
  • У вас коммерческий проект в конкурентной среде и проблему надо решать немедленно?
  • Почему один и тот же запрос работает то быстро то медленно?
  • Как организовать быстрый кеш и поддерживать его в актуальном состояние?

Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии46

Все, что вам стоит знать о Mail forwarding'е за 0$

Время на прочтение9 мин
Количество просмотров64K
Покупая за рубежом в режиме онлайн, мы часто сталкиваемся с вопросом «Как доставить?». Многие магазины и продавцы eBay отказываются отправлять в Россию, а платить посреднику комиссию за лишнюю работу, с которой мы и сами в состоянии справиться (выкуп, общение с продавцом и т.д.) желания никакого нет. В таком случае, интернет-покупатели пользуются услугой "MF". Что это такое, куда обращаться и как самостоятельно покупать за рубежом, если вы этого никогда не делали, — читайте ниже.

UPD: При выборе метода доставки eBayToday вы не только сэкономите значительную сумму, но и сможете спокойно отправлять литевые батареи или товары с ними. Стоимость доставки eBayToday узнавайте в калькуляторе.

Mail Forwarding — это просто


Mail Forwarding (или “Ваш адрес за рубежом”, далее сокращенно MF) — услуга, при которой вы самостоятельно совершаете покупки и используете адреса складов компании-посредника за рубежом. Она крайне полезна, если продавец, как уже было сказано выше, по каким-либо причинам не отправляет товар напрямую в Россию. Также Mail Forwarding заманчив тем, что не придется отдавать комиссию посреднику. Услуга, конечно же, платная, однако стоимость ее существенно меньше комиссионных процентов.

Схема такая: оплату товаров продавцам вы осуществляете самостоятельно с помощью вашей кредитной карты или аккаунта PayPal. Склад компании используется как доступный для продавца адрес, а также как пункт для объединения и дальнейшей пересылки товара в Россию.

image

Цена Вашего адреса за рубежом — 0$


Одно из наиболее выгодных предложений на сегодняшний день у посредника eBayToday, который снизил цены на тарифы Mail Forwarding. Теперь стоимость одной пересылки
Читать дальше →
Всего голосов 14: ↑8 и ↓6+2
Комментарии32

В помощь интернет-шопперу

Время на прочтение3 мин
Количество просмотров126K
Для покупок на ebay-подобных околоазиатских сайтах могут быть разные причины от острого, свербящего желания получить часы «как в Portal 2» до банальной лени, стоящей на пути между диваном и торговым центром. Среди них и желание сэкономить, и острая хроничесекая интернет-шоппинг-зависимость типа моей. Ну и, конечно, ни с чем несравнимая эйфория после победы финального босса – тётечки из окошка Почты России. Она сначала пытается измотать вас 20-минутной очередью под «Ласковый май» в уютном отделении почтовой связи, а потом запросто может попросить дописать на обратную сторону извещения код подразделения, выдавшего паспорт, но не спросить сам документ, за которым только что пришлось возвращаться с полпути до почты по причине собственной забывчивости.
Так, о чём это я? Ах, да, о ещё одной торговой интернет-площадке и тонкой, незримой связи её с OCR.
Читать дальше →
Всего голосов 85: ↑74 и ↓11+63
Комментарии60

Самые простые техники адаптивной верстки

Время на прочтение2 мин
Количество просмотров462K
Сайтов с адаптивной разметкой с каждым месяцем становится все больше, заказчики кроме кроссбраузерности все чаще требуют адаптивность, но многие разработчики не спешат обучаться новым техникам. Но адаптивный дизайн — это просто! В этой статье представлено 5 примеров адаптивной разметки различных элементов веб-страниц.


Читать дальше →
Всего голосов 168: ↑152 и ↓16+136
Комментарии51

Советы по правильной настройке телевизора

Время на прочтение6 мин
Количество просмотров911K
Для начала, что есть «правильная настройка». Если вы хотя бы раз были в магазине электроники, то наверняка замечали, что все выставленные телевизоры показывают по-разному. С чем это связано? Какой из них лучше? Давайте разберемся.

Я думаю, вы согласитесь, что телевизор должен не просто показывать какую-то картинку, но и вносить как можно меньше искажений в исходный контент. Сам контент всегда создается с оглядкой на стандарты и рекомендации индустрии, и главная цель любого телевизора — донести до вас именно то изображение, которое вам хотели показать. Тут важно всё: и оттенок кожи у актера, и цвет неба на закате, и какие детали изображения должны быть видны, а какие спрятаны. Существуют международные стандарты, описывающие каким должно быть изображение на экране вашего телевизора. Все вы, наверняка, встречали аббревиатуры PAL, NTSC, или HDTV, вот за этими буквами и скрываются свойства видеосигнала и различные параметры изображения. С приходом HDTV в нашу жизнь, большая часть стандартов сразу же устарела, и, фактически, наиболее актуальным сейчас является стандарт REC709, который используется в телевидении высокой четкости (HD) и в Blu-Ray видео.
Читать дальше →
Всего голосов 184: ↑171 и ↓13+158
Комментарии127

Руководство по оформлению HTML/CSS кода от Google

Время на прочтение12 мин
Количество просмотров356K

От переводчика


С удовольствием ознакомился с этими рекомендациями и теперь предлагаю вам перевод.

Введение


Это руководство описывает правила для оформления и форматирования HTML и CSS кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

Это относится к рабочим версиям файлов использующих HTML, CSS и GSS

Разрешается использовать любые инструменты для минификации компиляции или обфускации кода, при условии, что общее качество кода будет сохранено.
Читать дальше →
Всего голосов 295: ↑286 и ↓9+277
Комментарии168

Уроки Python от компании Google

Время на прочтение1 мин
Количество просмотров120K
Отличный способ освоить Python — учебный класс Python в Google Code University. Уроки для этого класса написал Ник Парланте из Стэнфорда, и прошедшие курс люди отмечают не просто высокое, а фантастически высокое качество уроков.

Курс включает в себя шесть видеолекций на Youtube, где Ник проводит обучение новичков-гуглеров и подробно рассказывает о разных хитростях и фичах Python. Некоторые видеолекции длиной до 50 минут.

Есть ещё скачиваемые задачки. Они довольно простые и созданы специально для начинающих. Курс идеально подходит для изучения Python программистами, имеющими опыт работы с другими языками программирования.
Всего голосов 159: ↑148 и ↓11+137
Комментарии77

Типы instance в amazon ec2

Время на прочтение3 мин
Количество просмотров31K

В этой статье я расскажу о трех типах instances в Amazon с примерами подсчета стоимости и скринами с консоли и биллинга Amazon. Статья родилась в силу малого количества информации про amazon web services, в частности данных про экономию оплаты на reserved instances я не нашел в рунете. Много скринов для лучшего понимания, когда я начинал работать с amazon мне этого сильно не хватало.

Читать дальше →
Всего голосов 32: ↑25 и ↓7+18
Комментарии28

Балансировщик нагрузки для Amazon EC2 c автомасштабированием

Время на прочтение9 мин
Количество просмотров9.7K
Многие знают, что Amazon предоставляет возможность автоматически наращивать мощность вашего пула (увеличивать количество виртуальных серверов) в зависимости от нагрузки. Однако я не сумел найти в русскоязычном сегменте сети толкового описания практической реализации такой схемы. Рискну представить на суд общественности итог моих штудий на данную тему.

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

Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии9

Знакомство с gitolite

Время на прочтение4 мин
Количество просмотров60K
gitolite — это средство для создания централизованных репозиториев для совместной разработки через git.

Зачем оно нужно?


Родные средства git для этой задачи на сегодня явно недостаточны: родной git-протокол не содержит каких-либо средств авторизации, а для работы через ssh потребуется завести полноценного юзера в ОС (с шеллом), что далеко не всегда уместно и желательно.
gitolite же позволит вам заводить пользователей независимо от наличия аккаунта в ОС и гибко раздавать права.
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии22

Разбираем iPhone Core Data Recipes. Часть 1

Время на прочтение9 мин
Количество просмотров34K

Introduction


Цель данной статьи — помочь начинающему iOS разработчику, понять, как правильно работать с SQLite базой данных используя Core Data на примере iPhone Core Data Recipes. В первой части из серии статей, будет рассмотрено взаимодействие приложения и базы данных, а также работа со связанными записями (Relationships).

Prerequisites


Для самостоятельного изучения исходных текстов данного приложения, вам необходим стандартный набор инструментов:
  • Mac OS X
  • Xcode


Данный набор позволит вам просмотреть, изменить и запустить приложение на симуляторе. В случае же, если вы захотите попробовать запустить его на настоящем iPhone, требуется участие в iOS Developer Program.

А также, что немало важно, нужно базовое понимание структуры языка Objective-C и приложения.

Ссылки на используемые материалы и инструменты предоставлены в разделе References.

Что такое iPhone Core Data Recipes?

Xcode проект от разработчиков из Apple, который дает общее представление о том, как использовать view controllers, table views и Core Data в iPhone приложениях. Конечно, данный проект также актуален для iPad, но в него необходимо внести интерфейсные изменения, для корректного отображения на iPad.

iPhone Core Data Recipes Screenshots

Скриншоты ниже, дают общее представление о интерфейсе приложения. В главном окне «Recipes» — оторбаражается список готовых продуктов. Нажав на один из них, приложение отображает информацию о том, как приготовить данный продукт, его категорию, сколько на это нужно времени, какие и в каком количестве необходимы ингредиенты, а также кнопку которая отображает текстовую инструкцию по приготовлению (скриншот не приведен). Также в приложении есть возмоность конвертации значений между граммами, фунтами и унциями, а также таблица соответствия температур (по цельсию и фаренгейту).
Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии15

Простая минималистская реализация сложных JavaScript приложений

Время на прочтение12 мин
Количество просмотров8.7K
Я хочу описать простой минималистский подход к разработке сложных JavaScript приложений. Из внешних библиотек будут использоваться только jQuery и мой js-шаблонизатор, причём из jQuery используются только $.ready(), $.ajax() и $.proxy() — т.е. суть не в библиотеках (их тривиально заменить на предпочитаемые вами), а в самом подходе.

В основе подхода лежат две идеи:
  1. JavaScript виджеты — небольшие модули, каждый из которых «владеет» определённой частью веб-странички (т.е. всё управление этой частью странички происходит исключительно через методы этого модуля, а не через прямую модификацию DOM — инкапсуляция). Виджет отвечает исключительно за функциональность, но не за внешний вид; поэтому прямая модификация части DOM, которым «владеет» виджет, снаружи виджета допускается — но только для чисто дизайнерских задач (для архитектуры и общей сложности приложения нет принципиальной разницы между коррекцией внешнего вида через CSS или jQuery).
  2. Глобальный диспетчер событий. Взаимодействие между виджетами осуществляется путём посылки сообщений глобальному диспетчеру (слабая связанность, паттерн Mediator/Посредник), а уже он принимает решение что с этим сообщением делать — создать/удалить виджеты, дёрнуть методы других виджетов, выполнить дизайнерский код, etc. В отличие от динамического подхода к обработке событий (когда обработчики конкретного события добавляются/удаляются в процессе работы) статический диспетчер сильно упрощает понимание и отладку кода. Безусловно, есть задачи, для которых нужны именно динамические обработчики событий, но в большинстве случаев это избыточное усложнение, поэтому всё, что можно, делается статическими обработчиками.

Читать дальше →
Всего голосов 63: ↑58 и ↓5+53
Комментарии42

Принимаем платежи на сайте с банковских карт при помощи Skrill

Время на прочтение7 мин
Количество просмотров51K


Платежи по банковским картам в интернете являются самым популярным и наиболее универсальным способом оплаты услуг. Бытует мнение, что организация приема карточных платежей на своем сайте является сложным и затратным делом. На самом деле это совсем не так. Любой грамотный IT-специалист или фрилансер сможет это сделать даже без образования юридического лица! Единственное необходимое условие — иметь свой сайт, остальное постигнем в процессе.
Подробности
Всего голосов 53: ↑47 и ↓6+41
Комментарии58

Битовые операции в PHP на примерах

Время на прочтение3 мин
Количество просмотров88K
Навеяно статьей об обработке критических ошибок в PHP. Обратил внимание, что несмотря на то, что коды ошибок в PHP специально заточены под битовые операции, тем не менее, что в примерах статьи, что в комментариях, для проверки кодов ошибок используются обычные операторы сравнения.

Например, встречались такие варианты:
if ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR){…}
или
if(in_array($error['type'], array(E_ERROR, E_PARSE,  E_COMPILE_ERROR)) {…}

В связи с этим решил написать небольшую статью о битовых операциях с примерами их использования.
Читать дальше →
Всего голосов 242: ↑203 и ↓39+164
Комментарии162

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность