Search
Write a publication
Pull to refresh
39
0
Антон Мельников @antonsnowy

Программист

Send message

Легкий способ начать тестировать

Reading time4 min
Views50K
Если вы PHP-разработчик, и по разным обстоятельствам тесты для своих приложений не пишете, то эта статья для вас. В ней я постараюсь вкратце показать с чего начать и что делать, чтобы написание тестов приносило вам радость, а вашему приложению стабильность.

Итак, первый совет. Забудьте всё что вы знаете о юнит-тестах. Швырните табуреткой в человека, который сказал вам, что без них не обойтись. Попробуем разобраться, в каких случаях нужно их использовать, а в каких — нецелесообразно.
Читать дальше →

Статистика по профилям пользователей ВКонтакте

Reading time6 min
Views100K
В этом посте я приведу статистику по данным, которые указали в своих профилях пользователи социальной сети ВКонтакте. Под катом также содержится ответ на интересующий многих вопрос — сколько всё-таки активных пользователей в этой соцсети? И, разумеется, пара слов о том, как всё это было собрано.
Читать дальше →

Улучшаем юзабилити за 5 минут

Reading time4 min
Views7.3K
В этой блогозаписи я намерена поделиться несколькими такими советами по увеличению юзабилити сайта, каждый из которых очень лёгок в реализации. Не все они кросс-браузерны, но всё равно они «глазурь на тортике»: читатель и не заметит, что их нет.

1. Отображайте нажатия кнопок и кнопкоподобных ссылок


Мой излюбленный совет. Когда стиль кнопки задаётся в CSS, или когда для отображения необычной кнопки используется рисунок (либо как фон, либо как элемент <img />), то кнопка не реагирует на нажатие во всех или в некоторых браузерах (зависит от ситуации). Вот какой простой уловкою вы можете дать знать посетителю сайта, что он и впрямь нажал на нечто нажимаемое:

.mybutton:active {
   position: relative;
   top: 1px;
   left: 1px;
}

Этим кодом кнопка смещается на 1 пиксел направо и на 1 пиксел вниз, когда её нажимают. Испробуйте: выглядит весьма убедительно.

Есть другие, не менее быстрые варианты: придать границе свойство inset, указать свойству text-indent значение 1px, изменить направление градиентного фона (что можно сделать быстро, если для этого не придётся прибегнуть ко графическому редактору, то есть если где-то ещё на сайте используется готовый перевёрнутый градиент), или комбинация нескольких из них.

2. Плавные переходы (CSS3 transitions)


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

Пристальный взгляд на шаблоны мобильных интерфейсов

Reading time5 min
Views6.1K


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

Эти 70 шаблонов проиллюстрированы сотнями примеров приложений для операционных систем Apple, BlackBerry, Android, Symbian, Windows и WebOS будут изданы O’Reilly Media как «Mobile Design Pattern Gallery». Ниже приведена одна из моих любимых глав — Приглашение.

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

Бесплатный облачный PHP-MySQL хостинг для небольшого сайта на основе Amazon AWS

Reading time8 min
Views87K
Данная инструкция не претендует на абсолютную точность, какую-либо новизну и предназначена для делающих самые первые шаги. Поэтому не судите особо строго.

Боевая задача.


Предположим нам хочется захостить небольшой проектик где-нибудь в надежном и не особо тормозящем месте. А поскольку сайт небольшой, то не будем заморачиваться и захотим от хостинга что-нибудь самое простое. Для наших целей вполне хватит PHP, MySQL и доступа по FTP.
Для решения этой задачи идеально подходит Веб сервис от Амазона в котором удивительным образом сочетается способность выдерживать большие нагрузки с бесплатным пакетом ресурсов на первый год после регистрации. В бесплатный пакет входит много чего, но в данный момент нас будут интересовать:
  • Виртуальный сервер в формате micro на основе Linux с доступом по SSH.
  • 30Гб места в Elastic Block Storage плюс 1Гб под бэкапы.
  • 15 Гб трафика в месяц.
  • Выделенный внешний IP адрес.

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

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

Обновление информации в фоне

Reading time2 min
Views12K
Всем добрый день.

Недавно я задумался надо вопросом фонового обновления информации и мне пришла в голову одна идея.

Суть задачи — мы находимся на странице списка новостей. Необходимо обновлять список по мере поступления новых новостей. Серверный язык PHP
Читать дальше →

Видеоплеер на базе ffmpeg

Reading time8 min
Views64K
Привет, Хабр!

В этой статье речь пойдет о разработке простейшего плеера с использованием библиотек из проекта FFmpeg.
Я не нашел на хабре статей на данную тематику, поэтому решил восполнить этот пробел.
Декодирование видео будет осуществляться с помощью библиотек FFmpeg, отображение — с помощью SDL.

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

Простой файловый хостинг на Google App Engine

Reading time5 min
Views11K
Наверняка каждый из вас в своей жизни находил удобный для себя файловый хостинг, а через какое-то время обнаруживал, что на нем от количества рекламы начинают болеть глаза, условия уже далеко не такие лояльные и вообще пора бы уже найти что-то новое. Вариантов дальнейших действий два — или найти новый, пока еще не раскрученный файлообменник и использовать его, пока он не испортится, или организовать собственное решение. Для второго варианта, в свою очередь, можно приобрести хостинг (придется правда набить шишек, пока не найдется добросовестный хостер с качественными услугами) или воспользоваться облачным сервисом.

Довольно интересной находкой оказался PaaS-хостинг от Google — Google App Engine (далее GAE), который дает возможность хранить до 5 Гб файлов при 1 Гб входящего и 1 Гб исходящего трафика в день, и кроме всего прочего, в нем используется модель High Replication, то есть ваши данные будут хранится сразу на нескольких серверах по всему миру!
Особенностью GAE является несколько нестандартный интерфейс для работы с файлами, поэтому я и сделал собственный сервис, о чем расскажу в данной статье.
Читать дальше →

flotr2 — графики и диаграммы на HTML5

Reading time1 min
Views36K
flotr2 — это библиотека с открытым кодом для построения HTML5 графиков и диаграмм. Flotr2 — так как стала ответвлением от Flotr, но уже без привязки к Prototype JS и с множеством усовершенствований.


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

Twitter бот на C#

Reading time3 min
Views8.3K


Здравствуйте, уважаемые пользователи Хабрахабра.
В этой статье я хочу рассказать вам об очень простом и полезном боте для Twitter, который поможет контролировать состояние Windows-сервера (Занятое место на дисках, процент загрузки CPU, RAM).

Предисловие


Я работаю системным администратором на одном консервном заводе. Так как фирма не профильная, приходится быть администратором и программистом в одном лице.
Причина создания этого бота — быстро заканчивающееся место на жестком диске сервера из-за ежедневных резервных копий баз 1С.
Я долго размышлял о возможных вариантах подобного контроля и пришёл к выводу, что Твиттер самое удобное решение для этого. Итак, от слова к делу.
Читать дальше →

Визуализация статистических данных с помощью Highcharts

Reading time7 min
Views28K
В этой статье я хотел бы изложить собственный опыт построения наглядных и презентабельных графиков с помощью Highcharts на основе статистики ОС и дисковых массивов. Для многих современных ОС и дисковых массивов существуют механизмы, основанные на встроенном или дополнительном ПО, которые позволяют получать данные о работе подсистем ОС или массива (имеются в виду не трассировки, а статистические показатели, усредненные по заданному интервалу). Также можно собирать статистику счетчиков пакетов и ошибок на интерфейсах коммутаторов LAN и FC. Многие хотят визуализировать эти данные и использовать в отчетах или же самописной системе мониторинга.
image
Читать дальше →

Кросспостинг в twitter, facebook, livejournal, vkontakte

Reading time7 min
Views81K

Когда я писал проект crafthunters.com, я заметил что для раскрутки клиенты используют социальные сети. Пользовались виджетами и лайками, но по хорошему надо было попадать в ленту новостей. Кроме того, популярный вконтакте вывел новости на главную страницу в сентябре. Т.е. для распространения контента надо было адаптировать standalone блог для представления в социальных сетях, используя простую истину: попасть в ленту новостей популярных социальных сетей. Вначале это происходило вручную и приносило более половины траффика. Потом пришла идея это всё автоматизировать.
Популярными социальными сетями у нас были:
  • facebook
  • вконтакте
  • livejournal
  • твиттер

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

Далее я хочу представить реализацию кросспостинга под эти четыре социальные сети для asp.net mvc.
Читать далее

Разработка приложения живого поиска по Twitter с помощью Knockout, jQuery и ASP.NET MVC 3

Reading time14 min
Views7K
Достаточно не тривиально разработать хорошо спроектированный front-end веб-приложения с уровнем отклика, производительностью и фичами, которые ожидают пользователи сегодня. Легко потеряться в кипящей смеси jQuery обработчиков событий, HTML разметки и AJAX вызовов и даже относительно простой GUI быстро может стать кошмаром для сопровождения.

Один из способов добавления некоторой структуры и порядка на клиентской стороне – использование фреймворка вроде Knockout. Knockout – это свободная Javascript библиотека с открытым исходным кодом, которая помогает реализовать Model-View-View Model (MVVM) паттерн на клиенте. Она хорошо документирована и официальный веб сайт великолепная точка старта с кучей реальных примеров, которые не только демонстрируют использование встроенных фич библиотеки, но и показывают, как расширить её свои собственными фичами.

В этом посте мы рассмотрим, как Knockout может быть использован совместно с плагином отображения, каким-нибудь jQuery и ASP.NET MVC 3 backend (или модель, как вам нравится) для построения простого, но эффективного приложения для живого поиска в Twitter.

Ок, сделаем это.

Реализация RESTful сервиса в классическом ASP.NET

Reading time6 min
Views5.5K
Статья рассказывает как быстро реализовать RESTful API в имеющемся классическом ASP.NET приложении.
Как при этом максимально использовать возможности библиотеки MVC.
Читать дальше →

OAuth2 клиент для ASP.NET

Reading time2 min
Views14K
OAuth2 – протокол авторизации, логическое развитие OAuth 1.0. Подробнее про него можно прочитать здесь.

Блуждая по интернету в поисках нормальной библиотеки OAuth клиента для .net я не нашёл ничего подходящего и решил написать сам, благо ничего сложного в этом нет. От библиотеки требуется производить три действия: выдавать ссылку на запрос кода авторизации, после возврата от авторизатора перенаправлять приложение на страницу запроса токена и далее производить запросы используя полученный токен.
Читать дальше →

Интеграция ASP.NET MVC 3 приложений с Facebook OAuth API. Часть 1: Авторизация

Reading time5 min
Views6.9K
Зачем нужна авторизация на вашем сайте через Facebook?
На данный момент в социальной сети Facebook более 500 млн. пользователей. Многие сайты предоставляют возможность авторизироваться без дополнительной регистрации, где нужно заполнять много полей информации о себе. Если у вас есть аккаунт на Facebook, то вам достаточно войти на сайт используя его. Это экономит время, ведь регистрация нередко требует потратить минут 5-10.

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

Итак, приступим…
Читать дальше →

Сравнение производительности JSON-сериализаторов для .NET

Reading time5 min
Views21K
Json в .NET может использоваться для разных целей. В моём случае это формирование ответа на Ajax-запрос в ASP.NET Mvc приложении. Конечно, конвертация ответа в JSON — не самое тонкое место, но мне стало интересно, как можно ускорить эту операцию. Настоящая статья не является детальным обзором существующих JSON-сериализаторов для .NET/Mono. Меня интересовало в первую очередь время, затрачиваемое на сериализацию относительно простых структур данных, и во вторую очередь маппинг. То есть, хочется чтобы сериализация легко и гибко программировалась и быстро работала.

В исследование попали следующие средства сериализации:
  1. Простая конкатенация строк
  2. JavaScriptSerializer (.NET Framework)
  3. DataContractJsonSerializer (.NET Framework 3.5)
  4. Newton Json.net (json.codeplex.com, james.newtonking.com/pages/json-net.aspx)
  5. JsonEx (code.google.com/p/jsonexserializer)
  6. Fluent Json (fluentjson.codeplex.com, code.google.com/p/fluent-json)

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

Почему стоит пользоваться PDO для работы с базой данных

Reading time9 min
Views331K

Перевод статьи Why you Should be using PHP’s PDO for Database Access.

Множество PHP-разработчиков привыкли использовать для работы с базами данных расширения mysql и mysqli. Но с версии 5.1 в PHP существует более удобный способ — PHP Data Objects. Этот класс, сокращенно именуемый PDO, предоставляет методы для работы с объектами и prepared statements, которые заметно повысят вашу продуктивность!

Введение в PDO


«PDO – PHP Data Objects – это прослойка, которая предлагает универсальный способ работы с несколькими базами данных.»

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

Эта статья написана для людей, которые пользуются mysql и mysqli, чтобы помочь им в переходе на более мощный и гибкий PDO.
Читать дальше →

Html Agility Pack — удобный .NET парсер HTML

Reading time5 min
Views165K
Всем привет!
Как-то раз мне пришла в голову идея проанализировать вакансии размещенные на Хабре. Конкретно интересовало, есть ли зависимость между размером зарплаты и наличия высшего образования. А еще сейчас у студентов идет сессия (в том числе и у меня), то возможно кому-то уже надоело трепать нервы на экзаменах и этот анализ будет полезен.
Так как я программист на .Net, то и решать эту задачу — парсить объявления на Хабре я решил на C#. Вручную разбирать строки html мне не хотелось, поэтому было придумано найти html-парсер, который помог бы осуществить задачу.
Забегая вперед скажу, что из анализа ничего интересного не вышло и сессию придется сдавать дальше :(
Но зато немножко расскажу про весьма полезную библиотеку Html Agility Pack
Читать дальше →

Последний год в ИТМО или пишем диплом на факультете ИТиП

Reading time15 min
Views44K
Приветствую хабрасообщество!
В начале прошлого лета, когда пришла пора думать о написании диплома, я прошуршал весь рунет на тему тонкостей и особенностей этого процесса не то, что бы на нашей кафедре, а хотя бы на моём факультете. Не нашлось ничего.
Обычный для большинства универов способ передачи этой информации – от старших товарищей к младшим и далее между младшими. В случае нашего потока горизонтальные и вертикальные связи оказались нарушены настолько, что большинство работало “в слепую”.

Пройдя данный путь до конца, я бы хотел облегчить его тем, кто пойдёт следом и подробно рассказать как это было у нас, на специальности Информационные системы и технологии (230201) кафедры ИС факультета ИТиП СПбГУ ИТМО.
Читать дальше →

Information

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