Pull to refresh
5
0
Send message

Использование быстрых клавиш в командной строке Linux (BASH)

Reading time14 min
Views90K

Эта статья посвящена наиболее часто используемым комбинациям клавиш при работе в командной строке Linux (в основном в командном интерпретаторе bash).

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

Никогда не развивал навыка быстрой печати, но знание не одного десятка hotkey'ев, перечисленных в этом материале, позволяет набирать команды со скоростью мысли.

Я попытался продемонстрировать многие примеры при помощи анимированных gif'ок – иногда несколько кадров больше скажут, чем несколько абзацев текста.

Читать далее
Total votes 143: ↑142 and ↓1+141
Comments64

Единый математический язык для физики и инженерного искусства в 21 веке

Reading time18 min
Views13K

Конец 18-го и 19-й век были временем колоссального прогресса в математике. Величайшие умы тысячелетия вводили все новые математические системы и языки, такие как алгебры Клиффорда и Грассмана. Хотя эти алгебры вызвали значительный интерес, в то время они воспринимались как подспорье более прямолинейной и более общеприменимой векторной алгебры Гиббса. Это было фактически концом поисков объединяющего математического языка и началом распространения новых алгебраических систем, создаваемых по мере необходимости; например, спинорная алгебра, матричная и тензорная алгебры, дифференциальные формы и т. д.

В этой статье мы реализуем возрождение алгебр Клифорда и Грассмана в виде структуры, известной как геометрическая алгебра (ГА). Это понятие было впервые введено в середине 1960-х годов американским физиком и математиком Дэвидом Хестенсом. Прошло 40 лет, но есть признаки того, что его утверждение о том, что ГА является универсальным языком для физики и математики, теперь начинает принимать все более явственные очертания. Во всем мире растет число групп, которые применяют ГА к целому ряду проблем из многих научных областей, обеспечивая чрезвычайно мощную математическую структуру, в которой могут быть выражены самые передовые концепции квантовой механики, теории относительности, электромагнетизма и т. д. При этом, утверждается, что ГА также достаточно проста для преподавания школьникам! В этой статье мы рассмотрим развитие и недавний прогресс ГА и обсудим, действительно ли она является объединяющим языком для физики и математики 21-го века. Примеры, которые мы будем использовать для иллюстрации, будут взяты из ряда областей физики и техники.

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments17

Лайфхак: как спарсить гигабайт double-ов в секунду

Reading time6 min
Views23K


Как в коде на C++ прочитать значение double из строки?

std::stringstream in(mystring);
while(in >> x) {
   sum += x;
}

На Intel Skylake с компилятором GCC 8.3, такой код парсит 50 МБ/с. Жёсткие диски запросто обеспечивают последовательное чтение со скоростью в несколько ГБ/с, так что вне всякого сомнения, нас ограничивает не скорость чтения с диска, а именно скорость парсинга. Как его ускорить?

Первое, что напрашивается – отказаться от удобств, предоставляемых потоками в C++, и вызывать strtod(3) напрямую:

do {
    number = strtod(s, &end);
    if(end == s) break;
    sum += number;
    s = end; 
} while (s < theend);

Скорость вырастает до 90 МБ/с; профайлинг показывает, что при чтении из потока выполняется ~1600 инструкций на каждое читаемое число, при использовании strtod – ~1100 инструкций на число. Стандартные библиотеки Си и C++ можно оправдать требованиями универсальности и переносимости; но если ограничиться парсингом только double и только на x64, то можно написать намного более эффективный код: хватит 280 инструкций на число.
Читать дальше →
Total votes 104: ↑102 and ↓2+100
Comments62

Рейтинг знаков зодиака среди Великих людей мира

Reading time3 min
Views24K
Однажды мы размышляли о рейтинге знаков зодиака среди Великих людей. Задачу выполнили и представляю результаты на ваш суд.

Со скорбью замечу, что Весы (ЭТО Я!) на последнем месте… Хотя что-то по данным мне кажется, что есть аномалии. Как-то подозрительно мало Весов!


Читать дальше →
Total votes 36: ↑20 and ↓16+4
Comments13

Synology SSO Server – управление авторизацией и доступ к сервисам с сайта

Reading time3 min
Views5.7K
Некоторое время назад передо мной встала задача, в целях защиты коммерческой тайны своих клиентов, отказаться от использования сторонних облачных сервисов.

Первое и самое логичное – предоставить им доступ на уже имеющийся в наличии Synology.

И тут возникло желание сделать это красиво, не отдельным логином/паролем, а с использованием уже выданных ранее от личного кабинета. «Бесшовный» переход из личного кабинета на сервисы Synology – то, что нужно.

Описание и скрипт под катом.
Читать дальше →
Total votes 4: ↑3 and ↓1+2
Comments4

В одной лодке с «ублюдком»: 11 продвинутых советов по использованию Git

Reading time11 min
Views51K

*"ублюдок" — вольный перевод слова "git" — "an unpleasant or contemptible person", "неприятный или презренный человек".



В комментариях к статье 15 базовых советов по Git для эффективной работы каждый день развернулась дискуссия на тему эффективности использования тех или иных команд и опций. Надо признать, что git предоставляет столько различного функционала, что во-первых, за всем становится невозможно уследить, а во-вторых, его можно совершенно по-разному вписывать в рабочий процесс.


Давайте посмотрим, что можно использовать, чтобы улучшить себе жизнь. Статья предполагает, что читатель умеет пользоваться основными возможностями git и понимает что делает, когда, скажем, вводит в консоль git rebase --merge --autostash.

Читать дальше →
Total votes 105: ↑100 and ↓5+95
Comments26

50 оттенков matplotlib — The Master Plots (с полным кодом на Python)

Reading time39 min
Views363K
Те, кто работает с данными, отлично знают, что не в нейросетке счастье — а в том, как правильно обработать данные. Но чтобы их обработать, необходимо сначала проанализировать корреляции, выбрать нужные данные, выкинуть ненужные и так далее. Для подобных целей часто используется визуализация с помощью библиотеки matplotlib.



Встретимся «внутри»!
Читать дальше →
Total votes 67: ↑67 and ↓0+67
Comments15

Выпуск Rust 1.34

Reading time5 min
Views6.3K

Привет, Хабр! Представляю вашему вниманию перевод статьи "The Rust Release Team "Announcing Rust 1.34.0".


Команда разработчиков Rust рада сообщить о выпуске новой версии Rust, 1.34.0. Rust — это язык программирования, который даёт возможность каждому создавать надёжное и эффективное программное обеспечение.


Если у вас установлена предыдущая версия Rust с помощью rustup, то для обновления Rust до версии 1.34.0 вам достаточно выполнить:


$ rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта.


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


Основное улучшение этого выпуска это поддержка альтернативных cargo-реестров. Релиз также включает поддержку ? в документационных тестах, некоторые улучшения в #[attribute(...)] и стабилизацию TryFrom. Читайте далее о ключевых вещах или можете посмотреть подробные примечания к выпуску для дополнительной информации.

Читать дальше →
Total votes 68: ↑64 and ↓4+60
Comments14

Парсинг CSV-файла средствами bash и awk

Reading time3 min
Views8.7K
Доброго времени суток, Хаброчитатель!

Возникла у меня необходимость перевести интерфейс одной системы. Перевод для каждой формы лежит в отдельном XML-файле, а файлы группами разбросаны по папкам, что очень неудобно. Решено было создать единый словарь, чтобы в Excel’е работать с переводом всех форм. Данная задача в свою очередь разбивается на 2 подзадачи: извлечь информацию из всех XML-файлов в один CSV-файл, после перевода из CSV-файла создать XML-файлы с прежней структурой. В качестве инструментов были выбраны bash и awk. Первую подзадачу описывать смысла нет, так как она достаточно тривиальная. А вот как распарсить CSV-файл?
Узнать
Total votes 6: ↑4 and ↓2+2
Comments2

Массовая печать в Windows

Reading time6 min
Views41K
Иногда нужно быстро распечатать много картинок с котиками документов, а открывать для этого каждый файл совсем не хочется. Первым делом напрашивается использование контекстного меню проводника, но у этого способа есть свои ограничения и нюансы. Поэтому пришлось искать альтернативу. За подробностями — прошу под кат.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments11

256 строчек голого C++: пишем трассировщик лучей с нуля за несколько часов

Reading time8 min
Views142K
Публикую очередную главу из моего курса лекций по компьютерной графике (вот тут можно читать оригинал на русском, хотя английская версия новее). На сей раз тема разговора — отрисовка сцен при помощи трассировки лучей. Как обычно, я стараюсь избегать сторонних библиотек, так как это заставляет студентов заглянуть под капот.

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

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

Итак, сегодня я покажу, как отрисовывать подобные картинки:


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

Аплодисменты и одобрительные возгласы: тщательно управляемая драма в магазинах Apple

Reading time8 min
Views36K

Эти чрезмерно разрекламированные «гении» в гладком и прилизанном магазине Apple получают меньше, чем положено, и играют роль персонажей в хорошо продуманной сказке



Обновлённый магазин Apple в Лондоне обзавёлся деревцами в «роще гениев», и ставит своей целью стать местом, где люди просто проводят время.

Стив Джобс хотел, чтобы клиент мог понять магазин Apple «с первого взгляда», будто он стоит на горе Олимп. И магазины, вроде бы, действительно говорят сами за себя. Яркие, просторные, со стеклянной отделкой – большего контраста с гигантскими магазинами-лабиринтами, которые они должны были заменить, и желать нельзя.

Как и больших прибылей. С момента их запуска в 2001 году узнаваемые с первого взгляда магазины загребли больше денег – как в сумме, так и в пересчёте на квадратный метр – чем любой розничный продавец на планете, превратив Apple в самую богатую компанию мира. Однако эта прозрачность магазина Apple одновременно скрывает то, как делаются эти прибыли.
Читать дальше →
Total votes 70: ↑51 and ↓19+32
Comments95

Senior Engineer в поисках работы. Как я прошел 20 собеседований с HR и что я об этом думаю

Reading time16 min
Views103K
Предисловие для читателей Хабра — статья о поиске работы на рынке разработки в Украине (который в основном об аутсорсе на иностранных заказчиков), поэтому некоторые вещи могут показаться странными (LinkedIn, собеседования с заказчиками, обязательное требование разговорного английского, обсуждение ЗП в долларах) или нерелевантными для РФ. Тем не менее, статья имела большой успех на локальных ресурсах, и читатели попросили меня перевести её на русский.

Этой статьей я хочу начать цикл рассказов о том, как я на протяжении нескольких месяцев проходил собеседования в примерно 20-и разных компаниях на разные должности. Тут будут мои мысли о рынке труда, процессе найма, советы а так же несколько самых интересных историй. Цикл будет состоять из нескольких частей — HR собеседования, технические собеседования, финальные собеседования. Итак, первая часть.

Немного о себе. Программирую со школьного возраста, за деньги работаю 10 с хвостиком лет. Работал админом, программистом, тимлидом, РМ-ом, линейным менеджером. Выполнял обязанности SRE/DevOps, архитекта, HR, офис-менеджера, эникейщика.

Работал в кровавом энтерпрайзе, в стартапе, в аутсорсе. В основном занимался формошлёпством и крудами, имел дело с Java и бэкендом. За последние несколько лет пересел на фуллстек микс из Java, Ruby/RoR, Python, Node.js.

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

Всего я прошел примерно 20 собеседований с рекрутерами: половина из которых были из агенств и половина — штатные рекрутеры/HR компаний. Так что, могу сказать что некоторая статистика у меня есть.
Читать дальше →
Total votes 115: ↑108 and ↓7+101
Comments172

LaTeX: конфликт опций для пакета

Reading time3 min
Views6.9K

Перевод страницы «Option clash for package» из FAQ UK $\TeX$ Users' Group.


Я просто вставил в документ строчку

\usepackage[draft]{foo}

и теперь $\LaTeX$ ругается

! LaTeX Error: Option clash for package foo.
(Конфликт опций для пакета foo)
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments0

tig — улучшаем продуктивность работы с git

Reading time3 min
Views43K

Всем привет! Хочу рассказать о консольной утилите, которая значительно увеличила мою продуктивность работы с Git, и, надеюсь, ускорит и вашу также. Называется она tig и была написана канадским программистом Джонасом Фонсека (Jonas Fonseca) ещё в далёком 2006-м году, но по настоящий день она активно развивается и поддерживается в великолепном состоянии. Я хочу показать её функционал (внимание, есть относительно тяжелые gif-ки внутри) и поделиться самыми удобными способами использования.


Читать дальше →
Total votes 107: ↑105 and ↓2+103
Comments47

Укрощаем мультимедиа с помощью ffmpeg

Reading time3 min
Views87K

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





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

Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments33

Снова про WebDAV и Облако Mail.Ru

Reading time2 min
Views100K
В каждой теме, касающейся Облака Mail.Ru, имеются комментарии — «когда будет WebDAV?» и родственное «Как подключить Облако Mail.ru как сетевой диск?». Судя по тому, что обещают уже несколько лет (хотя в облаке для бизнеса webdav имеется), бесплатные пользователи его не дождутся.

В общем, гора к Магомету не идёт, но и Магомет как-то не торопился, хотя, казалось бы, все для этого есть — и реализации API, и реализации webdav-серверов. Вполне логично было бы взять и то, и другое и объединить.
Читать дальше →
Total votes 44: ↑39 and ↓5+34
Comments94

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

Reading time8 min
Views60K


Мы настолько привыкли к гаджетам, что уже не расстаемся с ними ни на работе, ни дома. Согласно докладу ВОЗ 2014 года порядка 300 млн человек в мире страдают от нарушения зрения. В частности, в России снижением зрения страдает каждый второй житель, особенно печальна ситуация у детей. Главной причиной такой тенденции становится неограниченное использование компьютеров и гаджетов. И сейчас никого не удивишь тем, что ты носишь очки или контактные линзы. В самих очках нет ничего плохого, но они — дополнительный и не всегда удобный предмет: от детского обзывания “очкариком” до проблем с походом на сеансы в 3D-кинотеатр. С линзами проблем меньше, но спросите любого, кто ими пользуется и узнаете много о мучениях, связанных с поисками линзы в глазу.

Но помимо традиционных способов коррекции зрения на помощь приходят различные приложения, помогающие взять под контроль вашу “неограниченную” цифровую жизнь и выделить время для глаз. Таких приложений сейчас множество, и мы подготовили для вас подборку из самых полезных.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments44

Как использовать PVS-Studio бесплатно

Reading time6 min
Views47K
PVS-Studio FreeМы хотим помочь миру программного обеспечения лучше познакомиться с инструментами статического анализа кода и повысить качество программного обеспечения. Мы предоставляем возможность бесплатного использования анализатора PVS-Studio студентам в учебных целях, индивидуальным разработчикам и коллективам энтузиастов.

Введение


Клиентами анализатора PVS-Studio являются отделы разработчиков различных компаний. Мы бы хотели, чтобы нашими клиентами были и индивидуальные разработчики. К сожалению, у нас ничего не получилось с экспериментальным продуктом CppCat. Мы не знаем, как построить успешный бизнес в сфере статического анализа кода, продавая персональные лицензии. Поэтому сейчас продукт PVS-Studio позиционируется исключительно как B2B решение.

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

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

Стоит пояснить нашу позицию. Впрочем, если вам не терпится, вы можете сразу перейти к разделу «Бесплатная лицензия PVS-Studio». Если же читателю интересно узнать подробности, то предлагаю продолжить чтение.
Читать дальше →
Total votes 150: ↑138 and ↓12+126
Comments669

Что такое свёрточная нейронная сеть

Reading time13 min
Views263K


Введение


Свёрточные нейронные сети (СНС). Звучит как странное сочетание биологии и математики с примесью информатики, но как бы оно не звучало, эти сети — одни из самых влиятельных инноваций в области компьютерного зрения. Впервые нейронные сети привлекли всеобщее внимание в 2012 году, когда Алекс Крижевски благодаря им выиграл конкурс ImageNet (грубо говоря, это ежегодная олимпиада по машинному зрению), снизив рекорд ошибок классификации с 26% до 15%, что тогда стало прорывом. Сегодня глубинное обучения лежит в основе услуг многих компаний: Facebook использует нейронные сети для алгоритмов автоматического проставления тегов, Google — для поиска среди фотографий пользователя, Amazon — для генерации рекомендаций товаров, Pinterest — для персонализации домашней страницы пользователя, а Instagram — для поисковой инфраструктуры.


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


Задача


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


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

Information

Rating
Does not participate
Location
Stuttgart, Baden-Württemberg, Германия
Registered
Activity