Search
Write a publication
Pull to refresh
0
0
Vasiliy @JMS

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

Send message

Простая реализация long polling механизма на PHP

Reading time4 min
Views94K
Сейчас довольно популярно использование Comet-технологии, «когда при которой постоянное HTTP-соединение позволяет веб-серверу отправлять (push) данные браузеру, без дополнительного запроса со стороны браузера», согласно википедии.
Реализаций этой технологии есть много разных, но я сейчас хочу остановиться на одной из них, которая называется Long Polling. В статье я разберу, что это такое и с чем его едят.
Ну а тем, кто знает, что это, возможно, будетинтересно посмотреть на реализацию, которая не использует сторонний софт для своей работы — только PHP. Зачем это нужно, если есть специальные comet-сервера, которые выдержат гораздо более высокие нагрузки, чем скрипт на PHP? Это может пригодиться, если нужно сделать небольшой проект без высоких нагрузок, а на хостинге не дают ставить сторонний софт. Ну и если мне в рамках одного задания, где как раз нельзя было использовать сторонние приложения, пришлось реализовать данный функционал, то почему бы не поделиться.
Читать дальше →

Борьба с DDoS глазами Highload Lab

Reading time15 min
Views73K
O трендах и тенденциях в DDoS-атаках рассказывает создатель Highload Lab и сети фильтрации трафика QRATOR Александр Лямин. Интервью мы брали еще в начале года, но изменилось пока немногое



DDoS-атаки появились на заре интернета. Знакомство с ними для меня лично началось во время проекта IT Territory в 2003 году, когда игра только стартовала. Она имела достаточно агрессивную рекламную кампанию, в ответ на которую тут же прилетел DDoS от конкурентов. Скажу честно, я растерялся. Больше всего из-за того, что компания, которая оказывала хостинг-услуги, не просто не смогла, а не пожелала бороться с атакой. Ее представители сказали, что это не их проблема.
Читать дальше →

HighLoad 2012

Reading time14 min
Views37K
На днях в Москве прошла «конференция разработчиков высоконагруженных систем» HighLoad++, участником которой мне посчастливилось стать. Ниже я хочу кратко пройтись по докладам, которые посетил в рамках конференции, выделив в них интересные на мой взгляд моменты.

Сразу предупрежу, что какие-то вещи я мог понять неправильно, какие-то переврать. Если для вас это важно — не читайте этот пост, а приходите на следующую конференцию лично!
Читать дальше →

Система мобильных платежей Apple: практическое использование и перспективы развития

Reading time8 min
Views8.3K
Привет, Хабр! Учитывая специализацию компании PayOnline (прием платежей в мобильных приложениях и на сайтах), мы бы хотели продолжить цикл публикаций, которые рассказывают об интеграции одной из крупнейших корпораций в IT-индустрии, компании Apple в платежную индустрию. С предыдущими материалами вы можете ознакомиться здесь и здесь. Сегодня мы покажем зарисовку из жизни продвинутого американца, показывающего преимущества системы мобильных платежей Apple Pay и порассуждаем о глобальных перспективах нового проекта «яблочной» корпорации.
Читать дальше →

Material Design. А был ли мальчик?

Reading time8 min
Views34K
Недавно мой коллега (Константин Волков) посетил мастер-класс по Material Design и поделился впечатлениями. Далее рассказ пойдет от его имени.

Введение


О Material Design [1] сегодня слышали многие, его принципы обсуждают во многих новостных и профессиональных блогах, посвященных Android. Но так ли понятна эта концепция разработчикам мобильного программного обеспечения? Можно ли использовать Material Design в реальном бою, и станут ли приложения эффективнее? На эти вопросы должен был ответить мастер-класс по Material Design, который прошел в середине февраля в технополисе “Москва”.
Читать дальше →

FLProg+nooLite (продолжение)

Reading time3 min
Views7.8K


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

Смартфон, ноутбук и планшет управляет светом в квартире

Reading time4 min
Views19K
Смартфоны надежно вросли в наши руки. Мы спим, едим, и, чего греха таить, ходим в туалет со своими любимыми гаджетами. Ну как же без любимого твитера? Как же можно пропустить важное сообщение в Фейсбуке? И почти у каждого в доме есть точка доступа Wi-Fi, к которой подключаются все домашние смартфоны и планшеты.
Как эту вредную привычку превратить в полезную? Не просто тратить свое время на мессенджеры, а немного вернуться в реальность? Приспособить смартфон под выполнение нужных функций, а не только потреблять контент и играть. Как?
Известно, что сегодняшние смартфоны через приложения могут управлять различной бытовой техникой, могут быть универсальным пультом для чего угодно, от телевизора до микроволновки.
Небольшое лирическое отступление.
Я на протяжении девяти лет управлял электричеством столицы Беларуси, когда находился на смене в диспетчерской электросетей. Мог дистанционно включать и отключать микрорайоны Минска, заводы, подстанции, электротранспорт, насосные станции и другие объекты. Впоследствии род моей деятельности сменился, и я стал заниматься информационной работой в энергосистеме, но тяга к управлению электричеством осталась.

Если подумать, то смартфон может управлять и электричеством, хотя бы в своей квартире. Напомню читателям, как управление электричеством у меня в квартире «эволюционировало от домашних тапочек до пультов». Так вот, используя эти пульты (дистанционные выключатели) и блоки управления, можно управлять светом, не вставая с дивана, с помощью смартфона.
Достаточно приобрести специальный Ethernet-шлюз, подключить его к роутеру по Wi-Fi, настроить его присутствие в сети, установить приложение на смартфон — и вот оно! Вы — энергодистечер своей домашней электросети и управляете электричеством дистанционно!
image
Читать дальше →

Как отправлять push-уведомления на Windows Universal app

Reading time6 min
Views9.2K
Мы делаем сервис для студентов, основной задачей которого является оповещение одногруппников о различных событиях. Для этого в первую очередь мы используем механизм push-уведомлений. Приложение, разработанное для iOS и Android, будет работать как на планшетах, так и на телефонах с этими операционными системами и механизм отправки push-уведомлений не зависит от класса устройтва. До недавнего времени для Windows и Windows Phone приходилось писать два раздельных приложения, однако теперь есть возможность создавать Universal Windows app — универсальные приложения, которые работают как на Windows 8.1, так и на Windows Phone 8.1. Мы решили не отставать от прогресса и разработали Universal Windows app, отправку push-уведомлений на которое мы также хотели сделать универсальной с точки зрения кода.


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

ASP.NET MVC Урок 7. Bootstrap, jQuery, Ajax

Reading time18 min
Views129K
Цель урока: Определить правила работы с html, js и css файлами. Bootstrap и дополнительный css. Структура js-файлов. Использование jQuery, основные моменты, изучение селекторов, событий и др. addClass, removeClass, attr, data, динамическое создание dom-объекта, ajax.

Наконец мы приступаем к более детальному изучению клиентской части, которая уже в меньшей степени связана с asp.net mvc, но всё равно важна для веб-разработки.

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

Веб-синхронизация слиянием на MS SQL

Reading time10 min
Views15K


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

Информация по настройке в интернете имеется, но как мне показалось, что все очень разрознено и по большей части нет практической части в настройке. Возможно плохо искал.
Поехали!

Создание приложений для СУБД Firebird с использованием различных компонент и драйверов: ADO.NET Entity Framework 6

Reading time29 min
Views56K
В данной статье будет описан процесс создания приложений для СУБД Firebird с использованием компонентов доступа Entity Framework и среды Visual Studio 2015.

ADO.NET Entity Framework (EF) — объектно-ориентированная технология доступа к данным, является object-relational mapping (ORM) решением для .NET Framework от Microsoft. Предоставляет возможность взаимодействия с объектами как посредством LINQ в виде LINQ to Entities, так и с использованием Entity SQL.

Entity Framework предполагает три возможных способа взаимодействия с базой данных:
  • Database first: Entity Framework создаёт набор классов, которые отражают модель конкретной базы данных.
  • Model first: сначала разработчик создаёт модель базы данных, по которой затем Entity Framework создаёт реальную базу данных на сервере.
  • Code first: разработчик создаёт класс модели данных, которые будут храниться в БД, а затем Entity Framework по этой модели генерирует базу данных и её таблицы


В своём приложении мы будем использовать подход Code First, однако вы без труда сможете использовать и другие подходы.

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



Внимание!

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

Как мы боролись с парсерами

Reading time16 min
Views36K
image
Ключевые моменты:
* Реализация скрипта для проверки PTR посетителей;
* Конфигурирование nginx в IfIsEvil-style с ветвлениями map;
* Имена location в переменных map;
* Управление ветвлением через try_files /nonexist $map_var.

Многие высоконагруженные и популярные сайты страдают от того, что кроме живых посетителей их посещают разнообразные парсеры, боты и прочие автоматические сканеры, которые не несут никакого полезного эффекта, а только создают паразитный трафик и нагрузку на, и без того, нагруженную систему. В данном случае я не имею виду поисковых ботов, которые хоть и зачастую нагружают проект не нормировано, но просто необходимы любому проекту.
Один из наших клиентов регулярно испытывал проблему лавинообразного роста нагрузки в определенное время суток. Периодически, раз в сутки и чаще происходили наплывы посещений со значительным ростом LA на серверах. Было принято решение построить защиту от паразитного трафика.

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

История создания Chatto

Reading time10 min
Views16K
Наш чат устарел: за несколько лет эволюции он превратился в громоздкий View Controller со странными исправлениями, в которых никто не мог разобраться. Стало трудно добавлять новые типы сообщений, зато с легкостью появлялись новые баги. Поэтому мы решили переписать чат на Swift с чистого листа и выложить его в open source.
Мы начали работу над проектом, поставив перед собой две цели:
  • масштабируемая архитектура: нам нужна была возможность легко добавлять новые типы сообщений без ущерба для написанного ранее кода;
  • хорошая производительность: мы хотели обеспечить плавную загрузку и прокрутку сообщений.

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


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

Добавление прокси в любое приложение на IIS

Reading time3 min
Views12K
В корпоративной среде часто возникает необходимость в веб-приложении на asp.net реализовать возможность выхода через прокси сервер (даже с авторизацией) для скачивания той или иной информации.

Например:

  • Реализуемое ПО требует на уровне приложения-сервера скачивать с веб ресурсов ту или иную информацию
  • При размещении любой CMS требуется возможность для подключения приложения к репозиторию разработчиков для скачивания тем, плагинов и т.п. (некоторые CMS вообще не устанавливаются без предварительной авторизации на стороне сервера разработчиков)
  • В SharePoint есть множество сервисов, которые требуют прямого подключения к сайтам Microsoft (пример подключение к office.com для установки внешних приложений)
Читать дальше →

Никогда не делайте компараторов на базе вычитания

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

Рассмотрим следующий код:
Читать дальше →

Готовим ASP.NET Core: создаем собственный Tag Helper

Reading time9 min
Views12K
Мы продолжаем нашу колонку по теме ASP.NET Core публикацией от Станислава Ушакова ( JustStas) — team lead из компании DataArt. В статье Стас рассказывает о способах создания своих собственных тег-хелперов в ASP.NET Core. Предыдущие статьи из колонки всегда можно прочитать по ссылке #aspnetcolumn — Владимир Юнев
В прошлый раз мы рассмотрели уже существующие в ASP.NET Core 1.0 тег-хэлперы. В этот раз мы рассмотрим создание собственных тег-хэлперов, что может упростить генерацию небольших переиспользуемых участков HTML-разметки.


Введение


Формально тег-хэлпером является любой класс, наследующий от интерфейса ITagHelper.На практике напрямую от ITagHelper наследовать не надо, удобнее наследовать от класса TagHelper, переопределяя метод Process / ProcessAsync, которые рассмотрим по ходу статьи.
Читать дальше →

Прячем фактическое место, где стоит сервер компании: практические методы и вопрос

Reading time3 min
Views48K
Привет! Я руковожу небольшим ИТ-аутсорсингом, и к нам в прошлом году обратилось сразу несколько клиентов с похожими задачами — сделать так, чтобы никто не узнал, где именно стоят сервера компании.

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

Мы придумали вот такую схему:



В центре — ядро, вокруг ядра — релей-серверы периметра (дешёвые машины-прокси, на каждой — свой сервис), дальше — терминалы конечных пользователей. Покритикуйте, пожалуйста, ну или попробуйте вычислить IP сервера ядра на примере в конце.
Читать дальше →

Улучшаем свой английский: изобретаем субтитры заново

Reading time5 min
Views50K

1. Intro




— Татьяна Леонидовна, а можно, мы посмотрим это кино с субтитрами?
— Нет, малолетние дятлы, мы тренируем ваше слуховое восприятие, поэтому кино вы будете смотреть без них! С субтитрами вы будете только читать текст и не слушать.
— Татьяна Леонидовна, но без субтитров мы больше половины не понимаем!
— А вот это уже ваши проблемы.

Начало 2000-х, диалог с учителем во французской спецшколе, Санкт-Петербург.

Далее

[Тестирование] Высокочастотная оперативная память — актуальная и своевременная помощь интегрированному графическому ядру

Reading time3 min
Views17K
Привет, Гиктаймс! Стреляного воробья на мякине не проведешь, и опытному железячнику доказать пользу интегрированного ядра и высокочастотной оперативной памяти практически невозможно. Тем не менее, за 2015 год был осуществлен существенный прорыв в графике Intel и под катом я предлагаю оценить — насколько влияет частота оперативной памяти на производительность графического ядра GT3e (оно же Iris Pro 6200), встроенного в процессор Intel Core i7-5775C.

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

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity