All streams
Search
Write a publication
Pull to refresh
144
0
Mikhail @host_m

Хостинг серверов

Send message

Как 17 обезьян спасли тысячи людей

Reading time9 min
Views28K


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

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

Ночью в помещение со спящими животными вламывается группа людей. С благородной целью — избавить бедолаг от мучений, отпустить их на волю. Но что-то идёт не по плану — открыв клетки, активисты понимают, что эти обезьяны какие-то не такие. Они не реагируют на прикосновения и не чувствуют боль…
Читать дальше →

Как и зачем хранить домашние каталоги пользователей в Git-репозиториях

Reading time5 min
Views18K

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

У меня несколько устройств: лэптоп на работе, стационарный комп дома, Raspberry Pi, портативный компьютер Pocket CHIP, а также Chromebook с несколькими версиями Linux на борту. Давно хотел, чтобы на таких разных устройствах я мог выполнять примерно одинаковые действия для настройки окружений. Поначалу я просто не знал, как этого добиться. Например, команды Bash alias я чаще использовал на работе, а многие вспомогательные скрипты хорошо работали в моём домашнем окружении.

С годами грань между моими рабочими и домашними устройствами начала стираться. Задач стало больше, увеличился и объём разнородных неупорядоченных данных в домашних каталогах, с которыми надо было как-то разбираться.
Читать дальше →

Программирование — это сложно

Reading time10 min
Views76K


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

Программирование легкодоступно


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

Чему я научился, разрабатывая биллинговую систему

Reading time6 min
Views14K


Полгода назад я устроился в финтех-стартап, имеющий примерно 15 тысяч клиентов. Моя задача заключалась в развитии биллинговой инфраструктуры. Когда я пришёл в компанию, меня немного беспокоила узость задач моей новой должности и нового отдела. Я думал: ну какая глубина может быть в биллинге? Разве у нас не закончатся задачи спустя 3-4 месяца? Клиент регистрируется, ежемесячно оплачивает подписку, вот и всё, правда ведь?

… правда?

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

Поиск всех этих пограничных случаев один за другим был не самым приятным процессом. Было бы здорово, если бы кто-то составил краткое руководство о том, что мне нужно знать. Поэтому вот и оно, моё руководство! Если вы размышляете о создании (или даже об использовании) системы биллинга, то читайте внимательно.
Читать дальше →

Windows 95 — как она выглядит сегодня?

Reading time7 min
Views63K

Windows 95 была ОС Microsoft «следующего поколения»: переделанный UI, поддержка длинных имён файлов, 32-битные приложения и множество других изменений. Некоторые из компонентов Windows 95 используются и сегодня. Как она выглядит? Давайте протестируем и разберёмся.

Я не собирался делать обзор Windows 95, потому что на самом деле она появилась не так давно. Но посмотрев видео с названием в духе «Подростки реагируют на Windows 95», я понял, что есть не только подростки, но и целое поколение 20–30-летних взрослых, которые ни разу не пользовались Windows 95 или были слишком малы, чтобы помнить её. К тому же, Windows 95 стала очень важной вехой в истории компьютеров и значительным усовершенствованием по сравнению с Windows 3.1, отдельные части которого мы используем и сегодня.
Читать дальше →

Как и почему эмодзи портят онлайн-переписку

Reading time8 min
Views39K

Разве могут эти милые значки испортить ваши отношения с подписчками или навредить в личной переписке? А что на счёт онлайн-переписки с коллегами в условиях дистанционной работы? Автор статьи на всё отвечает «да». Более того, между многобукаф и многосмайлоф он выбирает первое, считая это за меньшее зло. Почему?

Чтобы ответить на этот вопрос, он вводит критерии качества общения и выстраивает соответствующую аргументацию.

Несколько недель назад я опубликовал в Instagram Stories саморекламы пост. Через полчаса я обнаружил, что подписчики положительно отреагировали на него. Вроде бы всё хорошо, но давайте посмотрим внимательнее.
Читать дальше →

Персональный интернет-архив без боли

Reading time4 min
Views17K


Каждый веб-разработчик, да и многие пользователи рано или поздно сталкиваются с Internet Archive и необходимостью сохранить или восстановить вид важного им сайта в определённое время. С каждым годом всё очевиднее, что поговорка «интернет помнит всё» ошибочна — форумы закрываются, старые сайты тихо исчезают, информация пропадает без следа (вот хорошая статья по теме). При этом пока не существует общепринятого способа на лету сохранять важный контент без лишних телодвижений (представьте, что будет с серверами archive.org, если, скажем, в следующем обновлении Chrome будет при загрузке страницы отправлять адрес на архивацию). Спасение утопающих — дело рук самих утопающих, поэтому в этой статье мы разберём инструмент, позволяющий не просто сохранять нужные сайты, но и встраивать этот процесс в повседневную работу.

No comments

Reading time4 min
Views14K


«Комментарии должны составлять 5% от общего количества баллов», — заявил мой коллега-преподаватель.

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

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

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

Что я узнал, потратив 5 000 долларов на эксперименты с Facebook Ads

Reading time5 min
Views14K


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

С июня по ноябрь 2020 года я потратил больше 5 000 долларов на проведение различных мелких кампаний. Я провёл сотни экспериментов, тестируя рекламные тексты, изображения, аудитории и стимулы. Планировалось отметить наиболее успешные эксперименты и создать на их основе новую маркетинговую кампанию.

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

К концу эксперимента я получил фундаментальные уроки о том, как работает Facebook и что нужно для получения в нём хороших результатов.
Читать дальше →

Крутые трюки с переменными CSS

Reading time4 min
Views17K


Переменные в CSS (или custom properties, кому как удобнее) изначально задумывались для хранения повторяющихся свойств вроде цветовой палитры или шрифтов в одном месте. В препроцессорах работа с переменными куда более гибкая, но магия SASS/SCSS применима не всегда и не везде, и в реальном мире часто обходятся без них, что нередко ведёт к раздуванию и размазыванию кодовой базы по разным файлам и форматам. В этой статье мы рассмотрим несколько интересных хаков, которые позволяют построить на механизме custom properties вещи, кажущиеся невозможными без препроцессоров или вмешательства JS.

Почему стоит использовать exa вместо привычной консольной утилиты ls

Reading time3 min
Views24K

Изображение: Opensource.com

Цель автора статьи — показать, что exa может легко заменить стандартную утилиту ls. И более того, в сравнении с ls, exa — более гибкий и мощный инструмент.

Стараясь сэкономить время и силы, мы автоматизируем часто повторяющиеся и сложные операции. Например, для отслеживания изменений содержимого каталогов и информации о файлах в Linux-системах многие по-прежнему используют команду ls. Но вывод ls по умолчанию [по мнению автора] не совсем приятен для глаз, поэтому приходится выкручиваться. При работе с ls возникает ещё ряд неудобств, но в этой статье мы не будем про них говорить. И вообще, зачем тратить на это время, если есть exa?
Читать дальше →

Font size бесполезен, давайте это исправим

Reading time5 min
Views29K
Что происходит, когда вы указываете в редакторе "font_size": 32? Я бы вам всё равно рассказал, но хорошо, что спросили.

Попробуем догадаться. Я пользуюсь Sublime Text 4 под macOS:


Если мы измерим сами буквы, то нигде не найдём числа 32:

32 — это не ширина и не высота буквы, и не высота заглавной буквы, и не рост строчных знаков, и не высота верхних или нижних выносных элементов. Что за дела?
Читать дальше →

Да, синдром самозванца на самом деле полезен для разработчиков

Reading time3 min
Views14K


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

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

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

На каком-то уровне я ощущал, что мне здесь не место и что я самозванец.
Читать дальше →

На каких серверах держится Архив Интернета?

Reading time7 min
Views49K

Фото 1. Один из дата-центров Internet Archive в Сан-Франциско

Internet Archive — некоммерческая организация, которая с 1996 года сохраняет копии веб-страниц, графические материалы, видео- и аудиозаписи и программное обеспечение. Каждый может зайти в Wayback Machine и посмотреть, как выглядел Хабр в 2006 году или «Яндекс» в 1998 году, хотя загрузка архивных копий занимает около минуты (это не для реализма 90-х, а по техническим причинам, см. ниже).

Архив быстро растёт. Сейчас объём всех накопителей достиг 200 петабайт. Но Internet Archive принципиально не обращается к стороннему хостингу или облачному сервису вроде AWS. У некоммерческой организации собственные дата-центры, свои серверы и свои инженеры. Это гораздо дешевле, чем услуги AWS.
Читать дальше →

Какие изменения ждут разработчиков после выхода новой Windows 10X

Reading time5 min
Views15K
Windows 10X, Project Reunion, Windows Core OS… Слышали о том, что Microsoft разрабатывала операционную систему нового поколения? Настало время узнать, что плохого и что хорошего это принесёт.


Изображение: Microsoft

Запуск Windows 10X — важный шаг для Microsoft, он знаменует собой рождение «нового поколения Windows». Об этом на конференции Ignite 2021 много говорил Пэнос Панай, директор по продуктам в Microsoft.

Не секрет, что в этом году Microsoft запускает новую операционную систему. Представители корпорации анонсировали Windows 10X ещё в 2019 году. Система построена на основе Windows Core OS. Это современная модульная программная платформа (именно она управляет гарнитурой дополненной реальности HoloLens 2). Изначально разработчики Windows 10X ориентировались на устройства с двумя экранами (например, складной планшет Surface Neo).
Читать дальше →

По-прежнему ли актуальны контейнеры?

Reading time5 min
Views12K


При обсуждении создания нового проекта или разработке «дорожной карты» уже существующего варианты способов запуска рабочих нагрузок никогда не были столь обширными. Мы живём в эпоху, избалованную выбором платформ — можно выбирать между open-source-инструментами, платными сервисами, enterprise-продуктами и кучей всего ещё. Из-за этого принять решение о выборе стало сложнее — шансы получить «паралич выбора» растут с увеличением вариантов. В таких условиях справедливо будет задаться вопросом: по-прежнему ли контейнеры являются разумным выбором на текущий момент и на будущее, или мы уже их переросли? Чтобы ответить на этот вопрос, нужно рассмотреть альтернативы и сравнить их с контейнерами.
Читать дальше →

Распределённое хранение данных в IPFS Cluster

Reading time4 min
Views5.1K


Дисклеймер: эта статья рассчитана на понимание основных принципов работы InterPlanetary File System. Если вы не знакомы с IPFS, начните с этой статьи или загляните на ipfs.io.

Самый известный и труднопреодолимый недостаток IPFS в скорости её работы. Так как все данные разбиваются на блоки и распределяются по пирам, скорость загрузки упирается в скорость интернета (и вообще доступность) сразу нескольких машин, которые мы не контролируем. Частично это решается локальным закреплением (pin) нужных хэшей, что поможет в случае отказа отдельных пиров, но не гарантирует загрузку именно с нашего сервера (например, если запрос поступит с другой части планеты). А ещё зашифрованные и разрезанные данные гипотетически невозможно восстановить, не имея хэша, но ведь и его теоретически можно подобрать, так как вся сеть по сути публична…

Всех этих неприятностей можно избежать, запустив собственный кластер IPFS. Новичку легко запутаться и решить что IPFS это децентрализованная сеть, но на самом деле это протокол, обёртка над p2p — и на нём можно поднимать свои приватные подсети, недоступные извне, сохраняя плюсы децентрализации и все фишки основной сети.
Читать дальше →

Я пользуюсь Excel, чтобы писать код

Reading time4 min
Views30K


На своём веку я занимался многими странными вещами, о некоторых из которых не могу рассказать, однако использование Excel вместо кодинга — одно из тех постыдных удовольствий, которые я не буду ни от кого скрывать.

Всегда задавайтесь вопросом: а можно ли использовать для этого Excel?


Забудьте о тесте Тьюринга — проходит ли ваша гениальная идея программы тест Excel? Например, все пользовались простыми табличными формулами для генерации отчётов, но знаете ли вы что Excel может запросто выполнять замены регулярными выражениями, применять операторы if, и даже можно вызывать онлайн-функции, чтобы подгружать актуальные цены онлайн-сервисов?

Excel может подключаться к реальным базам данных, создавать файлы .csv и JSON, его можно запрашивать снаружи с помощью Python или других языков программирования. Можно использовать электронные таблицы в качестве базы данных, применять их для генерации контента и импортировать их на сайты Wordpress для массового создания тысяч постов агрегатора новостей или веб-сайтов с видео.

И всё это у вас под рукой, так что пользуйтесь этим инструментом и не бойтесь насмешек более слабых разработчиков, ведомых чувством превосходства, но на самом деле не знающих, что они просто тратят впустую время.
Читать дальше →

Один бинарник, любое окружение. Магия чистого C

Reading time5 min
Views35K


Как мы представляем себе кроссплатформенность? Мы пишем программу на языке, который либо компилируется в исполняемый файл отдельно для каждой поддерживаемой платформы, либо использует разновидность виртуальной машины вместо бинарника (и тогда эта среда должна присутствовать в целевых системах). Есть также и низкоуровневые языки, на которых писать серьёзные программы менее удобно, чем на высокоуровневых монстрах со своими компиляторами или рантаймами, но зато такие программы менее требовательны к предустановленному софту или наличию ОС в принципе, как и менее разборчивы в архитектуре. И всё же, есть возможность писать один и тот же код и собирать один и тот же бинарь под все популярные архитектуры и ОС (и даже bare metal), и эта возможность появилась благодаря гениальной Justine Tunney. Она написала Cosmopolitan, библиотеку на C, позволяющую исполнять один и тот же код на любой машине, подобно Java… но без какого-либо предустановленного интерпретатора или виртуальной машины! Один и тот же скомпилированный файл может исполняться как минимум в любом дистрибутиве Linux, на Mac OS, Windows NT, FreeBSD, OpenBSD, и NetBSD и на bare-metal на x86 и ARM*. Это настоящая магия.

Ваша любовь к разработке в первую очередь выгодна работодателю

Reading time8 min
Views13K


Быть неравнодушным к своему ремеслу — это хорошо, но стоит ли работать задаром?

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

Именно эти люди организуют пользовательские группы и общаются в них. Они пишут посты в блогах и публикуют подкасты. В свободное время они делают свой вклад в разработки open source.

Думаю, многие из этих пунктов относятся и ко мне. Однако, за последние несколько лет у меня возник довольно серьёзный скепсис относительно правильности такого подхода.
Читать дальше →

Information

Rating
Does not participate
Location
Meppel, Drenthe, Нидерланды
Registered
Activity