Habrahabr лучшее

Лучшие публикации за последние 24 часа
Подписка на Лента Habrahabr лучшее Habrahabr лучшее
На Build 2018 мы анонсировали Visual Studio IntelliCode: набор AI-инструментов, которые способствуют более качественной разработке. В сотрудничестве с командой IntelliCode мы рады сообщить, что теперь IntelliCode доступен пользователям TypeScript/JavaScript через расширение IntelliCode для VS Code.

Читать дальше →
6 декабря The Sun сообщили о трагическом происшествии в Малайзии. Шестнадцатилетний школьник Мухаммед Захарин был найден дома мертвым, в его ушах были наушники, подключенные к смартфону. По результатам вскрытия, подросток скончался от электротравмы. Прочитав эту новость, многие пользователи приняли её за фейк, хотя известно, что даже в текущем году — это уже не первый случай такого рода. Под катом подробнее о трагедии, похожих случаях и том, как это могло произойти.


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



Мир вошёл в эпоху “умных вещей”, что породило интерес к технологическим стартапам, который только растёт год от года. На КС они бьют рекорды по сборам, даже несмотря на то, что достойно выполнить свои обязательства удаётся далеко не всем. За десяток с хвостиком лет попыток работы в роли волшебника воплощающего задумки клиентов и вдыхающего в них жизнь мною накоплено много опыта. Безжалостная статистика говорит о том, что 9 из 10 стартапов терпят фиаско, в моей практике это соотношение менее драматично, но возможно потому, что стараюсь не принимать участие в проектах, изначально имеющих большие шансы на провал.

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

О чём пойдёт речь под катом Не стоит отливать ТЗ в граните.

Сколько денег необходимо для запуска технологического стартапа?
Начинать проверку вашей идеи стоит ещё до начала разработки.
Стратегическая канва — отличный инструмент для проверки конкурентоспособности.
Создание пространства, свободного от конкуренции на реальном примере.
Изучение ближайших аналогов — хорошая практика.
Подбор ключевых компонентов и оценка себестоимости.
Как создать Голубой Океан


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

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

Часть I
Часть II
Часть III
Часть IV
Часть V


На Хабре уже была опубликована статья, посвящённая RAM-машине.
Вообще, статья про RAM-машину есть на Википедии.

RAM-машина, которая упоминается в книге «Построение и анализ вычислительных алгоритмов» -авторы: Ахо, Хопкрофт, Ульман — имеет ограниченный набор арифметических команд, у нас же из арифметических команд будут только «сложение» и «вычитание». Кроме арифметических доступны также команды ввода-вывода, косвенной адресации и команды ветвления.

Отличием LIttle Man Computer'а (который я описывал в предыдущих частях цикла) от RAM-машины является механизм, обеспечивающий косвенную адресацию (возможность работать с числом, хранящемся в памяти, как с адресом).

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


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

Недавно я кинул клич в фейсбучике и в группе «Суровый технарь» с запросом подсказать, какие есть системы спасения на больших скоростях и на низких высотах. Вот что удалось накопать по этому вопросу. Разброс большой — от фантастики до космических систем, посмотрим, что из этого можно извлечь полезного.

Следуя подсказкам ТРИЗа, нужно посмотреть, что уже сделали в смежных областях.
Читать дальше →
В данной статье хотел бы написать о своем опыте создания загрузчика для STM32 с шифрованием прошивки. Я являюсь индивидуальным разработчиком, поэтому нижеприведенный код может не соответствовать каким-либо корпоративным стандартам

В процессе работы ставились следующие задачи:

  • Обеспечить обновление прошивки пользователем устройства с SD-карты.
  • Обеспечить контроль целостности прошивки и исключить запись некорректной прошивки в память контроллера.
  • Обеспечить шифрование прошивки для исключения клонирования устройства.

Код писался в Keil uVision с использованием библиотек stdperiph, fatFS и tinyAES. Подопытным микроконтроллером был STM32F103VET6, но код может быть легко адаптирован под другой контроллер STM. Контроль целостности обеспечивается алгоритмом CRC32, контрольная сумма расположена в последних 4 байтах файла с прошивкой.

В статье не описано создание проекта, подключение библиотек, инициализация периферии и прочие тривиальные этапы.
Читать дальше →
Если вы уже успели недовольно поцокать языком, читая новости о законодательных инициативах в Австралии, то время вернуться в родные края, где на рассмотрение выдвинуты новые правки в законодательстве, которые наконец помогут помогут понять, что о власти высказывать в интернете можно, а что нельзя…
Читать дальше →
За все время своего существования люди приложили колоссальное количество усилий, чтобы изучить практически всю площадь звездного неба. На сегодняшний день мы рассмотрели сотни тысяч астероидов, комет, туманностей и звезд, галактик и планет. Чтобы увидеть всю эту красоту самостоятельно, не обязательно выходить из дома и покупать себе телескоп. Можно установить на компьютер Stellarium — виртуальный планетарий, и посмотреть на ночное небо, с комфортом лежа на диване… Но с комфортом ли? Чтобы выяснить ответ на этот вопрос, проверим Stellarium на наличие ошибок в компьютерном коде.


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

Всем привет! Меня зовут Анатолий Панов, я работаю в ИТ уже больше 15 лет. За это время прошел путь от разработчика до руководителя тимлидов. Работал в таких компаниях как Badoo, Lazada. С начала этого года я в Авито. Руковожу разработкой новых проектов и разработкой для вертикалей Авто и Недвижимость.


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


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


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


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


Веб-фреймворк Django подробно документирован на официальном сайте: там и теория, и справочная информация, и руководства для новичков. Однако, несмотря на качество, далеко не всем новичкам эта документация приходится по душе. Что ж, у вас есть два пути. Первый — записаться на обучающие курсы. Второй — в очередной раз заглянуть на полки интернет-магазинов. Этим мы сегодня с командой GeekBrains и займёмся.
Читать дальше →
Вчера, во вторник приблизительно в 22.00 по Москве Microsoft выкатил патчи от новых уязвимостей, тем самым дав старт ежемесячной гонке между администраторами по безопасности и злоумышленниками. Пока первые проверяют, не уронит ли установка обновлений критичные бизнес-сервера в синий экран, вторые дизассемблируют код обновленных библиотек и пытаются создать рабочие эксплойты для пока еще уязвимых систем.

Для любителей подробностей – короткая справка по новым уязвимостям под катом.


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


Привет, Хабр. В этой статье я расскажу о простом устройстве для демонстрации акустической левитации из доступных компонентов. В статье много фотографий и ссылка на видео с экспериментами.
Читать дальше →
История Кремниевой Долины — сага о том, как технологии развивались и меняли мир. Она началась шестьдесят лет назад, когда трава была зеленее, Луна ближе, а компьютеры занимали полкомнаты. Побеждали в гонке технологий те, кто не боялся рисковать, чувствовал рынок и лучше всех управлялся с винчестером. Да, мы опять про хранение данных. Нам с каждым годом нужно архивировать и обрабатывать всё больше терабайт информации. Облачные хранилища, домашние и корпоративные СХД, хостинги — всем нужны объёмные и надёжные накопители. Подробности — под катом
Если вы занимаетесь выращиванием больших баз данных и вдруг упираетесь в потолок производительности — пришло время расширяться. Со scale-out расширением понятно: серверы добавляете и горя не знаете. Со scale-up все не так весело. Согласно стандартной glueless-архитектуре, мы берем два процессора, потом добавляем к ним еще два… так доходим до восьми и все. Больше Intel не предусмотрел, копите на новый сервер.



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

Совсем недавно прошёл Heisenbug 2018 Moscow. Под одной крышей собрались не только тестировщики, но ещё и программисты, специалисты по автоматическому и нагрузочному тестированию, менеджеры команд и все остальные, для кого тестирование является важнейшей частью жизни. Этот пост — фотоотчёт, в котором мы еще раз оглянемся на то, как это было (осторожно, трафик). Фотки в действительно хорошем качестве приедут чуть позже, а это — то, что мы наснимали сами по ходу дела. В конце будет пара слов о следующем Heisenbug 2019 Piter и том, как на него подать свой доклад.


Читать дальше →
Изначально понятие человеческого фактора пришло в мир из военного дела и авиации — все мы знаем примеры его влияния на ход событий в мировой истории. Но всё чаще и чаще на расплывчатую формулировку «да это человеческий фактор» списывают косяки в бизнесе. Утечка данных? Человеческий фактор. Ошибка в тендере? Человеческий фактор. Упал софт у клиента на продакшене? Ну это вообще всегда человеческий фактор. Мы решили углубиться в проблему и понять, что это за явление, как оно влияет на бизнес и управление и что можно сделать для снижения влияния человеческого фактора. Ну не плыть же по течению, списывая всё на какую-то абстрактную сущность. В общем, поговорим о человеческих эксепшенах.


В каждом из них незримо живёт человеческий фактор: нельзя мини, будет декольте; нельзя рыбок, будет собака, директор вообще отморозился ну и т.д.
Читать дальше →
Если вы лениво следите за последними новостями, просматривая заголовки в своей ленте, то в течение последних двух лет вы сталкивались с пассажами примерно такого уровня: «Amazon борется с доминацией Intel и запускает производство своих серверных CPU», «Intel теряет значительную долю рынка», «Amazon отказывается от процессоров Intel», «В разработке находятся серверные ARM-процессоры от Amazon», «Intel переносит потребительский релиз 10 нм CPU» и наконец «Intel представит 7 нм процессор в 2020 году».

Конечно, заголовки эти весьма примерные и если вы не занимаетесь обслуживанием серверов или не арендуете мощности у AWS, то все это вас слабо касается. Ну барахтаются там гиганты между собой, как девицы на вечеринке лупят друг друга мешками, набитыми деньгами, при этом Qualcomm и AMD ведут каждый свою разработку, у NVIDIA какое-то движение с их CUDA, а Apple как обычно тихо в углу жует клей занимается своими делами. А еще создается впечатление, что скоро Intel свергнут, если уже не свергли (до сих пор сидят на 14 нм !), про электовафельницы от AMD перестанут шутить да и вообще, Amazon станет крупным производителем ARM-процессоров. Но все далеко не так, так что давайте разбираться.
Читать дальше →

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


В первой статье я расскажу, как успешно пройти все этапы собеседований и попасть на стажировку в Google.


Читать дальше →
Подробное описание поисков бага из задачи GitLab, которые привели к патчу для ядра Linux

14 сентября служба поддержки GitLab сообщила о критической проблеме, которая возникла у одного из наших клиентов: сначала GitLab работает нормально, а потом у пользователей возникает ошибка. Они пытались клонировать некоторые репозитории через Git, и вдруг появлялось непонятное сообщение об устаревшем файле: Stale file error. Ошибка сохранялась надолго и не давала работать, пока системный администратор вручную не запускал ls в самом каталоге.


Пришлось изучать внутренние механизмы Git и сетевой файловой системы NFS. В итоге мы нашли баг в клиенте Linux v4.0 NFS, Тронд Мюклебуст (Trond Myklebust) написал патч для ядра, и с 26 октября этот патч входит в основное ядро Linux.


В этом посте я расскажу, как мы изучали проблему, в каком направлении думали и какие инструменты использовали, чтобы отследить баг. Мы вдохновлялись отличной детективной работой Олега Дашевского, описанной в посте «Как я две недели охотился за утечкой памяти в Ruby».


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

Страницы

Последние публикации

Новые комментарии