Pull to refresh
51
Karma
1.4
Rating
Corey Maler @kahi4

Fullstack developer

Упущенный импакт tNPS: потенциал, как основа ранжирования

МТС corporate blog Data visualization *

Привет, Хабр! Меня зовут Сергей Барановский, я руководитель проектов по аналитике МТС.

Сегодня поговорим о том, что такое NPS, чем упущенный импакт отличается от обычного и как он может помочь при расстановке приоритетов.

Читать далее
Total votes 6: ↑5 and ↓1 +4
Views 2.7K
Comments 7

Как работает React: подробное руководство

Timeweb Cloud corporate blog Website development *JavaScript *ReactJS *


Привет, друзья!


В этой статье я покажу вам, с чего начинается React.


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


import '../style.scss'
import MyReact from './my-react'

const buttonStyles = {
 border: 'none',
 outline: 'none',
 padding: '0.3rem 0.5rem',
 marginLeft: '0.5rem',
 backgroundImage: 'linear-gradient(yellow, orange)',
 borderRadius: '2px',
 boxShadow: '0 1px 2px rgba(0, 0, 0, 0.2)',
 cursor: 'pointer'
}

/** @jsx MyReact.createElement */
function Counter() {
 const [value, setValue] = MyReact.useState(1)
 const [count, setCount] = MyReact.useState(1)

 return (
   <section>
     <h1 className='title'>Hello from MyReact!</h1>
     <div className='box'>
       <input
         style='width: 80px; padding: 0.15rem 0.5rem;'
         type='number'
         value={value}
         onInput={(e) => {
           setValue(Number(e.target.value))
         }}
       />
       <button
         style={buttonStyles}
         onClick={() => {
           setCount((count) => count + value)
         }}
       >
         Increment
       </button>
     </div>
     <h2 className='subtitle'>
       Count: <span className='count-value'>{count}</span>
     </h2>
     <ul className='list'>
       {['React', 'from', 'scratch'].map((item) => (
         <li>{item}</li>
       ))}
     </ul>
   </section>
 )
}

MyReact.render(<Counter />, document.getElementById('app'))

Как вы могли догадаться, наша версия будет называться MyReact.


Исходный код проекта.


Скриншот:





Песочница:

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

Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Views 30K
Comments 5

Прямоугольные тайловые миры

Game development *Algorithms *Godot *
Tutorial

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

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

Читать далее
Total votes 98: ↑98 and ↓0 +98
Views 19K
Comments 11

Аркадный автомат своими руками (ретрогейминг с динамической подсветкой)

Development for Raspberry Pi *Old hardware DIY Games and game consoles
Tutorial

Всем привет! Любите ли вы играть в игры? А точнее в классику игровой индустрии? Классические, ретро-игры на NES, Sega? Или, быть может, скучаете и хотели бы иметь свой кусочек 80х - настоящий аркадный автомат? Вот я хотел и сделал такой универсальный ретро-автомат своими руками.

Читать далее
Total votes 20: ↑20 and ↓0 +20
Views 13K
Comments 10

Как создавать красивые карты с помощью Python

SkillFactory corporate blog Python *OpenStreetMap *Data visualization *
Translation
Tutorial
Мне всегда нравились карты городов, и несколько недель назад я решил создать свою собственную, художественную версию. Немного погуглив, я обнаружил крутое руководство, написанное Фрэнком Себальосом. Оно увлекательно и полезно, но я предпочитаю более подробные/реалистичные карты-схемы. Из-за этого я решил создать свою собственную версию карт. Итак, давайте посмотрим, как мы можем создавать красивые карты с помощью Python и данных OpenStreetMap.

Приятного чтения!
Total votes 27: ↑24 and ↓3 +21
Views 17K
Comments 11

Декодируем сигнал метеоспутника NOAA в 50 строчек кода

Python *Programming *Development of communication systems *Popular science Astronautics
Привет, Хабр.

Продолжим тему декодирования различных видов радиосигналов. Одним из интересных форматов, разработанных еще в прошлом веке, является APT (Automatic Picture Transmission). Он используется для передачи изображений Земли из космоса, и что для нас гораздо более интересно и актуально, прием сигналов APT прост и доступен радиолюбителям.


Спутник NOAA © en.wikipedia.org/wiki/NOAA-15

Для тех, кому интересно, продолжение под катом.
Читать дальше →
Total votes 44: ↑44 and ↓0 +44
Views 14K
Comments 11

Связанные одним тросом: NASA показала новый планетоход DuAxel из двух половинок

Selectel corporate blog Astronautics The future is here
Фото: NASA

Лаборатория реактивного движения (Jet Propulsion Laboratory) NASA разработала новый прототип вездехода DuAxel. Несмотря на схожесть с другими марсоходами, DuAxel гораздо маневренее, поскольку состоит из пары двухколесных транспортных средств.

NASA опубликовала запись испытаний планетохода Duaxel. Двухколесная передняя часть вездехода может отделяться и работать какое-то время автономно. Она остается сцепленной с планетоходом тросом, но может перемещаться самостоятельно. Такая конструкция дает возможность исследовать сложнодоступные места и рельефную местность.
Total votes 24: ↑24 and ↓0 +24
Views 6.1K
Comments 14

Факторизация и эллиптическая кривая. Часть III

Information Security *Cryptography *Algorithms *Mathematics *Popular science



Использование эллиптических кривых (ЭК) для решения разнообразных задач криптологии коснулось каким-то боком и факторизации чисел. Здесь будем рассматривать вопрос, касающийся ЭК и не только в связи с проблемой факторизации составного нечетного натурального числа (СННЧ), но несколько шире.

Если пройтись по Интернету и по статьям об ЭК на Хабре, то после этого возникает мысль, что существует определенный пробел всех без исключения публикаций, включая и объемные бумажные книги. Авторы почему-то считают само-собой разумеющимся понимание природы ЭК и ее аддитивной группы, ее появление. На самом деле ЭК и ее группа (мое мнение) — это чудо!

Группа точек плоскости, множество которых замкнуто по операции сложения, оказалась каким-то образом встроена в ЭК и мы об этом до сего дня не знали бы, не располагая теорией групп, и даже при наличии теории групп, без гения Эйлера и Пуанкаре, которые нам эту группу открыли. В свое время Иоганн Кеплер открыл человеку законы движения Планет и качественно описал их траектории, но только гений Ньютона смог объяснить природу этих законов.

Правда для этого ему пришлось открыть свои законы движения/тяготения и изобрести дифференциальное и интегральное исчисления. Задача взятие двукратного интеграла от второго закона Ньютона, в котором ускорение — вторая производная пути, решением имеет плоскую кривую второго (не третьего, не путать эллипсы — траектории планет, спутников и эллиптические кривые в криптологии) порядка, что до И. Ньютона было открыто И.Кеплером.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Views 5K
Comments 0

Запуск Unix-подобной ОС на самодельном CPU с помощью самодельного компилятора C

Compilers *FPGA *Computer hardware CPU
Translation
image

Два года назад я начал работать разработчиком ПО. Иногда я рассказывал своим коллегам о студенческом проекте, которым занимался на третьем курсе университета, и они восприняли его настолько хорошо, что я решил написать этот пост1.

Позвольте задать вам вопрос: вы когда-нибудь проектировали собственную архитектуру набора команд (ISA), создавали на FPGA процессор на основе этой ISA и собирали для него компилятор? Запускали ли вы операционную систему на этом процессоре?

А у нас это получилось.

В этом посте я расскажу о своей учёбе в 2015 году, о четырёх месяцах создания самодельного CPU на самодельной архитектуре набора команд RISC, создании самодельного тулчейна C и портировании на этот процессор Unix-подобной ОС Xv6.

Процессорный эксперимент в Токийском университете


Всё это делалось в рамках студенческого экспериментального проекта под названием CPU Experiment. Давайте начнём с того, что же такое CPU experiment.
Читать дальше →
Total votes 44: ↑44 and ↓0 +44
Views 13K
Comments 12

NVIDIA представила новую линейку видеокарт на Ampere

Computer hardware Video cards Games and game consoles
image

NVIDIA представила свои новые видеокарты линейки Ampere. Это GeForce RTX 3090, RTX 3080 и RTX 3070. При этом NVIDIA заявила, что на RTX 3090 впервые можно будет играть в разрешении 8K с частотой обновления 60 кадров в секунду.
Total votes 19: ↑19 and ↓0 +19
Views 18K
Comments 78

Чек-лист перед калибровкой модели машинного обучения

OTUS corporate blog Big Data *Machine learning *
Tutorial
Часто в теории работа модели выглядит просто и складно, но когда вы получаете набор реальных данных и задачу их посчитать, это может вызвать ступор. Даем 7 полезных советов от Петра Лукьянченко, ex-Team Lead Analytics в Lamoda и руководителя онлайн-курса «Математика для Data Science. Продвинутый уровень».





Привет! Это Петр Лукьянченко (PetrPavlovich). Мой чек-лист — подборка мыслей, которые выработались за годы набитых шишек и допущенных ошибок.
Читать дальше →
Total votes 13: ↑10 and ↓3 +7
Views 2.7K
Comments 1

Как обезопасить свой веб-сайт?

VDSina.ru corporate blog Information Security *Website development *


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

Этот небольшой, но важный список конкретных действий, который следует производить каждому со своим веб-ресурсом, если репутация компании, безопасность веб-ресурсов и данных клиентов – это не пустые слова для вас.
Читать дальше →
Total votes 41: ↑29 and ↓12 +17
Views 23K
Comments 2

Security Week 03: принципы ответственного багрепорта

«Лаборатория Касперского» corporate blog Information Security *
Седьмого января команда Google Project Zero, специализирующаяся на поиске уязвимостей в ПО, сообщила об изменениях в правилах раскрытия информации об обнаруженных багах (новость, пост в блоге). В 2020 году Project Zero будет раскрывать информацию об уязвимостях через 90 дней после первого уведомления «пострадавшего» вендора. Дедлайн не изменился, но до этого исследователи из Project Zero могли опубликовать отчет о проблеме быстрее, если разработчику ПО удалось выпустить патч до этого срока. Теперь Project Zero будет ждать 90 дней вне зависимости от наличия заплатки.

Новые правила представляют интерес по ряду причин. Во-первых, нет единого стандарта — сколько времени давать разработчику ПО на анализ уязвимости и ее устранение. Команда Project Zero, регулярно обнаруживающая серьезные уязвимости в ПО, принимает такие решения самостоятельно и таким образом пытается влиять на всю индустрию. Во-вторых, важно изменение приоритетов: вместо «давайте закроем этот баг побыстрее» разработчиков мотивируют устранять уязвимость надежно. Иначе регулярно выходит, что патч либо не решает проблему вовсе, либо добавляет новые баги.
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Views 1.6K
Comments 3

Быстрое ознакомление с SwiftUI

Development for iOS *Development of mobile applications *Swift *
Sandbox
SwiftUI — это новый удобный способ для создания пользовательских интерфейсов на Xcode. Если хотите быстрое ознакомление с SwiftUI, тогда этот блог пост для вас.

Для начала давайте создадим проект с поддержкой SwiftUI. Минимально необходимые для этого требования системы — это macOS Catalina и Xcode 11. Создайте новый проект “File > New > Project…”, выберите “Single View App” и убедитесь, что выбрано “User Interface: SwiftUI”.



Проект будет выглядеть примерно так:



Как могли заметить, теперь можно видеть все изменения сразу же на Preview. Например, попробуйте изменить текст на “Привет, Хабр!”. Круто да?
Читать дальше →
Total votes 21: ↑17 and ↓4 +13
Views 6.6K
Comments 0

Используем passwordstore.org — менеджер паролей в стиле KISS

Information Security *Cryptography *
Sandbox

Всем привет. В этой статье я хотел бы поделиться своим опытом настройки и использования pass — менеджера паролей для Linux и не только, примечательного своей простотой, использованием уже присутствующих в системе инструментов и возможностью работать исключительно из консоли. Конкретнее, будут затронуты проблемы, связанные с генерацией и хранением секретного ключа gpg, а также с настройкой совместной работы pass, gpg, git, github и браузера. Всё — под Linux, Windows и Android.

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

IT Релокация. Из Бангкока в Сидней

IT-emigration IT career


Доброго времени суток дорогой читатель. Если ты знаком с моей историей переезда в Бангкок, то, я думаю, тебе будет интересно послушать еще один мой рассказ. В начале апреля 2019 года я переехал в самый лучший город на Земле — Сидней. Занимай свое уютное кресло, завари теплый чаек и добро пожаловать под кат, где тебя ждет множество фактов, сравнений и мифов о Австралии. Что же, погнали!

Читать дальше →
Total votes 111: ↑100 and ↓11 +89
Views 34K
Comments 105

Как разрабатываются и производятся процессоры: проектирование ЦП

Manufacture and development of electronics *Computer hardware Popular science CPU Electronics for beginners
Translation
image

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

Часть 1: Основы архитектуры компьютеров (архитектуры наборов команд, кэширование, конвейеры, hyperthreading)
Часть 2: Процесс проектирования ЦП (электрические схемы, транзисторы, логические элементы, синхронизация)
Часть 3: Компонование и физическое производство чипа (VLSI и изготовление кремния)
Часть 4: Современные тенденции и важные будущие направления в архитектуре компьютеров (море ускорителей, трёхмерное интегрирование, FPGA, Near Memory Computing)

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

Существует два основных типа транзисторов, используемых в современных процессорах: pMOS (PМОП) и nMOS (NМОП). nMOS-транзистор пропускает ток, когда затвор (gate) заряжен или имеет высокое напряжение, а pMOS-транзистор пропускает ток, когда затвор разряжен или имеет низкое напряжение. Сочетая эти типы транзисторов комплементарным образом, мы можем создавать логические элементы КМОП (CMOS). В этой статье мы не будем подробно разбирать особенности работы транзисторов, но коснёмся этого в третьей части серии.
Читать дальше →
Total votes 33: ↑33 and ↓0 +33
Views 27K
Comments 8

Элегантная обработка ошибок в JavaScript с помощью монады Either

JavaScript *Programming *
Translation
Давайте немного поговорим о том, как мы обрабатываем ошибки. В JavaScript у нас есть встроенная функция языка для работы с исключениями. Проблемный код мы заключаем в конструкцию try...catch. Это позволяет прописать нормальный путь выполнения в разделе try, а затем разобраться со всеми исключениями в разделе catch. Неплохой вариант. Это позволяет сосредоточиться на текущей задаче, не думая о каждой возможной ошибке. Определённо лучше, чем засорять код бесконечными if.

Без try...catch трудно проверять результаты каждого вызова функции для неожиданных значений. Это полезная конструкция. Но у неё есть определённые проблемы. И это не единственный способ обрабатывать ошибки. В статье мы рассмотрим использование монады Either в качестве альтернативы try...catch.

Прежде чем продолжить, отмечу пару моментов. Статья предполагает, что вы уже знаете о композиции функций и каррировании. И предупреждение. Если вы раньше не сталкивались с монадами, они могут показаться действительно… странными. Работа с такими инструментами требует изменить мышление. Поначалу это бывает тяжело.

Не волнуйтесь, если сразу запутались. У всех так. В конце статьи я перечислил несколько ссылок, которые могут помочь. Не сдавайтесь. Эти штуки опьяняют, как только проникают в мозг.
Читать дальше →
Total votes 26: ↑24 and ↓2 +22
Views 18K
Comments 12

Выбираем бюджетный карманный осциллограф

Electronics for beginners
Приветствую!

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

Почему речь пойдет про карманные и компактные — потому что это самые бюджетные варианты. Настольные осциллографы – это более громоздкие, функциональные устройства, и, как правило, достаточно дорогие модели ($200-400 и дороже) на 4 канала со множеством функций.
А вот компактные модели на 1 канал для простых измерений и оценки формы сигнала можно приобрести буквально за $20...$40.


Читать дальше →
Total votes 39: ↑35 and ↓4 +31
Views 76K
Comments 66

Нужна небольшая клавиатура – сделайте её сами

Periphery DIY
Translation


Если вам нужна клавиатура, вы можете её приобрести. Если вам нужна небольшая клавиатура, то тут всё сложнее. Кроме вариантов с переделкой клавиатуры от Blackberry или возни с крохотными тактильными переключателями, нормальных решений для получения небольших, тонких и специализированных клавиатур нет. Однако есть один вариант: силиконовые клавиатуры. Пока этого никто не делал, поэтому я решил – почему бы и не попробовать.

К сожалению, готовой информации по проектированию, созданию или производству собственных силиконовых клавиатур не существует. Документации крайне мало, и все изготавливающие их фабрики, судя по всему, копируют информацию друг у друга. Спрашивать у китайской компании, как это делается – всё равно, что играть в «испорченный телефон». Но, несмотря на всё это, я сумел сделать собственную силиконовую клавиатуру, и теперь делюсь информацией о том, как это делается.
Читать дальше →
Total votes 41: ↑37 and ↓4 +33
Views 37K
Comments 42

Information

Rating
967-th
Date of birth
Registered
Activity