Pull to refresh
0
0
Konstantin N @vkn

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

Send message

Шкура неубитого единорога: юридические разборки со стартапом-миллиардером Cruise

Reading time5 min
Views11K
Пока Гэвин Белсон (глава компании «Hooli») отсуживал у Ричарда Хендрикса («Пегий Дудочник») права на алгоритм по сжатию, в реальном мире пилили единорога с искусственным интеллектом.

image

Недавно американское издание Business Insider опубликовало новость, что сделка по покупке американским автомобильным гигантом General Motors компании Cruise Automation Inc. (Delaware C Corporation), стартапа, занимающегося разработкой автомобиля с функцией самоуправления (с оценкой 1 миллиард долларов) может быть приостановлена из-за конфликта основателей стартапа с Jeremy Guillory, претендующим на долю в компании. Последний считает, что он является сооснователем и партнером компании Cruise. Отметим, намеченная сделка — одна из самых дорогих в области высоких технологий 2016 года и самая крупная в истории Y Combinator — компании-венчурного кредитора Cruise.

Как следует из иска компании Cruise Automation Inc. в Верховный суд Калифорнии, данные притязании основаны на том, что более 2 лет назад основатель и CEO компании Kyle Vogt обсуждал в переписке по электронной почте с Jeremy Guillory возможные варианты сотрудничества в разработке концепта самоуправляемого автомобиля. При этом меньше чем через месяц после начала переписки Guillory отказался от дальнейшего информационного обмена. После этого Guillory еще пару раз давал о себе знать, направляя поздравления главе Cruise в значимые для компании даты. Никаких притязаний на компанию, упоминаний о доле в компании, возможных партнерских отношениях или партнерского статуса в компании в таких сообщениях Guillory не демонстрировал.

Исходя из текста опубликованной статьи и искового заявления, между сторонами не оформлялись какие-либо документы, имеющие юридическую силу, однако, в силу специфики местного законодательства, уже самого факта наличия переговоров о заключении сделки может быть достаточно, чтобы заявить о своем имущественном праве. Кроме того, в заявке на финансирование, отправленной в Y Combinator (именно эта компания была первым венчурным финансистом в Cruiser) для привлечения финансирования, значилось имя Jeremy Guillory, хотя на момент предоставления денежных средств он уже не имел никакого отношения к Cruiser.

В настоящий момент Kyle Vogt подал иск в суд от своего имени и от имени компании о признании того, что господин Guillory не имеет права на долю в Cruiser, не является партнером основателей, не имеет партнерских прав и права использовать интеллектуальную собственность компании.

Мы попросили нашего постоянного юридического консультанта Владислава Лурье, управляющего партнера фирмы FMF Legal, прокомментировать данную историю. Ниже — его оценка.
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments7

Низкий FPS при прокрутке страницы. Решение проблемы background-attachment: fixed

Reading time2 min
Views41K
Решил я тут недавно на одном из своих сайтов сделать легкий редизайн. И дошло дело до фона. Показался он мне каким-то скучным. Захотелось его немного «оживить». Подобрал подходящую картинку небольшого размера, загнал ее в свойство фона:

body{
	background: url("../images/bg.jpg") no-repeat center center / cover fixed;
}


и довольный нажал F5. Красота, да и только!

Начал скроллить страничку вниз и чувствую, что-то не то…


Такое чувство, как будто я играю в Crysis на очень старом компьютере. Почему же на сайте начались «тормоза» и прокрутка проходит рывками?

Я начал свое расследование…
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments33

Как можно зарабатывать на Wi-Fi в общественных местах (если вы не платите, то вы — товар)

Reading time7 min
Views42K

Карта расположения Wi-Fi устройств в реальном времени показывает точки наибольшего интереса посетителей выставки

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

Сейчас Wi-Fi получил новые фичи для следующих мест:
  • Музеев (технология заменяет гидов).
  • Спортобъектов от 5–8 тысяч зрителей.
  • Выставок (теплокарты как на картинке выше, навигация).
  • Торговых центров (навигация и реклама).
  • Транспортных узлов (сервис в аэропортах вроде авторегистрации на рейс).
  • Складов (поиск товара).
  • Туристических объектов (открытый Wi-Fi и аналитика).

Ниже — подробнее о том, как, почему и зачем. И где вы покупатель, где вы товар.
Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments5

Асинхронные операции и пересоздание Activity в Android

Reading time11 min
Views16K
В одной статье на хабре (274635) было продемонстрировано любопытное решение для передачи объекта из onSaveInstanceState в onRestoreInstanceState без сериализации. Там используется метод writeStrongBinder(IBInder) класса android.os.Parcel.

Такое решение корректно функционирует до тех пор, пока Android не выгрузит ваше приложение. А он вправе это сделать.
…system may safely kill its process to reclaim memory for other foreground or visible processes…
(http://developer.android.com/intl/ru/reference/android/app/Activity.html)

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments1

Расширяемый код Android-приложений с MVP

Reading time7 min
Views51K
От переводчика: — я давненько интересуюсь тем, как сделать код Android-приложений чище, и это, наверное, первая статья, после которой у меня не возникло мыслей: "Зачем вот это вот все?" и "Он вообще пробовал когда-то это использовать в жизни?" Поэтому решил перевести, может, еще кому-то будет полезно.

Написать Hello World всегда легко. Код выглядит просто и прямолинейно, и кажется, что SDK очень адаптирована под ваши нужды. Но если у вас есть опыт написания более сложных Android-приложений, вы знаете, что с рабочим кодом все не так. Можно провести часы за попыткой понять, почему ваша корзина покупок не обновляется после изменения ориентации телефона, если недоступен WiFi. Вы предполагаете, что решением проблемы, возможно, будет добавить ещё один if в 457-строчном методе onCreate() вашей активити — где-то между тем кодом, который исправляет падение на самсунгах с Android 4.1 на борту, и тем, который показывает купон на 5$ в день рождения пользователя. Что ж, есть способ получше.

Мы в Remind (прим. пер. — название компании, где работает автор) выкатываем новые функции каждые две недели, и для того чтобы поддерживать эту скорость и высокое качество продукта, нужен способ сохранять код простым, поддерживаемым, разделённым (прим. пер. — "decoupled", в смысле слабой связанности) и тестируемым. Использование архитектурного паттерна MVP позволяет нам делать это и сосредоточиваться на самой значимой части нашего кода — нашей бизнес-логике.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments9

Разработка быстрых мобильных приложений на Android. Часть вторая

Reading time14 min
Views32K
В Edison мы часто сталкиваемся с оптимизацией мобильных приложений и хотим поделиться материалом, который считаем крайне полезным, если вы решаете одну из двух задач: а) хотите чтобы приложение меньше тормозило; б) хотите сделать красивый, мягкий и гладкий интерфейс для массового пользователя.

Предлагаем вашему вниманию первую часть перевода статьи Udi Cohen, которую мы использовали как пособие для обучения молодых коллег оптимизации под Android.

(Читать первую часть)


Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments5

Разработка быстрых мобильных приложений на Android. Часть первая

Reading time8 min
Views39K
В Edison мы часто сталкиваемся с оптимизацией мобильных приложений и хотим поделиться материалом, который считаем крайне полезным, если вы решаете одну из двух задач: а) хотите чтобы приложение меньше тормозило; б) хотите сделать красивый, мягкий и гладкий интерфейс для массового пользователя.
Предлагаем вашему вниманию первую часть перевода статьи Udi Cohen, которую мы использовали как пособие для обучения молодых коллег оптимизации под Android.



Несколько недель назад я выступил на Droidcon в Нью-Йорке с докладом об оптимизации производительности Android.

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

Мои основные правила, которым я следую при работе с оптимизацией:
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments2

Tracert vs Traceroute

Reading time5 min
Views261K
В чем отличие маршрута пакета от его пути?
Стандартный механизм маршрутизации пакетов в интернете — per hop behavior — то есть каждый узел в сети принимает решение куда ему отправить пакет на основе информации, полученной от протоколов динамической маршрутизации и статически указанных администраторами маршрутов.

Маршрут — это интерфейс, в который нам надо послать пакет для достижения какого то узла назначения и адрес следующего маршрутизатора (next-hop):
R1#sh ip rou | i 40.  
	 40.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
O        40.0.0.0/31 [110/3] via 20.0.0.0, 00:01:54, FastEthernet0/0
O        40.1.1.1/32 [110/4] via 20.0.0.0, 00:00:05, FastEthernet0/0

Что такое путь? Путь — это список узлов, через которые прошел (пройдет) пакет:
 1  10.0.0.1  16.616 ms  16.270 ms  15.929 ms
 2  20.0.0.0  15.678 ms  15.157 ms  15.071 ms
 3  30.0.0.1  26.423 ms  26.081 ms  26.744 ms
 4  40.0.0.0  48.979 ms  48.674 ms  48.384 ms
 5  100.0.0.2  58.707 ms  58.773 ms  58.536 ms

Путь пакета можно посмотреть с помощью утилит tracert в OC Windows и traceroute в GNU/Linux и Unix-подобных системах. (другие команды, типа tracepath мы не рассматриваем).
Многие считают что этих утилит один и тот же принцип работы, но это не так. Давайте разберемся.
Читать дальше →
Total votes 83: ↑78 and ↓5+73
Comments63

Сказ царя Салтана о потенциале лапласиана

Reading time9 min
Views44K
«Три девицы под окном пряли поздно вечерком.»

image

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

«Какой-то странный конкурс», — беспокоились девицы. И это было правдой. По правилам конкурса вес лайка участника зависел от того, сколько лайков он получает от других. Что это значит, — никто из девиц до конца не понимал.
«Как все сложно», — тосковали девушки и подбадривали себя песней «Кабы я была царицей».

Вскоре «в светлицу вошел царь — стороны той государь» (показан на рисунке). «Во все время разговора...», — ну понятно в общем.
«Собираем лайки нежности — формируем матрицу смежности», — бодро срифмовал он.
Девицы-красавицы с именами Алена, Варвара и Софья засмущались, но лайки (из балалайки) передали.

Вот что там было:
  • Алена получила 1 лайк от Софьи и 2 лайка от Варвары.
  • Варвара получила по лайку от Алены и Софьи.
  • А Софья получила 2 лайка от Алены и 1 от Варвары.

Царь взял лайки, покрутил гайки, постучал по колесам, пошмыгал носом, причмокнул губами, поскрипел зубами, сгонял в палаты и объявил результаты.

Наибольший вес лайков (7 баллов) получила Софья, но титул «мисс Салтан» достался Алене (15 баллов).

Подробнее о матрице лайков
Для матрицы


вектор потенциалов равен (5, 4, 7), а вектор потоков — (15, 12, 14).

После объявления результатов девицы бросились обратились к царю с просьбой рассказать,- откуда взялись эти странные цифры?
Действительно - откуда?
Total votes 67: ↑65 and ↓2+63
Comments34

Тайны кнопок в Android. Часть 1: Основы верстки

Reading time18 min
Views234K
Приветствую, уважаемое сообщество.

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

Первая часть предназначена для начинающих разработчиков. Я покажу, как сделать достаточно сложную кнопку исключительно версткой, не применяя Java-кода, ни тем более собственных компонентов. Знание этих приемов верстки пригодится и при работе с другими компонентами Android. По ходу статьи я буду подробно пояснять, что означают те или иные константы, атрибуты, команды и тому подобное. Но я также буду давать ссылки на официальную документацию Google, где вы можете подробно изучить каждую тему. Данная статья обзорная, я не ставлю цели привести здесь всю документацию, переведенную на русский язык. Поэтому я рекомендую изучать официальные источники, в частности те статьи, ссылки на которые я привожу здесь.

Читать дальше →
Total votes 63: ↑49 and ↓14+35
Comments23

Arduino DIY Watch — самодельные часы на Arduino

Reading time13 min
Views55K


После нескольких лет знакомства с Arduino захотелось сделать что-то действительно интересное и полезное. Было решено сделать наручные часы. Но не просто часы, а действительно компактные, удобные, внешне не очень страшные и самое главное с длительным временем автономной работы часы.
И так встречайте самодельные часы на Arduino или DIY Arduino Watch!
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments89

Протокол Handlersocket в деталях

Reading time9 min
Views15K
Всем здрасьте. Решил опубликовать русскую версию своей же статьи «HandlerSocket protocol explained», опубликованной по адресу http://wk-photo.ru/en/events/view/handlersocket-protocol-explained/.

image

Итак, вы шли-шли и пришли к HandlerSocket. Чистый мёд. Это дьявольски быстрый вуду. А используемый протокол реально простой, как две копейки. Ну и если уж начистоту, кому важны детали протокола, если все равно будет использоваться какая-то библиотека, которая обо всем позаботится? Если, несмотря ни на что, вы все-таки хотите знать, что за неонка там внутре, можете нагуглить эту страницу. Несколько часов — и вы эксперт. Ну или вы хотите все и за 15 минут. Тогда добро поржаловать под кат!

Читать дальше →
Total votes 26: ↑16 and ↓10+6
Comments2

Пишем прошивку для Arduino на С++ с REST управлением через последовательный порт и экранчиком

Reading time6 min
Views25K
image

Это второй пост про Wi-Fi роботанк. В нем будет написано как не надо делать прошивки, если вы суровый программист микроконтроллеров и как можно сделать, если нужна максимальная наглядность и возможность рулить прошивкой почти как веб-приложением прямо с терминала.

То есть, например, отправив в последовательный порт что-то типа
/battery?act=status
получим в ответ что-то типа
{ "status": "OK", "minValue": 600, "maxValue": 900, "value":750, "percent": 50 }

Для тех, кому лень читать статью, сразу ссылка на github и Яндекс-диск, у кого гитхаб залочен (спасибо MaximChistov).

Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments13

Подборка: Более 70 источников по машинному обучению для начинающих

Reading time5 min
Views103K


Индикатор кулачкового аналогового компьютера / Wiki

В нашем блоге мы уже рассказывали о разработке системы квантовой связи и о том, как из простых студентов готовят продвинутых программистов. Сегодня мы решили вернуться к теме машинного обучения и привести адаптированную (источник) подборку полезных материалов.
Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments16

Компактная ОС для ARM процессоров

Reading time5 min
Views38K
“Кажется, что совершенство достигается не тогда, когда нечего более добавить, а тогда, когда нечего больше убрать."

(Антуан де Сент-Экзюпери)

image


По теме изучения программирования встроенных систем, ОС реального времени, Ассемблера и С позвольте представить очень простую операционную систему StartOS.

Предназначение:

— если вам необходимо создать устройство, начинающее работать через 1-2 секунды после включения питания и способное реагировать на сигналы из внешнего мира в течение микросекунд;
— для быстрого создания систем управления объектами с выводом данных в Интернет;
— отработка идей, алгоритмов, изготовлении прототипов устройств;
— приобретение опыта программирования встроенных систем на языках C и Assembler;
— получение полного доступа к «железу» компьютерного устройства, например, для разработки самомодифицирующихся программ.

Некоторые свойства системы:

Время готовности после включения питания: < 1 сек
Объем двоичного кода программы: < 40 kB
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments40

Ускорение Python-скриптов без приложения умственных усилий

Reading time3 min
Views26K
Одно из распространенных применений Python — небольшие скрипты для обработки данных (например, каких-нибудь логов). Мне часто приходилось заниматься такими задачами, скрипты обычно были написаны наспех. Вкупе с моим слабым знанием алгоритмов это приводило к тому, что код получался далеко не оптимальным. Это меня ничуть ни расстраивало: лишняя минута выполнения не сделает погоды.

Ситуация немного изменилась, когда объем данных для обработки вырос. И после того, как время выполнения очередного скрипта перевалило за сутки, я решил уделить немного времени оптимизации — все-таки хотелось бы получить результат до того, как он потеряет актуальность. В рамках этой статьи я не планирую говорить о профилировании, а затрону тему компиляции Python-кода. При этом обозначу условие: варианты оптимизации не должны быть требовательными к времени разработчика, а, напротив, быть дружественными к «пыщ-пыщ и в продакшен».
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments2

STM32: SPI: LCD — Вы всё делаете не так [восклицательный знак]

Reading time8 min
Views85K
Надеюсь сообщество простит меня за такой заголовок, просто в последнее время все чаще и чаще сталкиваюсь с программами в которых к микроконтроллерам STM32 подключают различные дисплеи с интерфейсом SPI и очень часто передачу данных при этом делают не правильно.
Как следствие — либо код не работает совсем и тогда в него внедряют различные задержки, или пишут код таким образом что он гарантированно будет работать медленно (по сравнению с возможной скоростью). А кто то, не разобравшись просто копирует чужой «с костылями» код, и потом такие «произведения» ходят по интернету из примера в пример…
Блок SPI описанный в данной статье точно есть у контроллеров семейств: STM32F1, STM32F2, STM32F4. По другим смотрите Reference Manual.

Откуда растут такие проблемы и каким образом они решаются под катом.
Читать дальше →
Total votes 50: ↑45 and ↓5+40
Comments44

Шифрование фотографий в Google Диск

Reading time10 min
Views69K
Нужно зашифровать важные фотографии и другие документы, поместить их в облако в зашифрованном виде и синхронизировать с другим Android-устройством? Вам кажется, что все это довольно сложно, а работать с зашифрованными данными будет неудобно. Это не так. В этой статье будет показано, как реализовать данный сценарий всего за две минуты.



Читать дальше →
Total votes 26: ↑15 and ↓11+4
Comments1

Information

Rating
Does not participate
Location
Ян де нова о-ва
Registered
Activity