Как стать автором
Поиск
Написать публикацию
Обновить
12
0

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

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

Вещи, о которых следует помнить, программируя на Python

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

Дзэн Питона



Изучение культуры, которая окружает язык, приближает вас на шаг к лучшим программистам. Если вы всё еще не прочли «Zen of Python», то откройте интерпретатор Python и введите import this. Для каждого элемента в списке вы найдете пример здесь

Однажды моё внимание привлекло:
Читать дальше →

Жизнь без объектов

Время на прочтение5 мин
Количество просмотров21K
(Перевод)

Последние несколько лет я провел в изучении и экспериментах со многими языками программирования. В частности, я начал использовать Scala как основной язык, стараюсь использовать функциональный стиль везде где это возможно. Меня также весьма заинтересовал Haskell (чистый функциональный язык) и Clojure (современный диалект Лиспа).

Таким образом, я постепенно отказываюсь от объектно-ориентированной парадигмы, несмотря на то, что использовал в основном её последние 17 лет моей профессиональной деятельности. У меня появляется чувство, что объекты это то, что мешает нам писать лапидарный, структурированный и повторно используемый код.
Читать дальше →

Публикация приложения в Android маркеты

Время на прочтение7 мин
Количество просмотров141K
Хорошо это или плохо, но для Android-приложений существует большое количество различных рынков продаж. С одной стороны приходится публиковать в нескольких, с другой — охват обеспечивается более широкий. Когда я задумался о том, что пора бы задействовать альтернативные маркеты для своего приложения, то толковой информации не нашёл. Сразу хочу предупредить, что программа предназначена для узкой русскоязычной аудитории, абсолютно ничем не примечательна, является по сути обычным rss-ридером для моего сайта халявы. Т.е. для многих этот опыт не будет показателен. Также я не использовал никаких средств для раскрутки своего приложения(реклама, обзоры, накрутка).
Читать дальше →

Еще один коптер: часть первая, описание и выбор деталей

Время на прочтение5 мин
Количество просмотров47K
Итак, наверное многие из вас хотели бы иметь летающую игрушку на радиоуправлении. Самой простой в управлении (на мой субъективный и неопытный взгляд) является квадракоптер. Кроме того квадракоптер открывает большие возможности для программирования — есть платы управления на основе ардуино, можно подключать датчики (GPS, барометр, сонар, цифровой компас, понятное дело гироскопы).

Множество постов призывает вас сделать это. Я расскажу как я собрал и облетал (буквально вчера) свой первый в жизни квадракоптер. С какими проблемами столкнулся и как их решил. Что важно я хотел бы написать данный рассказ именно с позиции новичка в радиоуправляемой авиации.

Статья является частью цикла:
1. Часть первая, описание и выбор деталей
2. Часть вторая, сбор рамы


коптер на картинке не мой
Читать дальше →

9facts: разбор полетов

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

В середине марта мы, фактически, закрыли наш стартап 9facts.com, о котором я писал на Хабрахабре в декабре. И вот к маю я таки созрел на написание этого поста.

Начну с самого важного:
Читать дальше →

История нашего игрового стартапа или «Что делать???»

Время на прочтение7 мин
Количество просмотров7.2K
Всем привет. В этой статье я поделюсь с вами нашим опытом создания игродельничесского стартапа в Санкт-Петербурге.

Итак, началось все это 2 года назад, весной 2010 года.

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

Был взят за шкирку мой друг (Dartius) (также — программист-универсал) и было решено начать.

Как раз в тот момент я насмотрелся видеозаписей с КРИ / Флэшгамма и понял, что рынок социалок — это шанс. Было решено делать что-то социальное.
Читать дальше →

Упражнения по взлому Linux-систем

Время на прочтение2 мин
Количество просмотров16K
Для тех, кто интересуется вопросами безопасности и уязвимостями Linux, создан обучающий проект exploit-exercises.com с подборкой виртуальных Linux-машин, описаниями уязвимостей, документацией и практическими заданиями.

1. Виртуальная машина Nebula
торрент-файл
прямая ссылка

Самые общие уязвимости, связанные с эскалацией привилегий в Linux: это SUID-файлы, разрешения, состояние гонки (race conditions), метапеременные оболочки, уязвимости $PATH, уязвимости скриптовых языков, ошибки компиляции бинарных файлов.
Читать дальше →

Квадрокоптер за 1 день и $120

Время на прочтение8 мин
Количество просмотров350K
Создать квадрокоптер как платформу для летающего робота я планирую уже очень давно. Первые расчеты и заказ деталей я сделал год еще назад. Однако, делать «просто коптер» чтобы полетать, управляя с пультом или даже в FPV режиме конечной задачей не является. Поэтому коптер должен быть максимально гибким и как можно менее дорогим.
По отдельности все детали для коптера есть, но их сопряжение — дело простое только в теории. Нужно быть и программистом и инженером и моделистом — вертолетчиком. Поэтому процесс движется довольно небыстро. А летать хочется :) Ничто так не расхолаживает и не демотивирует как отсутствие видимых результатов, особенно когда прогресс-то вроде есть, но не наглядный. Да и экспериментировать сразу на большом квадракоптере дорого и опасно.
Поэтому я решил собрать для экспериментов миникоптер. Как всегда — задача сделать недорого, просто и гибко.
Мой результат — готовый коптер за 1 день (на сборку и запуск) и $120 (стоимость квадрокоптера включая доставку). А с аппаратурой — $145.
MiniQuadroCopter
«MiniQuadroCopter»
Под катом описание и видео.
Buddy-коды для заказа на HobbyKing
Строим недорогой квадрокоптер

Трикоптер (Квадрокоптер своими руками: Часть II.2)

Время на прочтение6 мин
Количество просмотров108K
Я конечно помню что обещал написать третью часть про полеты по GPS и прочие плюшки, но так случилось что всё лето провел с сыном, паяльником и Arduino IDE, а не в поле с коптером, поэтому сейчас мой вольный перевод статьи шведа Девида Виндэстоля (David Windestål, надеюсь правильно написал) о постройке трикоптера — пепелаца с тремя моторами и поворотным механизмом для компенсации вращения и управления поворотом. (большая просьба не ходить без особой надобности на сайт оригинала, так как он и без хабра часто падает, а так же под катом очень много картинок)
Читать дальше →

Пусть утро станет добрым или Sleep as Android

Время на прочтение4 мин
Количество просмотров158K
Доброго времени суток!
Как известно, утро добрым не бывает, но аудитория хабрахабра знает, что сон можно обхитрить, и проснуться полным сил для нового дня. Выделю три группы высыпающихся людей, кто-то просто много спит, другие правильно готовятся ко сну, третьи пользуются хитрыми будильниками. С недавних пор, я переехал из разряда не высыпающихся в группы пользователей будильников с фазами сна. На переезд было затрачено минимум усилий, потребовалась лишь бесплатная программа для моего android смартфона.

Upd. Владельцы iOS и Windows Phone 7.5 не остались забытыми.
Читать дальше →

Структура Radix Tree для сжатия данных

Время на прочтение7 мин
Количество просмотров16K
Этот топик повествует об использовании Radix Tree на практическом примере. Radix Tree или дерево остатков — это структура данных, формируемая по принципу хранение значений в листовом узле. Промежуточные узлы представляют собой элемент конечного значения. Это может быть бит для чисел, символ для строк или цифра для номера, как в примере ниже. Приведенный алгоритм сжатия с использованием Radix Tree используется в реальной embeded системе, для хранения параметров телефонного файрвола.
Читать дальше →

Python threading или GIL нам почти не помеха

Время на прочтение7 мин
Количество просмотров25K
Наверное всем, кто хоть раз интересовался Python, известно про GIL — его одновременно и сильное и слабое место.
Не мешая однопоточным скриптам работать, он ставит изрядные палки в колеса при многопоточной работе на CPU-bound задачах (когда потоки выполняются, а не висят попеременно в ожидании I/O и т.п.).
Подробности хорошо описаны в переводе двухгодичной давности. Побороть GIL в официальной сборке Python для настоящего распараллеливания потоков мы не можем, но можно пойти другим путем — запретить системе перебрасывать потоки Python между ядрами. В общем пост из серии, «если не нужно, но очень хочется» :)
Если вы знаете про processor/cpu affinity, пользовались ctypes и pywin32, то ничего нового не будет.
Читать дальше →

Модуль Mock: макеты-пустышки в тестировании

Время на прочтение6 мин
Количество просмотров123K
Mock на английском значит «имитация», «подделка». Модуль с таким названием помогает сильно упростить тесты модулей на Питоне.

Принцип его работы простой: если нужно тестировать функцию, то всё, что не относится к ней самой (например, чтение с диска или из сети), можно подменить макетами-пустышками. При этом тестируемые функции не нужно адаптировать для тестов: Mock подменяет объекты в других модулях, даже если код не принимает их в виде параметров. То есть, тестировать можно вообще без адаптации под тесты.

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

Российские надувные макеты ракетных и радарных установок

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

std::stringstream и форматирование строк

Время на прочтение3 мин
Количество просмотров251K
Ввод и вывод информации — критически важная задача, без выполнения которой любая программа становится бесполезной. В C++ для решения данной задачи традиционно применяются потоки ввода-вывода, которые реализованы в стандартной библиотеке IOStream.

Плюсами такого подхода являются:
— универсальность: не важно, с чем связан поток, — ввод-вывод с консоли, файла, сокета, процесса происходит одинаково;
— прозрачность: программисту не нужно явно указывать тип вводимого или выводимого объекта;
— расширяемость: программист может добавить поддержку ввода-вывода в поток для любого своего объекта, просто перегрузив соответствующие операторы.

В библиотеке IOStream есть также класс stringstream, который позволяет связать поток ввода-вывода со строкой в памяти. Всё, что выводится в такой поток, добавляется в конец строки; всё, что считыватся из потока — извлекается из начала строки.

Он позволяет делать весьма забавные вещи, например, осуществлять преобразование типов:

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

Хуки — это просто

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


Хуки — это технология перехвата вызовов функций в чужих процессах. Хуки, как и любая достаточно мощная технология, могут быть использованы как в благих целях (снифферы, аудио\видеограбберы, расширения функционала закрытого ПО, логирование, багфиксинг) так и со злым умыслом (трояны, кряки, кейлоггеры). О хуках уже не раз писали и на Хабре и не на Хабре. Но вот в чём беда — почему-то каждая статья о хуках буквально со второго абзаца начинает рассказывать о «таблице виртуальных функций», «архитектуре памяти» и предлагает к изучению огромные блоки ассемблерного кода. Известно, что каждая формула в тексте снижает количество читателей вдвое, а уж такие вещи — так и вовсе вчетверо. Поэтому нужна статья, которая расскажет о хуках просто. Под катом нет ассемблера, нет сложных терминов и буквально два десятка строк очень простого кода на С++. Если вы давно хотели изучить хуки, но не знали с чего начать — начните с этой статьи.
Читать дальше →

Пользовательские литералы в C++11

Время на прочтение5 мин
Количество просмотров42K
Более полугода прошло с момента принятия стандарта C++11. В сети можно найти много материалов посвященных новому стандарту, однако большинство из них касаются самых простых возможностей, самых сладких. Я говорю о лямбда-функциях, системе автоматического выведения типов, новых спецификаторах, умных указателях и т.д. Да, это действительно интересные вещи и, можно смело сказать, они одни из самых полезных и часто используемых. Но на них свет клином не сошелся, и новенький C++11 предлагает нам не только их.

Ниже я хочу рассказать о пользовательских литералах — весьма полезном средстве, хоть и не в повседневных целях.
Читать дальше →
12 ...
13

Информация

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