Pull to refresh
134
0
Иващенко Иван @defuz

Разработчик

Send message

Reuse, reduce, Starlink: первая ступень Falcon вернулась на Землю после вывода 60 спутников на орбиту

Reading time 3 min
Views 11K

Успешно завершился запуск 14-ой партии спутников Starlink — проекта по обеспечении высокоскоростным широкополосным доступом в интернет всей планеты. К 773 спутникам, уже выведенным на орбиту (в их числе тестовые), присоединилась новая партия из 60 космических аппаратов.

Сами пуски уже мало кого удивляют: за октябрь ракета Falcon 9 со спутниками побывала в космосе дважды. Удивляет то, что первая ступень ракеты Falcon 9 возвращается уже в шестой раз. А один головной обтекатель использовался уже три раза. Рассказываем, как компания Илона Маска возвращает многотонные составляющие ракет с небес на землю.

А еще под катом — много фотографий процесса транспортировки элементов Falcon 9.
Читать дальше →
Total votes 37: ↑31 and ↓6 +25
Comments 35

Кого вы пытаетесь впечатлить своими дедлайнами?

Reading time 5 min
Views 19K
Подсказка: явно не ваших пользователей.

Поднимите руку те, чья компания провозгласила «Клиентоориентированность» как одну из своих корпоративных ценностей. Для тех из вас, кто читает этот текст на Хабре и не видит аудиторию: почти весь зал поднял руку, кроме пары человек сзади.

Они работают в Oracle.

Удовлетворенность клиентов является одной из корпоративных ценностей компании Oracle. Но корпоративные ценности — они как абонемент в спортзал — недостаточно их просто иметь.

Одержимость клиентами — полезная вещь, но есть ещё одна вещь, которой одержимы многие компании — это сроки. Дедлайны — это хорошо. «Будет готово, когда я закончу» может быть отличной (или даже рекомендованной) стратегией для двух человек работающих над одним приложением. Но когда вы работаете в компании с более чем двумя сотнями сотрудников, вам требуется некоторое понимание того, что происходит; примерное представление о том, когда ваши пользователи смогут использовать ваши новые свистелки и перделки.

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

Дедлайны нужны в первую очередь не клиентам, а менеджменту.
Читать дальше →
Total votes 43: ↑43 and ↓0 +43
Comments 18

Что значит unsafe в Rust?

Reading time 9 min
Views 7.6K

Привет, Хабр! Представляю вашему вниманию перевод статьи "What Is Rust's unsafe?" автора Nora Codes.


Мне доводилось видеть много недопониманий относительно того, что значит ключевое слово unsafe для полезности и правильности языка Rust и его продвижения как "безопасного языка системного программирования". Правда намного сложнее, чем можно описать в коротком твите, к сожалению. Вот как я ее вижу.


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

Читать дальше →
Total votes 51: ↑51 and ↓0 +51
Comments 2

Yew — Rust&WebAssembly-фреймворк для фронтенда

Reading time 14 min
Views 17K
Yew — аналог React и Elm, написанный полностью на Rust и компилируемый в честный WebAssembly. В статье Денис Колодин, разработчик Yew, рассказывает о том, как можно создать фреймворк без сборщика мусора, эффективно обеспечить immutable, без необходимости копирования состояния благодаря правилам владения данными Rust, и какие есть особенности при трансляции Rust в WebAssembly.



Пост подготовлен по материалам доклада Дениса на конференции HolyJS 2018 Piter. Под катом — видео и текстовая расшифровка доклада.
Total votes 53: ↑50 and ↓3 +47
Comments 22

Что такое блокчейн и зачем он нужен

Reading time 5 min
Views 289K


В сознании среднестатистического пользователя само слово “блокчейн” (“цепочка блоков”) стало довольно тесно связано с термином “биткоин”, что двояко отразилось на восприятии.

С одной стороны, популярность биткоина вызывает интерес и к блокчейну, с другой стороны, в массовом сознании биткоин часто ассоциируется лишь с чем-то негативным, запрещенным и подвергаемым преследованию со стороны законодателей. Мол, зачем расплачиваться биткоинами, когда есть целый зоопарк электронных кошельков и банковских карт? Ясное дело – чтобы проворачивать какие-то темные делишки.
Читать дальше →
Total votes 31: ↑27 and ↓4 +23
Comments 48

Rust и парадокс Блаба

Reading time 11 min
Views 32K

Несколько недель назад я наткнулся на сравнительный анализ Rust, D и Go от Андрея Александреску. Андрей, уважаемый член сообщества C++ и главный разработчик языка программирования D, нанес Rust сокрушительный удар под конец своего повествования, высказав нечто, что выглядит довольно проницательным наблюдением:



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



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

Читать дальше →
Total votes 49: ↑47 and ↓2 +45
Comments 134

Анонс Rust 1.6

Reading time 2 min
Views 8.4K
Привет в 2016-м году! Мы рады объявить первый в этом году релиз Rust — 1.6. Rust — системный язык программирования, нацеленный на безопасную работу с памятью, скорость и параллельное выполнение кода.

Как всегда, вы можете установить Rust 1.6 с соответствующей страницы нашего сайта, а также посмотреть подробный список изменений для версии 1.6 на Github. Этот релиз включил в себя 1100 патчей.

Что вошло в стабильную версию 1.6


В этот релиз вошли ряд небольших доработок, одно большое нововведение и изменение на Crates.io.
Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 9

Rust в 2016 году

Reading time 5 min
Views 21K
2015 год был значительным годом для Rust: мы выпустили версию 1.0, стабилизировали большинство элементов языка и кучу библиотек, значительно выросли как сообщество, а также реорганизовали управление проектом. Может показаться что 2016 год не будет таким же интересным (будет трудно превзойти выпуск 1.0), но это будет супер-важный год для Rust, в котором произойдет много захватывающих вещей. В этой статье я расскажу о том, что, как я думаю, должно произойти. Это не официальная позиция и не обещание разработчиков Rust.

2015


Прежде чем мы поговорим о будущем, вот несколько цифр за прошлый год:

В 2015 году силами сообщества Rust:

Читать дальше →
Total votes 44: ↑44 and ↓0 +44
Comments 59

Обработка ошибок в Rust

Reading time 32 min
Views 39K

Как и многие языки программирования, Rust призывает разработчика определенным способом обрабатывать ошибки. Вообще, существует два общих подхода обработки ошибок: с помощью исключений и через возвращаемые значения. И Rust предпочитает возвращаемые значения.



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



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


Читать дальше →
Total votes 37: ↑36 and ↓1 +35
Comments 73

Анатомия программы в памяти

Reading time 6 min
Views 85K
Управление памятью – одна из главных задач ОС. Она критична как для программирования, так и для системного администрирования. Я постараюсь объяснить, как ОС работает с памятью. Концепции будут общего характера, а примеры я возьму из Linux и Windows на 32-bit x86. Сначала я опишу, как программы располагаются в памяти.

Каждый процесс в многозадачной ОС работает в своей «песочнице» в памяти. Это виртуальное адресное пространство, которое в 32-битном режиме представляет собою 4Гб блок адресов. Эти виртуальные адреса ставятся в соответствие (mapping) физической памяти таблицами страниц, которые поддерживает ядро ОС. У каждого процесса есть свой набор таблиц. Но если мы начинаем использовать виртуальную адресацию, приходится использовать её для всех программ, работающих на компьютере – включая и само ядро. Поэтому часть пространства виртуальных адресов необходимо резервировать под ядро.

image

Это не значит, что ядро использует так много физической памяти – просто у него в распоряжении находится часть адресного пространства, которое можно поставить в соответствие необходимому количеству физической памяти. Пространство памяти для ядра отмечено в таблицах страниц как эксклюзивно используемое привилегированным кодом, поэтому если какая-то программа пытается получить в него доступ, случается page fault. В Linux пространство памяти для ядра присутствует постоянно, и ставит в соответствие одну и ту же часть физической памяти у всех процессов. Код ядра и данные всегда имеют адреса, и готовы обрабатывать прерывания и системные вызовы в любой момент. Для пользовательских программ, напротив, соответствие виртуальных адресов реальной памяти меняется, когда происходит переключение процессов:
Читать дальше →
Total votes 62: ↑61 and ↓1 +60
Comments 24

Я наконец-то понял, что такое unit-экономика

Reading time 4 min
Views 23K
«Наконец-то понял, что такое unit-экономика!», воскликнул я сам себе. Не спешите закрывать статью, если вы уже знаете, что это. Я понял про unit-экономику для МОЕГО проекта, и, надеюсь, эта информация поможет и другим. Спасибо приятелю Коле, который зашел к нам в офис поболтать о жизни и натолкнул на эти мысли.

Итак, когда говорят о unit-экономике, то ставят такой вопрос: «Сколько вам стоит привлечение одного клиента?». Я несколько лет не мог на него ответить. И это меня очень смущало. Наша команда доросла до 12 человек, а ответить на такой простой и нужный вопрос я почему-то не мог.
Читать дальше →
Total votes 26: ↑21 and ↓5 +16
Comments 3

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

Reading time 7 min
Views 50K
Я расскажу о том, как мы с releu придумали, сделали и развиваем сервис мини-уроков английского языка, которым пользуются уже 4000 человек каждый день. Для затравки рост числа активных пользователей:

Читать дальше →
Total votes 46: ↑46 and ↓0 +46
Comments 44

Алекс Шульц (часть 2): введение в growth hacking

Reading time 8 min
Views 12K


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →
Total votes 21: ↑17 and ↓4 +13
Comments 4

Адора Чьюнг (2-я часть лекции): growth hacking

Reading time 12 min
Views 15K


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Comments 5

10 феерических выступлений Стива Джобса

Reading time 3 min
Views 69K

На прошлой неделе случилось то, что хотелось оттянуть на как можно больший срок, но что все равно было неизбежным. Самый инновационный предприниматель Америки, а может, и мира, Стив Джобс оставил пост CEO компании Apple.
Некоторым везунчикам в жизни предоставляется шанс работать над одним революционным устройством. Стив Джобс – человек, который совершил сразу несколько революций в цифровом мире, – по праву может считаться успешным человеком. 
В этой статье собраны 10 наиболее известных и символичных выступлений, которые характеризуют жизнь и карьеру мастера. 
Читать дальше →
Total votes 332: ↑254 and ↓78 +176
Comments 86

Что такое суперсимметрия?

Reading time 13 min
Views 8.8K
Большой адронный коллайдер (LHC) уже начал свою работу. Его запуск вызвал значительный интерес и сопровождался большим количеством разнообразных и, порой, антинаучных слухов и спекуляций.

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

Я остановлюсь в этой статье на современных теориях физики элементарных частиц, на некоторых идеях и следствиях этих теорий. Среди рассмотренных тем следующие:
  • Стандартная модель фундаментальных взаимодействий (описывает практически все экспериментальные данные в физике элементарных частиц),
  • ее достоинства и недостатки,
  • идея суперсимметрии,
  • решение многих проблем Стандартной модели при ее суперсимметричном обобщении,
  • некоторые особенности минимальной суперсимметричной Стандартной модели (МССМ),
  • экспериментальный статус суперсимметрии.
Я постарался вести рассказ максимально популярно, поэтому пришлось отказаться от математической строгости. Однако кое-где предполагается, что хабралюди, все-таки, еще помнят школьную математику и физику. Без этого было бы затруднительно, если вообще возможно, изложить часть понятий и идей.
Читать дальше →
Total votes 135: ↑134 and ↓1 +133
Comments 39

Как заюзать буфер обмена из bash?

Reading time 1 min
Views 2.6K
Доброго всем времени суток!

Не так давно начал познавать все прелести программирования на bash. Пишу скрипты для автоматизации рутинных действий, возникающих в процессе работы (программист на Си под никсы я). Вроде получается =)
Так вот, возникла необходимость заюзать из баш буфер обмена(используя лишь средства баш и стандартные утилиты Solaris). Т.е. скопировать значение некой переменной в этот самый буфер. «xsel» и «xclip» нет.
Специфика такова, что вся работа происходит на удалённой тачке заказчика, в сетке которого даже нет интернета. Соответственно никакого софта ставить я не могу.
Подскажите, как это сделать(если такое вообще возможно)?
Гугление не дало результатов.

P.S. надеюсь, прямой эфир хоть кто-нибудь читает.
Total votes 16: ↑11 and ↓5 +6
Comments 9

Оптимизация бизнес-процессов при помощи кривых выживаемости

Reading time 3 min
Views 11K
Давайте представим, что у нас есть сервис по бронированию столиков в ресторане. Бронирование происходит в 2 этапа:

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

Мы хотим понять, насколько эффективно работает колл-центр и как быстро обрабатываются заявки.

Хороший способов проанализировать это — кривые выживаемости.


Читать дальше →
Total votes 25: ↑19 and ↓6 +13
Comments 6

Графические модели в машинном обучении. Семинар в Яндексе

Reading time 14 min
Views 17K
Несмотря на огромную популярность аппарата графических моделей для решения задачи структурной классификации, задача настройки их параметров по обучающей выборке долгое время оставалась открытой. В своем докладе Дмитрий Ветров, рассказал об обобщении метода опорных векторов и некоторых особенностях его применения для настройки параметров графических моделей. Дмитрий – руководитель группы Байесовских методов, доцент ВМК МГУ и преподаватель в ШАДе.

Видеозапись доклада.

План доклада:
  • Байесовские методы в машинном обучении.
  • Задачи с взаимозависимыми скрытыми переменными.
  • Вероятностные графические модели
  • Метод опорных векторов и его обобщение для настройки параметров графических моделей.



Сама концепция машинного обучения довольно несложная – это, если говорить образно, поиск взаимосвязей в данных. Данные представляются в классической постановке набором объектов, взятых из одной и той же генеральной совокупности, у каждого объекта есть наблюдаемые переменные, есть скрытые переменные. Наблюдаемые переменные (дальше будем их обозначать X) часто называются признаками, соответственно, скрытые переменные (T) — это те, которые подлежат определению. Для того, чтобы эту взаимосвязь между наблюдаемыми и скрытыми переменными установить, предполагается, что у нас есть обучающая выборка, т.е. набор объектов, для которых известны и наблюдаемые и скрытые компоненты. Глядя на нее, мы пытаемся настроить некоторые решающие правила, которые нам позволят в дальнейшем, когда мы видим набор признаков, оценить скрытые компоненты. Процедура обучения приблизительно выглядит следующим образом: фиксируется множество допустимых решающих правил, которые как правило задаются с помощью весов (W), а дальше каким-то образом в ходе обучения эти веса настраиваются. Тут же с неизбежностью возникает проблема переобучения, если у нас слишком богатое семейство допустимых решающих правил, то в процессе обучения мы легко можем выйти на случай, когда для обучающей выборки мы прекрасно прогнозируем ее скрытую компоненту, а вот для новых объектов прогноз оказывается плохой. Исследователями в области машинного обучения было потрачено немало лет и усилий для того, чтобы эту проблему снять с повестки дня. В настоящее время, кажется, что худо-бедно это удалось.
Конспект доклада
Total votes 57: ↑49 and ↓8 +41
Comments 5

Разработка iOS8 приложения на Apple Swift

Reading time 6 min
Views 62K
Статья является своеобразным продолжением статьи «Знакомьтесь, Swift!» за авторством Helecta, а также вольным переводом статьи Developing iOS Apps Using Swift Tutorial Part 2.



Итак, в первой статье мы написали простое Single View приложение, включающее таблицу с несколькими ячейками.
На этот раз мы немного углубимся и сделаем несколько более амбициозных вещей. Мы будем обращаться к API поиска iTunes, парсить ответ, полученный в JSON и отображать результаты в Table View.
На первый взгляд может показаться, что все это довольно сложно и предстоит много работы, но на самом деле это не так. Все описанное выше является достаточно простым функционалом для iOS приложений и каждый уважающий себя iOS разработчик должен это уметь.
Читать дальше →
Total votes 49: ↑41 and ↓8 +33
Comments 32

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Works in
Date of birth
Registered
Activity