Как стать автором
Обновить
119
0
Руслан Левиев @ruskar

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

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

Первый проект на symfony, часть 2

Время на прочтение10 мин
Количество просмотров7.6K
Это вторая часть перевода (первая часть) статьи о том, как сделать простенький проект на Симфонии за 1 час. В ней мы наладим валидацию форм, изменим формат URL, сделаем админку и закроем в нее доступ.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии17

Безопасный код в Друпале: Подделка межсайтовых запросов

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


(ч2. Работа с базой данных; ч3. Работа с пользовательским вводом)

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

Итак, подделка межсайтовых запросов (анг. Сross Site Request Forgery, или, сокращенно, CSRF): что это такое и с чем его едят.

CSRF — это вид атак на посетителей веб-сайтов, использующий недостатки протокола HTTP. Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на другой сервер (например, на сервер платёжной системы), осуществляющий некую вредоносную операцию (например, перевод денег на счёт злоумышленника). Для осуществления данной атаки, жертва должна быть авторизована на том сервере, на который отправляется запрос, и этот запрос не должен требовать какого-либо подтверждения со стороны пользователя.

Данный тип атак, вопреки распространённому заблуждению, появился достаточно давно: первые теоретические рассуждения появились в 1988 году, а первые уязвимости были обнаружены в 2000 году.

Одно из применений СSRF — эксплуатация пассивных XSS, обнаруженных на другом сервере. Так же возможны отправка спама от лица жертвы и изменение каких-либо настроек учётных записей на других сайтах(например, секретного вопроса для восстановления пароля).
Читать дальше →
Всего голосов 56: ↑50 и ↓6+44
Комментарии37

C++ MythBusters. Миф о виртуальных функциях (дополнение)

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

Преамбула


Добрый вечер (ну, или кому чего).

Не так давно наткнулся на хабре на статью о виртуальных функциях в С++ (она находится сейчас тут). Был бы рад добавить комментарий, но, как оказалось, тут надо иметь регистрацию. Собственно поэтому я и написал этот пост-дополнение к вышеуказанной статье.

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

Статья расчитана на программистов средней и высокой квалификации. Приятного чтения.
Читать дальше →
Всего голосов 35: ↑27 и ↓8+19
Комментарии43

Обзор разработки Gnome 2.26

Время на прочтение1 мин
Количество просмотров499
На данный момент, если мы взглянем на Roadmap проекта Gnome, мы не увидим абсолютно никаких значимых планов для нового релиза (если только конечно вас не впечатляет тёмная тема оформления прямо в комплекте). Однако это не значит, что проект абсолютно остановился в развитии. На основании блогов разработчиков и новостей с Commit-Digest, я подготовил небольшую подборку уже имеющихся в наличии изменений:
— Продолжается переход программ с gnome-vfs на gio и gvfs.
— Практически во всех проектах вычищаются зависимости от libgnome и libgnomeui.
— Менеджер сообщений Empathy научился передавать файлы (однако не в Jabber)
— GEdit обзавёлся менеджером плагинов, написанным на Python.
— Корзина обзавелась бекэндом на gvfs.
— Файловый менеджер Nautilus научился обращаться к PackageKit для установки приложений, требуемых для открытия файлов с неизвестными расширениями.
— В программе для просмотра документов Evince переработан диалог печати.
— Полностью переписан Системный Журнал
— Brasero, программа для записи дисков тесно интегрируется в Nautilus, Totem и Rhytmbox.
— В Rhytmbox — небольшие изменения с целью уменьшения нагрузки на процессор.
Всего голосов 43: ↑38 и ↓5+33
Комментарии114

Sendmail-заглушка для Linux

Время на прочтение2 мин
Количество просмотров38K
Не так давно встала задача, установить заглушку для sendmail, дабы письма из PHP не отсылались на ложные адреса (при тестинге) или просто не возникала ошибка, а складывались аккуратно в папку. Аналогично тому, как это делает Денвер.
Читать дальше →
Всего голосов 47: ↑43 и ↓4+39
Комментарии36

Учимся C#. Ведро первое.

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

Привет всем


Я решил начать цикл статей на тему обучения программирования в .NET, а именно на C#. Я не претендую на авторство всего, что здесь и далее будет написано, я всего лишь хочу дать знания тем, кто этого желает.
На Хабре много раз могли заметить мои комментарии по поводу того, что я очень хотел бы обучать людей, но никак не мог придумать как это сделать. После цикла статей MaxElc я подумал, что тоже могу паралельно с ним начать писать.
Пожалуй начнём!

Архитектура .NET


.NET — это среда исполнения или платформа. Она располагается между кодом и Windows, позволяя предоставлять нужные службы. Платформа .NET состоит из двух основных компонентов. Это Common Language Runtime и .NET Framework Class Library.

Common Language Runtime (сокращенно CLR) можно назвать «двигателем» платформы .NET. CLR занимается управлением памятью, компиляцией и выполнением кода, работой с потоками управления, обеспечением безопасности и т.п.

.NET Framework Class Library — это набор классов на все случаи жизни.

Поехали
Всего голосов 157: ↑121 и ↓36+85
Комментарии156

О качестве услуг в «Хостинг-центре РБК»

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

Приветствую хабравчане!



Сегодня я хочу рассказать Вам свою историю и донести до общества текущие проблемы у одного из лидеров хостинга в России — "Хостинг Центра РБК".

image

Мое первое знакомство с «Хостинг Центром» началось еще в июле 2008-го года, тогда мне пришлось отказаться от выделенного сервера и искать альтернативы. Выбирал я долго и основательно. Остановился на 2х вариантах: Агава или ХЦ. Агаву я невзлюбил за почтовые фильтры и мой выбор пал на ХЦ, как на более популярного, а следовательно, надежного провайдера. Как оказалось, зря…

Update: Хабр — сила. Сегодня позвонил саппорт и предложил перенести VPS на другой сервер.
Читать дальше →
Всего голосов 102: ↑95 и ↓7+88
Комментарии161

Познаём Java. Вторая чашка: собираем классы в кучки. Пробуем апплеты

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

Чем обусловлена структура Java?


Как вы уже слышали, Java проектировалась с рассчётом на совместимость со всем, чем только можно. Такое ограничение вынудило разработчиков Java сделать её такой, чтобы максимально упростить развёртывание приложений, при этом обеспечив логическую стройность языка.

Как происходит загрузка классов?


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

Осваиваем Python. Унция ноль. Введение.

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

Предыстория



Присоединяюсь к MaxElc, DarwinTenk и Devgru :) Начинаю цикл статей посвященных Python. Сам я имею некоторый опыт обращения с PHP и Java. Но каждый раз, при относительном освоении какого-то инструмента — оставалось определённое неудовлетворение им, связанное с чем-то конкретным, и поиски продолжались. На сегодняшний день наиболее близко к идеалу в моих глазах стоит Python. Идеал недостижим — это понятно, посему и у Python есть недостатки. Прежде всего — это скорость выполнения, однако, эта проблема решаема несколькими путями и об этом мы обязательно поговорим чуть позднее.
Сам я начал осваивать Python буквально недавно. Начиная этот цикл статей — я преследую несколько целей. Во-первых, это дополнительная само мотивация + интерактивность, во-вторых, опыт. В-третьих, блуждая по просторам рунета — вижу, что Python куда менее популярен, чем в мире. Ситуацию надо исправлять :)
В соответствии с идеологией Python, а именно с тем, что одни из главных его козырей — это быстрота в освоении и скорость разработки, мы достаточно быстро, практически тезисно пронесёмся по основам синтаксиса и построения программ и перейдём к основной цели данного цикла — освоение django.
Итак, мы начинаем.
Читать дальше →
Всего голосов 90: ↑78 и ↓12+66
Комментарии86

Оптимизация процесса создания unit-тестов

Время на прочтение6 мин
Количество просмотров4.7K
Всем привет! Хабраюзер shai_xylyd написал статью про аспекты тестирования, где им были рассмотрены некоторые понятия и ценности TDD. В частности, он упомянул очень интересный способ создания первичных юнит-тестов — когда функциональный код пишется совместно с кодом юнит-теста, чем меня очень заинтриговал.

Дело в том, что я (как программист), нахожусь в состоянии переходного процесса между «классической» разработкой и разработкой test-driven, поэтому всякими способами ищу возможности упростить и сделать более естественной последнюю. После пары приседаний, сразу включиться в методику shai_xylyd не сумел. Начал переписку с автором статьи, где он натолкнул меня на мысль подойти к решению с математической точки зрения. Идея в том, чтобы воспользоваться функциональным пространством среды программирования и «разложить» написание юнит-теста на составляющие. После чего сделать выводы.
Немного математики, а потом пример
Всего голосов 22: ↑18 и ↓4+14
Комментарии17

Курс по Silverlight от MIT

Время на прочтение1 мин
Количество просмотров831
На сайте Массачусетского технологического института (Massachusetts Institute of Technology, MIT) размещен в открытый доступ целый курс, посвященный Silverlight.
Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии8

Непопулярные аспекты тестирования

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

Непопулярные аспекты тестирования


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

Я соглашаюсь с тем, что данная статья распространяется на условиях CC-NC-BY
Всего голосов 47: ↑42 и ↓5+37
Комментарии29

DSL и динамические вкусности Ruby

Время на прочтение5 мин
Количество просмотров13K
В этой статье я проиллюстрирую основные возможности Ruby для построения Domain Specific Languages(DSL). DSL, это небольшие, узкоспециализированные языки для решения конкретных задач. В отличие от языков общего назначения, таких как C++ или Java, DSL обычно очень компактны, и обладают высокой выразительностью в контексте решаемой задачи.

Различные DSL широко распространены в библиотеках и фреймворках для Ruby. Например в Rails DSL используются для создания миграций.

А теперь, давайте посмотрим какие возможности Ruby предоставляет для построения DSL
Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии43

Покорим Ruby вместе! Капля вторая

Время на прочтение3 мин
Количество просмотров45K
Продолжаем изучать Ruby? Так точно!

В первой части мы получили обзорные знания о Руби и Рельсах и, надеюсь, решили, нужно ли нам это, или нет. Так как мы взялись за язык основательно необходимо обустроить рабочее учебное место. Нам нужны: сам интерпретатор Ruby, фрэймворк Rails, база данных (MySQL, думаю, будет лучшим выбором) и непосредственно среда разработки, которая должна сделать процесс программирования приятным, удобным и увлекательным ;)

Начнем с последнего пункта
Всего голосов 65: ↑51 и ↓14+37
Комментарии94

Делаем Liquid Resize своими руками

Время на прочтение12 мин
Количество просмотров16K
Вы наверное уже слышали о технологии масштабирования Liquid Resize, которая учитывает содержимое изображения. Если вам интересно как оно все работает и как можно реализовать все это самому, то читайте далее (осторожно, много рисунков).


(НЛО прилетело и растянуло этот рисунок здесь)
Читать дальше →
Всего голосов 230: ↑226.5 и ↓3.5+223
Комментарии125

TaxiMap — сервис подбора такси

Время на прочтение2 мин
Количество просмотров1K
Приветствую.
Я хочу представить вам наш «гаражный» сервис, предназначенный для подбора такси. На данный момент работает он только по Москве.
Краткое описание функционала. Вы отмечаете пункт отправки и назначения, выбираете дополнительные услуги и получаете выдачу диспетчеров такси, готовых помочь вам, и стоимость «телепортации».
Читать дальше →
Всего голосов 12: ↑8 и ↓4+4
Комментарии39

Гонки в OpenSource

Время на прочтение3 мин
Количество просмотров5K
Сонные человеки планеты Земля медленно приходят в себя после НГ, а мы покажем им что может их отвлечь от ужасной головной боли. В частности OpenSource игры на гоночную тематику.
Читать дальше →
Всего голосов 63: ↑57 и ↓6+51
Комментарии82

Настройка планшета для работы во Flash

Время на прочтение3 мин
Количество просмотров13K
Давно хотела написать эту статью, но каждый раз оценивая сколько времени на неё уйдёт, откладывала в долгий ящик. А тут сами обстоятельства захотели, чтобы я её написала.
Итак, речь пойдёт о настройке планшета Wacom Intuos3 для flash аниматоров.
Те, у кого нет планшета, думаю после прочтения этой статьи появится желание его купить, а те у кого есть, надеюсь откроют для себя что-то новенькое :)



Далее много букв и поясняющих картинок.

Читать дальше →
Всего голосов 75: ↑72 и ↓3+69
Комментарии29

White IDE — Браузерная RAD среда разработки на JavaScript

Время на прочтение1 мин
Количество просмотров3.4K
Привет, хочу представить одну интересную разработку студии, в которой я работаю. И как ведущий разработчик буду её освещать :)
image
Читать дальше →
Всего голосов 97: ↑86 и ↓11+75
Комментарии79

Nigma научилась искать по химическим реакциям

Время на прочтение1 мин
Количество просмотров1K
Всем привет! Сегодня мы запустили поиск по химическим реакциям. Прямо в строку поиска можно забить химические реакции и получить молекулярную, ионную и сокращенную ионную формулу реакции, например, KOH + H2SO4 =. В поисковой строке можно написать как исходное вещество, так и продукт (= NaCl + H2S). В некоторых случаях, когда реакция не идет, Нигма может объяснить почему та или иная реакция не идет: «K + NaOH»

Сейчас в нашей базе более 12 тысяч реакций. В ближайшее время мы собираемся пополнить ее до 20 тысяч. Вот тут лежит новость про наш сервис, а тут — полный список решаемых задач.

Перед запуском мы посоветовались с Загорским Вячеславом Викторовичем, доктором педагогических наук, профессором химии СУНЦ МГУ, который давно работает над привлечением внимания молодежи к химии и внедрением сетевых форм обучения в массы. Он был приятно удивлен нашими разработками (особенно ему понравилось, что мы делаем это бесплатно, цитата: «продвинутому в химии пользователю сервис поможет углубляться в своих изысканиях») и предложил дальнейшее сотрудничество для улучшения этого сервиса.

Помимо текстового ответа мы решили, что для типовых реакций будем выдавать еще и видео ответ. Правда, пока мы нарисовали всего 1 ролик: (см. тут). Если кто-нить хочет помочь нам с отрисовкой образовательных роликов, или вы найдете баги в реакциях, то пишите, пожалуйста, мне в личку :)

Заранее спасибо!
Всего голосов 70: ↑62 и ↓8+54
Комментарии54

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность