Как стать автором
Обновить
13
0

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

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

Без холивара «переписать все на Go»: проблема переносимости в Python и ее решение

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров17K

На скриптовых языках удобно разрабатывать… И на этом удобство заканчивается. Вне машины разработчика начинаются проблемы. Особенно если вы пишете какой-то прикладной тулинг — cli-утилиты, вспомогательные приложения в вашем SDK и прочее. Вы даже не можете рассчитывать на то, что у пользователя будет pip, чтобы он смог поставить все ваши зависимости, вам все нужно организовать самостоятельно.

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

Если вам покажется, что в чем-то я ошибаюсь, добро пожаловать в комментарии. Буду рад услышать любые альтернативные точки зрения. Кроме, как я уже отметил в заголовке, рекомендации переписать все на Go/Rust/You name it :) Этот холивар мы уже проходили.

Читать далее
Всего голосов 70: ↑70 и ↓0+78
Комментарии34

От потери к вдохновению: история развития стартапа

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.4K

Я хочу рассказать вам нашу историю создания продукта. С одной стороны, наш опыт может вдохновить кого-то, а с другой стороны, возможно, вы найдете наш продукт полезным. Несмотря на то, что это еще одно приложение по здоровью, я, как и, вероятно, каждый учредитель, считаю его уникальным. Но давайте начнем с начала.

Идея создания продукта зародилась после серии смертей друзей. Все эти люди умерли в возрасте чуть за свои 55 лет, не имея серьезных проблем со здоровьем (по крайней мере, ничего такого, о чем они бы знали). Смерть всех была связана с сердечно-сосудистыми заболеваниями. Но то, что эти смерти можно было предотвратить, стало понятно после прочтения книги "9 шагов на пути к вечной жизни", написанной совместно с футурологом Google.

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

Таким образом, начались поиски решений, в том числе различных платформ, мобильных приложений и надежных источников информации. Я была одной из первых пользователей и поддерживала приложение Lifext с самого его появления на хабре. Наверное, как и многие я следила за публикациями Open Longevity и общалась с некоторыми его участниками. А в 2018 году у нас появился первый прототип продукта, который мы использовали сами и предоставляли своей семье. Затем прототип передавался по кругу друзей и знакомых, пока не попал к замечательному врачу. И это стало тем переворотом, с которого и началась разработка продукта. 

Читать далее
Всего голосов 16: ↑13 и ↓3+13
Комментарии9

IT в туризме — миф

Время на прочтение3 мин
Количество просмотров3.1K
Этим постом не претендую на правду в первой инстанции, просто делюсь мыслями. По образованию, духу и бывшей профессии я — программист и всегда считал, что любая работа, любой процесс должен быть автоматизирован донельзя. Также я думал когда занимался открытием собственной турфирмы. Я думал, что уж в моей-то фирме будет самый лучший и самый удобный сайт, у меня будет полнейшая база отелей, актуальные туры в поиске а менеджеры по продажам только и будут делать, что отмечать «птичками» оплаченные заявки.

Все оказалось куда печальнее.

Читать дальше →
Всего голосов 63: ↑55 и ↓8+47
Комментарии126

Samsung Xcover: 100$, ударопрочный, 67 дней автономной работы

Время на прочтение1 мин
Количество просмотров5.9K
Не все падки на дорогие телефоны вроде iPhone или последних коммуникаторов HTC. У некоторых людей приоритеты несколько иные – например, важна высокая надежность, большое время автономной работы и простота в использовании (позвонил, посчитал на калькуляторе).

image

Если вы принадлежите ко второму типу людей, возможно, вы обратите внимание на новую трубку Samsung Xcover E2370. Аппарат совершенно простой, сложно от него ожидать чего-то кроме простых звонков и SMS-ок, его внешняя часть отлично укреплена, а сам телефон имеет сертификат IP54, говорящий об устойчивости устройства к воздействию пыли и влаги. В довершение всего телефон предоставляет внушающие уважение 67 дней работы в режиме ожидания и 22 часа, почти сутки, в режиме непрерывного разговора, так что, в следующей вашей затяжной экспедиции (или очередном бизнес-путешествии) вы не останетесь без связи.

Также нелишним будет сказать, что телефон весит 115 граммов, толщина его составляет 19 миллиметров. Он поддерживает GSM/EDGE, оснащен TFT-дисплеем разрешением 128 x 160 пикселей, Bluetooth, простой камерой, 5 Мб внутренней памяти и поддержкой карт памяти MicroSD (до 2 Гб). Дачникам будет приятно наличие FM-радио. :)

Точная дата релиза пока не сообщается, однако можно предположить, что телефон появится в Европе в следующем месяце и будет стоить порядка 100$.

Источник.
Всего голосов 89: ↑81 и ↓8+73
Комментарии113

Матовый на все сто!

Время на прочтение3 мин
Количество просмотров3.6K
   Здравствуй, %user_name%! Этот обзор посвящен очередному нетбуку от компании ASUS, а именно Eee PC 1001PX. Этот нетбук отличается матовым корпусом, и 9 часами работы от аккумулятора.

image
Читать дальше →
Всего голосов 145: ↑102 и ↓43+59
Комментарии173

Школьники на каникулах

Время на прочтение2 мин
Количество просмотров1.2K
Наблюдали в последнюю неделю флуд по http на один из сайтов камрада, который живет со мной на VPS. Где-то на пару дней неизвестные прекратили свои поползновения. Но буквально вчера начали долбить другой сайт с новой силой. Пришлось покрутить nginx в стороне кэширования всего (ранее кэшировали прозрачно) + apache2 (поубавить аппетиты). Собственно, через несколько часов мы уже и думать забыли, что кто-то на нас нападает. Из кэшей все отдается быстро и непринужденно, apache отдыхает.

И вот буквально с утра камрад, сайт которого и подвергся «атаке», пересылает письмо школьника… (интрига под хабракатом)
Читать дальше →
Всего голосов 65: ↑58 и ↓7+51
Комментарии45

Социальная инженерия и социальные хакеры

Время на прочтение2 мин
Количество просмотров5.9K
image
Издательство: БХВ-Петербург, 2007 г.
Автор: Максим Кузнецов, Игорь Симдянов
Мягкая обложка, 358 стр.
ISBN: 5-94157-929-2
Книга на ozon.ru, books.ru


Все кто когда-то интересовался теорией и практикой взлома (неважно чего) прекрасно знают, самый уязвимый фактор в любой системе — это человек. Если вам интересно как «взломать» человека или просто заставить его действовать в ваших интересах, то эта книга для вас.
Читать дальше →
Всего голосов 45: ↑33 и ↓12+21
Комментарии57

Ниши, друзья мои, только ниши!

Время на прочтение2 мин
Количество просмотров526
Как ни странно, этот топик будет не об архитектурных изысках современных арт-дизайнеров :) Я собираюсь поделиться с вами своими накипевшими мыслями по поводу маркетинга социальных сетей или сообществ.
Небольшая предыстория. У меня есть друзья, которые собираются создавать сайт — социальную сеть для людей-тусовщиков: информация о клубах, диджеях, мероприятиях и проч с естественным современным вебдванольным уклоном. Их фишка заключается в множестве информации, возможности общаться с диджеями и проч соответствующими лицами.
Итак, ближе к телу. Эти люди совершенно не понимают, насколько глупа их идея. Полнейший тухляк. Почему?
Во-первых, нужно понимать основы функционирования социальных сетей, сообществ. Если существует определенная группа людей, заинтересованная чем-то одним или имеющая одни общие характеристики, при условии их собственной заинтересованности (это вообще отдельная тема для разговора) можно организовать их в определенное сообщество. К примеру, сообщество тех же самых тусовщиков на афише.ру или респективе.ру (я не совсем в теме, так что сорри за некоторые неточности, уверен существуют еще какие-нибудь тематические сообщества). Так вот, на данный момент эти сообщества вполне сформировались и сносно функционируют (по крайней мере достаточно живо). Именно поэтому моим друзьям-стартапщикам нужно рассчитывать не на «активную молодежь в возрасте 18-25, имеющих доступ в Интернет», а на переманенную из других сообществ определенную аудиторию (ну кто будет сбегать с насиженного места ради дополнительных фич?) Мало того, именно тогда возникает понимание огромных рисков: все ваши фичи, которые (возможно) позволят перетянуть часть аудитории, могут быть быстро подхвачены гигантами рынка, оставив вас за бортом.
Именно поэтому начинающим стартаперам, на мой взгляд, важно понимать, что существуют всего две возможности: либо найти ранее не существовавшие или неизведанные свойства и признаки, по которым можно создать сообщество (что довольно-таки сложно), либо использовать нишевые стратегии и попытаться перетянуть очень-очень узкий круг людей из уже существующего сообщества (что даже местами еще сложнее, но зато не забывайте о более высоком уровне лояльности!).
Ну а собственно зачем? Зачем я об этом написал? Я надеюсь на определенную дискуссию, принимаю в расчет большую вероятность того, что я не прав, и вообще жду любого мнения или отзыва, например о том, правильно ли я перенес топик в этот блог? :)
Спасибо за внимание :)

UPD Огромная просьба: если Вы знаете о каком-нибудь сообществе людей, интересующихся танцевальными событиями, скиньте, пожалуйста, ссылку. Спасибо )
Всего голосов 8: ↑5 и ↓3+2
Комментарии8

Германия глазами белорусского студента

Время на прочтение3 мин
Количество просмотров5.1K
Тема эмиграции и просто жизни за границей чрезвычайна популярна в последние дни на Хабре: Австралия, Новая Зеландия, Канада, Голландия, так что встречайте ещё один рассказ: Германия!
Публикую по просьбе хабраюзера denim, который сам опубликовать не имеет возможности по причине, которую на Хабре ни в коем случае называть нельзя %) Поэтому плюсики — ему.

Далее повествование от его лица.

Почитав про Канаду, Австралию и Новую Зеландию захотелось поделиться особенностями жизни в более близком зарубежье. На данный момент живу уже более четырех лет в Федеративной Республике Германия, первые культурные шоки и удивления прошли, попытаюсь описать все фактами и уже обдуманными впечатлениями.
дальше
Всего голосов 118: ↑93 и ↓25+68
Комментарии130

«Boost.Asio C++ Network Programming». Глава 1: Приступая к работе с Boost.Asio

Время на прочтение15 мин
Количество просмотров231K
Привет Хабралюди!
Это мой первый пост, поэтому не судите строго. Я хочу начать вольный перевод книги John Torjo «Boost.Asio C++ Network Programming» вот ссылка на нее.

Содержание:


Во-первых разберем что есть Boost.Asio, как его собрать, а так же несколько примеров. Вы узнаете, что Boost.Asio больше, чем сетевая библиотека. Так же вы узнаете о самом важном классе, который находится в самом сердце Boost.Asio — io_service.

Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии13

Variadic templates в C++0x

Время на прочтение20 мин
Количество просмотров74K
Те, кто читал книгу Андрея Александреску «Современное программирование на C++» знают, что существует обширный класс задач (в области метапрограммирования с использованием шаблонов), когда шаблону при инстанцировании необходимо указать переменное (заранее неизвестное) количество аргументов. Типичные примеры таких задач:
— Описание кортежей (tuples)
— Описание типов наподобие вариантов (variants)
— Описание функторов (в этом случае перечень типов аргументов зависит от сигнатуры функции)
— Классификация типов по заранее заданным множествам
— и т. п.

В каждой такой задаче точное количество типов, передаваемых соответствующему шаблону в качестве аргументов, заранее определить сложно. И, вообще говоря, зависит от желания и потребностей того, кто намеревается использовать соответствующий шаблонный класс.
В рамках действующего стандарта С++ сколь-нибудь удобного решения таких задач не существует. Шаблоны могут принимать строго определённое количество параметров и никак иначе. А. Александреску (в упомянутой выше книге) предлагает общее решение, основанное на т. н. «списках типов», в котором типы представлены в виде односвязного списка, реализованного посредством рекурсивных шаблонов. Альтернативным решением (используемом, например, в boost::variant и boost::tuple) является объявление шаблонного класса с большим количеством параметров, которым (всем, кроме первого) присвоено некоторое значение по умолчанию. Оба этих решения являются половинчатыми и не охватывают весь спектр возможных задач. По этому, для устранения недостатков существующих решений и упрощения кода новый стандарт предлагает С++-разработчикам новый вариант объявления шаблонов? «шаблоны с переменным количеством параметров» или, в оригинале, «variadic templates».

Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии17

Обзор систем управления проектами

Время на прочтение3 мин
Количество просмотров166K
Мне пришлось за последние пару дней просмотреть много систем управления проектами и хочется поделиться тем, что я нашел…

Мы искали варианты с хостингом у создателя софта, чтобы не возиться с инсталяцией у себя (поэтому, например, тут нет Redmine в чистом виде).
Мне была важна интеграция с Google calendar и github.

Также хотелось чего то большего чем Bug tracking — еще и управление фичерами, требованиями и т.д.

Прошу прощения за много терминов на английском.

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

UPD: я не претендую на то, что просмотрел все такие сайты. их очень много!!!

краткий обзор возможностей некоторых сайтов для управления проектами
Всего голосов 26: ↑11 и ↓15-4
Комментарии39

Несколько подробностей об std::string

Время на прочтение10 мин
Количество просмотров76K
Недавно заинтересовался реализацией std::string в libstdc++. Не в связи с принятием нового стандарта, а чтобы разобраться. Благо требования к строковму типу почти не изменились.

Основным средством для анализа кода несомненно является метод пристального вглядывания, но чтобы сузить область вглядывывания и сделать процедуру более захватывающей можно реализовать для строки идиому «трассер» подсмотренную в «C++ Templates: The Complete Guide». Трассировка позволяет выявлять подозрительные интересные операции над строками.

Как известно, std::string это псевдоним для
std::basic_string<char>
и нам ничего не мешает определить
std::basic_string<X>
. В X можно определить несколько статических счетчиков и итерировать их в конструкторе, деструкторе и остальных методах. Выполняя разные операции над такой строкой можно будет проследить эффективность применяемых алгоритмов в терминах количества операций.
Кроме того, в g++ для
std::string a(«entrails»); 
выражение
std::cout << reinterpret_cast<char*>(*((void**)(&a))); 

выведет содержимое строки. Т.е. std::string — является, по сути, указателем на char.
Вобщем, эти и другие шокирующие поднобности под катом.
Читать дальше →
Всего голосов 51: ↑42 и ↓9+33
Комментарии23

Рендер Diablo3. Как это работает

Время на прочтение7 мин
Количество просмотров116K
Как устроены графические движки популярных игр с мировым именем? Какие технологии применяют разработчики в самых крупных игровых компаниях? Действительно ли, чтобы сделать красивую игровую графику необходимо применять самые передовые технологии современной 3D графики? На эти вопросы мы попробуем ответить на примере рендер части игры Diablo3, от компании Blizzard Entertainment.
Читать дальше →
Всего голосов 283: ↑276 и ↓7+269
Комментарии130

Пишем эмулятор Gameboy, часть 2

Время на прочтение21 мин
Количество просмотров12K
Здравствуйте!

В предыдущей части данного цикла статей мы рассмотрели процессор и память DMG. Следующий логичный шаг — эмуляция того, как DMG выводит изображение.

Пишем эмулятор Gameboy, часть 1
Пишем эмулятор Gameboy, часть 2
Пишем эмулятор Gameboy, часть 3
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии8

C# 5 — об async/await с начала

Время на прочтение5 мин
Количество просмотров257K
В недавно вышедшей Visual Studio 11 Beta встроена новая и главная фишка будущего C# 5 — асинхронное программирование с помощью async/await. Про нее уже написано достаточно много статей в том, числе на хабре — например, эта серия статей. Однако, я для себя так и не понял в чем суть нового синтаксиса, пока сам не попробовал его в деле. Данная статья — попытка самому структурировать и до конца разобраться с этим достаточно интересным инструментом и поделиться результатами с сообществом, рассказав про него немного иначе. Итак, поехали…
Читать дальше →
Всего голосов 73: ↑70 и ↓3+67
Комментарии62

Интернет и IPTV в коттедж: трудный, но успешный опыт

Время на прочтение6 мин
Количество просмотров45K
Здравствуйте!
Жить в частном доме мечтал давно. Плюсов масса, но в нашем городе коттеджные поселки сильно обделены телефонной связью и, тем более, интернетом. В наше время, без интернета жизнь – не жизнь: ни тебе в L4D с друзьями пострелять, ни фильмы вконтакте посмотреть. 3г модемы отнимают слишком много времени, а обещанный мэром LTE от Yota не ушел дальше новостей на сайтах. Печаль. Есть конечно провайдеры, раздающие интернет по wi-fi, но платить 1000 рублей за каждый Мбит скорости в месяц как-то не комильфо. Поразмыслив, решил самостоятельно организовать себе wi-fi мост, на другом конце которого, должен оказаться доступный обычный проводной интернет с хорошей скоростью.



Установленная анетнна моста на крыше дома моего

Читать дальше →
Всего голосов 60: ↑56 и ↓4+52
Комментарии90

Семь шагов по улучшению безопасности Asteriska

Время на прочтение4 мин
Количество просмотров15K
Если кто-либо из Вас, когда-нибудь задавался вопросом, почему значительно увеличилось количество атак на SIP терминалы, ответ будет прост: «детские шалости». В последние несколько месяцев количество нового программного обеспечения, которое легко атакует Астериск и SIP терминалы, значительно выросло. Существует множество легкодоступных сетевых сканеров, которые обнаруживают SIP устройства и сканируют их на допустимые добавочные номера, а после пытаются подобрать для них пароль.

Теперь Вы можете пошагово и незамедлительно решить большинство проблем, связанных с безопасностью Вашего SIP хоста.

image
Читать дальше →
Всего голосов 14: ↑10 и ↓4+6
Комментарии8

Открытая система управления “умным домом” MajorDoMo

Время на прочтение7 мин
Количество просмотров76K
В этой статье я расскажу об одном проекте, которым занимаюсь уже довольно продолжительное время и который с некоторых пор доступен широкой публике. Речь идёт о системе управления “умным домом” MajorDoMo (Major Domestic Module), являющейся центральным блоком комплекса программно-аппаратных решений, которые я, в силу своих скромных возможностей, внедряю в своём домашнем хозяйстве.

image

Но обо всём по порядку…

Читать дальше →
Всего голосов 120: ↑117 и ↓3+114
Комментарии58

N+2 полезные книги для бизнеса, которые обязательно стоит прочитать

Время на прочтение5 мин
Количество просмотров96K
В прошлом году я делал обзор книг, на которых реально растут люди и реально улучшаются процессы.



Тогда понадобился год, чтобы прочитать в десять раз больше бумаги и сделать выборку, которая оказалась неожиданно полезной многим. Вот результаты ещё одного года — ещё N+2 книги для бизнеса, которые реально помогают.

Читать дальше →
Всего голосов 118: ↑106 и ↓12+94
Комментарии43

Информация

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