Как стать автором
Обновить
-3
0
Денис @Ayahuaska

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

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

IPv6 — он рядом. Часть 1

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


Сегодня идет множество дискуссий насчет сроков по внедрению IPv6 везде и всюду. Но очевидно одно: без телодвижений крупных компаний ничего не выйдет. Google уже использует IPv6, существуют сети, которые предоставляют IPv6, в том числе некоммерческие.
В этом посте я хотел бы рассказать не только как приобщиться к миру IPv6, но и некоторые тонкости, связанные с ним, о которые мне пришлось споткнуться.
В данном случае рассматривается не самый тривиальный сценарий настройки, в котором используется домашний сервер и вы полностью распоряжаетесь выделенным вам адресным пространством.
Читать дальше →
Всего голосов 70: ↑68 и ↓2+66
Комментарии115

Автоматическая преднастроенная установка Ubuntu: isolinux и preseed

Время на прочтение11 мин
Количество просмотров70K
Как известно, Ubuntu Linux уже давным-давно содержит полный набор инструментов, необходимых для работы большинства офисных сотрудников. А то, что не содержит, можно доустановить, либо же запустить с сервера, например, с помощью FreeRDP и Remmina. В результате — экономия средств и сильное упрощение администрирования клиентов. Многие фирмы уже начали потихоньку заменять свой парк машин на тонкие клиенты и полноценные компьютеры с Linux. И если вы тоже хотите пересадить пару отделов на Ubuntu, то возможно я смогу помочь вам сэкономить немного времени.

В этой статье я расскажу, как создать на основе Ubuntu (а так же любых её модификаций, включая Ubuntu Sever) или Debian преднастроенную, автоматически устанавливающуюся систему. Разобравшись в описанном ниже весьма несложном материале вы сможете делать свои собственные сборки Ubuntu с необходимыми вам приложениями и настройками, которые будут способны устанавливаться в полностью автоматическом режиме как с диска, так и по сети. В итоге при желании вы сможете добиться того, что вам будет достаточно просто включить компьютер и пойти пить чай, чтобы вернувшись увидеть установленную и полностью настроенную под ваши запросы систему со всем необходимым вам для работы софтом.

Подробнее...
Всего голосов 86: ↑78 и ↓8+70
Комментарии26

Что нам стоит байк построить?

Время на прочтение18 мин
Количество просмотров158K
image

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

TL;DR — за два года маленькая команда из 2 человек (я как «строитель», и мой московский друг как главный конструктор) сумела спроектировать раму и механику дорожного электробайка, а так же построила его первый прототип. Собственно, на КПДВ — именно этот самый прототип, да. Видео тестовых покатушек — в конце статьи.

Если вам интересна история его создания — прошу под кат.

Читать дальше →
Всего голосов 449: ↑442 и ↓7+435
Комментарии208

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

Время на прочтение7 мин
Количество просмотров100K
Boa constrictor1. Введение
2. Объекты. Голова
3. Объекты. Хвост
4. Структуры процесса

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

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

Поиск кратчайшего пути в транспортном графе (концепт) + исходники

Время на прочтение6 мин
Количество просмотров22K
Был как-то проект у меня, который был связан с картой города. И возникла идея, что раз есть карта с маршрутами и соответствующими остановками городского транспорта, то почему бы не сделать поиск пути из пункта А в пункт Б на ней.

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

Где-то около часа или двух я сидел и не мог ничего придумать, а потом появилась идея, что я могу рассматривать маршрут, не как множество остановок, а как 1 точку. И если я сверну маршруты в точку, то я получу очень простой граф.
Идея показалось неплохой, и мне понравилась.

Первое что сделал это запарсил с сайтов маршруты транспорта. Далее принялся за граф.
Это оказалась не сложная задача, берем каждую остановку маршрута и смотрим, нет ли остановок любого другого маршрута в заданном нами радиусе. Радиус взял 600м (в последней версии 400м) – предполагаемое расстояние, которое человек может пройти безболезненно пешком от одной остановки до другой в случае необходимости пересадки. Вероятно, это расстояние можно сократить, скажем, до 200м, так как расстояние от одной остановки до другой на перекрестке не превышает эту дистанцию.

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

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

Качество видео ужас, но как сделать получше я так и не обнаружил.



Усредненное время, затрачиваемое на выполнение шагов:

gpt — 0.009с, найти ближайшие остановки к точке клика
grt — 0.001с, найти кратчайший путь от маршрута к маршруту
apt — 0.0001с, добавляем остановки и точки поворота к нашему маршруту
all — 0.01c, суммарное время выполнения поиска пути
Читать дальше →
Всего голосов 48: ↑41 и ↓7+34
Комментарии4

Дуальная система образования в Германии — что это такое и с чем ее едят

Время на прочтение11 мин
Количество просмотров129K
В своей статье хочу рассказать о все более становящейся популярной в Германии системе получения высшего образования – речь пойдет о так называемом дуальном обучении. На хабре я не нашла ни одного упоминания про это, а т.к. система очень интересная и практически незнакомая для жителей России и стран СНГ, я решила написать про нее подробно, т.к. в свете последних событий эмиграционные настроения становятся все более популярными возможно, кто-то заинтересуется и захочет попробовать. Я сама учусь по такой системе на специальности прикладная информатика, закончила на данный момент 4 семестра, так что все написанное будет из личного опыта.
image
Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Комментарии21

Сверхзащищенность

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

Отличный подход к информационной безопасности показала Американская администрация экономического развития (The Commerce Department's Economic Development Administration).

Вирусная атака нанесла этому ведомству урон в $2.7 млн. долларов, что составило практически половину его бюджета, но весь сок в подробностях.

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

Но проблема предстала перед ними серьезной — это ж кибер атака! Надо срочно защищаться! Как результат, было принято решение о физическом уничтожении «инфицированных» компьютеров, включая (!) мышки, клавиатуры, принтеры, видеокамеры, и даже телевизоров (на что потрачено $170 тыс долларов), и полной смене IT-инфраструктуры.

Читать дальше →
Всего голосов 107: ↑99 и ↓8+91
Комментарии77

Как попасть в «золотой миллиард» или отрезвляющая статистика

Время на прочтение1 мин
Количество просмотров204K
Рассматривая всевозможные списки Forbes, цены на квартиры в Москве или просто ценник нового Galaxy S4, легко впасть в уныние – кто-то же это все покупает. Причем в легкую, не парясь, не то что я. Проблема в том, что это все навязанная картина мира (не пугайтесь, пафоса в моем топике будет немного).

Существует такое понятие как «золотой миллиард». Это одна седьмая часть населения планеты, потребляющая большую часть ресурсов и обеспеченная базовыми удобствами. То есть еще раз, 6 миллиардов людей на планете живут хуже. Значительно хуже. Для того, чтобы понять, каков порог вхождения в этот «миллиард» можно воспользоваться сайтом статистики Global Rich List. Выбираем валюту, вводим либо годовой доход, либо накопленное состояние, и позиционируем себя на мировом финансовом поле.

Читать дальше →
Всего голосов 186: ↑166 и ↓20+146
Комментарии392

Вышла публичная бета Sublime Text 3

Время на прочтение1 мин
Количество просмотров61K
image

Вышедший сегодня новый билд 3047 стал доступен не только зарегистрированным пользователям, но и всем остальным тоже. Разработчики сообщают, что это самая быстрая, стабильная и лучшая версия Sublime Text на сегодняшний день.

Скачать + Полный список изменений

Если вы переходите на новую версию с Sublime Text 2, то основные изменения в Sublime Text 3 следующие:
  • Скорость. Время старта программы, загрузки файлов и работы функции «Replace All» значительно сократилось. Если у вас OS X и Retina, то вы заметите значительный рост производительности.
  • Индексация символов, для команд Goto Definition и Goto Symbol in Project. Также работает для функций Jump Forward и Jump Back.
  • Улучшенное редактирование HTML, включая автокомплит тэгов и атрибутов, а еще и автоматическое закрытие тэгов.
  • Улучшенная работа с проектами. Теперь можно создавать несколько рабочих областей (workspace) для одного проекта.
  • Богатый API. Плагины лучше изолированы от основного приложения, и в то же время имеют более полный API.
Читать дальше →
Всего голосов 87: ↑78 и ↓9+69
Комментарии86

Изображения: форматы и сжатие (1/3)

Время на прочтение9 мин
Количество просмотров54K
Схематичное изображение PCX, GIF и PNG

На что при загрузке сайта расходуется больше трафика? Чаще всего это картинки, и их суммарный «вес» частенько в несколько раз больше, чем у разметки, скриптов и стилей. В файлах изображений распространенных форматов растровые данные хранятся в сжатом виде, и это значительно лучше, чем несжатый BMP. А если хочется ещё лучше? Ведь в достаточно крупных проектах каждый байт на счету (например, в TradingView, чего уж там скромничать).

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

Но как работают такие программы, что можно улучшить и как сделать свою? Приглашаю на обзорную экскурсию по форматам изображений и алгоритмам сжатия растровых данных.
Читать дальше →
Всего голосов 142: ↑141 и ↓1+140
Комментарии29

Web API с помощью Django REST framework

Время на прочтение4 мин
Количество просмотров158K
Веб-cервис (англ. web service) — идентифицируемая веб-адресом программная система со стандартизированными интерфейсами. Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (XML, JSON и т. д.). Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.

Одним из подходов создания веб сервиса является rest.
Rest (сокр. англ. Representational State Transfer, «передача состояния представления») — стиль построения архитектуры распределенного приложения. Данные в REST должны передаваться в виде небольшого количества стандартных форматов (например HTML, XML, JSON). Сетевой протокол (как и HTTP) должен поддерживать кэширование, не должен зависеть от сетевого слоя, не должен сохранять информацию о состоянии между парами «запрос-ответ». Утверждается, что такой подход обеспечивает масштабируемость системы и позволяет ей эволюционировать с новыми требованиями.

Читать дальше →
Всего голосов 32: ↑25 и ↓7+18
Комментарии8

Sentry — мониторинг ошибок в Django

Время на прочтение2 мин
Количество просмотров45K
Как Вы мониторите ошибки в своем Django проекте?

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

Таким же вариантом пользовались и мы, пока не открыли для себя Sentry.
image
Читать дальше →
Всего голосов 58: ↑53 и ↓5+48
Комментарии24

Настройка Vim для работы с Python и Django

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


Vim — уникальный по своей гибкости редактор, который при должной настройке может едва ли не идеально удовлетворять все пожелания работающего с ним. Правда эта настройка может продолжаться месяцы, а то и годы, что является и достоинством, и недостатком vim’а. Существует множество статей и туториалов по использованию Vim для разработки на Python и Django, надеюсь мне удастся рассказать что-то новое. В своей статье я постараюсь по минимуму упоминать плагины общего назначения, вроде NERDTree или surround.vim и опишу несколько более специализированных расширений и настроек, которые существенно упростили процесс работы на Python.
Читать дальше →
Всего голосов 65: ↑63 и ↓2+61
Комментарии39

Разработка web API

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

Интро


Это краткий перевод основных тезисов из брошюры «Web API Design. Crafting Interfaces that Developers Love» Брайана Маллоя из компании Apigee Labs. Apigee занимается разработкой различных API-сервисов и консталтингом. Кстати, среди клиентов этой компании засветились такие гиганты, как Best Buy, Cisco, Dell и Ebay.

В тексте попадаются комментарии переводчика, они выделены курсивом.

Собираем API-интерфейсы, которые понравятся другим разработчикам


Понятные URL для вызовов API

Первый принцип хорошего REST-дизайна — делать вещи понятно и просто. Начинать стоит с основных URL адресов для ваших вызовов API.

Ваши адреса вызовов должны быть понятными даже без документации. Для этого возьмите себе за правило описывать любую сущность с помощью коротких и ясных базовых URL адресов, содержащих максимум 2 параметра. Вот отличный пример:
/dogs для работы со списком собак
/dogs/12345 для работы с отдельной собакой
Дальше
Всего голосов 235: ↑224 и ↓11+213
Комментарии128

Профилирование JavaScript с Chrome Developer Tools

Время на прочтение7 мин
Количество просмотров67K
Скорость сайта состоит из 2 частей: как быстро загружается страница и как быстро работает код в ней. Многие сервисы, такие как минификаторы или CDN, помогают ускорить загрузку, но скорость работы кода зависит только от вас.

Небольшие изменения в коде могут давать огромные изменения в производительности. Всего несколько строк могут означать разницу между быстрым сайтом и диалогом “Unresponsive Script”.
Читать дальше →
Всего голосов 66: ↑62 и ↓4+58
Комментарии5

Понимаем декораторы в Python'e, шаг за шагом. Шаг 1

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

На Хабре множество раз обсуждалась тема декораторов, однако, на мой взгляд, данная статья (выросшая из одного вопроса на stackoverflow) описывает данную тему наиболее понятно и, что немаловажно, является «пошаговым руководством» по использованию декораторов, позволяющим новичку овладеть этой техникой сразу на достойном уровне.

Итак, что же такое «декоратор»?


Впереди достаточно длинная статья, так что, если кто-то спешит — вот пример того, как работают декораторы:
def makebold(fn):
    def wrapped():
        return "<b>" + fn() + "</b>"
    return wrapped
 
def makeitalic(fn):
    def wrapped():
        return "<i>" + fn() + "</i>"
    return wrapped
 
@makebold
@makeitalic
def hello():
    return "hello habr"
 
print hello() ## выведет <b><i>hello habr</i></b>

Те же из вас, кто готов потратить немного времени, приглашаются прочесть длиииинный пост
Всего голосов 119: ↑106 и ↓13+93
Комментарии39

Мысли об интерфейсе Facebook

Время на прочтение6 мин
Количество просмотров127K
За свою долгую и плодотворную жизнь техногика я видел много пользовательских интефейсов. Очень-очень много, если без лишней скромности. Я общался с компьютерными системами при помощи перфокарт, перфоленты, магнитной ленты, переключателей адресов и данных на панели, печатной машинки, первых алфавитно-цифровых терминалов размером с хороший стол. Я был свидетелем рождения интерактивных компьютерных систем, графических и цветных мониторов, а прогресс, всего за считанные годы, от мотка перфоленты с машинкой «Консул» до Турбо-Си, не переставал меня поражать. В силу бэкграунда, склада ума и профессии, я в состоянии разобраться с любым устройством, понять его логику и возможности даже при отсутствии инструкций, минимуме элементов управления и сложности автомата состояний.

При мне менялись технологии и концепции. Тачскрины, голосовое управление, сенсоры движения, тачпэды, не говоря о всяких мышах — все это органично вписывалось в мой мир взаимодействия с приборами, и на этом пути не было ни особых потрясений, ни революций. Я спокойно и естественно считал себя типичным early adopter. Я был в сетях Fido и Compuserve, писал электронные письма до Эпохи интернета, общался в чатах и конференциях годы до появления ICQ, хранил файлы в «облаке» чуть ли не до рождения некоторых нынешних стартаперов в модной области Cloud. У меня даже несколько лет был собственный блог задолго до сегодняшнего блог-сумасшествия и десятков доступных платформ для блоггинга.

И так далее, и тому подобное.

Все это хвастливое вступление необходимо мне для следующего заявления: я не могу разобраться в Фейсбуке. Нет, я прекрасно понимаю что это такое, зачем существует, куда идет и как монетизируется. Я не разбираюсь в его интерфейсе! Я никогда не знаю что мне покажет Фейсбук в любой конкретный момент времени, не соображаю принцип формирования ленты, не понимаю какие фотографии выберутся для поста с альбомом и какие из них будут показаны на мобильном устройстве. Я не имею понятия «лайкаю» ли я пост, фотографию или альбом. Я чувствую себя тупицей в его настройках, особенно настройках приватности и уведомлений. Я не знаю кто прочтет мои посты, а главное, почему он их прочтет. Я не ведаю что происходит с постами, остающимися глубоко внизу. Я не чувствую логики продукта, несмотря на несколько безуспешных попыток и, в общем-то, достаточно живой аккаунт для фоток детей и кота. Меня не покидает ощущение, что фейсбук писали марсиане.
Читать дальше →
Всего голосов 270: ↑248 и ↓22+226
Комментарии221

Антивирус Бабушкина

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


Молодой студент-третьекурсник из АлтГТУ разработал компьютерную антивирусную программу под названием “Иммунитет”. По словам АП, эту программу сейчас устанавливают в некоторых школах Барнаула. На данный момент продано уже более тысячи копий этого антивируса! В основном ее устанавливают на персональных компьютерах, но уже приобрели несколько школ и компаний краевого центра.
Читать дальше →
Всего голосов 552: ↑474 и ↓78+396
Комментарии1257

Пишем свою ОС: Выпуск 1

Время на прочтение6 мин
Количество просмотров272K
Данный цикл статей посвящён низкоуровневому программированию, то есть архитектуре компьютера, устройству операционных систем, программированию на языке ассемблера и смежным областям. Пока что написанием занимаются два хабраюзера — iley и pehat. Для многих старшеклассников, студентов, да и профессиональных программистов эти темы оказываются весьма сложными при обучении. Существует много литературы и курсов, посвящённых низкоуровневому программированию, но по ним сложно составить полную и всеохватывающую картину. Сложно, прочитав одну-две книги по ассемблеру и операционным системам, хотя бы в общих чертах представить, как же на самом деле работает эта сложная система из железа, кремния и множества программ — компьютер.

Каждый решает проблему обучения по-своему. Кто-то читает много литературы, кто-то старается поскорее перейти к практике и разбираться по ходу дела, кто-то пытается объяснять друзьям всё, что сам изучает. А мы решили совместить эти подходы. Итак, в этом курсе статей мы будем шаг за шагом демонстрировать, как пишется простая операционная система. Статьи будут носить обзорный характер, то есть в них не будет исчерпывающих теоретических сведений, однако мы будем всегда стараться предоставить ссылки на хорошие теоретические материалы и ответить на все возникающие вопросы. Чёткого плана у нас нет, так что многие важные решения будут приниматься по ходу дела, с учётом ваших отзывов.
Читать дальше →
Всего голосов 293: ↑282 и ↓11+271
Комментарии225

Фиксим клиент Last.FM или как получить бесплатное радио

Время на прочтение3 мин
Количество просмотров25K
image
Для начала краткий ликбез:
Last.fm — интернет-проект музыкальной тематики, основным сервисом которого является сбор информации о музыке, которую слушает пользователь, и её каталогизация в индивидуальных и общих чартах. (с) Wikipedia


Давным-давно, когда трава была зеленее, а заинтересованные индивиды IT-сообщества ещё не знали, что такое Instagram — проект Last.FM был в целом бесплатным и давал возможность слушать «радио», составленное из композиций любимых и похожих на них исполнителей без каких-либо ограничений. Затем коммерческая составляющая начала брать свое, бесплатное радио оставили только для некоторых стран, что заставило жителей стран СНГ заниматься поиском прокси либо платить 3$ в месяц за возможность использования сервиса.

Заморачиваться с прокси, понятное дело, никому не хотелось, и пользователи начали искать способы слушать радио бесплатно. Как оказалось, Last.FM фактически не закрыл доступ к возможности бесплатного прослушивания, однако официальным клиентом последней версии это было невыполнимо. Итог: часть аудитории перешла на альтернативные клиенты, часть прекратила обновлять свой старый клиент, а прочие либо заплатили, либо ушли на другие сервисы.

Так в чем же состояло изменение, которое привело к невозможности бесплатного прослушивания радио в новых версиях клиента? Попробуем в этом разобраться.
Читать дальше →
Всего голосов 114: ↑105 и ↓9+96
Комментарии78

Информация

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