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

Компания Edison временно не ведёт блог на Хабре

Сначала показывать

Плавная сортировка

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

Продолжаем погружение в разнообразные кучи.

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

Многие слыхали про эту сортировку, однако мало кто знает как именно она работает. Сегодня увидим, что ничего сложного в ней нет.



Метод изобрёл легендарный Эдсгер Дейкстра. Помимо многочисленных ярчайших достижений в теории алгоритмов, он также является автором такого остроумного высказывания:

«Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации.»

Надеюсь, не будет кощунством, что анимация в статье создана с помощью VBA :-)
Траффик
Всего голосов 22: ↑22 и ↓0+22
Комментарии7

Маск считает, что 12 тысяч спутников не помешают астрономам. Его мнение не согласуется с моделью

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

Учёным потребуется дополнительное программное обеспечение, новые камеры и гораздо больше денег, чтобы справиться с помехами из-за системы Starlink.



Спутники Starlink мешают телескопным наблюдениям в Чили. Похоже, астрономам, придётся приспособиться к более яркому и динамичному небу. Фото от NSF’s National Optical-Infrared Astronomy Research Laboratory/CTIO/AURA/DELVE.

При летних наблюдениях за звёздами в сельской местности вполне привычное зрелище, когда по небу проносятся немногочисленные спутники. Однако в самые ближайшие годы обладатели орлиного зрения будут видеть их уже сотнями. А для профессиональных астрономов исследования уже никогда не будут прежними.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+25
Комментарии142

Переживёт ли Airbnb коронавирус? [спойлер: да]

Время на прочтение7 мин
Количество просмотров6K
Рынок краткосрочной аренды штормит в результате краха туристической отрасли, вызванного коронавирусом. Вернёт ли главный игрок отрасли свои позиции после того как всё закончится?


Что будет с услугой home-sharing после коронавируса? Один из животрепещущих вопросов о судьбах допандемических гигантов, наподобие Airbnb. Эта компания и её конкуренты перекроили рынок туристических услуг, изменив при этом районы и целые города, когда волна перехода на краткосрочную аренду прокатилась по туристическим районам мира. Сейчас же, с замороженным туризмом, впавшими в кому национальными экономиками и нежеланием людей теперь делить общее пространстве с незнакомцами — будущее подобных компаний под очень большим вопросом, Перспективы отрасли самые мрачные.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+17
Комментарии20

Почему будущее не за Python

Время на прочтение6 мин
Количество просмотров34K
Хотя, безусловно, этот язык программирования будет востребован ещё много лет.



Сообществу программистов понадобились десятилетия, чтобы по достоинству оценить Python. С начала 2010-х годов он переживает бум — и в итоге превосходит C++, C#, Java и JavaScript по популярности.

Но до каких пор эта тенденция будет сохраняться? Когда Python в конечном итоге будет заменён другими языками и почему это неизбежно произойдёт?
Читать дальше →
Всего голосов 38: ↑16 и ↓22+3
Комментарии85

[Инфографика] Визуализация пандемий в истории человечества

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


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

Сегодняшняя визуализация обрисовывает в общих чертах некоторые из самых смертоносных пандемий в истории, от чумы Антонина до сегодняшних событий с COVID-19.
Читать дальше →
Всего голосов 45: ↑36 и ↓9+44
Комментарии66

Истории

Сортировка n-нарной пирамидой

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

Сортировку кучей (она же — пирамидальная сортировка) на Хабре уже поминали добрым словом не раз и не два, но это всегда была достаточно общеизвестная информация. Обычную бинарную кучу знают все, но ведь в теории алгоритмов также есть:

n-нарная куча; куча куч, основанная на числах Леонардо; дерамида (гибрид кучи и двоичного дерева поиска); турнирная мини-куча; зеркальная (обратная) куча; слабая куча; юнгова куча; биномиальная куча; и бог весть ещё какие кучи…

И умнейшие представители computer science в разные годы предложили свои алгоритмы сортировки с помощью этих пирамидальных структур. Кому интересно, что у них получилось — для тех начинаем небольшую серию статей, посвящённую вопросам сортировки с помощью этих структур. Мир куч многообразен — надеюсь, вам будет интересно.
Траффик
Всего голосов 18: ↑17 и ↓1+23
Комментарии5

Разбираемся с eSIM (+ интервью с экспертом)

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

Поговорим о eSIM (полное название embeddedSIM — то есть, встроенная SIM) — впаянных в гаджет (в отличие от привычных съёмных «симок») SIM-картах. Разберём, чем они лучше обычных SIM-карт и почему крупные мобильные операторы противодействуют внедрению новой технологии.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+25
Комментарии147

20 библиотек для эффектного iOS-приложения

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


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

Все анимации являются ссылками на свои полноразмерные версии.
Большой траффик - много гиф-анимации
Всего голосов 16: ↑15 и ↓1+21
Комментарии13

15 лучших и крупнейших библиотек иконок

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


В этой статье ознакомимся с 15 лучшими и крупнейшими доступными библиотеками иконок для веб-сайтов. Многие из них предлагают тысячи, а то и миллионы пиктограмм, так что обязательно найдётся именно то, что нужно.

Сразу уточняем: это не 15 самых лучших библиотек, а 15 из лучших. Разумеется, есть и другие, не менее замечательные, о которых я не упомянул или не знаю.
И, нет, это не рейтинг — список маркированный, а не нумерованный.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+22
Комментарии12

Гибридные сортировки

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


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

Но если в алгоритме комбинируются разные методы, то тогда он относится к классу гибридных сортировок.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии2

Сортировка «Американский флаг»

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

Чтобы понять принцип действия этой «многополосной» сортировки проще для начала разобраться на примере флага с тремя полосами. А чтобы легко разобраться с трёхцветным флагом, лучше сначала посмотреть, как это работает на примере двухцветного. А чтобы разобраться с двухцветным...
Траффик
Всего голосов 20: ↑18 и ↓2+28
Комментарии3

Как работает видеокодек. Часть 1. Основы

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

Вторая часть: Принципы работы видеокодека




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

Если рассматривать итоговый цвет как комбинацию т.н. основных цветов (красного, зеленого и синего), в нашей трёхмерной матрице определяем три плоскости: первая для красного цвета, вторая для зеленого и последняя для синего.
3D матрица RGB

Будем называть каждую точку в этой матрице пикселем (элементом изображения). Каждый пиксель содержит информацию об интенсивности (обычно в виде числового значение) каждого цвета. Например, красный пиксель означает, что в нём 0 зеленого цвета, 0 синего и максимум красного. Пиксель розового цвета может быть сформирован с помощью комбинации трех цветов. Используя числовой диапазон от 0 до 255, розовый пиксель определяется как Красный = 255, Зелёный = 192 и Синий = 203.
Всего голосов 58: ↑58 и ↓0+58
Комментарии13

Как работает видеокодек. Часть 2. Что, для чего, как

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

Первая часть: Основы работы с видео и изображениями




Kodek's History

Что? Видеокодек — это часть программного/аппаратного обеспечения, сжимающая и/или распаковывающая цифровое видео.

Для чего? Невзирая на определённые ограничения как по пропускной способности так
и по количеству места для хранения данных, рынок требует всё более качественного видео. Припоминаете, как в прошлом посте мы подсчитали необходимый минимум для 30 кадров в секунду, 24 бита на пиксель, с разрешение 480x240? Получили 82,944 Мбит/с без сжатия. Сжатие — это пока единственный способ вообще передавать HD/FullHD/4K на телевизионные экраны и в Интернет. Как это достигается? Сейчас кратко рассмотрим основные методы.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+45
Комментарии15

Графический интерфейс на Python за 5 минут

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

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

Однако иногда ваша целевая аудитория не сильно подкована технически. Люди не против использовать ваши скрипты на Python до тех пор пока им не нужно смотреть на одну строку кода. В таком случае скриптов командной строки будет недостаточно. В идеале вам нужен графический интерфейс. Цель этого поста использовать только Python.

Библиотеки Python, которые можно использовать для графического интерфейса


По сути, есть 3 большие библиотеки Python для графического интерфейса; Tkinter, wxPython и PyQT. Рассматривая их, я не нашел там ничего из того, что мне нравится в Python. Библиотеки Python, как правило, очень хорошо абстрагируются от супер-технических моментов. Если бы мне нужно было работать с объектно-ориентированным программированием, я мог бы с таким же успехом загрузить Java или .Net.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+22
Комментарии9

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Matlab vs. Julia vs. Python

Время на прочтение9 мин
Количество просмотров14K
Я использовал MATLAB более 25 лет. (А до этого я даже использовал MATRIXx, земля ему пухом.) Это не первый язык, на котором я научился программировать, но это тот язык, с которым я достиг математического совершеннолетия. Знание MATLAB было полезным для моей карьеры.

Тем не менее, невозможно игнорировать рост Python в научных вычислениях. MathWorks должен чувствовать то же самое: они не только добавили возможность вызывать Python напрямую из MATLAB, но и заимствовали некоторые его языковые функции, такие как более агрессивную передачу для компонентов бинарных операторов.

Наступил момент, когда я подверг сомнению мое постоянное использование MATLAB как в исследованиях, так и в преподавании. Тем не менее я столько вложил в материалы, что было трудно найти мотивацию, чтобы научиться чему-то новому.
Читать дальше →
Всего голосов 17: ↑9 и ↓8+9
Комментарии4

Сможет ли Julia побороть Python так же, как Python поборол Java

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

Язык программирования Python прошел большой путь с момента своего появления в 1990-х. Едва ли Гвидо Ван Россум знал, что Python станет одним из самых популярных языков в мире, в то время, когда он его разрабатывал. На сегодняшний день Python является одним из наиболее широко используемых языков программирования на планете и имеет множество различных применений. Будь то приложения корпоративного уровня, машинное обучение, модели искусственного интеллекта или работа в области Data Science, Python активно используется практически во всех процветающих отраслях и областях.

Текущий сценарий для Python


В мире более 8 миллионов разработчиков на Python, которые регулярно используют этот язык для самых разных целей. Благодаря своей гибкости и простой масштабируемости, Python уже стал предпочтительным языком для многих разработчиков. Это стало причиной, по которой Python смог обойти Java, которая долгое время была любимым языком у разработчиков. Но это также может быть связано с естественным процессом старения языка, с которым Java приближается к своему концу. Большинство новых языков предназначены для решения современных задач. Хотя языки, разработанные давно, наиболее эффективны для решения задач своего времени, им становится чрезвычайно трудно оставаться актуальными для меняющихся отраслей и сценариев.
Читать дальше →
Всего голосов 19: ↑8 и ↓110
Комментарии48

Ещё пять идей, как прокачать свое мастерство фронтенд-разработчика (декабрь 2019)

Время на прочтение2 мин
Количество просмотров7.5K
Цель публикации — подкуинуть несколько идей, что можно повторить, чтобы повысить свое мастерство front-end разработчика. Это просто идеи, без исходников и туториалов, что немного усложняет задачу, но прививает более самостоятельный подход к обучению.

Предыдущий полный список идей: Front-end додзё: проекты для тренировки навыков разработчика (5 новых + 43 старых)

1.Динамическое меню


Посмотрите, как это круто, когда кликаешь в меню и контент уменьшается.

image

motrix.app

Чему научитесь:

  • CSS переходы и анимации.
  • Как изменить компоновку и содержимое.
  • Как гармонично использовать HTML и JavaScript, чтобы добавить интерактивность на ваш сайт.
Читать дальше →
Всего голосов 6: ↑5 и ↓1+9
Комментарии4

52 датасета для тренировочных проектов

Время на прочтение5 мин
Количество просмотров123K
  1. Mall Customers Dataset — данные посетителей магазина: id, пол, возраст, доход, рейтинг трат. (Вариант применения: Customer Segmentation Project with Machine Learning)
  2. Iris Dataset — датасет для новичков, содержащий размеры чашелистиков и лепестков для различных цветков.
  3. MNIST Dataset — датасет рукописных цифр. 60 000 тренировочных изображений и 10 000 тестовых изображений.
  4. The Boston Housing Dataset — популярный датасет для распознавания паттернов. Содержит информацию о домах в Бостоне: количество квартир, стоимость аренды, индекс преступлений.
  5. Fake News Detection Dataset — содержит 7796 записей с разметкой новостей: правда или ложь. (Вариант применения с исходником на Python: Fake News Detection Python Project )
  6. Wine quality dataset — содержит информацию о вине: 4898 записей с 14 параметрами.

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

[Анимация] Технобренды захватывают мир

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

Создать мировой бренд, устойчивый и конкурентный — нетривиальная задача.

Деятельность IT-концернов приводит к переосмыслению самого понятия «конкурентное преимущество». Оперативно реагируя на запросы потребителей и используя мощь бренда, эти компании непрерывно создают масштабируемые решения возникающих вызовов.

На анимации ниже показаны наиболее ценные бренды в 2019 году по сравнению с 2001 годом, согласно ежегодному рейтингу «Лучшие мировые бренды». Это иллюстрирует как технологические компании сумели нарастить масштаб до мирового уровня за относительно короткий период, оттеснив традиционных мастодонтов бизнеса на второй план.
Читать дальше →
Всего голосов 5: ↑3 и ↓2+3
Комментарии10

14 open-source проектов для прокачки Data Science мастерства (easy, normal, hard)

Время на прочтение7 мин
Количество просмотров37K
Data Science для начинающих

1. Sentiment Analysis (Анализ настроений через текст)


image

Посмотрите полную реализацию проекта Data Science с использованием исходного кода — Sentiment Analysis Project в R.

Sentiment Analysis — это анализ слов для определения настроений и мнений, которые могут быть положительными или отрицательными. Это тип классификации, при котором классы могут быть двоичными (положительными и отрицательными) или множественными (счастливыми, злыми, грустными, противными ...). Мы реализуем этот Data Science проект на языке R и будем использовать набор данных в пакете «janeaustenR». Мы будем использовать словари общего назначения, такие как AFINN, bing и loughran, выполнять внутреннее соединение, и в конце мы создадим облако слов, чтобы отобразить результат.

Язык: R
Набор данных/Пакет: janeaustenR
Читать дальше →
Всего голосов 11: ↑10 и ↓1+15
Комментарии5