Уже второй раз сталкиваюсь с задачей «поставь https на наш сервер» от моего босса, поэтому решил сделать для самого себя шпаргалку, а заодно и для всех остальных. Итак, ситуация следующая: к нам пришел босс и заявил, что ему нужен https. Под катом я напишу 5 простых шагов, как все сделать буквально за час. Приступим.
Дмитрий Петров @topwebmaster
python разработчик
Selenium для Python. Глава 3. Навигация
6 min
166KTutorial
Translation
Продолжение перевода неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.
1. Установка
2. Первые Шаги
3. Навигация
4. Поиск Элементов
5. Ожидания
6. Объекты Страницы
7. WebDriver API
8. Приложение: Часто Задаваемые Вопросы
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.
Содержание:
1. Установка
2. Первые Шаги
3. Навигация
4. Поиск Элементов
5. Ожидания
6. Объекты Страницы
7. WebDriver API
8. Приложение: Часто Задаваемые Вопросы
+11
Как программисты ищут квартиры
8 min
106KНа самом деле все происходит не так...
Один мой знакомый попросил меня написать эту статью. В статье пойдет рассказ о его похождениях, которые могут (могли) быть неправильно восприняты администрацией определенных интернет-ресурсов. И те, в свою очередь, могут (могли) пожаловаться на моего знакомого куда следует. Поэтому пишу статью с его слов я. А он уехал. В Гондурас. Насовсем.
Проблема
Пару лет назад (наконец-то!) наступил в моей жизни момент, когда мне
+73
APRS
12 min
60KAPRS [1, 2] это протокол цифровой радиолюбительской связи. На базе этого протокола построена глобальная система связи. Её основные задачи: передача информации о координатах объектов в пространстве, обмен сообщениями, передача данных с погодных станций и многое другое.
О чем эта статья? Вообще APRS — большая, сложная и непонятная тема даже для большинства радиолюбителей. Но на Хабре радиолюбителей не очень много. Поэтому я бы хотел показать, что сам стандарт очень хорош и может применяться за пределами любительского радио. Существует много систем, где вопрос обмена сообщениями о координатах изобретается снова и снова (транспорт), придумываются форматы передачи информации, например, о погоде с погодных станций, разрабатываются способы передачи текстовых сообщений. Однако, если бы создатели этих систем знали о стандарте APRS то смогли бы не только сэкономить время(как минимум на разработку протокола), но и применить ряд уже готовых программных и аппаратных решений.
Большую часть своих знаний о системе я получил не из практического использования существующих программ и оборудования, а из разработки собственных программ и утилит для работы с ней [3, 4]. Информацию черпал из стандарта [5], исходных кодов Xastir[6], радиолюбительских форумов [7, 8] и из общения с радиолюбителями (всех и не счесть).
Если вы делаете:
- погодную станцию;
- систему двухстороннего обмена текстовыми сообщениями через интернет или радиоканал в виде децентрализованной системы с использованием других пейджеров, как ретрансляторов;
- спутниковую сигнализацию;
- мониторинг телеметрии удаленных станций;
- запускаете воздушный шар;
Да и почти в любом случае, когда вы хотите построить систему передачи данных по радиоканалу и изобретаете для этого протокол, то у радиолюбителей есть наработки в виде различных цифровых видов связи и протокол APRS.
+36
Избавляемся от JavaScript в социальных кнопках (Facebook, VK, Twitter и др.)
5 min
79KTutorial
Как мы избавились от JavaScript-библиотек социальных сетей, ускорили скорость загрузки страниц и использовали RESTful API для “шаринга” и “лайков”.
+68
Интеграция wysiwyg редактора с Django. Обзор
4 min
44KОдно из самых частых требований заказчика — wysiwyg редактор в админке. Wysiwyg редактор имеет (как правило) интуитивно понятный интерфейс и позволяет пользователям, не знающим html, подготовить текст для размещения на сайте. Редакторы позволяют: форматировать текст, вставлять изображения и таблицы, создавать списки и много другое. Но имеют и свои минусы, самый главный из них, пожалуй, большое количество лишнего html кода.
На сегодняшний день существует большое количество различных wysiwyg редакторов и приложений для интеграции этих редакторов с django. Сегодня я расскажу про самые популярные.
Помимо собственно разметки текста, на практике важными характеристиками wysiwyg редактора для клиента являются — удобная вставка изображений и перенос отформатированного текста из сторонних источников (Word, веб-ресурсы). Важно чтобы при переносе отформатированного текста редактор удалял стили, которые могут конфликтовать со стилями сайта, например, шрифт текста. Во время обзора приложений особое внимание будет уделено этим двум характеристикам.
На сегодняшний день существует большое количество различных wysiwyg редакторов и приложений для интеграции этих редакторов с django. Сегодня я расскажу про самые популярные.
Помимо собственно разметки текста, на практике важными характеристиками wysiwyg редактора для клиента являются — удобная вставка изображений и перенос отформатированного текста из сторонних источников (Word, веб-ресурсы). Важно чтобы при переносе отформатированного текста редактор удалял стили, которые могут конфликтовать со стилями сайта, например, шрифт текста. Во время обзора приложений особое внимание будет уделено этим двум характеристикам.
+15
Что нужно знать про арифметику с плавающей запятой
14 min
965KВ далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).
Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
+239
Sass-архитектура вашего проекта
2 min
26KСуществуют разные подходы для организации sass-архитектуры, какую бы вы не выбрали, главное, чтобы она была.
Я отношусь к организации sass, как к инструменту, в первую очередь, он не должен мешать и тормозить ход мыслей. Поэтому начиная проект, я не знаю какой получится архитектура, она устаканивается по ходу работы и принимает форму подходящую для требований проекта.
Bem, Smacss, Oocss, Organic-css должны давать вам гибкость мысли, чтобы построить свой проект.
Я отношусь к организации sass, как к инструменту, в первую очередь, он не должен мешать и тормозить ход мыслей. Поэтому начиная проект, я не знаю какой получится архитектура, она устаканивается по ходу работы и принимает форму подходящую для требований проекта.
Bem, Smacss, Oocss, Organic-css должны давать вам гибкость мысли, чтобы построить свой проект.
+6
Философия Ember.js
4 min
54K В последнее время в вебе идет тенденция к «утончению» сервера и «утолщению» клиента. С каждым днем вакансий Full-stack разработчиков становится все больше, а чистого бэкенда все меньше. Последние 2 года я работаю разработчиком Ruby on Rails и в скором будущем без работы остаться не хотелось бы. Поэтому я начал рассматривать варианты изучения клиентского фреймворка.
Вариантов было несколько:
Но остаться должен только один. Meteor предлагает интересную концепцию – общий код клиента и сервера, но он пока сыроват и мне не хотелось оставлять прекрасный язык Ruby. Поэтому Метеор отпал. Так как Ember был похож на Rails (магия, convention over configuration), то был выбран именно он. Помимо этого, очень симпатично выглядел шаблонизатор Handlebars по сравнению с директивами Angular.
Выбор сделан. Вот тут и начались проблемы.
Вариантов было несколько:
- Meteor
- Angular
- Ember
Но остаться должен только один. Meteor предлагает интересную концепцию – общий код клиента и сервера, но он пока сыроват и мне не хотелось оставлять прекрасный язык Ruby. Поэтому Метеор отпал. Так как Ember был похож на Rails (магия, convention over configuration), то был выбран именно он. Помимо этого, очень симпатично выглядел шаблонизатор Handlebars по сравнению с директивами Angular.
Выбор сделан. Вот тут и начались проблемы.
+27
Сумбурные заметки про python и django
5 min
47KНакопилось несколько маленьких заметок/советов про python и django, которые на отдельные топики не тянут, поэтому публикую все сразу.
Под катом:
Под катом:
- как упростить код вьюх ровно в 2 раза
- легкий способ рисования графиков
- почему Ian Bicking воскликнул «Cool!»
- приложения для ВКонтакте на django за 5 минут
- хорош ли pymorphy?
- пара фишек насчет выкладки пакетов на pypi
- что общего между декораторами и with-контекст-менеджерами
- принимаем оплату на django-сайтах
- показываем Яндекс.Карту для заданного адреса
+147
Заявления Free Software Foundation и Defective By Design в связи с последней пресс-конференцией Apple
4 min
87KRecovery Mode
Данная статья является переводом публичных заявлений двух организаций в ответ на пресс-конференцию Apple:
От переводчика.
Пожалуйста, помните, что это перевод. Я хоть и разделяю посыл этих публикаций в целом, но не могу нести ответственность за каждое отдельное утверждение.
Статья публикуется как «пост», поскольку является переводом двух статей, а «перевод» на Хабре не позволяет указать ссылки на более чем одного автора и один источник.
Чтобы указать на опечатку или предложить лучший вариант перевода, пишите, пожалуйста, в личку.
- Free Software Foundation — некоммерческая организация, всемирная миссия которой — продвижение свободы и защита прав пользователей компьютеров и программного обеспечения.
- Defective by Design («Намеренно испорченная», это про DRM) — кампания FSF по продиводействию распространению технологий DRM, что они рассшифровывают как Digital Restrictions Management (система управления цифровыми запретами) и считают угрозой инновациям в медиа, приватности потребителей и свободе пользователей компьютеров.
От переводчика.
Пожалуйста, помните, что это перевод. Я хоть и разделяю посыл этих публикаций в целом, но не могу нести ответственность за каждое отдельное утверждение.
Статья публикуется как «пост», поскольку является переводом двух статей, а «перевод» на Хабре не позволяет указать ссылки на более чем одного автора и один источник.
Чтобы указать на опечатку или предложить лучший вариант перевода, пишите, пожалуйста, в личку.
+151
58 признаков хорошего интерфейса
16 min
381KTranslation
У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.
Один столбец точнее отражает то, что вы хотите донести. Пользователи проходят сверху вниз по более предсказуемому пути. В дизайне с несколькими колонками есть риск отвлечения пользователя от основной задачи страницы.
1 Один столбец вместо нескольких
Один столбец точнее отражает то, что вы хотите донести. Пользователи проходят сверху вниз по более предсказуемому пути. В дизайне с несколькими колонками есть риск отвлечения пользователя от основной задачи страницы.
+138
Поддержка пользователей интернет-проекта: 3 рабочих инструмента
6 min
17KВсем привет! Пока все думают менять ли рубли на доллары или уже поздно, я решил поделиться с вами нашим опытом поддержки пользователей онлайн. За последние 4 года нам удалось поработать с такими компаниями, как Evernote, HeadHunter, IVI, AviaSales и многими другими. Мы знаем, как работает поддержка интернет-проектов изнутри, и для себя выделили 3 рабочих инструмента, речь о которых, и пойдет ниже.
+20
Не только Яндексу. Микроразметка на крупнейших сайтах рунета: зачем ею пользуются и почему она пригодится и вам
12 min
107KМы уже рассказали вам о мире семантической разметки — о том, какие бывают словари, почему столько стандартов синтаксиса, а также разобрали, в каких продуктах она используется.
Теперь мы решили показать, как микроразметка участвует в жизни существующих сайтов: сделали обзор всех возможностей, которые она дает интернет-магазинам, сайтам СМИ и видеохостингам, и узнали, насколько они пользуются спросом у крупнейших проектов рунета.
Люди, которые отвечают за разработку и всю техническую часть таких сайтов, как Holodilnik.ru, Ozon.ru, Lenta.ru, Interfax.ru и Ivi.ru, ответили на вопросы о том, как на практике происходит внедрение микроразметки и каких результатов она позволяет добиться. А мы со своей стороны рассказали, какие типы мы бы порекомендовали таким сайтам и для чего.
Теперь мы решили показать, как микроразметка участвует в жизни существующих сайтов: сделали обзор всех возможностей, которые она дает интернет-магазинам, сайтам СМИ и видеохостингам, и узнали, насколько они пользуются спросом у крупнейших проектов рунета.
Люди, которые отвечают за разработку и всю техническую часть таких сайтов, как Holodilnik.ru, Ozon.ru, Lenta.ru, Interfax.ru и Ivi.ru, ответили на вопросы о том, как на практике происходит внедрение микроразметки и каких результатов она позволяет добиться. А мы со своей стороны рассказали, какие типы мы бы порекомендовали таким сайтам и для чего.
+45
VPN в каждый дом
1 min
190KВсем привет! Желание сделать VPN сервер максимально простым в установке и удобным в использовании назревало уже давно. За основу я взял L2TP/IPsec, эта технология нативно поддерживается всеми устройствами и в отличии от PPTP не вызывает проблем при подключении через сотовых операторов.
tl;dr
Для установки нам потребуется машинка с Ubuntu 14.04 на борту и «белым» IP-адресом, любой VPS подойдет. Достаточно ввести эту волшебную строчку:
curl -sS https://raw.githubusercontent.com/sockeye44/instavpn/master/instavpn.sh | sudo bash
и через несколько минут у вас будет рабочий VPN с управлением через браузер (httр://ip-address:8080/) или консоль (instavpn -h).
+66
Пересмотренное руководство по Grunt для начинающих
6 min
51KTutorial
Translation
Еще в марте 2013 года я написал статью руководство по Grunt для начинающих и она стала самой посещаемой статьей на моем сайте. Я написал ее в то время, когда сам только начинал своё знакомство с Grunt, и это было скорее руководство для себя, чем для кого-то ещё. Теперь, спустя 18 месяцев, я почувствовал, что пришло время пересмотреть как я использую Grunt потому что сейчас я знаю гораздо больше, чем в то время.
Если вам не терпится просто увидеть код, то весь он есть на Github.
Если вам не терпится просто увидеть код, то весь он есть на Github.
+18
Советы front-end разработчику
7 min
191KПривет, читатель хабра.
Наверное, ты сразу спросишь меня: «Да кто ты такой, чтобы давать мне советы?». Итак, немного обо мне.
Первое мое общение с HTML и CSS было 10 лет назад, еще в школе, когда у меня только появился интернет, и я понял что тоже хочу делать странички, которые сможет увидеть весь мир. С тех пор у меня есть как минимум 5 полных лет опыта разработки сайтов по-взрослому. Сейчас я могу без лишней скромности сказать, что сверстал я уже пару сотен сайтов, большинство из которых, как ни странно, совершенно не совпадают с моими текущими требованиями к верстке.
Я не хочу рассказывать как надо делать, эта статья результат моего опыта и попытка написать рекомендации тем, кто только начинает, хотя и для матерых верстальщиков (слово режущие слух) здесь могут найтись интересные идеи.
Если ты заинтересовался прошу под кат…
+89
10 советов фрилансерам, как расставлять приоритеты задачам
9 min
27KTranslation
Вы когда-нибудь задумывались: «А сколько стоит пароход построить?”, “А сколько — дизайн-макет сделать?”, “А из чего складывается такая цена?»
Пароход — штука архисложная; его стоимость — это цена на материалы (металл, пластик и что там ещё нужно), оплата труда рабочих верфи, амортизация на износ оборудования, оплата инженерных изысканий и так далее и тому подобное…
А что с дизайн-макетом? Из чего складывается его цена? Ну, допустим, вложим в стоимость “амортизацию оборудования” — деньги на ПК и ПО, которые регулярно нужно обновлять. А что ещё? Остается, собственно, только оплата труда дизайнера-верстальщика. А как её рассчитать? Тут способов два: либо оплата за человеко-часы (сколько времени потратил — столько и оплатили); либо другой более распространенный подход — сдельная оплата (т.е. оценил бриф-ТЗ на макет, прикинул его сложность, назвал стоимость).
Что в первом случае (прямо), что во втором (косвенно), стоимость будет зависеть от времени, которое вы тратите на свою работу. А из чего складывается это время? Есть факторы внутренние: мотивация, навыки работы, муза, в конце концов… Они подвластны лишь вашей силе воли, тут дза-дзен и прочее самосовершенствование вам в помощь. Но остаются ещё и факторы внешние: от обстановки в рабочем кабинете до методологии, по которой вы работаете, — и с ними всё интереснее…
Пароход — штука архисложная; его стоимость — это цена на материалы (металл, пластик и что там ещё нужно), оплата труда рабочих верфи, амортизация на износ оборудования, оплата инженерных изысканий и так далее и тому подобное…
А что с дизайн-макетом? Из чего складывается его цена? Ну, допустим, вложим в стоимость “амортизацию оборудования” — деньги на ПК и ПО, которые регулярно нужно обновлять. А что ещё? Остается, собственно, только оплата труда дизайнера-верстальщика. А как её рассчитать? Тут способов два: либо оплата за человеко-часы (сколько времени потратил — столько и оплатили); либо другой более распространенный подход — сдельная оплата (т.е. оценил бриф-ТЗ на макет, прикинул его сложность, назвал стоимость).
Что в первом случае (прямо), что во втором (косвенно), стоимость будет зависеть от времени, которое вы тратите на свою работу. А из чего складывается это время? Есть факторы внутренние: мотивация, навыки работы, муза, в конце концов… Они подвластны лишь вашей силе воли, тут дза-дзен и прочее самосовершенствование вам в помощь. Но остаются ещё и факторы внешние: от обстановки в рабочем кабинете до методологии, по которой вы работаете, — и с ними всё интереснее…
+17
Оптимизируем VPS за 5$ (512MB RAM / 1 CPU) так, что сайт на wordpress выдерживает нагрузку в 42,735,587 хитов в день
9 min
96KКогда вы приобретаете сервер VPS с 256MB или 512MB оперативной памяти на борту и лишь часть мощности процессора, то использовать для таких сервисов как MySQL/PHP/Apache настройки по умолчанию является очень плохой идеей. В настоящее время у меня запущено 3 сайта на самом дешевом тарифном плане с 512MB RAM/1 CPU. Не уверен полностью, но посещаемость составляет порядка 5-10 тысяч посетителей в день. Далее я хочу поделиться инструкцией как оптимизировать LAMP используя всего лишь 512 MB и при этом не уходя в swap. Обычно при такой настройки используется 256 – 378Mb памяти и все работает довольно быстро.
Перед началом оптимизации давайте взглянем на количество используемой памяти. Для этого необходимо выполнить следующую команду:
Для того. чтобы посмотреть список запущенных процессов и отсортировать их по использованию памяти, необходимо выполнить вот такую команду:
Первый и очевидный вопрос, который необходимо задать — это «какие сервисы мне не нужны в использовании?». Недавно, я обнаружил очень удобную утилиту для управления сервисами. Она называется "sysv-rc-conf" и управляет сервисами при помощи псевдографики и флажками. Выгдялит вот так:
Не запускайте X-сервер, выключите все ненужные сервисы и настройте Apache, MySQL, PHP только с базовой необходимой функциональностью.
Определяем доступную память и активность swap.
Перед началом оптимизации давайте взглянем на количество используемой памяти. Для этого необходимо выполнить следующую команду:
$ free -m
Для того. чтобы посмотреть список запущенных процессов и отсортировать их по использованию памяти, необходимо выполнить вот такую команду:
$ ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less
Настраиваем LAMP сервер для потребления малого количества оперативной памяти. Останавливаем, отключаем ненужные сервисы
Первый и очевидный вопрос, который необходимо задать — это «какие сервисы мне не нужны в использовании?». Недавно, я обнаружил очень удобную утилиту для управления сервисами. Она называется "sysv-rc-conf" и управляет сервисами при помощи псевдографики и флажками. Выгдялит вот так:
Здесь представлен список сервисов, которые я изменил.
- Postfix. Этот сервис позволяет отправлять и получать почтовые email сообщения для домена. Я использую для этих целей Google Apps для отправки почты и mailchimp для новостных подписчиков. Таким образом я остановил и отключил этот сервис.
- Bind9. Он нужен для управления DNS записями Вашего домена. Его можно отключить, так как все DNS записи хранятся у хостера.
- SSHD. Имеются и другие реализации, которые используют гораздо меньше памяти, но они не поддерживают sftp, поэтому данный сервис я оставил без изменений.
Не запускайте X-сервер, выключите все ненужные сервисы и настройте Apache, MySQL, PHP только с базовой необходимой функциональностью.
+31
Сети для самых маленьких. Часть вторая. Коммутация
18 min
775KTutorial
Все выпуски
8. Сети для самых маленьких. Часть восьмая. BGP и IP SLA
7. Сети для самых маленьких. Часть седьмая. VPN
6. Сети для самых маленьких. Часть шестая. Динамическая маршрутизация
5. Сети для самых маленьких: Часть пятая. NAT и ACL
4. Сети для самых маленьких: Часть четвёртая. STP
3. Сети для самых маленьких: Часть третья. Статическая маршрутизация
2. Сети для самых маленьких. Часть вторая. Коммутация
1. Сети для самых маленьких. Часть первая. Подключение к оборудованию cisco
0. Сети для самых маленьких. Часть нулевая. Планирование
7. Сети для самых маленьких. Часть седьмая. VPN
6. Сети для самых маленьких. Часть шестая. Динамическая маршрутизация
5. Сети для самых маленьких: Часть пятая. NAT и ACL
4. Сети для самых маленьких: Часть четвёртая. STP
3. Сети для самых маленьких: Часть третья. Статическая маршрутизация
2. Сети для самых маленьких. Часть вторая. Коммутация
1. Сети для самых маленьких. Часть первая. Подключение к оборудованию cisco
0. Сети для самых маленьких. Часть нулевая. Планирование
После скучного рассказа о подключении к кошкам переходим к настройке сети. В этот раз темы будут для новичков сложные, для старичков избитые. Впрочем сетевым аксакалам едва ли удастся почерпнуть что-то новое из этого цикла. Итак, сегодня:
а) аккуратно впитываем теорию о коммутаторах, уровнях сетевой модели, понятии инкапсуляции и заголовков (не пугайтесь — еще не время),
б) собираем спланированную в нулевой части цикла сеть,
в) настраиваем VLAN'ы, разбираемся с access и trunk-портами и тегированными Ethernet-фреймами,
г) соотносим текущие знания со стеком протоколов TCP/IP и моделью OSI (да, наконец-то мы ее коснёмся).
Перед тем, как вы обратитесь к практике, настоятельно рекомендуем почитать нулевую часть, где мы всё спланировали и запротоколировали.
+84
Information
- Rating
- Does not participate
- Registered
- Activity