Как стать автором
Обновить
10
0
Александр Плесовских @HgeN

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

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

Что нужно знать про арифметику с плавающей запятой

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


В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →
Всего голосов 245: ↑242 и ↓3+239
Комментарии75

Открытый курс машинного обучения. Тема 2: Визуализация данных c Python

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

Второе занятие посвящено визуализации данных в Python. Сначала мы посмотрим на основные методы библиотек Seaborn и Plotly, затем поанализируем знакомый нам по первой статье набор данных по оттоку клиентов телеком-оператора и подглядим в n-мерное пространство с помощью алгоритма t-SNE. Есть и видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


Сейчас статья уже будет существенно длиннее. Готовы? Поехали!

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

Holy Grail на стероидах: тотальная синхронизация и изоморфный JavaScript на Swarm.js

Время на прочтение7 мин
Количество просмотров22K
Сегодня на Хабре мы представляем технологию реплицированной модели, которая позволяет создавать коллаборативные и реалтаймовые веб приложения так же легко, как локальные десктопные. Мы считаем, что при разработке приложений, синхронизация данных в реальном времени должна быть доступна так же, как TCP поток, HTTP запрос или ток из розетки — сразу и без вопросов. HTML5 приложения, написанные на Swarm, в части автономности, локальности и скорости загрузки не уступают нативным.
Используя библиотеку Swarm, за выходные мы делаем больше, чем за месяц делали без Swarm. Что важней — можем делать то, что без неё делать вообще не могли. Эту библиотеку синхронизации мы предлагаем совершенно бесплатно.



Сегодня мы выкладываем TodoMVC++, реактивное HolyGrail-на-стероидах приложение, написанное на Swarm+React. Приведу список демонстрируемых в приложении возможностей:
Читать дальше →
Всего голосов 51: ↑39 и ↓12+27
Комментарии49

12 малоизвестных фактов о CSS

Время на прочтение9 мин
Количество просмотров60K
Предлагаю читателям «Хабрахабра» перевод статьи «12 Little-Known CSS Facts (The Sequel)». Она совсем недавно была упомянута в дайджесте интересных материалов из мира веб-разработки и IT.

Update: немного «шлифанул» перевод напильником. Выражаю благодарность всем неравнодушным читателям.
Внимание! Под катом почти 1.5 Мб картинок и много интересных ссылок.

Итак, начнём-с…

1. В свойстве border-radius можно использовать slash-синтаксис.


Об этом уже писалось 4 года назад, но многие новички и даже некоторые опытные разработчики не знают о существовании этой «фишки».

Верите или нет, но следующий код валиден:

.box {
  border-radius: 35px 25px 30px 20px / 35px 25px 15px 30px;
}

Читать дальше →
Всего голосов 73: ↑71 и ↓2+69
Комментарии21

Шпаргалка по mongodb: e-commerce, миграция, часто применяемые операции и немного о транзакциях

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

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


Не хотелось бы, чтобы пост воспринимался в ключе холиваров на тему SQL vs. NOSQL И так понятно что везде есть свои плюсы и минусы, в данном случае это просто где-то немного справки, где-то немного примеров из того, с чем приходилось сталкиваться. Примеры на mongo shell и на python.


  1. Миграция в на новые версии в mongodb
  2. Запросы сравнения и логические
  3. Полнотекстовый поиск в Mongodb, regexp, индексы и пр.
  4. Атомарные операторы (модифицирующие данные )
  5. Немного о транзакциях в Mongodb
  6. Агрегационный фреймворк и JOIN-ы в Mongodb
  7. Примеры
  8. Небольшая песочница на Python

Читать дальше
Всего голосов 47: ↑42 и ↓5+37
Комментарии14

Платформы iBeacon: готовые решения для создания приложений

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


В предыдущей статье я поделился опытом выбора и заказа iBeacon — небольшого автономного Bluetooth LE маяка, который может быть обнаружен смартфоном. Появляются новые возможности для создания мобильных приложений на базе определения точного (от пары сантиметров до нескольких десятков метров) местонахождения владельца смартфона.

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

Мне захотелось «поиграть» с технологией, и в то же время не ввязываться в разработку. Для этого я решил найти готовые решения, которые позволяют без программирования построить iBeacon-приложения.

Я получил доступ и потестировал несколько платформ, о которых и расскажу в этой статье.

Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии9

Навигация в помещениях с iBeacon и ИНС

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

  Представьте, что перед вами поставили задачу по реализации навигации внутри помещений. Соответственно, GPS/Глонасс и тому подобные системы спутниковой навигации вам недоступны. Что делать? В этой статье мы с вами подробно рассмотрим варианты решения подобных задач в теоретической части, а в практической – реализуем «в железе» indoor-трекер для работы с маячками iBeacon по Bluetooth BLE на NodeJS на базе новейшей платформы Intel Edison, рассмотрим применение трилатерации и фильтра Калмана, библиотеку CylonJS по работе с датчиками на NodeJS.

Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии15

Пишем быстрый и экономный код на JavaScript

Время на прочтение16 мин
Количество просмотров68K
Такой движок JS, как V8 (Chrome, Node) от Google, заточен для быстрого исполнения больших приложений. Если вы во время разработки заботитесь об эффективном использовании памяти и быстродействии, вам необходимо знать кое-что о процессах, проходящих в движке JS браузера.

Что бы там ни было — V8, SpiderMonkey (Firefox), Carakan (Opera), Chakra (IE) или что-то ещё, знание внутренних процессов поможет вам оптимизировать работу ваших приложений. Но не призываю вас оптимизировать движок для одного браузера или движка – не делайте так.

Задайте себе вопрос:
— можно ли что-то в моём коде сделать более эффективным?
— какую оптимизацию проводят популярные движки JS?
— что движок не может компенсировать, и может ли сборка мусора подчистить всё так, как я от неё ожидаю?



Есть много ловушек, связанных с эффективным использованием памяти и быстродействием, и в статье мы изучим некоторые подходы, которые хорошо показали себя в тестах.
Читать дальше →
Всего голосов 78: ↑72 и ↓6+66
Комментарии29

Потрясающая коллекция бесплатных шрифтов за 2014 год

Время на прочтение1 мин
Количество просмотров123K
Привет, Хабр! Многие уже знают о моей страсти к попытке собрать самое лучше, что может быть полезно для веб-разработчиков или веб дизайнеров. И шрифты — не исключение. Программное обеспечение для работы со шрифтами постоянно развивается. Количество дизайнеров желающих опробовать себя в типографике растет с каждый днем. А сегодня я хочу представить вам их наработки — 30 потрясающих бесплатных шрифтов, которые мне удалось собрать за последний год.

Polar



Polar

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

58 признаков хорошего интерфейса

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

1 Один столбец вместо нескольких


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

image
Читать дальше →
Всего голосов 226: ↑182 и ↓44+138
Комментарии102

Классификация видов тестирования

Время на прочтение5 мин
Количество просмотров214K
Учил студентов предмету «Тестирование и отладка программного обеспечения» в ИжГТУ. Структуру курса обучения построил на основе классификации видов тестирования.
Виды тестирования

О ней и будет сей рассказ.
Всего голосов 71: ↑64 и ↓7+57
Комментарии35

Мы проанализировали 20 лэндингов крутых стартапов и вот чему мы научились

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

В нашем проекте мы постоянно меняем основной лендинг или создаем дополнительные лендинги для направлений нашего сервиса. Каждый раз стараемся найти лучший вариант представления нашего продукта. Но что менять, а что оставлять, не всегда понятно с первого взгляда. Поэтому мы перевели статью, в которой препарируются 20 лэндингов известных стартапов.

Это как собрать идеальную девушку из топ моделей или любимых актрис. Только про лэндинги.
Итак, запаситесь чашкой кофе, понеслась.
Читать дальше →
Всего голосов 76: ↑59 и ↓17+42
Комментарии17

Учимся логично делать прототипы

Время на прочтение9 мин
Количество просмотров65K
Зачем вам это?

  • Если вы знаете как делать сайт, этот метод поможет вам убедить заказчика, почему вы предлагаете ему именно этот вариант.
  • Если вы заказываете сайт, то сэкономите от 2 до 10 часов объяснений что вам нужно и зачем.
  • Если вы стартапер, то вся ваша команда сможет участвовать в создании нового сайта или лэндинга. Тот самый случай, когда одна голова хорошо, а команда лучше.
  • Если вы учите стартаперов, то сможете помочь им выглянуть из позиции «я знаю как надо» и без сопротивления подвести их к началам CusDev-a.

Читать дальше →
Всего голосов 58: ↑53 и ↓5+48
Комментарии9

N+1 полезных книг о бизнесе

Время на прочтение9 мин
Количество просмотров229K
В топике блиц-обзор книг, которые будут полезны IT-специалистам, бизнесменам и тем, кто собирается открыть своё дело. Рядом с каждой — короткие пояснения, почему и зачем стоит прочесть.

Отобраны лучшие 10% из примерно 200 прочитанных книг о маркетинге, продажах и всем связанном — самые «пробивные» вещи, которые помогут вам не тратить время на всякий шлак, а сразу начать с главного.

В конце — суммация книг, которые хабровчане рекомендуют в комментариях помимо основного списка.

Читать дальше →
Всего голосов 148: ↑137 и ↓11+126
Комментарии131

Peewee – лёгкая, гибкая и очень быстрая ORM на Python

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

Предлагаю всем джангистам/алхимистам немного отвечься и почитать вольную интерпретацию вводного туториала и частично документации по Peewee – stand-alone ORM, обязательной к ознакомлению любому питонщику и, в особенности, фласкеру. Пишут о ней мало, а зря. С Peewee очень просто подружиться, особенно если вы уже знакомы с какой-нибудь ORM на ActiveRecord. Что более важно – с ней приятно дружить :) Ну, начнём.


Установка
С pip:
pip install peewee


Из репозитория:
git clone https://github.com/coleifer/peewee.git cd peewee python setup.py install


Тесты:
python setup.py test


Есть обвязка для flask:
pip install flask-peewee



Определение моделей или «попахивает джангой»


Весь нижеследующий код можно повторить один к одному в интерактивном интерпретаторе или отдельном скрипте.

from peewee import *

db = SqliteDatabase('people.db')

class Person(Model):
    name = CharField()
    birthday = DateField()
    is_relative = BooleanField()

    class Meta:
        database = db  # модель будет использовать базу данных 'people.db'


Типов полей много, на все случаи жизни. Peewee берёт на себя преобразование питоновских объектов в значения, подходящие для базы данных, и наоборот.
Читать дальше →
Всего голосов 50: ↑48 и ↓2+46
Комментарии46

Верстка для самых маленьких. Верстаем страницу по БЭМу

Время на прочтение14 мин
Количество просмотров387K
Недавно хабраюзер Mirantus написал статью «Как сверстать веб-страницу», в которой рассказывал о том, как же сверстать веб-страничку. В его статье было подробно рассмотрено, как выделить отдельные элементы из заданного шаблона, подобрать шрифты и т.п. Однако его подход к написанию, собственно, веб-страницы мне показался не очень хорошим, о чем я написал в комментариях.

В данной статье я хочу рассказать, о том, как можно сверстать «хорошо» (по крайней мере структурировано ;), а заодно рассказать и о методологии, которая может «упростить жизнь» при верстке. Структура поста будет следующей:

  • BEM
  • Собственно пример — как сверстать страницу

Читать дальше →
Всего голосов 154: ↑133 и ↓21+112
Комментарии172

VoxImplant — облачная платформа для разработчиков коммуникационных сервисов и приложений

Время на прочтение5 мин
Количество просмотров40K
Доброго времени суток, %USERNAME%! Мы хотим поделится со всем сообществом разработчиков отличной новостью — мы (в лице компании Zingaya) запустили облачную платформу для разработчиков коммуникационных сервисов и приложений, благодаря которой вы теперь можете легко добавить поддержку аудио и видео коммуникаций, а также телефонии в свое веб или мобильное приложение. Итак, встречайте VoxImplant!



VoxImplant обладает рядом уникальных особенностей, которые вы не встретите в других коммуникационных платформах. Мы подробнее расскажем о них и о том какие возможности вам предоставляет платформа под катом.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии36

Информация

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