Search
Write a publication
Pull to refresh
27
0
Андрей Журавлёв @Gen1us2k

Разработчик

Send message

Несколько интересностей и полезностей для веб-разработчика

Reading time4 min
Views62K
Всем доброго времени суток. Как-то так получилось, за последнее время я увидел много интересных и полезных инструментов/библиотек/событий, которыми я хотел поделиться на Хабре. Все эти темы по отдельности, на мой взгляд, не заслуживали целой статьи. Но каждая из них достойна внимания и может кому нибудь пригодиться. В итоге получился небольшой дайджест:

Prepros



Великолепное приложение препроцессор для CSS, JS. Компилирует файлы следующих типов: LESS, Sass, SCSS, Stylus, Jade, Slim, Coffeescript, LiveScript, Haml. Минифицирует JS на лету, при каждом изменении файла. Оптимизирует изображения. Доступен для Windows и Mac, а также как расширение для Chrome. Плюс ко всему создает HTTP сервер, для тестирования сайта на разный устройствах. Бесплатная замена CodeKit'у и Ghostlab'у вместе взятых, что в сумме позволит Вам сэкономить $75.

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

Python изнутри. Введение

Reading time7 min
Views101K
Boa constrictor1. Введение
2. Объекты. Голова
3. Объекты. Хвост
4. Структуры процесса

Помимо изучения стандартной библиотеки, всегда интересно, а иногда и полезно, знать, как язык устроен изнутри. Андрей Светлов (svetlov), один из разработчиков Python, советует всем интересующимся серию статей об устройстве CPython. Представляю вам перевод первого эпизода.

Мой друг однажды сказал мне: «Знаешь, для некоторых людей язык C — это просто набор макросов, который разворачивается в ассемблерные инструкции». Это было давно (для всезнаек: да, ещё до появления LLVM), но эти слова хорошо мне запомнились. Может быть, когда Керниган и Ритчи смотрят на C-программу, они на самом деле видят ассемблерный код? А Тим Бёрнерс-Ли? Может он сёрфит интернет по-другому, не так, как мы? И что, в конце концов, Киану Ривз видел в том жутком зелёном месиве? Нет, правда, что, чёрт побери, он там видел?! Эм… вернёмся к программам. Что видит Гвидо ван Россум, когда читает программы на Python?
Узнать ответ

Как устроен namedtuple или динамическое создание типов

Reading time6 min
Views18K
Мы в Буруках любим не только людей и цифры. Мы также без устали совершенствуемся во владении нашим основным инструментом, языком Python. Ссылка для тех, кто хочет совершенствоваться с нами. В этой статье-переводе автор разбирает устройство namedtuple и по ходу рассказывает об одной из основных концепций языка.

Пару дней назад я был на пути в Сан-Франциско. Интернета в самолёте не было, поэтому я читал исходники стандартной библиотеки Python 2.7. Реализация namedtuple показалась мне особенно интересной, наверное, потому, что на деле всё гораздо проще, чем я думал раньше.

Вот здесь лежат исходники. Если вы никогда раньше не знали о namedtuple, то рекомендую ознакомиться с этой функцией.
Погрузиться в неизведанный мир

Социальная инженерия: ликбез про метод атаки, который никогда не устаревает

Reading time5 min
Views202K
Как показывает мировая практика успешно проведённых взломов (успешно для атакующих, разумеется), большая часть проблем связана именно с проблемами с людьми. Если быть более точным — дело в их способности выдать любую информацию и совершать совершенно дурацкие действия.

Думаю, IT-примеры вам и так прекрасно знакомы, поэтому напомню пример из книги «Психология влияния»: психологи обзванивали медсестёр в больницах, а затем представлялись врачом и отдавали распоряжение ввести смертельную дозу вещества пациенту. Сестра знала, что делает, но в 95% случаев выполняла команду (её останавливали на входе в палату ассистенты психолога). При этом врач даже не был хоть как-то авторизован. Почему сестра так делала? Просто потому, что она привыкла слушаться авторитета.

Давайте ещё раз: в примере благодаря грамотной социальной инженерии 95% больниц оказались критически уязвимы.
Читать дальше →

Создание несложного бота для WoW, программирование маршрутов

Reading time11 min
Views80K

Введение


Прочитал недавно пост, в котором автор рассказал о своём боте для торговли на аукционе в игре World of Warcraft. Его персонаж бегал челноком на небольшие расстояния и выполнял конкретные действия, строго заданные в управляющей программе. Воспользовавшись его идеями, я решил пойти немного дальше: пусть персонаж будет способен бегать по маршруту длительностью хотя бы пять минут, при этом должна быть возможность записывать маршрут и выполняемые действия извне, не прибегая к изменению самой программы управления. Описанное мной является развитием поста-оригинала, тем не менее я постарался, чтобы его чтение не было обязательным.
В посте я опишу
  1. Процесс создания тривиального аддона для пользовательского интерфейса WoW на языке Lua
    • Сериализация данных для передачи между частями системы
    • Передача с помощью цвета пикселей
  2. Процесс управления персонажем на языке AutoIt
    • Программа для записи выполняемых действий
    • Программа для воспроизведения
    • Мат.расчеты направления перемещения
    • Почему не стоит прибегать к чтению/записи памяти процесса
  3. Программа управления (ро)ботом с командами, понятными непрограммисту

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

Как музыка влияет на продуктивность

Reading time3 min
Views184K


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

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

Когда мы слушаем музыку, активируется часть мозга, называемая nucleus accumbens (центр удовольствия), которая вырабатывает дофамин — гормон, влияющий на настроение. Он располагается в «вентральной области покрышки» (ventral tegmental area, VTA). Все это — часть «системы награждения» (reward system) мозга.
Читать дальше →

Проблемы CSS. Часть 1

Reading time7 min
Views100K
От переводчика
Статья большая решил разбить на две части.

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

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

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

Проблемы CSS. Часть 2

Reading time7 min
Views235K
Продолжение перевода статьи «Проблемы CSS. Часть 1».

Когда использовать width / height равный 100%?


Height: 100%

Пожалуй, начнем с того, что попроще. Когда использовать height: 100%? На самом же деле, вопрос часто звучит немного по-другому: «Как мне сделать так, чтобы моя страница заняла всю высоту экрана?». Ведь правда?

Для ответа на него нужно понять, что height: 100% равен высоте родительского элемента. Это не магическое «высота всего окна». Так что, если вы захотите, чтобы ваш элемент занял все 100% от высоты окна, то установить height: 100% будет недостаточно.

Почему? А потому, что родителем вашего контейнера является элемент body, а у него свойство height установлено в auto по умолчанию; а значит — его высота равна высоте контента. Конечно, вы можете попробовать добавить height: 100% к body, но этого тоже будет недостаточно.

Почему? А все потому же, родителем элемента body является элемент html, у которого также свойство height равно auto и он также растягивается под размер контента. А вот теперь, если добавить height: 100% и к элементу html, то все заработает.

Стало понятнее? Корневой элемент html на самом деле не самый верхней уровень на странице — им является «viewport». Для простоты, будем считать, что это окно браузера. Так вот, если установить height: 100% элементу html, то это то же самое, что сказать — стань такой же высоты, как окно браузера.
Читать дальше →

Как я писал модуль обновления на C#

Reading time8 min
Views45K
Я пишу программы на C# для фирмы, где их использует несколько сотен человек. Время от времени добавляются новые функции и встаёт проблема обновления версий.

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

image

Честно, мне самому не очень нравятся приложения, которые вечно скачивают обновления, но в моём случае проще автоматизировать этот процесс, чем писать должностные инструкции и заставлять коллег скачивать обновления вручную (а потом бегать по всем этажам и делать это самому).
Читать дальше →

Каверзные сетевые вопросы

Reading time14 min
Views231K
Давно была идея собрать воедино интересные вопросы, касающиеся сетей.

Объединяет их то, что все они довольно простые, но мы подчас о них не задумываемся (я во всяком случае о них не задумывался).
В общем я их собрал, подбил, нашёл ответы.
Итак, блиц опрос:

Начнём с самых низких уровней и с самых простых вопросов



В1. Почему для витой пары выбран такой странный порядок: синяя пара на 4-5, разрывая зелёную, которая на 3, 6?




Ответ
О1: Сделано это в угоду двухконтактному телефонному разъёму. Таким образом, например, в патч-панель можно вставить как телефонный кабель, так и витую пару.
Можно даже через один кабель вывести и сеть и телефонию, но я вам этого не говорил!

habrahabr.ru/post/158177.


В2. В стандарте Ethernet между кадрами всегда имеется промежуток, называемый IFG (Inter Frame Gap) длиною 12 байтов. Для чего он нужен, и почему он присутствует в современных стандартах?

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

Как HTTPS обеспечивает безопасность соединения: что должен знать каждый Web-разработчик

Reading time9 min
Views375K


Как же все-таки работает HTTPS? Это вопрос, над которым я бился несколько дней в своем рабочем проекте.

Будучи Web-разработчиком, я понимал, что использование HTTPS для защиты пользовательских данных – это очень и очень хорошая идея, но у меня никогда не было кристального понимания, как HTTPS на самом деле устроен.

Как данные защищаются? Как клиент и сервер могут установить безопасное соединение, если кто-то уже прослушивает их канал? Что такое сертификат безопасности и почему я должен кому-то платить, чтобы получить его?
Читать дальше →

История плохого старта — вариант «Все сам»

Reading time5 min
Views57K
Заглавная картинка Некоторое время назад промелькнула на Хабре вот эта статья о запуске игры. В ней автор делится своим опытом создания первой игры и публикации ее через издателя. На тот момент моя игра уже была выпущена и находилась в GooglePlay около месяца. Правда, я выбрал самостоятельный вариант публикации без какой-либо помощи издателей. А поскольку опыта в этой области у меня не было совсем никакого, то я сделал целый ряд ошибок, которые, по-моему, снизили и так небольшие результаты. Вот об этих ошибках, а также о детальной статистике на текущий момент, я и хотел бы рассказать…
Поучиться на чужих ошибках

Ajax валидация форм в Django

Reading time5 min
Views22K
imageСегодня я расскажу о том, как мы валидируем формы с использованием технологии Ajax. На стороне сервера будет использоваться Django.
Ничего нового в этом способе нет, в интернете есть несколько статей на эту тему, главное же отличие от этих статей заключается в том, что всю логику валидации формы через Ajax мы вынесем в отдельное представление (view). Это позволит нам писать все остальные представления без какой-либо дополнительной логики. При написании функционала будет использоваться Class Based Views подход.

При валидации форм с использованием Ajax мы получаем следующие преимущества:
  • страница пользователя не перезагружается пока данные не валидны;
  • форма не отрисовывается заново;
  • логика валидации формы описывается в одном месте.

Если заинтересовались, добро пожаловать под кат.
Читать дальше →

Тестирование сканеров безопасности веб-приложений: подходы и критерии

Reading time8 min
Views24K
Сканеры информационной безопасности (сканеры уязвимостей) — это средства мониторинга и контроля, с помощью которых можно проверять компьютерные сети, отдельные компьютеры и установленные на них приложения на наличие проблем защищенности. Большинство сканеров позволяют детектировать уязвимости, описанные классификатором WASC Threat Classifcation. В сегодняшнем хабратопике мы рассмотрим некоторые вопросы, связанные с тестированием сканеров информационной безопасности веб-приложений как программных продуктов.

Современный сканер веб-приложений — это многофункциональный и весьма сложный продукт. Поэтому его тестирование и сравнение с аналогичными решениями имеет целый ряд особенностей.
Читать дальше →

Работать эффективнее

Reading time2 min
Views60K


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

1. Отпишитесь от всех рассылок, на которые не нужно реагировать немедленно. Чем меньше вам почтовый ящик, тем меньше времени вы будете тратить на разбор почты.

2. Если письмо не требует ответа или какой-то реакции, отправляйте его в архив. Пустая папка «Входящие» — это прекрасно. Используйте inbox в качестве списка To Do.

3. Не используйте одновременно несколько программ/приложений. Закончили с соцсетями — закройте окно. Проверили почту — закройте ее. Не нужно серфить в интернете — закройте браузер. Даже фоном ничего не оставляйте. Несколько задач одновременно отвлекают и мешают сконцентрироваться на чем-то одном.
Читать дальше →

Программисты и человеческий фактор

Reading time7 min
Views14K

Введение

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

технарь

Миф о технаре

Итак, я бросаю вызов утверждению, что программист — технарь. Не в частном смысле, а в общем. То есть, я не пытаюсь доказать, что нельзя найти программиста, который является технарем. Я утверждаю, что свойство «технарь» для программиста ни необходимо, ни достаточно.
Читать дальше →

Наглядный жизненный урок

Reading time6 min
Views103K

Когда я переучивал на программистов своих друзей, то заметил интересную вещь. Люди, которые уже где-то работали, переучивались очень охотно. И чем больше был их стаж вне ИТ, тем усерднее они занимались. Те же, кто был еще студентами, иногда откровенно халявили.

Поговорив и с теми и с другими, я заметил, что студенты до последнего верят в «волшебное трудоустройство», которое ждет их сразу после окончания вуза.

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

Papeeria: облачный LaTeX редактор и IDE для научной работы

Reading time4 min
Views17K
Одной строкой: тут рекламируется Папирия, онлайновый сервис для подготовки документов в LaTeX. Ходить на papeeria.com.

Введение


Если вы студент, то наверняка либо уже пишете курсовую или диплом, либо всерьез над этим задумываетесь. Если вы к тому же учитесь в техническом вузе и в вашей работе много формул и прочего нетекста, то возможно, вы задумываетесь над тем, в чём его писать — в LibreOffice/Word или в LaTeX. И возможно, от использования LaTeX вас останавливает только то, что Word вот он, под рукой, бери и пиши, а латех надо еще устанавливать, возиться с почти неизбежными подводными камнями и потом еще тупо глядеть на белый лист и думать с чего начать. Вот вам-то мы и хотим помочь. А также тем, кто хочет вести свою научную работу из любого места, где есть интернет.

Для всех остальных: если вы вообще не знаете, что такое латех, то рекомендуем погуглить (можно начать, например, отсюда). Если же что-то знаете и просто хотите потроллить на тему latex vs word, то поищите себе, пожалуйста, другую поляну. Будем премного благодарны.

Итак, о Papeeria

Создаем резюме на LaTeX — как и зачем?

Reading time5 min
Views93K
Многие документы я подготавливаю в LaTeX, а не в Word. И к моменту, когда я определяюсь со следующим местом работы, я подвожу итоги сделанного, и, уж чтобы не пропадало, фиксирую их в документах, составляющих каркас моего CV. По моему личному убеждению, тщательность в создании документов для будущего работодателя нужна не столько для коммуникаций с «эйчарами», сколько для осмысления дороги, по которой идешь, и направления, в котором решаешь двигаться дальше. Итак, почему я для резюме выбрал LaTeX?

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

Сайты для онлайн-обучения веб-разработчиков и веб-дизайнеров

Reading time2 min
Views128K
В заметке собраны сайты с обучающими материалами для веб-дизайнеров и веб-разработчиков. Старался не повторяться с постом 27+ ресурсов для онлайн-обучения хабраюзера nicolausYes.

Academic Earth


Множество бесплатных лекций, в том числе от известных университетов (Гарвард, MIT, Стенфорд и др.).

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

Information

Rating
Does not participate
Registered
Activity