Pull to refresh
0
0
Сергей @FraiDex

User

Send message

Бинарные деревья поиска и рекурсия – это просто

Reading time8 min
Views586K
Существует множество книг и статей по данной теме. В этой статье я попробую понятно рассказать самое основное.

Бинарное дерево — это иерархическая структура данных, в которой каждый узел имеет значение (оно же является в данном случае и ключом) и ссылки на левого и правого потомка. Узел, находящийся на самом верхнем уровне (не являющийся чьим либо потомком) называется корнем. Узлы, не имеющие потомков (оба потомка которых равны NULL) называются листьями.

image
Рис. 1 Бинарное дерево
Читать дальше →
Total votes 43: ↑32 and ↓11+21
Comments9

Обработка строк в Java. Часть I: String, StringBuffer, StringBuilder

Reading time8 min
Views449K

Вступление


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

  1. String, StringBuffer, StringBuilder (реализация строк)
  2. Pattern, Matcher (регулярные выражения)

Реализация строк на Java представлена тремя основными классами: String, StringBuffer, StringBuilder. Давайте поговорим о них.
Читать дальше →
Total votes 30: ↑21 and ↓9+12
Comments68

22 совета, трюка и шотката для Android Lollipop

Reading time5 min
Views225K

1. Поиск настроек


image

У настроек теперь есть свой поиск. Это сильно экономит время, если вы знаете, что вам нужно. Допустим, вы хотите поменять настройки сети, но не знаете, где они. Ищите «network» и найдёте нужную опцию.
Читать дальше →
Total votes 28: ↑15 and ↓13+2
Comments34

300 потрясающих бесплатных сервисов

Reading time11 min
Views1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Total votes 341: ↑325 and ↓16+309
Comments107

OData + Angular.js + Bootstrap + JavaScript Grid = приложение за 5 минут

Reading time6 min
Views32K
Предположим в некотором проекте появилась необходимость добавить некоторую форму опроса пользователей на веб сайте (детальная форма) и форму для просмотра и редактирования списка пользователей для администратора системы (списковая форма).

Рассмотрим процесс создания этих форм с использованием OData, Angular.js, Bootstrap и JavaScript Grid. Все требования к такому приложению уже реализованы в этих инструментах, и нам практически не требуется ничего писать.

Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments9

Как мы написали helpdesk (часть 2)

Reading time8 min
Views43K

В продолжении части 1, мы решили написать статью, как вышли на «новый уровень» по созданию веб-продукта. Хочу сразу уточнить, что это не совсем хелпдеск, который основан на создании заявок клиентами (хоть такая возможность и присутствует), а больше рассчитан на внутреннюю работу организации или IT-департамента. Так же хочу напомнить, что система создавалась конкретно под наши требования, поэтому она не лучше других, но и не хуже. Она просто «другая», у которой есть свои функции под конкретные задачи и возможно займёт достойное место в общем мире продуктов, делающих IT-мир лучше.
Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments22

Визуализация CSS файлов

Reading time3 min
Views15K
Некоторое время назад мне стало интересно посмотреть, как выглядит CSS код нашего проекта, и как он менялся в течение целого года. Так на свет появился проект node-specificity. Что он делает? Он позволяет получить ответы на следующие вопросы:

  1. Как много селекторов в коде? Как их количество изменялось со временем?
  2. Каковы максимальное и среднее значения специфичности селекторов? Какова медиана? Как они изменялись со временем?
  3. Как выглядит распределение специфичности селекторов? Как оно изменялось со временем?
  4. В скольких селекторах используется !important директива? Как их количество изменялось со временем?


Хорошо, почему это вообще важно? Может быть и нет, пока вы не работаете c кодом, состоящим из десятков тысяч строк, который сложно поддерживать, или вы довольно много экспериментируете. Ну и, конечно, если это не важно, то, по крайней мере, это должно показаться интересным.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments13

Сад JavaScript: Объекты

Reading time6 min
Views19K

Введение


Сад JavaScript – коллекция документации по самым странным особенностям языка JavaScript. Тут собраны советы по тому, как избежать распространённых ошибок и малозаметных багов, а также проблем с быстродействием и неправильного стиля программирования.

Это не учебник по языку. Предполагается, что вы уже предварительно знаете язык. Для обучения языку рекомендую воспользоваться этим великолепным переводом чудесной книги "Выразительный JavaScript".
Читать дальше →
Total votes 34: ↑18 and ↓16+2
Comments22

Как начать разрабатывать железо, используя ПЛИС — пошаговая инструкция

Reading time6 min
Views149K
Каким образом повысить количество российских инженеров, которые были бы знакомы и с разработкой хардвера, и с разработкой софтвера, и могли бы строить системы, в которых часть функциональности находится в специализированном железе, а часть — в программном обеспечении, с соблюдением баланса между ними?

Для этого вовсе не обязательно выбрасывать несуразные деньги а-ля сделка Сколкова и MIT.

Есть масса дешевых и эффективных мер по апгрейду российской образовательной системы. Одна из них — широко ввести практические классы ПЛИС / ППВМ / FPGA среди старших школьников и студентов. Это то, на чем учатся и инженеры, которые потом разрабатывают микросхемы внутри Apple iPhone в Купертино, Калифорния.
Читать дальше →
Total votes 55: ↑50 and ↓5+45
Comments91

Node v0.12.0

Reading time2 min
Views13K
6 февраля вышла новая версия Node.js v0.12. Это был длительный и трудный процесс, не без потерь для NodeJS, в результате которого от основной ветки отделился io.js, но, тем не менее, список нововведений довольно внушительный. Давайте поглядим.

Streams 3


Как обещают разработчики, реализация потоков теперь работает так, как это и ожидается. Причем самое главное, что старые API, введенные в v0.10, не поменялись.

Добавлен механизм cork/uncork для приложений, которые несколько раз синхронно пишут в поток. .cork() включает буферизацию для всех записей в поток, .uncork() же сбрасывает весь буфер.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments21

Как программисты ищут квартиры

Reading time8 min
Views105K
image

На самом деле все происходит не так...

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

Проблема


Пару лет назад (наконец-то!) наступил в моей жизни момент, когда мне нужно можно было купить квартиру. Оставалось ее найти. Дело осложнялось тем, что были у меня свои взгляды на то, какой должна быть моя идеальная квартира. А именно — она должна была быть НА последнем этаже. Ну чтобы никто по мозгу не ходил. Ну и плевать на всех удобнее.
Читать дальше →
Total votes 125: ↑99 and ↓26+73
Comments96

Как работает SSD кеширование средствами гипервизора в облаке VMware

Reading time7 min
Views34K
Компания VMware еще с выходом VMware vSphere 5.1 объявила о нескольких новых начинаниях в сфере хранения данных виртуальных машин, включая возможность использования распределенного кеш на SSD-накопителях локальных дисков серверов ESXi. Данная технология имела рабочее название vFlash и находилась в стадии Tech Preview, превратившись позднее в полноценную функцию vSphere Flash Read Cache (vFRC) платформы VMware vSphere 5.5. И это вполне рабочий инструмент, который можно использовать в задачах различного уровня.
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments10

Как я не взломал «Хабрахабр» или 10+ активных XSS

Reading time4 min
Views60K
image
Увидев как все ринулись искать XSS на прекрасно-синем Хабрахабре решил попытать свое счастье. POST-овые self-xss, бесполезные во многих контекстах и векторах, начиная с фильтрации в самых популярных браузеров (chrome/safari/ie etc) и заканчивая сложностью их же применения и эксплуатации было решено оставить остальным первопроходцам и отправиться на поиски чего-то более стоящего.
Читать дальше →
Total votes 229: ↑214 and ↓15+199
Comments14

Будни багхантинга: еще одна уязвимость в Facebook

Reading time4 min
Views53K


Декабрь для меня получился наиболее удачным за четыре года участия в разнообразных программах bug bounty, и я хотел бы поделиться информацией об одной из обнаруженных уязвимостей. Речь пойдет о небезопасной обработке Request-URI (Request Target). На этот раз красивой комбинацией уязвимостей порадовал Facebook.
Читать дальше →
Total votes 104: ↑101 and ↓3+98
Comments8

Интеграция Fail2ban с CSF для противодействия DDoS на nginx

Reading time12 min
Views34K
Набор скриптов ConfigServer Security & Firewall (CSF) изначально обладает достаточно богатыми возможностями по организации защиты сервера хостинга Web с помощью фильтра пакетов iptables. В частности с его помощью можно противостоять затоплению атакуемого хоста пакетами TCP SYN, UDP и ICMP слабой и средней силы. Дополняет CSF встроенный Login Failure Daemon (lfd), который осуществляет мониторинг журналов на предмет наличия многочисленных неудачных попыток авторизации в различных сетевых сервисах с целью подбора пароля. Такие попытки блокируются путем внесения адреса IP злоумышленника в черный список CSF.
Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments14

Повышаем безопасность стека web-приложений (виртуализация LAMP)

Reading time10 min
Views17K
Под стеком web-приложений мы будем подразумевать множество программных продуктов с открытым исходным кодом: операционная система, web -сервер, сервер БД и среду исполняемого кода. Наиболее известным и обыденным стеком является LAMP. Это акроним для стека web-приложений на базе бесплатных решений с открытым исходным кодом. Название составлено из первых букв входящего в его состав продуктов: Linux (операционная система), web -сервер Apache, база данных MySQL, и PHP (иногда Perl или Python). Опубликованные нами ранее материалы, посвященные вопросам безопасности, рекомендуют держать различные сетевые службы на выделенных под эти цели серверах или виртуальных машинах. Это позволит изолировать скомпрометированные и взломанные злоумышленником элементы системы, в случае если последний получит возможность эксплуатации ошибок в одном из звеньев сети обслуживания. Статья также является ответом на наиболее часто задаваемые нашими читателями вопросы, присланными нам по электронной почте. В руководстве я объясню, как построить решение на базе физических или виртуальных серверов, одинаково подходящих для раздачи статического и динамического контента, для приложений, требующих наличие БД и кэширования.
Читать дальше →
Total votes 18: ↑13 and ↓5+8
Comments29

Создание окружения для веб-разработки на основе Docker

Reading time5 min
Views61K
Под катом расскажу как я усовершенствовал автоматическое создание и разворачивание окружения для веб-разработки на основе Docker, Fig, DNSMasq и nsenter. По сути, это разворачивание LAMP сервера и запись о нем в DNSMasq, но приоритетами являются незасоренность хост-машины ненужным софтом типа web-, db-серверов на хост машине и минимальное количество команд для запуска
Читать дальше →
Total votes 31: ↑24 and ↓7+17
Comments59

Consulo — IDE где Java и C# живут вместе

Reading time3 min
Views52K
Здравствуйте. Прошло много времени после моих постов на хабре (тык, тык) на тему Consulo. Ниже расскажу, что изменилось за это время.

Для тех, кто пропустил мои посты:
Consulo — это форк IntelliJ IDEA Community Edition, который имеет поддержку .NET(C# на текущий момент), Java, Javascript(NodeJS), и многое другое. Проект собрал множество открытых плагинов в себе. При этом код остался открытым.



Читать дальше →
Total votes 127: ↑124 and ↓3+121
Comments50

Дайджест интересных материалов для мобильного разработчика #85 (22-28 декабря)

Reading time3 min
Views15K
Последний дайджест в уходящем году и мы подводим итоги iOS- и Android-разработки, вспоминаем, какие посты были самыми популярными на Хабре, планируем 2015 год. С наступающим! Хороших вам приложений и интересных задач!

Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments3

ИТ-тренды в корпорациях в 2015 году

Reading time4 min
Views18K


Сегодня мы поговорим о Google Glass для врачей, биткойнах, облачных решениях для бизнеса, мобильных приложениях для корпораций и других трендах, которые ожидаются в 2015 году.
Читать дальше →
Total votes 18: ↑11 and ↓7+4
Comments4
1
23 ...

Information

Rating
Does not participate
Location
Беларусь
Registered
Activity