Pull to refresh
-10
0

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

Send message

SpamFireWall — запрет доступа к сайту для спам ботов

Reading time2 min
Views7.3K
Каждый владелец веб-сайта или вебмастер сталкивался с таким бичом, как спам в комментариях или формах контактов, а также регистрация спамботов под видом пользователей. В результате форма на сайте обрабатывает эти сообщения, что тратит ресурсы сервера. Некоторые спам боты загружают страницы сайта для обхода антиспам-защиты, из-за чего ресурсов тратится еще больше. На небольших объемах это незаметно, но когда веб-сайт в сутки получает тысячи подобных запросов, это может существенно влиять на нагрузку процессора сервера.

Сейчас мы расскажем о новой опции в антиспам-плагинах для CleanTalk, которая позволяет эффективно отражать атаки спамботов на ваш сайт. Опция получила название SpamFireWall(SFW), она блокирует POST- и GET-запросы от наиболее активных спамботов и не дает им загружать сервер.
Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments25

Запросы к Rest API из JavaScript компактно и красиво

Reading time6 min
Views109K

Делал я тут небольшой проект на чистом JS и в ходе оного потребовалось работать с Rest API. Ну не ручками ведь XMLHttpRequest дёргать, решил я, наверняка есть бесчисленное количество готовых решений для такой простой задачи?..


Как можно догадаться по КДПВ, я несколько ошибался; впрочем, обо всём по порядку. Но если вкратце — получился вот такой симпатичный велосипедик, с которым запросы к Rest API получаются, как и обещано в заголовке, компактными и красивыми.


image

Читать дальше →
Total votes 51: ↑42 and ↓9+33
Comments57

Как и какой выбрать мобильный интернет? Декодируем GSM

Reading time6 min
Views58K

В настоящее время огромное количество людей, проживающих в городах и районных центрах, а особенно в удалении от них испытывает сложности с возможностью выбора проводника услуг для качественно использования таких благ цивилизации как цифровое телевиденье, интернет, радио и просто решить, для примера, какого оператора мобильной связи выбрать из возможных для качественной и надежной телефонной связи в данном месте (Мегафон, Билайн, МТС, TELE2 и др.). Как правило в лучшем случае это решается опросом соседей «какую связь используете Вы?» и, полагаясь на их ответ приобретаете необходимую сим карту оператора мобильной связи, а потом сталкиваетесь с тем что не слышно, нет связи, интернета, а как же тогда читать хабр, итд.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments36

Angular 2 несёт мир в галактику фронтенда

Reading time8 min
Views44K
React, Redux, Angular, JavaScript, Dart — мир фронтенда находится на грани полномасштабной войны адептов разных технологий. Настало время героев — кто спасёт мир в веб-разработке и станет главным героем новой эпохи?

Кажется, об этом знает фронтенд-тимлид компании Wrike Евгений Гусев. Нам удалось отвлечь его от работы и задать несколько вопросов, которые так волнуют тех, кто уже успел попробовать Angular 2 или ещё только слышал о нём. Евгений рассказал нам о  преимуществах Angular 2, скорости развития проекта, трудностях и радостях перехода на него. Мы успели обсудить React, JavaScript и Dart, — в общем, сравнить и изменить все силы. Впрочем, хватит тизеров. Магистр, вам слово!



— Расскажите о себе, о том, с чем работаете и как попали в Wrike?

Меня зовут Евгений, и я пишу на Dart и Angular 2. Наверное, странное начало, но надо расставить все точки над «i». Работаю фронтенд-тимлидом в компании Wrike, а начинал с С++ под микроконтроллеры, писал немного на том и на этом, потом дошёл до C#. Когда перешёл в Dell, начал плотнее общаться с фронтендом, причём самым банальным образом: кому-то нужно было писать UI, а никого не было. Причём писать начал сразу на CoffeeScript (да-да!). Годы шли, и я перешёл в компанию, в которой я сейчас и работаю, а именно Wrike. Мы разрабатываем крупную SaaS-платформу для управления задачами и совместной работы. Сейчас у нас почти 30 фронтенд-девелоперов, плюс команда верстальщиков, и мы, как Алиса из небезызвестной сказки, всё растём и растём.

Wrike прошёл довольно большой путь: от совсем небольшого стартапа до двух миллионов строчек кода за 9+ лет разработки. Конечно, за это время у нас сменилась куча фреймворков и технологий. Всё начиналось с Dojo, потом Ext.js. Мы писали на Polymer 0.5, и, когда он стал deprecated (с выходом версии 1.0), перед нами встал вопрос — что же выбрать? Собственно о том, какие у нас были варианты, и почему мы в итоге выбрали Angular 2, я и расскажу в своём докладе.
Читать дальше →
Total votes 35: ↑27 and ↓8+19
Comments102

Чем PostgreSQL лучше других SQL баз данных с открытым исходным кодом. Часть 1

Reading time8 min
Views286K
Сегодня давайте поговорим о преимуществах Postgres перед другими системами с открытым кодом. Эту тему мы обязательно раскроем более подробно на PG Day'16 Russia, до которой осталось всего два месяца.

Возможно, вы спрашиваете себя: «Почему PostgreSQL?» Ведь есть и другие варианты реляционных баз данных с открытым исходным кодом (в рамках этой статьи мы рассматривали MySQL, MariaDB и Firebird), так что же Постгрес может предложить такого, чего нет у них? В слогане PostgreSQL заявляется, что это «Самая продвинутая база данных с открытым исходным кодом в мире». Мы приведем несколько причин, почему Постгрес делает такие заявления.

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


Читать дальше →
Total votes 55: ↑46 and ↓9+37
Comments86

Чем PostgreSQL лучше других SQL баз данных с открытым исходным кодом. Часть 2

Reading time10 min
Views64K
Друзья, представляем вашему вниманию вторую часть перевода «Чем PostgreSQL лучше?». Надеемся, она вызовет такое же горячее обсуждение в комментариях, как и первая часть. А также с радостью продолжим с вами дискуссию лично на PG Day'16 Russia, до которой осталось совсем немного!

В слогане PostgreSQL заявляется, что это «Самая продвинутая база данных с открытым исходным кодом в мире». В первой части этой серии мы рассмотрели хранение данных — модель, структуры, типы и ограничения по размеру, — чтобы дать вам несколько причин, почему Постгрес подтверждает свои слова делом. Во второй части мы поговорим о манипуляциях с данными и поиске, включая индексирование, виртуальных таблицах и возможностях запросов. В этой серии мы выясняем, что выгодно отличает PostgreSQL от других баз данных с открытым исходным кодом, а именно — от MySQL, MariaDB и Firebird.


Читать дальше →
Total votes 49: ↑47 and ↓2+45
Comments32

О том, что убивает продуктивность разработчиков

Reading time5 min
Views35K


В свете того, что Мегамозг вновь воссоединился с Хабром, теперь можно ожидать, что аудитория обоих порталов также объединилась. Логично будет предположить, что Хабр будет привлекать большее внимание менеджеров, которым не чужд мир современных технологий. Поэтому наша команда SmartProgress решила подготовить статью на перепутье разработки и управления проектами.

Надеемся, что этот пост поможет управленцам лучше понять программистов и не наступать на те грабли, по которым вовсю ходит большинство менеджеров и руководителей — каждый желает, чтобы код работал как по маслу, но при этом начальство забывает о том, что необходимо девелоперам для разработки отличного кода.
Читать дальше →
Total votes 29: ↑20 and ↓9+11
Comments25

Создание Android-приложения с помощью React Native

Reading time21 min
Views30K


Как следует из названия, в этой статье мы рассмотрим процесс создания средствами React Native приложения под Android. Оно будет простеньким, всего лишь с текстовым полем. Туда нужно будет ввести имя одного из покемонов, а приложение покажет подробную информацию о полученных данных и зачитает её с помощью функции преобразования текста в речь.

Мы не будем касаться установки Android SDK, React Native и создания проекта, или каких-то иных инструментов разработчиков. Будем исходить из того, что это ваш первый опыт создания приложения с помощью React Native, поэтому подробно рассмотрим каждый кусок кода.
Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments4

5 Flexbox методов, о которых вы должны знать

Reading time4 min
Views78K
Flexbox является стандартом CSS, оптимизированным для проектирования пользовательских интерфейсов. Используя различные свойства Flexbox мы можем построить нашу страницу из небольших блоков, которые затем с легкостью сможем перемещать и изменять размеры, как нам угодно. Адаптивные веб-сайты и приложения пользуются огромным спросом в нынешней веб-индустрии.

В этой статье я хочу показать вам пять flexbox методов к решению проблем компоновки при верстке. Также я приведу практические примеры для демонстрации, в которых применяются эти методы.
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments7

Apple, боль и сертификаты

Reading time6 min
Views38K
Знакомьтесь, Боб — матёрый ios разработчик, Алиса — не менее матёрая тестировщица. Дело было вечером дело было в пятницу. Боб дофиксил багу, вроде бы протестил на своих девайсах. Затем Боб запускает уже отточенные до автоматизма команды:

git checkout develop
git merge bug_fix_#999
git checkout master && git merge develop --no-ff ....
git push ....


На пуш на сервере срабатывает jenkins/teamcity/travis, который запускает билд. В это же самое время наш Боб пишет Алисе, что скоро пойдет домой, и хочет, чтобы аппа ушла сегодня в app store на апрув, дабы выиграть лишние пару дней, так как на носу выходные, если, конечно, приложение пройдет ручное тестирование Алисы.

Приложение Боба довольно обычное: пару сотен компилируемых класс файлов, еще с десяток cocoapods зависимостей ну и кучка сторибордов — Боб ценит своё время и время коллег поэтому не пишет UI в коде. Боб знает, что его приложение с чистого старта на сервере собирается за 4 минуты для develop версии, которое идет на тест Алисе, и столько же или чуть больше для production версии. Боб также знает, что ему нужно около 10 минут, чтобы дождаться окончания полной сборки и затем сообщить Алисе, что она может приступать к тестированию. Боб человек ответственный, поэтому по истечении 10 минут после пуша проверяет статус билда, так как знает, что сервер — это отдельный параллельный мир со своими правилами, законами и странностями.

Пятница, вечер, Боба отделяет от долгожданных выходных только 10 минут, после которых передаст эстафету Алисе. Боб вбивает в сафари bobcompany.ci/dashboard, где видит красную лампочку напротив своего приложения, глаза Боба потускнели, разочарованию не было предела. Боб жмет на show more, где его встречает ошибка:

Code Sign error: No codesigning identities found: No codesigning identities (i.e. certificate and private key pairs) that match the provisioning profile specified in your build settings (“com.company.bob”) were found.


Тут нервы Боба совсем сдают:



Удастся ли Бобу решить проблему?
Total votes 29: ↑27 and ↓2+25
Comments27

Ionic: комментарии к мифам после года использования

Reading time3 min
Views21K
Прошел ровно год с того момента, как наша команда начала разработку своего первого продукта — ionic-приложения для знакомств, которое является отечественным братом всем известного tinder. В течение этого года мы столкнулись с множеством проблем, характерных для гибридных приложений, теперь у нас есть опыт и замечания, которыми мы были бы рады поделиться с вами.
Читать дальше →
Total votes 35: ↑27 and ↓8+19
Comments24

Microsoft отказалась от трюка с обновлением до Windows 10, начинавшемся по закрытию всплывающего окна

Reading time2 min
Views23K
Microsoft отказалась от грязного трюка с установкой обновления до Windows 10 по закрытию всплывающего окна.
Это произошло после волны праведного гнева пользователей, обрушившейся на компанию. Компания заявила, что добавила дополнительное уведомление, позволяющее пользователю отказаться от апгрейда.

Бесплатное обновление Windows версий 7 и 8 до новой, 10-й, начатое почти год назад, сначала было положительно воспринято пользователями. Но затем, когда часть пользователей решила подождать с обновлением (например, из-за повышенного любопытства Win10 по отношению к действиям пользователя), напоминания о возможности апгрейда начали становиться всё более назойливыми.
Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments51

Websocket в продакшене

Reading time30 min
Views41K
10 месяцев назад я начал делать браузерную игрушку. Выбор пал на cocos js в качестве графики и websocket в качестве общения с сервером. Технология очень понравилась и я на ней организовал всё общение игры с сервером. Использовал для этого эту статью. Но, к сожалению, тот код, который приведен в той статье, нельзя использовать в продакшене. Как выяснилось, уровень проблемы даже не критический, а блокирующий. Всё настолько плохо, что мне пришлось переписывать всё общение с сервером с вебсокетов на longpooling. В итоге я оставил вариант «если у нас браузер не сафари, то использовать websocket, иначе longpolling» и ещё немного ветвления на эту тему.

Так что опыт использования вебсокет в продакшене накопился приличный. И вот недавно случилось событие, которое сподвигло меня написать первую статью на Хабре.
Читать дальше →
Total votes 19: ↑14 and ↓5+9
Comments70

ESP8266 с чего начать или первый опыт

Reading time7 min
Views329K
В этой статье я хочу поделиться опытом того, что делать, когда в руки впервые попадают платки ESP8266. Сразу оговорюсь, что ковыряние в таких железках, равно как и программирование, это моё хобби за мои деньги и в свободное от основной деятельности время. Поэтому прошу отнестись с определенной скидкой к степени критики данного материала.

Почему я это решил написать? Всё просто: я убил 3 недели времени на то, чтобы разобраться с чего начинать и как это работает. Кроме того, попробую собрать небольшой каталог ссылок по работе с ESP8266. Надеюсь, что эта информация поможет сэкономить вам хоть толику времени.

image

Итак, приступим!
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments51

Краудфаундинг проект «Noorik» — Open source GSM модуль для автоматических ворот

Reading time6 min
Views17K

Осторожно: Made in Podolsk


Меня зовут Вячеслав Голицын. Я хочу доработать GSM-модуль для автоматических ворот и ищу единомышленников. Это краткая история разработки модуля и дальнейшие планы развития. Open source проект в котором Вы можете принять участие. После газонокосилки, снегоуборщика и подводной лодки настала пора нового проекта. Прошу под cut →

Читать дальше →
Total votes 13: ↑10 and ↓3+7
Comments61

FlexboxLayout — часть 2

Reading time2 min
Views8.6K

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


В предыдущей статье мы увидели, что у FlexboxLayout есть ряд атрибутов, которые управляют размером и расположением дочерних элементов, но это еще не все. Все менеджеры макетов в Андроиде применяют к дочерним элементам собственные параметры макета (LayoutParams), которые предоставляют этим вложенным элементам специфичные атрибуты. FlexboxLayout в этом плане не исключение. Более того, именно в дочерних атрибутах раскрывается вся мощь этого макета.


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

Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments0

Инновационный форум SAP для компаний-разработчиков в Москве

Reading time1 min
Views3K
Привет, Хабрахабр сообщество!

6 июня мы проводим Инновационный форум SAP для компаний-разработчиков в Москве и приглашаем вас к участию.



Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments0

RS232 устройство 3-в-1 для домашнего Linux сервера: Часть 2 (Серверная)

Reading time11 min
Views19K

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


В этой части статьи будет рассмотрено как взаимодействовать с последовательным портом из пространства ядра (kernel space) и как организовать работу с несколькими подсистемами устройства через RS232 в Linux.


Устройство включает в себя следующие подсистемы:


  • Аппаратный сторожевой таймер, работающий с watchdog демоном;
  • Генератор истинно случайных чисел;
  • Радиомодуль nRF24L01+ для сбора данных с автономных датчиков.

WRN устройство

Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments6

В Symantec Antivirus найдена уязвимость, позволяющая получить полный контроль над системой

Reading time2 min
Views7.5K
imageИсследователи безопасности из группы Zero (созданной компанией Google для предотвращения атак, совершаемых с использованием ранее неизвестных уязвимостей), раскрыли информацию о критической уязвимости (CVE-2016-2208) в антивирусном ПО Symantec. При проверке специально оформленных файлов в формате «PE» можно инициировать переполнение буфера и организовать выполнение кода в системе.

В процессе разбора исполняемых файлов, сжатых ранней версией aspack, возможно переполнение буфера в модуле Symantec Antivirus Engine, использованном в большинстве антивирусных продуктов, выпущенных под марками Symantec и Norton. Такая ситуация становится возможна, если секция данных усечена, т.е. если значение SizeOfRawData превышает значение SizeOfImage.

А теперь о самом интересном
Total votes 10: ↑10 and ↓0+10
Comments13

Вглубь ядра: знакомство с LTTng

Reading time11 min
Views8.9K
LTTng

В одной из предыдущих публикаций мы уже затронули проблематику трассировки и профилирования ядра Linux.

Сегодня мы хотели бы вновь вернуться к этой проблематике и подробно поговорить об одном интересном инструменте — трассировщике ядра LTTng, разработанном канадским программистом и исследователем Матьё Денуайе. С его помощью можно получать информацию о событиях как в пространстве ядра, так и в пользовательском пространстве.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments0

Information

Rating
Does not participate
Registered
Activity