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

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

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

Гаджеты для сна от Sleepace: умная лампа, трекер Xiaomi и наушники-маска

Время на прочтение7 мин
Количество просмотров23K
Пару дней назад в подборке к 8 марта в блоге одной из компаний появилось упоминание трекера SleepDot, и некоторых внимательных юзеров оно могло ввести в заблуждение, потому что составлено было с фактическими ошибками. SleepDot, о котором шла речь, — переиздание трекера Sleepace, компании, которая создает гаджеты и аксессуары для сна.

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



Ассортимент, однако, куда шире. Тех, кто интересуется данной темой, мы приглашаем в нашу небольшую подборку.
Всего голосов 22: ↑20 и ↓2+18
Комментарии12

[в закладки] Инструменты для тестирования JavaScript-проектов

Время на прочтение17 мин
Количество просмотров42K
Автор материала, перевод которого мы публикуем сегодня, сотрудник Welldone Software, говорит, что если в двух словах рассказать об инструментах для тестирования JavaScript-проектов, то для модульного и интеграционного тестирования рекомендуется использовать Jest, а для тестов пользовательского интерфейса — TestCafe. Однако каждый конкретный проект может нуждаться в чём-то особенном. Лучший способ найти именно то, что нужно — взять несколько инструментов, которые, как кажется, подойдут, и испытать их в действии. Эксперименты подскажут — на чём именно стоит остановиться.



Представляем вашему вниманию обзор наиболее широко используемых инструментов тестирования для JS-проектов, на которые стоит обратить внимание в 2018-м году.
Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии8

Трёхмерная графика с нуля. Часть 2: растеризация

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


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

К сожалению, эта простота имеет свою цену: низкую производительность. Несмотря на то, что существует множество способов оптимизации и параллелизации трассировщиков лучей, они всё равно остаются слишком затратными с точки зрения вычислений для выполнения в реальном времени; и хотя оборудование продолжает развиваться и становится быстрее с каждым годом, в некоторых областях применения необходимы красивые, но в сотни раз быстрее создаваемые изображения уже сегодня. Из всех этих областей применения самыми требовательными являются игры: мы ожидаем рендеринга отличной картинки с частотой не менее 60 кадров в секунду. Трассировщики лучей просто с этим не справятся.

Тогда как это удаётся играм?

Ответ заключается в использовании совершенно иного семейства алгоритмов, которое мы исследуем во второй части статьи. В отличие от трассировки лучей, которая получалась из простых геометрических моделей формирования изображений в человеческом глазе или в камере, сейчас мы будем начинать с другого конца — зададимся вопросом, что мы можем отрисовать на экране, и как отрисовать это как можно быстрее. В результате мы получим совершенно другие алгоритмы, которые создают примерно похожие результаты.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии2

Как правильно оформить Open Source проект

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

В свободное и не свободное время[1] я развиваю несколько своих проектов на github, а также, по мере сил, участвую в жизни интересных для меня, как программиста, проектах.


Недавно один из коллег попросил консультацию: как выложить разработанную им библиотеку на github. Библиотека никак не связана с бизнес-логикой приложения компании, по сути это адаптер к некоему API, реализующему определённый стандарт. Помогая ему, я понял что вещи, интуитивно понятные и давно очевидные для меня, в этой области, совершенно неизвестны человеку делающему это впервые и далёкому от Open Source.


Я провел небольшое исследование и обнаружил что большинство публикаций по этой теме на habrahabr освещают тему участия (contributing), либо просто мотивируют каким-нибудь образом примкнуть к Open Source, но не дают исчерпывающей инструкции как правильно оформить свой проект. В целом в рунете, если верить Яндекс, тема освещена со стороны мотивации, этикета контрибуции и основ пользования github. Но не с точки зрения конкретных шагов, которые следует предпринять.


Так что из себя представляет стильный, модный, молодёжный Open Source проект в 201* году?

Читать дальше →
Всего голосов 89: ↑84 и ↓5+79
Комментарии135

Cравнение российских операторов предоставляющих облачные услуги

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

Я долго ждал и просил автора исследования 2014 года повторить его. Не дождался, несмотря на регулярные просьбы. Видимо, представляя какой титанический труд предстоит, автор эту идею откладывал.  Но так совпало, что не только мне, но и моей знакомой для ее компании потребовались облачные услуги, и она предложила мне свою помощь по сбору информации. Так родилась шальная идея повторить статью. Возражений у автора предыдущего обзора не было, поэтому мы принялись за дело, взяв за основу его методику подсчета
В этот раз в обзор вошли 36 компаний, а совместная работа по сбору и анализу информации затянулась аж на 5 месяцев. Конфигурацию мы взяли, опираясь на предыдущее сравнение  с поправкой на требования компании моей знакомой.

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

Введение в криптографию и шифрование, часть вторая. Лекция в Яндексе

Время на прочтение21 мин
Количество просмотров38K
Мы возвращаемся к самому краткому введению в криптографическую теорию от Владимира ivlad Иванова. Это вторая половина лекции — первую часть мы опубликовали несколько дней назад. К ней даже можно присылать пуллреквесты на гитхабе.


Под катом — расшифровка и часть слайдов.

Всего голосов 55: ↑52 и ↓3+49
Комментарии11

Введение в криптографию и шифрование, часть первая. Лекция в Яндексе

Время на прочтение20 мин
Количество просмотров240K
Чтобы сходу понимать материалы об инфраструктуре открытых ключей, сетевой безопасности и HTTPS, нужно знать основы криптографической теории. Один из самых быстрых способов изучить их — посмотреть или прочитать лекцию Владимира ivlad Иванова. Владимир — известный специалист по сетям и системам их защиты. Он долгое время работал в Яндексе, был одним из руководителей нашего департамента эксплуатации.


Мы впервые публикуем эту лекцию вместе с расшифровкой. Начнём с первой части. Под катом вы найдёте текст и часть слайдов.

Всего голосов 96: ↑92 и ↓4+88
Комментарии29

Просто Angular

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

Введение


8-9-го декабря 2016 года была проведена первая конференция по Angular в Бельгии. Игор Минар (ведущий разработчик Angular) выступил в качестве основного докладчика с несколькими интересными объявлениями относительно того, по какому графику будет выпускаться Angular. И представьте себе, в марте 2017 года нас ждет релиз Angular 4. При этом, на данный момент уже опубликована бета-версия.


От переводчиков


Всем привет, с вами Максим Иванов и Дмитрий Сергиенков, и сегодня мы выясним куда делась третья версия, и почему мы по-прежнему можем быть верны Angular. Сейчас начинающему фронтенд-разработчику, изучающему JavaScript, довольно трудно определиться: какой же фреймворк или библиотеку им взять и изучить, оставаясь в тренде? Конечно, без слова React, сейчас не обходится ни один разговор на тему фронтенда, однако, в свое время я начал с первой версии Angular, начитался много руководств по написанию фронтенда на ES6 (с классами и прочим добром) и до сих пор не жалею. Да, вы можете писать корпоративные приложения с использованием только jQuery, но по мере развития и сложности проекта вы начнете закапывать себя в спагетти-коде, смешивая логику и представление, MV*-фреймворки же этого сделать вам не дадут.

Всего голосов 36: ↑35 и ↓1+34
Комментарии43

Specification By Example – BDD для прагматиков

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

На Хабре довольно много упоминаний о BDD. К сожалению, статьи, которые я читал, так и не дали мне ответа на вопрос «а зачем мне все это нужно?» Ответ пришел с неожиданной стороны. Когда я всерьез занялся вопросом автоматизации приемочного тестирования, мне под руку попалась книга Gojko Adzic (не уверен в транскрипции, поэтому не стал переводить имя автора) Specification By Example.
Читая ее, я не уставал удивляться: каждая новая глава описывала шишки, которые я набивал на своем личном опыте, и предлагала решения аналогичные или лучшие, чем те, к которым я приходил сам методом проб и ошибок.

Эта статья – первая в цикле «BDD для прагматиков». В ней описаны ключевые элементы наиболее эффективного, на мой взгляд, процесса разработки коммерческого ПО в современных условиях. Два продолжения будут посвящены работе со SpecFlow и автоматизации приемочного тестирования.
Часть первая - живая документация
Всего голосов 34: ↑31 и ↓3+28
Комментарии32

Как мы попробовали DDD, CQRS и Event Sourcing и какие выводы сделали

Время на прочтение9 мин
Количество просмотров75K
Вот уже около трех лет я использую в работе принципы Spec By Example, Domain Driven Design и CQRS. За это время накопился опыт практического применения этих практик на платформе .NET. В статье я хочу поделиться нашим опытом и выводами, которые могут быть полезными командам, желающим использовать эти подходы в разработке.

Факты, цифры, код
Всего голосов 39: ↑39 и ↓0+39
Комментарии45

+500 бесплатных инструментов для запуска вашего стартапа в 2017 году

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


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

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

Итак, мы нашли в интернете бесплатные и условно-бесплатные инструменты для роста вашего бизнеса. Когда они дадут вам желаемый результат, вы можете оформить платную подписку.
Читать дальше →
Всего голосов 74: ↑60 и ↓14+46
Комментарии26

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

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

Проблема хронической усталости близка каждому. Сегодняшняя статья по книге «Вечно уставший» Джейкоба Тейтельбаума посвящена нарушениям сна и способам их исправления.

Почему сон важен


Ежедневные восемь часов ночного сна — один из самых эффективных способов повысить жизненный тонус.

Сегодня среднее время сна — 6 часов 45 минут, а ста годами ранее это были 9 часов. Наши предки ложились спать с заходом солнца и просыпались с рассветом, поэтому иногда их сон достигал 11 часов.

Сегодня проспать 8 часов это уже большая редкость — электричество, интернет и телевидение делают свое дело.
Читать дальше →
Всего голосов 27: ↑21 и ↓6+15
Комментарии71

О сравнении объектов по значению — 4, или Inheritance & Equality operators

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

В предыдущей публикации мы получили вариант реализации сравнения объектов по значению для платформы .NET, на примере класса Person, включающий:


  • перекрытие методов Object.GetHashCode(), Object.Equals(Object);
  • реализацию интерфейса IEquatable (Of T);
  • реализацию Type-specific статических метода Equals(Person, Person) и операторов ==(Person, Person), !=(Person, Person).

Каждый из способов сравнения для любой одной и той же пары объектов возвращает один и тот же результат:


Пример кода
Person p1 = new Person("John", "Smith", new DateTime(1990, 1, 1));
Person p2 = new Person("John", "Smith", new DateTime(1990, 1, 1));
//Person p2 = new Person("Robert", "Smith", new DateTime(1991, 1, 1));

object o1 = p1;
object o2 = p2;

bool isSamePerson;

isSamePerson = o1.Equals(o2);
isSamePerson = p1.Equals(p2);
isSamePerson = object.Equals(o1, o2);
isSamePerson = Person.Equals(p1, p2);
isSamePerson = p1 == p2;
isSamePerson = !(p1 == p2);

При этом, каждый из способов сравнения является коммутативным:
x.Equals(y) возвращает тот же результат, что и y.Equals(x), и т.д.


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


Однако, требует раскрытия вопрос:


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

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

Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность

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

Дмитрий Калугин-Балашов (Mail.RU)


Доклад у меня по базам данных In-Memory NoSQL. Кто знает, что такое In-Memory NoSQL база данных? Поднимите руки, пожалуйста… Как вам не стыдно? Зал по базам данных, и только половина знает, что это такое.

Если вы выбираете базу данных, ориентируясь на ее популярность, то так делать не надо. Как, вообще, выбираем базы данных?


Читать дальше →
Всего голосов 50: ↑44 и ↓6+38
Комментарии27

Обходим детектирование виртуальной машины программами в VMWare

Время на прочтение3 мин
Количество просмотров135K
Разработчики вирусного ПО и просто разработчики, не желающие, чтобы их программу пытались реверсить, на этапе запуска или установки проводят проверки на виртуальную машину, и в случае её обнаружения отказываются работать, а то и вовсе самоликвидируются. Под катом описан способ, как можно попробовать решить эту проблему.
Читать дальше →
Всего голосов 58: ↑53 и ↓5+48
Комментарии28

Верстка: отображаем пользовательский контент

Время на прочтение8 мин
Количество просмотров33K
Под пользовательским контентом в этой статье мы понимаем любой текст на странице, автором которого является пользователь. Чаще всего это комментарии, пользовательские записи «на стене» в микроблоге, информация «о себе» в профиле и все в таком роде. Задача не то чтобы очень сложная, но требует внимательности и хорошего понимания основ верстки. В этой статье сделана попытка собрать воедино то наиболее важное, что нужно знать о верстке, включающей пользовательский текст.


Читать дальше →
Всего голосов 57: ↑53 и ↓4+49
Комментарии18

«Жёсткий тайм-менеджмент». Рассказываем о книге Дэна Кеннеди

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


Что нужно делать, чтобы взять свою жизнь и бизнес под контроль? Пойти на радикальные меры и освоить жесткий тайм-менеджмент.

Рассказываем об основных идеях из книги Дэна Кеннеди «Жёсткий тайм-менеджмент».
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии10

Интерполяция замкнутых кривых

Время на прочтение8 мин
Количество просмотров17K
Всем привет! Недавно возникла практическая необходимость использовать интерполяцию для замкнутых кривых. Проект разрабатывался под .Net на C#, а готовых реализаций алгоритма я не обнаружил, впрочем, как и для других языков и технологий. В результате пришлось самому изучить мат.часть существующих методов и написать свою библиотеку. Наработками и готовым решением готов поделиться с вами.


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

E-Commerce в Европе — 2016

Время на прочтение1 мин
Количество просмотров7.3K
В сегодняшнем выпуске предлагаем вниманию читателей Geektimes новую инфографику, посвященную индустрии e-commerce в Европе. Далее вы найдете некоторые цифры и факты о предпочтениях европейцев, доле интернет-активного населения в различных странах Европы, наиболее популярных каналах онлайн-продвижения, а также каким образом и через какие устройства любят платить европейцы и что они покупают.

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

Человек, препарировавший собственный мозг

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

Стивен Китинг [Steven Keating] любит делать всё сам. Когда ему не дали доступ к данным по его опухоли, он придумал, как взломать систему




Стивен Китинг привык не бояться сложных задач. Он студент в MIT Media Lab, специализируется на 3Д-печати и синтетической биологии и описывает себя, как «редкостного ботаника». Подростком он увлекался запуском высотных зондов и изготовлением катушек Теслы, а теперь хакерский подход к делу помог спасти его жизнь.

В 2014 году ему поставили диагноз – опухоль мозга размером с теннисный мяч и рекомендовали немедленно назначить операцию. Он пытался подобрать лучшего хирурга и обнаружил, что быстрее всего распространить результаты сканирования мозга и медицинские данные получится, если он будет делать это сам. Он уже сделал простейший сайт, чтобы можно было поделиться своими данными с родственниками и друзьями; теперь же он начал отправлять эту информацию и докторам. У него должны были отрезать довольно большую часть мозга, и он решил, что у него будет больше шансов сохранить разум, если он сам возьмёт на себя ответственность за свои собственные данные.
Читать дальше →
Всего голосов 53: ↑43 и ↓10+33
Комментарии138

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность