Pull to refresh
0
@gleensanderead⁠-⁠only

User

Send message

Как оставаться продуктивным работая на фрилансе

Reading time4 min
Views3.3K

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

Читать далее
Total votes 7: ↑3 and ↓4+1
Comments0

Самая быстрая и энергоэффективная реализация алгоритма BFS на различных параллельных архитектурах

Reading time20 min
Views10K

Оффтоп


В названии статьи не поместилось — данные результаты считаются таковыми по версии рейтинга Graph500. Также хотелось бы выразить благодарность компаниям IBM и RSC за предоставленные ресурсы для проведения экспериментальных запусков во время исследования.


Введение


Поиск в ширину (BFS) является одним из основных алгоритмов обхода графа и базовым для многих алгоритмов анализа графов более высокого уровня. Поиск в ширину на графах является задачей с нерегулярным доступом к памяти и с нерегулярной зависимостью по данным, что сильно усложняет его распараллеливание на все существующие архитектуры. В статье будет рассмотрена реализация алгоритма поиска в ширину (основного теста рейтинга Graph500) для обработки больших графов на различных архитектурах: Intel х86, IBM Power8+, Intel KNL и NVidia GPU. Будут описаны особенности реализации алгоритма на общей памяти, а также преобразования графа, которые позволяют достичь рекордных показателей производительности и энергоэффективности на данном алгоритме среди всех одноузловых систем рейтинга Graph500 и GreenGraph500.

Нажми и прочитай про самый быстрый BFS в мире!
Total votes 13: ↑13 and ↓0+13
Comments4

Примитивно-рекурсивные функции и функция Аккермана

Reading time7 min
Views36K

Функция Аккермана — одна из самых знаменитых функций в Computer Science. С ней связан как минимум один фундаментальный результат и как минимум один просто важный. Фундаментальный результат, говоря аккуратно и непонятно, таков: существует всюду определённая вычислимая функция, не являющаяся примитивно-рекурсивной. Важный результат заключается в том, что лес непересекающихся множеств (также известный как disjoint set union) работает очень быстро.


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


Из текста ниже вы узнаете, что такое примитивно-рекурсивные функции и как выяснить, что функция Аккермана к таковым не относится. И, конечно, этот текст убедит вас в том, что это невероятно красивая конструкция и невероятно красивое рассуждение!

Читать дальше →
Total votes 28: ↑27 and ↓1+43
Comments12

Справочник по собеседованиям для тех программистов, которые их не понимают

Reading time3 min
Views146K

На Хабре с завидной периодичностью возникают посты от возмущенных программистов, которые справедливо (наверное) негодуют, почему на собеседовании никто не спросил про их прошлые проекты, не посмотрел их код, но задавал шаблонные справочные вопросы или заставлял решать алгоритмические задачи, которые, скорее всего (в 99%), не будут применяться на вакантной работе.

Чтобы уменьшить поток этих публикаций (святая простота), ниже будет краткий, но лаконичный справочник по типам собеседований, которые вам стоит ожидать от конкретного типа компании. Справочник основан на личном многолетнем опыте. Надеюсь, это поможет вам (именно тебе, да) выбрать лучшую стратегию успешного получения работы.
Погнали!
Total votes 204: ↑183 and ↓21+225
Comments335

Добавляем в Jupyter Notebooks красоту и интерактивность

Reading time7 min
Views74K
Многие используют в своей работе Jupyter Notebooks. Но с ростом сложности проекта появляются проблемы. В блокноте появляются ячейки с красными пометками для самого себя «перед запуском укажи число...» или «задай количество итераций исходя из...». Какой-то откат к командной строке получается.

Да и вывод данных на экран не всегда воспринимается без пояснений сторонним человеком, который привык к красивым таблицам, картинкам и прочим современным элементам интерфейса.
Читать дальше →
Total votes 16: ↑15 and ↓1+18
Comments11

Хорошее публичное выступление: 11 простых советов

Reading time5 min
Views43K

Дисклеймер


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

1. Структура доклада


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

Ключевая проблема для слушателя – отсутствие вводной части. Выводы он может сделать и сам, а вот стартовать с опозданием сложно и неприятно. Он ещё не понял, что вы будете про пищеварение, а уже нужно вникать в строение эпителия тонкого кишечника. Результат – ваш доклад попадает в слушателя не на все 100%, а имеет шансы и вовсе пролететь мимо.
Читать дальше →
Total votes 67: ↑64 and ↓3+61
Comments36

Знакомство с Neural ODE

Reading time20 min
Views36K

Neural Ordinary Differential Equations


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

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

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

На последней NIPS-конференции была представлена одна очень интересная статья, которая может помочь решить эту проблему. Авторы предлагают подход, который они назвали Нейронные Обыкновенные Дифференциальные Уравнения (Neural ODE).

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


Читать дальше →
Total votes 79: ↑76 and ↓3+73
Comments7

Градиентные границы в CSS

Reading time3 min
Views55K

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

Допустим, вам нужна градиентная граница вокруг определенного элемента. И вы, такой, думаете:

  • Для этого не существует простого и очевидного CSS API.
  • Я просто сделаю элемент-обертку с линейно-градиентным фоном, а затем внутренний элемент заблокирует большую часть этого фона, за исключением тонкой линии заполнения вокруг него.

Выглядеть это будет как-то так:

HTML

<div class="module-border-wrap"><div class="module">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero pariatur corporis quaerat voluptatum eos tempora temporibus nisi voluptates sed, exercitationem sequi dolore culpa incidunt accusamus, quasi unde reprehenderit ea molestias.
</div></div>

SCSS

body {
   height: 100vh;
   margin: 0;
   display: grid;
   place-items: center;
   background: #222;
}

.module-border-wrap {
   max-width: 250px;
   padding: 1rem;
   position: relative;
   background: linear-gradient(to right, red, purple);
   padding: 3px;
}

.module {
   background: #222;
   color: white;
   padding: 2rem;
}

результат

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

Лучшие практики Node.js — советы по структуре проектов

Reading time8 min
Views42K

Привет, Хабр! Представляю вашему вниманию адаптированный перевод первой главы "Node.js Best Practices" автора Yoni Goldberg. Подборка рекомендаций по Node.js размещена на github, имеет почти 30 т. звезд, но до сих пор никак не упоминалась на Хабре. Предполагаю, что эта информация будет полезна, как минимум, для новичков.
Глава 1. Советы по структуре проектов
Total votes 38: ↑32 and ↓6+26
Comments6

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

Reading time20 min
Views197K


Из заголовка нетрудно видеть, что на это приключение меня сподвигло банальное стремление сплагиатить заголовок парней из Madrobots. А это ведь действительно было приключение: одна только история с затянувшейся покупкой INA125U настолько занудна, что может свести с ума кого угодно, кроме меня. Впрочем, возможно, я кое-чего о себе до сих пор не знаю.

Итак, весы. Я, как обычно, сделал все неправильно. А именно — не стал даже смотреть на то, что умеют делать типичные на текущий момент развития интернета вещей представители этого отряда, так сказать, скалярных. Поэтому мои весы умеют раздельно взвешивать трех разных особей человека (меня, жену и сферического гостя в вакууме), а также — пятерых кошачьих. Результаты озвучиваются близлежащим смартфоном и публикуются в табличке Google.

Ну а теперь — о том, как это сделать, имея на руках весы из ИКЕА, операционный усилитель TI INA125, Arduino Pro Mini, преобразователь Serial — Wi-Fi HiLink HLK-RM04, немного прочей рассыпухи и здоровенное шило в заднице.
Читать дальше →
Total votes 118: ↑114 and ↓4+110
Comments87

Information

Rating
Does not participate
Registered
Activity