Pull to refresh
2
0
Send message

Микросервис головного мозга

Reading time13 min
Views16K

Когда нужно делить фронтенд-часть приложения на микросервисы? Какой стек использовать? И какие стандарты использовать, чтобы не выстрелить себе же в ногу при переходе на микрофронты? Михаил Трифонов (Lead Frontend в компании Cloud) ранее уже выступал с докладами о микросервисах, получил фидбек от сообщества и с его учётом сделал новый доклад на HolyJS. А теперь мы (организаторы HolyJS) сделали для Хабра текстовую версию этого выступления.

Странно было бы делать доклад про микросервисы монолитным. Поэтому каждая глава этого поста является изолированным, слабо связанным кусочком. Так что можете читать по отдельности, а можете — целиком.

Читать далее

Высокофункциональная лень

Reading time7 min
Views8.4K

Лень и морализм

Вокруг лени есть ореол морализма. «Фуу плохо». Не хорошо быть ленивым, надо много трудиться. Лень — зло.

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

Лень: биологически основы

Эволюционные предпосылки

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

Поведенческие программы. А у всякой программы есть жизненный цикл. Есть версии программы, они могут устареть в новых реалиях. Эволюция «не успевает» за изменениями условий и среды.

Читать далее

Краткое руководство по работе с данными с помощью Miller

Reading time3 min
Views3.5K


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


Представляю вашему вниманию перевод этой замечательной статьи, в которой рассказывается о Miller — автономном, легковесном и мощном интерфейсе командной строки (Command Line Interface, CLI) для работы с данными в форматах CSV, JSON и некоторых других.


Интересно? Тогда прошу под кат.

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

Мифы об изучении иностранных языков

Reading time6 min
Views32K

Когда-то поспособствовало расширению лично моих представлений:

Одна московская знакомая росла в Нью-Йорке в 70-х: её отец был советским специалистом в ООН. Смотрят как-то юмористическую передачу на американском TV: она, подросток, ухохатывается — отец ничего не понимает, хотя прошёл какие-то немыслимые тесты и языком владел отлично.

С тех пор её работа так или иначе связана с английским. В бюро переводов, где мы познакомились, она была редактором — искала ошибки в уже сделанных переводах. Помимо прочего, она читала английскую классику в оригинале, и я был уверен, что разговаривает как по-русски. А потом услышал её беседу с англичанином и был в шоке. Её речь оказалась до чрезвычайности скудной: почти никаких устойчивых фраз или идиом — она просто передавала мысль так, чтобы её поняли (в статье «О навыке говорения» я это называю первым уровнем развития речи).

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

Вполне толковая русская девушка прожила в Англии замужем за англичанином больше 10 лет. Англоязычный ребёнок, у ребёнка игрушечный динозаврик. При мне она сделала 2 (две) ошибки в произношении слова dinosaur. Слово очень распространённое.

Житель штата Вирджиния лет 45, без особенностей (специально у его знакомых уточнил), не знал общеизвестного военного термина reconnaissance («разведка»). Оказалось, правда, что он знал сокращённую разговорную версию — recon.

Взрослые носители действительно порой не знают довольно распространённых английских слов. А два моих знакомых американца 59 лет, бывшие одноклассники, оба не знали, что у глагола swim есть 3-я форма swum.

Читать далее

Почему для открытия меню «Пуск» иногда требуется несколько секунд

Reading time7 min
Views23K

Обычно я запускаю большинство программ на своём ноутбуке с Windows 10, нажимая клавишу <Win>, после чего ввожу несколько букв имени программы, а затем жму Enter. На моём мощном ноутбуке (SSD и 32 ГБ ОЗУ) этот процесс обычно занимает лишь время, необходимое мне для ввода символов, то есть считанные доли секунды.

Обычно.

Однако иногда он занимает больше, намного больше. Порядка десятков секунд. Торможения непредсказуемы, но недавно мне удалось записать трассировку Event Tracing for Windows (ETW) одной из таких задержек. При помощи людей в Twitter я смог проанализировать трассировку и понять, почему на запуск «Блокнота» требуется примерно минута.

Прежде чем приступать к описанию анализа, мне нужно сделать два заявления: 1) у меня есть достаточное понимание проблемы, но нет решения, и 2) если вы наблюдаете аналогичные симптомы, это не значит, что их причина та же, но я дам советы о том, как понять, в ней ли дело.
Читать дальше →

Как я создавал эргономичное рабочее место для себя и теперь предлагаю другим. Часть 1

Reading time12 min
Views104K

Привет, Хабр! Меня зовут Денис Захаров. Я занимаюсь разработкой веб приложений на протяжении уже 14 лет, но история будет не об этом. Расскажу о том, как и почему я создавал эргономичное рабочее место, которое в последствии превратилось в проект E-station (EasyWorkStation). Эта штука уже несколько лет полностью заменяет мне и еще нескольким десяткам пользователей привычное компьютерное кресло и рабочий стол.

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

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

А теперь ретроспектива

20+ open source утилит для шифрования файлов на (почти) любой случай жизни

Reading time9 min
Views70K


На самом-самом деле его секреты нафиг никому не нужны. И кстати, такой ключ за 5 баксов ещё надо поискать


Шифропанкам посвящается. Мы собрали тулкит из популярных программ (преимущественно с симметричным шифрованием), которые помогут защитить личные данные от несанкционированного доступа и попросили исследователя криптографии из компании «Криптонит» прокомментировать наш выбор.


Под катом безопасные решения для шифрования файлов при помощи браузера, для быстрой защиты, пересылки, загрузки в облако шифрованных данных, криптографические контейнеры с двойным дном, десяток консольных инструментов для криптографии и комбайн, объединяющий их под единым графическим интерфейсом. А еще ответы на животрепещущие вопросы, например: «Что лучше AES, Кузнечик, Serpent или Twofish»?

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

Моя попытка сделать утилиту для очистки Linux

Reading time3 min
Views12K

Всем привет! Я начинающий разработчик на языке Go. До этого у меня был, так сказать, небольшой опыт, но в виде хобби. Во время изучения я также осваивал Linux, сейчас уже пользуюсь им как основной ОС.

Мой ноутбук довольно слабый, на борту всего 4ГБ ОЗУ, а на Windows существует программа, которая автоматически очищала оперативную память. Поискав в интернете, я понял, что нету такой утилиты, которая быстро и легко могла очистить оперативную память от мусора. Тогда я принялся попробовать написать ее самостоятельно.

В этой статье я расскажу, что я узнал об оперативной памяти и какими способами ее можно очистить.

Читать далее

Пишем драйвер ядра Linux для неизвестного USB-устройства

Reading time15 min
Views19K
image

В этой статье объяснен весь процесс, на выходе которого получается рабочий драйвер ядра Linux для недокументированного USB-устройства. Выполнив обратную разработку коммуникационного протокола USB, я покажу архитектуру драйвера ядра для USB. Кроме драйвера ядра в этой статье будет рассказано о простом инструменте для пользовательского пространства; при помощи этого инструмента можно управлять таким устройством. Конечно, придется углубиться в подробности, касающиеся конкретного прибора, но не сомневайтесь – описанный процесс с тем же успехом применим и к другим USB-устройствам.
Читать дальше →

Репликации в PostgreSQL

Reading time6 min
Views74K

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

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

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

Читать далее

Distroless контейнеры

Reading time3 min
Views20K

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

Читать далее

Полароидный CSS и совсем немного HTML

Reading time10 min
Views4.2K

В предыдущей статье у нас получился красивый слайдер («карусель») с круговым вращением. А сегодня я создам слайдер, пролистывающий стопку «полароидных» снимков.


Пока не смотрите код, сначала я должен вам многое про него рассказать. Поехали! К старту нашего курса по Fullstack-разработке на Python.

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

3D-слайдер на CSS

Reading time8 min
Views5.5K

Напишем слайдеры изображений на чистых HTML и СSS. Меняем только CSS, разметка в HTML остается неизменной. Внешний вид из-за разного CSS при этом разительно различается, а в слайдеры можно вставить неограниченное число картинок. Сначала мы создали круговой слайдер с бесконечным вращением, похожий на виджет-спиннер с изображениями. Затем мы сделали слайдер, пролистывающий стопку фотографий. Продолжение — к старту курса по Fullstack-разработке на Python.

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

Github Actions. Простой пример для уверенного знакомства

Reading time7 min
Views61K

Здесь я буду расссказывать о моем опыте настройки CI/CD c помощью GitHub Actions.

Эта статья поможет тем, кто хочет настроить автоматический деплой для личного/учебного проекта на свой удаленный сервер, пользуясь бесплатным сервисов GitHub Actions. Причем этим сервисом можно пользоваться бесплатно даже с приватным репозиторием (на момент написания статьи).

Акцентирую на тех моментах, которые для меня оказались не самыми очевидными, читая краткое руководство от Github.

Предполагается, что вы уже знаете, как пользоваться Github. По большому счету, не важно, какой у вас язык программирования или стек: главное - понять, как работают Github Actions и уметь применить его для любого проекта.

Читать далее

100 000 EUR в год теряет IT-компания при отсутствии процессов. Расчет

Reading time2 min
Views5.7K

Дано:
1. 2 команды, по 10 чел. каждая
2. найм - 2 человека в квартал.
3. средняя ЗП сотрудника - 3500 евро/мес., 20 евро/час
4. средняя ЗП руководителя - 4500 евро/мес, 25 евро/час
5. бизнес-процессы требуют доработок

Найти:
Сколько потеряет бизнес за квартал/год?

Читать далее

Бюджетный 3D принтер как конструктор. Собираем и настраиваем модель до 200$

Reading time12 min
Views15K

3D принтеры давно уже превратились в конструктор — достаточно взять популярную платформу и дополнять ее фабричными и самодельными деталями и устройствами. И по стоимости бюджетный 3D принтер оказывается на уровне конструкторов лего или фишертехник (наборы со словами «робототехника» в названии и вовсе стоят кратно дороже). К примеру, большой конструктор «Fischertechnik Dynamic XXL» (и это еще без «робо») три года назад нам обошелся в 200$ (с доставкой и пошлинами), а сегодня за эти деньги можно купить один из многих популярных экструзионных (филаментных) 3D принтеров (тоже с доставкой и пошлинами). Конечно, такая покупка сопряжена с приключениями, поскольку производитель экономит на всем, на чем только может, стараясь сохранить качество печати. Притом, даже на таких принтерах энтузиастам удается получать отличные результаты — так что тут есть чему поучиться (и не только детям).


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



Для начала модель Articulated Snake v8 вполне удалась. Использован простейший PLA филамент от неведомого китайского производителя.

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

Апгрейд не нужен, если техника 20 лет работает и не ломается

Reading time6 min
Views46K
На этот 486SX поставили веб-сервер mTCP HTTPSERV.exe. Он немножко поработал в онлайне

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

Длительное использование некоторой техники — это не страх перемен или нехватка денег. Иногда просто случайность. О каком-нибудь сервере (или сотруднике) могут банально забыть, потому что он за эти годы не завис ни разу (не обратил на себя внимания). Никто не помнит, где он и как выглядит. Работает — и работает, ок.
Читать дальше →

Алгоритм HyperLogLog, или Оцениваем мощность множества за O(1)

Reading time12 min
Views16K


Привет, Хабр! Меня зовут Максим, я учусь на третьем курсе МФТИ. Этим летом я участвовал в студенческой программе, которую проводила команда Tarantool. Если кратко, суть программы в том, чтобы самостоятельно или в команде решить исследовательскую задачу в определенный срок. 

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

Учим английский с умом: шкала CEFR, тесты IELTS и что всё это значит

Reading time16 min
Views29K

Привет, Хабр. Екатерина. Очень приятно.

Я обучаю английскому языку 17 лет, в основном как частный преподаватель, но были и несколько лет в СУНЦ МГУ, и групповые занятия в языковом центре. Диапазон обучающихся — дети от 8 лет до ЕГЭ, студенты и «молодые специалисты», топ-менеджеры и научные сотрудники. И у всех, конечно, разные цели и разные мотивации — включая уникальный случай just for fun, в котором взрослая ученица за восемь месяцев прошла от «забытого школьного» до сдачи FCE (Cambridge B2 First Exam) с присвоением уровня C1 в устной речи, и всё просто потому, что ей нравился процесс.

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

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

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

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

Читать далее

Декораторы, о которых вам не расскажут

Reading time11 min
Views31K

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

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

Цель этого краткого руководства — развеять мифы, которые вы слышали о декораторах, и показать вам другие их стороны, о которых вы и не подозревали.

Читать далее

Information

Rating
6,148-th
Registered
Activity