Pull to refresh
15
0
Vladislav Vasiliev @vladec

User

Send message

Python (+numba) быстрее Си — серьёзно?! Часть 1. Теория

Reading time7 min
Views86K

Давно собирался написать статью о numba и о сравнении её быстродействия с си. Статья про хаскелл «Быстрее, чем C++; медленнее, чем PHP» подтолкнула к действию. В комментариях к этой статье упомянули о библиотеке numba и о том, что она магическим образом может приблизить скорость выполнения кода на питоне к скорости на си. В данной статье после небольшого обзора по numba (часть 1) чуть более подробный разбор этой ситуации (часть 2).


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

Американец построил огромного боевого робота в лесу

Level of difficultyEasy
Reading time12 min
Views96K

Задавались ли вы вопросом, насколько сложно превратить что-то, что вы задумали, в реальный продукт? Например, вы удивились ли бы, увидев, как кто-то управляет огромным железным роботом-пауком, способным разворачиваться на месте и послушно шагающим в сторону, в которую его направляет пилот?

Для воплощения своей идеи этот упорный конструктор преодолел множество препятствий: сам придумал механизм, овладел мастерством сварки алюминия, лазерной резки, 3D-печати, создал уменьшенный прототип и построил такого. Его проект выделяется даже среди самых интересных устройств, созданных своими руками, про которые вы читали.

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

Читать далее

Python: коллекции, часть 4/4: Все о выражениях-генераторах, генераторах списков, множеств и словарей

Reading time17 min
Views199K
Часть 1 Часть 2 Часть 3 Часть 4
imageЗаключительная часть моего цикла, посещенного работе с коллекциями. Данная статья самостоятельная, может изучаться и без предварительного изучения предыдущих.

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

imageБудут рассмотрены: выражения-генераторы, генераторы списка, словаря и множества, вложенные генераторы (5 вариантов), работа с enumerate(), range().
А также: классификация и терминология, синтаксис, аналоги в виде циклов и примеры применения.

Я постарался рассмотреть тонкости и нюансы, которые освещаются далеко не во всех книгах и курсах, и, в том числе, отсутствуют в уже опубликованных на Habrahabr статьях на эту тему.

Оглавление:


1. Определения и классификация.
2. Синтаксис.
3. Аналоги в виде цикла for и в виде функций.
4. Выражения-генераторы.
5. Генерация стандартных коллекций.
6. Периодичность и частичный перебор.
7. Вложенные циклы и генераторы.
8. Использование range().
9. Приложение 1. Дополнительные примеры.
10. Приложение 2. Ссылки по теме.
Изучаем детали, иллюстрации и примеры

Библиотеки присоединились к протестам против законов о блокировке сайтов

Reading time1 min
Views64K
По следам habrahabr.ru/post/184468 и опережая rublacklist.net/5847

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

Blackout image

Кто-то может счесть забавным, что объявленные «пиратскими» сайты вышли протестовать против блокировок. Тем не менее:
Тем не менее

Брюс Шнайер: Иллюзия безопасности

Reading time12 min
Views45K
image
Брюс Шнайер не нуждается в представлениях. На Хабрахабре можно найти много статей, касающихся деятельности этого «гуру криптографии». Под катом — текстовая расшифровка видеолекции Брюса Шнайера «The security mirage» («Иллюзия безопасности»).
Эта лекция доступна на YouTube, на Amara её можно посмотреть с субтитрами на 28-ми языках (включая русский). Что же заставило меня отнимать твоё время, хабрачитатель?
Ну и что же там?

То, чего еще никто не писал про Нокиа, Элопа и горящую платформу

Reading time40 min
Views551K
Взявшись за этот пост, автор полностью отдает себе отчет. И в том что «набило оскомину». И что «только ленивый не кинул камень». И про то что «хватит уже, достали». Однако, вдоволь начитавшись доморощенных и не очень аналитиков, автор решил все-таки выразить собственное мнение, которое отличается от того общепринятого, что с некоей мазохистской истомой доселе перепечатывалось здесь и тут различными авторами, интерпретаторами и переводчиками. Вероятно кому-то будет интересно его прочитать.

Традиционно, для тех кто не любит много буков, краткие (более-менее) тезисы:

  • Будучи долгое время лидером на рынке, Нокиа сильно расслабилась и загадила свою внутреннюю инфраструктуру бюрократией, чрезмерным аутсорсингом и огромным количеством бесполезной «менеджерской прослойки».
  • Будучи долгое время лидером, Нокиа просрала потратила много денег на ненужные операционные расходы, поглощения никому не нужных фирм и на невменяемую модель аутсорсинга.
  • Полностью оторвавшись от реальности с уходом Йормы Оллилла, Нокиа, под управлением гениального юриста CEO Олли-Пекки Каласвуо, потратила кучу денег и усилий на создание бесполезной и неконкурентоспособной сервисной инфраструктуры Ovi. В результате этого, помимо денег, Нокиа потеряла уйму полезного времени, которое можно и нужно было потратить на развитие основного бизнеса — телефонов, софта и т.д.
  • Бюрократия и непотопляемая менеджерская прослойка в Нокиа, последовательно мигрировала из одного передового проекта в другой, в составе одних и тех же групп лиц, самореплицируясь в виде кучи формальных дебилопроцессов комитетов и управленческих групп, немного перетасовываемых с учетом специфики. В итоге именно эта бюрократия убила и Symbian, и Ovi, и MeeGo и остальные попытки догнать уходящий поезд своими силами.
  • Борьба с бюрократией и прослойкой в Нокиа зашла в полный тупик.
  • У великого CEO Элопа просто не было другого выхода кроме как прибить всю старую, неповоротливую и прогнившую организацию, путем создания альянса с Майкрософтом и переходом на Windows Phone. Тем самым все старые процессы, компетенции, технологии и самое главное — люди резко стали, что называется, «не в тему». И следовательно тем самым можно было под благовидным предлогом прибить этот табун менеджеров, бесконечно рисующих фэнтезийные роадмапы с единорогами и перекладывающих бумаги с левого края стола на правый.
  • Новая Нокиа, после 2011 года и старая Нокиа до 2011 года – это две РАЗНЫЕ организации. Их объединяет только общее название и операционка S40 для телефонов Asha.
  • Горящая платформа, это не Symbian и не MeeGo. Горящая платформа, это то состояние в которое Нокиа загнали годы расслабленного лидерства и тупоголовые амбиции предыдущего CEO – Олли-Пекки Каласвуо с кликой подкаркивающих вице-президентов.
  • С бюрократией и бизнес процессами, имеющимися на 2010 год, Нокиа не спас бы ни Андроид, ни половина населения Бангалора, пишущих на Qt под MeeGo. Даже если бы Apple бесплатно передал Нокиа iOS и все сервисы, то они бы выродились руками всяких Requirement Managerов в типичные Нокийские дизайн-химеры и в итоге загнулись через какое-то время.
  • То, что сделал великий CEO Элоп – было единственно возможным разумным решением, дающим хоть какие-то шансы на выживание. Вопрос «каким образом он это сделал?», остается открытым, равно как и вопрос «поможет ли это Нокиа?» в итоге. Не следует забывать, что нынешняя Нокиа — это совершенно новая организация, поэтому глупо предполагать, что она разом вернет себе лидерство. Как и всем новым организациям ей придется за это лидерство долго бороться.
  • Без ошибок и побед Нокиа никогда не было бы ни Андроида, ни Айфона. И Google и Apple тщательно проанализировали достоинства и недостатки более старших конкурентов перед тем как шагнуть вперед.

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

Обращение команды Google Code Search

Reading time1 min
Views2K
Предисловие переводчика: собственно, как было сказано мной в этом топике, писать в Google Groups оказалось эффективнее. Команда все-таки ответила. Предоставляю свой наколеночный перевод, прошу тапками не бросать.

Привет, ребята.

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

О бесплатном онлайн-образовании на примере Stanford AI Class

Reading time2 min
Views3K
Не так давно Стенфордский университет организовал бесплатные онлайн-курсы по искуственному интеллекту. Казалось бы, вот оно, счастье — иди ботай! Грамотно провели маркетинг и постарались сделать всё максимально дружелюбным: сами ролики — на YouTube, официальная группа обсуждений — на Reddit, объявления и новости курса в Twitter, обещали даже интеграцию аккаунта с Facebook сделать… И вот уже набралась рекордно большая аудитория — 160 тысяч слушателей (пруф). Это победа, даёшь высшее образование в массы!

Только вот что-то странное происходит с посещаемостью этого курса.
Читать дальше →

30 лет с QNX: Первая ОСРВ поддерживающая многоядерность

Reading time2 min
Views3.2K
Эта история началась в 1997 году. Но, чтобы задать нужную атмосферу, давайте быстро перенесемся в 2010 год и посмотрим снимок загруженности ЦПУ моего компьютера с четырёхядерным процессором:



При рассмотрении этого снимка бросаются в глаза две вещи. Первое, по-видимому у моего компьютера 8 ядер, а не 4. Это потому что каждое яро поддерживает одновременную мультипоточность; т.е. оно может выполнять две задачи одновременно. В результате операционная система видит каждое ядро не как один, а как два процессора.

Второе, каждое ядро показывает краткие, но интенсивные всплески загрузки процессора. Здесь это явление может иметь два объяснения:
Читать дальше →

Мой Boot Camp — куда хочу, туда и ставлю

Reading time4 min
Views90K
Исторически сложилось, что на моем MacBookPro Mid 2010 одновременно стояли три оси: Mountain Lion (10.8.3), Lion (10.7) и Snow Leopard (10.6). Все было бы хорошо, если для MacOS существовали бы 3ds Max и утилитка для создания всевозможных текстур The Compressonator, а старый верный ноутбук Toshiba, который спасал меня в такие ситуации, не ушел на пенсию по состоянию материнской платы. Нужно было создавать раздел Boot Camp, да так, чтобы не полетели остальные системы.

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

Как выкачать исходники Android под Windows

Reading time3 min
Views14K
В недавнем посте о восстановлении работы git-репозитория Android многие жаловались, что пока нет веб-интерфейса доступа к исходникам из Windows тоже нет. Это не так, git под Windows есть и их можно легко забрать. Единственное что не работает без пинка — это repo, который весьма удобен для выкачивания сырцов. Однако пинок требуется минимальный, имя пинку — Cygwin. Этот пост о том, как поставить Cygwin с нуля, какие пакеты выбрать для работоспособности repo и как всё выкачать пользователям Windows. Для понимания поста требуется умение работать с консолью на базовом уровне, понимать что такое приглашение, уметь печатать текст и жать Enter.

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

Айтишник 60 уровня. Что дальше?

Reading time5 min
Views130K
У многих из нас есть родители или родственники, которые находятся в одном шаге от пенсии. Хотя мне еще только немного за 30, я предлагаю вам немного расширить кругозор и, может быть, что-то пересмотреть в своей жизни.



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

Да да, именно вы решили, потому что вы стареете именно потому, что вы этого ожидаете.

А главный бонус в том, что можно увеличить продуктивный период жизни в 2 раза, причем на приличные еще 30 лет(!) и более. Т.е. в 60 лет у вас будет 35-40 лет продуктивной жизни, а здесь я расскажу как эту продуктивность сохранить до 90 лет и более. Интересно?

Внимание! Возрастное ограничение 30+, ваша психика может пострадать.
Читайте пост на свой страх и риск!



Читаем подробный лайфхак.

Расширение Node.js Tools для Visual Studio

Reading time4 min
Views27K
Как бы это странно не звучало, но компания Microsoft официально представила расширение Node.js Tools для Visual Studio!

Node.js Tools для Visual StudioРасширение NTVS предназначено для установки в Visual Studio версии 2012 и 2013. Проект имеет довольно занимательную историю своего появления. Несколько поклонников node.js практически одновременно начали разработку своих собственных расширений на базе проекта PTVS с целью создания расширения Node.js Tools для Visual Studio. В то же самое время команда разработчиков PTVS также выполняла работу по интеграции с node.js, попутно объединяя усилия сторонних разработчиков, что в итоге и привело к формированию сообщества проекта. Основные усилия при создании NTVS были приложены командой PTVS при содействии Барта Рида из Red Gate, разработавшего GUI для npm, и Дмитрия Третьякова из Clickberry, выполнившего работы по усовершенствованию отладчика и исправлению дефектов.
Читать дальше →

Написание парсера с нуля: так ли страшен черт?

Reading time12 min
Views96K
В прошлом топике я рассказывал о том, как мы с другом решили ради развлечения написать свой встраиваемый язык программирования для платформы .NET. У первой версии был серьезный недостаток — парсер был реализован на F# с помощью сторонней библиотеки. Из-за этого требовалась куча зависимостей, парсер работал медленно, а поддержка его была крайне муторным занятием.

Очевидно, что парсер нужно было переписать на C#, но при мысли о написании парсера с нуля вдруг находилась дюжина других срочных дел. Таким образом таск перекидывался и откладывался практически полгода и казался непосильным, а в итоге был сделан за 4 дня. Под катом я расскажу об удобном способе, позволившим реализовать парсер достаточно сложной грамматики без использования сторонних библиотек и не тронуться умом, а также о том, как это позволило улучшить язык LENS.

Но обо всем по порядку.
Читать дальше →

Тьюринговская трясина

Reading time4 min
Views5.9K
Бойтесь Тьюринговской трясины, в которой всё возможно, но ничего конкретного нельзя сделать просто.
Алан Перлис

Что такое Тьюринговская трясина? Это состояние, в котором программа становится столь могущественной, столь обобщенной, что усилия по решению с её помощью какой-либо конкретной задачи равны или превосходят затраты на написание с нуля программы, которая решает только данную задачу.
Читать дальше →

Почему я ненавижу фреймворки

Reading time4 min
Views70K
Я собираюсь сделать Java-веб-приложение (да, это будет Java, по некоторым причинам, которые сейчас озвучивать не хочу). В процессе работы, я оцениваю кучу J2EE portlet-enabled JSR-compliant MVC role-based CMS web service application container фреймворков.

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

Давайте представим, что я решил сделать шкафчик для специй.
Читать дальше →

Что такое скрипты и с чем их едят — Lua & C++

Reading time13 min
Views124K
Добрый день, Хабрахабр!
Решил написать этот топик на тему скриптов

Что нужно знать?


  • С++ на приличном уровне (в уроке будут шаблоны — template)
  • Lua, очень легкий скриптовый язык. Советую этот урок.

Почему писать диалоги игры в .cpp файле было большой ошибкой


Если вы разрабатывали большие проекты (к примеру, масштабные игры), замечали, что с каждой новой сотней строк кода компиляция идет медленней?
В игре создается больше оружия, больше диалогов, больше меню, больше etc.
Одна из самых главных проблем, возникающих в связи с нововведениями — поддерживать бессчетное множество оружия и бейджиков довольно сложное занятие.
В ситуации, когда просьба друга/босса/напарника изменить диалог или добавить новый вид оружия занимает слишком много времени, приходится прибегать к каким-то мерам — например, записи всей этой фигни в отдельные текстовые файлы.
Почти каждый геймдевелопер когда-нибудь делал карту уровней или диалоги в отдельном текстовом файле и потом их считывал. Взять хотя бы простейший вариант — олимпиадные задачи по информатике с файлом ввода

Но есть способ, на голову выше — использование скриптов.

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

I2P: Прозрачный доступ из любого браузера

Reading time2 min
Views377K


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

Но куда уходить людям?

Что бы был доступ к информации, свобода слова и соблюдались хотя бы те правила, которые есть в конституции?

Mesh сети не подходят, Tor — тоже не может обеспечить требуемого, остается I2P.

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

Lock-free структуры данных. Основы: Атомарность и атомарные примитивы

Reading time15 min
Views112K

Построение lock-free структур данных зиждется на двух китах – атомарных операциях и способах упорядочения доступа к памяти. В этой статье речь пойдет об атомарности и атомарных примитивах.

Анонс. Спасибо за теплый прием Начал! Вижу, что тема lock-free интересна хабрасообществу, это меня радует. Я планировал построить цикл по академическому принципу, плавно переходя от основ к алгоритмам, попутно иллюстрируя текст кодом из libcds. Но часть читателей требует зрелищ не мешкая показать, как пользоваться библиотекой, особо не рассусоливая. Я согласен, в этом есть свой резон. В конечном счете, и мне не так интересно, что там внутри boost, — опишите, как его применять! Поэтому свой эпический цикл я разделю на три части: Основы, Внутри и Извне. Каждая статья эпопеи будет относится к одной из частей. В Основах будет рассказываться о низкоуровневых вещах, вплоть до строения современных процессоров; это часть для почемучек вроде меня. Внутри будет освещать интересные алгоритмы и подходы в мире lock-free, — это скорее теория о том, как реализовать lock-free структуру данных, libcds будет неисчерпаемым источником C++ кода. В Извне будут статьи о практике применения libcds, — программные решения, советы и FAQ. Извне будет питаться вашими вопросами/замечаниями/предложениями, дорогие хабражители.

А пока я судорожно готовлю начало Извне, — первая часть Основ. Статья во многом не о C++ (хотя и о нем тоже) и даже не о lock-free (хотя без atomic lock-free алгоритмы неработоспособны), а о реализации атомарных примитивов в современных процессорах и о базовых проблемах, возникающих при использовании таких примитивов.
Атомарность — это первый круг ада низкий уровень из двух.
Читать дальше →

Дерек Сиверс: «Метод интервального повторения — лучший способ изучения языков программирования»

Reading time6 min
Views115K
Краткая справка: в 1998 году Дерек Сиверс основал компанию CD Baby и превратил ее в крупнейшего онлайн-продавца независимой музыки. В 2008-ом вырученные от продажи компании $22 миллиона Дерек передал в благотворительный траст на нужды музыкального образования.
Речи Дерека на TED просмотрели более 5 миллионов раз, а его собственная книга занимала первую строку в чарте книг для предпринимателей на Amazon.
Сам себя Дерек считает «вечным учеником».


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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity