Pull to refresh
72
0

Пользователь

Send message

Есть ли жизнь после CentOS?

Reading time12 min
Views92K

Под конец и без того нелегкого 2020 года Red Hat преподнесла всем поклонникам CentOS весьма неожиданный «подарок», объявив о радикальном сокращении EOL восьмой версии дистрибутива и последующем отказе от дальнейшего развития проекта. Пользователи операционной системы, на протяжении многих лет занимавшей третье место по популярности в мире, оказались на распутье. Что выбрать в такой ситуации? Стать «вечным бета-тестером», перейдя на CentOS Stream? Выделить бюджет на покупку лицензии Red Hat Enterprise Linux? Или быть может попробовать одно из конкурирующих решений?
Читать дальше →

Адаптивный дизайн как антипаттерн

Reading time5 min
Views11K


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

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

Уверен, не я один часто сталкиваюсь с подобным. Лично мне нравится, когда окна моего браузера достаточно узкие, но в последние лет десять веб-страницы стали реагировать на такое предпочтение так, будто мне нужна мобильная, функционально урезанная версия страницы. Здесь кроется большая проблема, и не одна.

Пространственный газлайтинг


Одна из фундаментальных концепций, на которых основан дизайн Macintosh, первый по-настоящему клиент-ориентированный графический пользовательский интерфейс – это идея о пространственном упорядочивании человеко-машинных взаимодействий при работе с компьютером. Пользователя избавили от необходимости запоминать текстовые команды, чтобы обустраивать файлы на диске, а предоставили возможность тасовать файлы так, чтобы это было наглядно и – вот оно, озарение – запоминать их положение, как будто в пространстве. Пользователь мог вспомнить, куда положил файл, и не столь важно, как этот файл называется. Точно так мы запоминаем, куда положили кошелек, ключи или важный документ.
Читать дальше →

Этический антидизайн: как разработать продукт, не вызывающий привыкания

Reading time8 min
Views4.8K

Почему бы не сделать перерыв?


На столе, напротив открытого окна (смотрите картинку) лежит Wii Remote. Это контроллер для игровой консоли Wii компании Nintendo. Люди, которые выросли c Wii, вспомнят как в игре Wii Sports периодически всплывало окно с сообщением, вежливо напоминающим вам, что стоит сделать перерыв. Возможно, это несколько нелогично, но для такого вторжения в вашу жизнь есть несколько причин. В онлайн-играх, основанных на подписке, компания действительно могла извлечь выгоду, когда вы время от времени выходили из системы (не волнуйтесь, мы и про социальные сети тоже поговорим). Вы ведь не откажетесь от своей подписки, а каждую секунду вашего пребывания в сети вы «съедали» драгоценную серверную мощность. В других играх такие вещи, как гриндинг, хоть и заманчивы, но могут всё испортить. В Pokémon, например, если вы доведете всю свою команду до 60-го уровня, прежде чем сразитесь с Элитной четвёркой, вы выиграете, но не самым эффектным или честным способом. 

С Wii история другая. Кажется, что команда Nintendo знала, что их аудитория в основном состояла из детей. Разработчики чувствовали необходимость вмешаться, в интересах самого игрока (и, возможно, для успокоения родителей), когда ребёнок проводил слишком много времени в игре. Сейчас мы редко встречаем подобные вещи, и я всегда хотел узнать, почему.

Сервера уже не так дороги, как раньше. Механика многих современных видеоигр больше не позволяет заниматься гриндингом. Неужели Nintendo перестала заботиться о наших детях? Что ж, индустрия сильно изменилась. Сегодня многим разработчикам онлайн-игр наоборот выгодно, когда игроки проводят больше времени в сети. В мобильной игре Clash of Clans игроки могут предотвратить нападение на свою базу оставаясь онлайн. Чем быстрее вы закончите игру, тем быстрее вас заставят купить её DLC или, еще лучше, Season Pass. 
Читать дальше →

Под теплым светом кресс-салата и табака

Reading time5 min
Views4.1K
image
Табак это не только вредные сигареты, но и крутое модельное растение. Российские разработчики модифицировали, внедрив биолюминесцентные грибные белки.

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

А иногда крутые штуки создаются чуть ли не just for fun, но в итоге становятся крутыми и важными проектами. Или не становятся. Многие помнят, как в свое время затравили проект Glowing Plant на Kikstarter. В результате, несмотря на то, что они собрали $484,000, Kikstarter ввел правило, запрещающее выставлять в качестве награды ГМО-семена. В итоге, светящуюся Резуховидку Таля они не сделали. Зато смогли обойти запреты и разослали модифицированный мох.

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

Слабо поднять такой крошечный контейнер? Создаем контейнеризованный HTTP-сервер на 6kB

Reading time4 min
Views14K
TL;DR  я решил создать самый маленький образ контейнера, при помощи которого все-таки можно сделать что-нибудь полезное. Опираясь на преимущества многоступенчатых сборок, базового образа scratch и крошечного http-сервера на основе этой сборки, я смог ужать результат до 6.32kB!





Если предпочитаете видео, вот ролик по статье, выложенный на YouTube!

Раздутые контейнеры


Контейнеры часто превозносятся как панацея, позволяющая справиться с любыми вызовами, связанными с эксплуатацией ПО. Притом, как мне нравятся контейнеры, на практике мне часто попадаются контейнерные образы, отягощенные разнообразными проблемами. Распространенная беда – размер контейнера; у некоторых образов он достигает многих гигабайт!  

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

Задача


Правила довольно просты:

Релиз Node.js 16: обзор лучшего

Reading time4 min
Views16K


20 апреля состоялся релиз новой 16 версии Node.js. Среди основных изменений обновление движка JavaScript V8 до версии 9.0, встроенные бинарники (двоичные файлы) для Apple Silicon и несколько API, но обо всем по порядку.

С полным списком изменений можно ознакомиться здесь.

Node.js 16 заменит Node.js 15 в качестве «текущего» (current) релиза. Этот статус будет сохраняться за ним на протяжении следующих 6 месяцев. Затем, в октябре 2021 года, Node.js 16 перейдет в статус «долгосрочной поддержки» (long-term support, LTS). После перехода в статус LTS он получит кодовое имя 'Gallium'.

Подробности о релизах можно найти в репозитории «Node.js Release Working Group». А пока давайте пройдемся по лучшим новостям.
Читать дальше →

От версии 8 к 8.1: новый виток развития PHP

Reading time4 min
Views15K


Я уже несколько раз писал о том, что происходило с PHP за год и всегда с нетерпением ждал следующего года. Я делал это в 2020-м и 2019-м. И продолжаю делать в 2021-м. 

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

От версии 8 к 8.1


Новая мажорная версия PHP 8 появилась в конце прошлого года. Я уже много об этом писал, так что не буду здесь повторяться. Как всегда, его производительность становится всё лучше и лучше. Этот факт подтверждают тесты от Kinsta.
Читать дальше →

CORS для чайников: история возникновения, как устроен и оптимальные методы работы

Reading time17 min
Views495K


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

Если вы давно хотели разобраться в CORS и вас достали постоянные ошибки, добро пожаловать под кат.

Ошибка в консоли вашего браузера


No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com/

Access to fetch at ‘https://example.com’ from origin ‘http://localhost:3000’ has been blocked by CORS policy.


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

Эти всплывающие ошибки в процессе разработки просто раздражают. Но на самом деле, CORS — это невероятно полезный механизм в мире неправильно настроенных веб серверов, злоумышленников, орудующих в интернете и организаций, продвигающих веб-стандарты.

Но давайте-ка пойдем к истокам…
Читать дальше →

Видеоигры: лечат депрессию, снижают преступность и аддиктивные, как казино

Reading time12 min
Views15K


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

Но оправдана ли цензура по отношению к играм? Являются ли видеоигры причиной преступлений и психологических заболеваний? Что, если их влияние на эти вещи совершенно обратное? Давайте посмотрим на научные исследования.

Положительное влияние видеоигр


Игры против депрессии


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

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

Манифест: почему я не делаю свой пет-проджект постоянной работой

Reading time10 min
Views15K


Когда доходы от продаж с моего сайд-проекта пробили отметку $100k, я, к собственному удивлению, обнаружил:

Не хочу бросать основную работу.

Никакого позыва написать, что наконец-то я бросаю «крысиные бега». Не написал ни единого твита о том, как я стал творить, и «изменил собственную жизнь. (И вам это под силу! Купите мой курс!)». Не написал письма в духе Джерри Магуайера.

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

Я хочу написать новый сценарий – о тех, кто Творит По Совместительству. Давайте определим, что это такое, почему этим стоит заниматься, как дать этому ход, а потом довести до ума.

Не просто деньги


Годовой заработок в $100k всегда казался мне планкой, с которой начинается успешный «независимый доход». В лучшие годы мои родители зарабатывали меньше, а в большинстве городов $100k хватает на самообеспечение и даже на то, чтобы прокормить семью. Еще лучше, если доход целиком пассивный – мечтал, каково путешествовать по свету, а деньги пускай зарабатываются, пока я сплю.  
Читать дальше →

Обзор: как хакеры грабят банки

Reading time10 min
Views22K


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

Кардинг 


Один из самых распространенных видов «технологического» мошенничества — махинации с банковскими картами. Не удивительно, ведь сегодня практически все повсеместно расплачиваются карточками. Но безопасны ли такие платежи? 
Читать дальше →

Самые полезные новинки C++ 20

Reading time6 min
Views13K


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

Библиотека концепций C++


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

Знакомьтесь, pass

Reading time7 min
Views36K


Я много лет искал подходящую мне хранилку паролей и недавно наткнулся на Pass на HackerNews. Идея хранить пароли в git-репозитории может выглядеть странно, но в целом это неплохая идея, потому что:

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

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

Делюсь с вами переводом приветственной странички Pass.



Управление паролями должно быть простым и следовать философии Unix. Используя pass, каждый Ваш пароль находится внутри зашифрованного файла gpg, имя которого совпадает с именем ресурса или веб сайта к которому данный пароль привязан. Эти зашифрованные файлы могут быть организованы в удобные иерархии папок, скопированы с носителя на носитель и, в общем, обработаны с помощью любых утилит управления файлами командной строки.

С pass управлять отдельными файлами паролей становится крайне просто. Все пароли хранятся в ~ / .password-store, а pass предоставляет несколько удобных команд для добавления, редактирования, генерации и получения паролей. Это очень короткий и простой Shell скрипт. Он способен временно помещать пароли в буфер обмена и отслеживать изменения паролей с помощью git.
Читать дальше →

Этичность Искусственного Интеллекта

Reading time13 min
Views4K

Кадр из игры Deus Ex Mankind Divided с демонстрацией импланта, анализирующего эмоции

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

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

Получится ли сэкономить, отказавшись от Microsoft Office?

Reading time11 min
Views31K


Так или иначе, свободное программное обеспечение всегда конкурирует с проприетарным, явно или скрыто. Даже если сами авторы свободных программ не противопоставляют их закрытому софту, конкуренция идет в головах пользователей, которые выбирают платные программы или их бесплатные аналоги. Не один десяток лет с переменным успехом идут горячие баталии между сторонниками открытого и закрытого программного обеспечения: Linux против Windows, Gimp против Photoshop и, конечно же, OpenOffice/Libreoffice против Microsoft Office.

В этой статье я сделал обзор текущей ситуации противостояния офисных пакетов, рассказал про опыт крупных организаций, которые пытались перейти на бесплатные офисные пакеты (и почему у них ничего не вышло), а также о грязных способах Microsoft продвинуть свое ПО через взятки.
Читать дальше →

ФБР получил доступ к любому компьютеру в США, чтобы устранить взломы Microsoft Exchange

Reading time4 min
Views16K

ФБР получило разрешение суда на доступ к уязвимым компьютерам в Соединенных Штатах.

Во вторник Министерство юстиции США сделало заявление, что ФБР (Федеральное Бюро Расследовани) было предоставлено разрешение получить доступ к сотням компьютеров в Соединенных Штатах, на которых установлены уязвимые версии программного обеспечения Microsoft Exchange Server, с целью удаления веб-оболочек, оставленных ранее проникавшими в ПО хакерами.

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

Говоря короче, ФБР получило разрешение на удаленный доступ к компьютерам с целью удаления артефактов от произошедшей ранней крупной хакерской операции, чтобы предотвратить дальнейший доступ к этим машинам со стороны хакеров.
Читать дальше →

Стек вызовов JavaScript и ещё большая магия

Reading time7 min
Views6.7K


В начале апреля на хабре была опубликована статья «JavaScript: Стек вызовов и магия его размера» — её автор пришёл к выводу, что каждый кадр стека занимает (72 + 8 * число_локальных_переменных) байтов: «Получается, что мы посчитали все верно и можем утверждать, что размер пустого ExecutionStack в Chrome равен 72 байтам, а размер коллстэка — чуть меньше одного мегабайта. Отличная работа!»

Для затравки — немного изменим код, использованный AxemaFr для экспериментов:

{let i = 0;

const func = () => {
  i += 1.00000000000001;
  func();
};

try {
  func();
} catch (e) {
  console.log(i);
}}

Вместо 1 теперь на каждом шаге прибавляем чуточку больше, и в результате вместо 13951 получаем 12556.000000000002 — как будто бы в функции добавилась локальная переменная!

Повторим вопросы, которыми задавался Senior Frontend Developer AxemaFr: «Почему же так? Что изменилось? Как понять, посмотрев на функцию, сколько раз она может выполниться рекурсивно?!»
Читать дальше →

Information

Rating
Does not participate
Registered
Activity