Pull to refresh
-2
0
Send message

Как ускорить игру «Жизнь» в сто раз

Reading time17 min
Views49K
image

Сложно найти человека, не знакомого с игрой "Жизнь", придуманной английским математиком Джоном Конвеем еще в 1970 году, и до сих пор не теряющей своей популярности. Многие программисты писали свою реализацию этой игры, и еще одна вряд ли кого-то удивит. Однако эта игра является отличным примером, показывающим, насколько полезной может оказаться оптимизация вычислений, даже не меняющая асимтотическую сложность алгоритма. Мы начнем с простейшей реализации на c# и будем последовательно применять различные оптимизации, ускоряя работу программы.

Мы также улучшим алгоритм на JavaScript, ускорив его в 10 раз по сравнению с неоптимизированной версией.

В конце статьи дана ссылка на код, а также на online-реализацию игры с оптимизированным алгоритмом на JavaScript, выполняющим до двухсот итераций в секунду на поле размера 1920x1080 (Full HD), где вы можете убить время поиграть в эту замечательную игру.
Читать дальше →
Total votes 83: ↑82 and ↓1+81
Comments124

Лучшие плагины и сервисы для WordPress в 2020

Reading time8 min
Views38K

По версии ресурса W3Techs, под капотом более 62% всех сайтов, построенных на базе CMS, находится Wordpress той или иной версии. Официальный маркетплейс WP содержит огромное количество различных плагинов, модулей и расширений базового функционала и разобраться в этом разнообразии — не самая простая задача. Эта статья призвана ее упростить.

Автор статьи — веб-разработчик с 12-летним стажем работы с WordPress, он подготовил подборку своих любимых инструментов для решения повседневных задач. Большинство приведённых примеров широко известны в WP сообществе, однако, есть и парочка личных открытий.
Читать дальше →
Total votes 58: ↑55 and ↓3+52
Comments23

Советы по выбору усилителя сигнала сотовой связи 2G/3G/4G/5G

Reading time9 min
Views398K

Статья подготовлена с коллегами, занимающимися установкой систем усиления сотовой связи https://t.me/usileniesvyazi.


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


Существует два основных варианта усиления сотовой связи:


  1. С помощью антенны, модема и роутера.
  2. С помощью активного усилителя (репитера).

Первый вариант для усиления интернета 3G/4G/5G, не усиливает голосовую связь в обычном для нас формате (но можно пользоваться звонками через мессенджеры: WhatsApp, Viber, Skype, Telegram).


Второй вариант универсальный – усиливает интернет и голосовую связь, но имеет ряд ограничений (о ограничениях ниже).


Читать дальше →
Total votes 60: ↑58 and ↓2+56
Comments165

Подключение к удаленному компьютеру по VNC

Reading time4 min
Views674K
Работа с VNC-клиентом. Материал ориентирован на неопытного пользователя.

1. Установка VNC-клиента
2. Подключение VNC-клиента к удаленному компьютеру
3. Отключение VNC-клиента от удаленного компьютера
4. Тюнинг VNC-клиента
5. Частые проблемы
Читать дальше →
Total votes 21: ↑11 and ↓10+1
Comments4

Дистрибутивы Linux для гейминга

Reading time5 min
Views84K
Linux предлагает как универсальные дистрибутивы для работы и игр, так и специализированные, заточенные под гейминг. В этом посте о том, какие игровые дистрибутивы Linux актуальны на сегодняшний день (сугубо ИМХО, конечно же), а вы можете поучаствовать в опросе и поделиться своим мнением на этот счёт.


Игры под Linux стали набирать популярность в 2013 году, когда Valve объявила о создании SteamOS на базе Linux. Кроме того, в январе 2013 года Valve портировала на Linux свою игру Half-Life. Пользователи Linux получили возможность играть в качественные игры, для которых в прошлом нужна была операционная система Windows или даже игровая консоль. Всё начиналось довольно скромно: всего несколько компаний (CD Projekt Red, Deep Silver, Valve и некоторые другие), добавили значок пингвина Linux в свой список совместимости. Но в конечном итоге даже Gearbox и Square Enix выпустили Linux-версии своих лучших игр. Сегодня благодаря проекту Valve Proton игры, у которых нет официального релиза для Linux, по-прежнему могут работать в SteamOS и других дистрибутивах Linux.
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments55

Python.org рекомендует: Программирование для НЕпрограммистов

Reading time5 min
Views43K
Предлагаем вашему вниманию подборку материалов от python.org о том, с чего начать первые шаги в программировании.




Если Вы никогда не занимались программированием раньше, эти материалы для вас. Данные туториалы не предполагают, что у вас есть какой-то опыт. (Если у вас уже есть опыт программирования, посетите Beginners Guide).
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments3

Как укрепить иммунитет и защититься от ОРВИ и, вероятно, COVID-19. Факты, доказанные наукой

Reading time27 min
Views65K
Самая научно-подтвержденная популярная статья в рунете. Отсюда вы узнаете конкретные способы эффективной профилактики ОРВИ и, вероятно, COVID-19, основанные на самой надёжной информации – мета-анализах клинических исследований.  

Читать дальше →
Total votes 79: ↑62 and ↓17+45
Comments126

Простыми словами о Twelve-Factor App

Reading time5 min
Views63K
Известный провайдер heroku поддерживает манифест, который называется «12-факторное приложение» (Twelve-Factor App). Это набор лучших практик для разработки современных веб приложений на любой платформе. Практики описывают приложения, которые готовы:
  • к горизонтальному масштабированию;
  • к непрерывному развертыванию;
  • к современным облачным хостингам.

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

Манифест (на хабре есть отличный перевод) слишком подробен и хорош для детального изучения. В этой же статье, я коротко остановлюсь на основных преимуществах.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments1

Встраиваемый компактный веб-сервер Mongoose

Reading time5 min
Views22K
В процессе разработки различных проектов на C/C++ часто возникает необходимость общаться с внешними системами или отдавать данные клиентам по HTTP. Примером может служить любой веб-сервис, а также любое устройство с веб-интерфейсом типа роутера, системы видеонаблюдения, и т.д.

Что в таком случае обычно делают? Правильно, идут протоптанной дорожкой — Apache/nginx + PHP. А дальше начинается ад, потому что:

1. Все это нужно устанавливать и настраивать.
2. Все это жрет приличное количество ресурсов.
3. Из PHP как-то надо получать данные от разрабатываемой системы. Повезет если для этого достаточно просто залезть в СУБД.

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

1. Меньше внешних зависимостей, а значит проще установка и настройка.
2. Теоретически меньшее потребление ресурсов.
3. Можно отдавать данные прямо из вашего продукта, без посредников.
Но при этом мы не желаем заморачиваться всякими тонкостями обработки HTTP-соединений, парсинга и т.п.

Такие решения есть. И в этой статье я хотел бы поверхностно познакомить вас с одним из них – встраиваемый сервер Mongoose (не путать с MongoDB).
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments25

Проекты на JavaScript для ознакомления

Reading time2 min
Views69K


Доброго времени суток, друзья!

Представляю вашему вниманию подборку из 22 проектов на чистом или, как еще говорят, ванильном JavaScript (лично я предпочитаю просто JavaScript).

Для меня это своего рода промежуточный итог в изучении JS.

Код написан в разное время, поэтому выглядит по-разному и имеет разный уровень сложности.

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

Код проектов находится ЗДЕСЬ.

Формат будет следующим: название проекта, его краткое описание, песочница.

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

Итак, поехали.
Total votes 8: ↑6 and ↓2+4
Comments0

Как я искал пацанский движок для блога

Reading time8 min
Views42K


Я много пишу в интернетах и мне захотелось завести свой личный стэндалон блог, куда можно писать мелкие заметки и статьи, не подходящие для других площадок. Главная проблема личного блога — мне лень оформлять посты. Чтобы черкануть пару строк в каком-нибудь Wordpress, нужно слишком много телодвижений. Я попробовал несколько разных движков и каждый раз ловил себя на ощущении, что мне не хочется ими пользоваться, намного быстрее и проще писать в записную книжку вроде Evernote или Notion. Так я стал искать идеальный движок для блога, отвечающий всем моим потребностям.

Мои требования к идеальному движку:


  • Желательно self-hosted — я пережил много закрытий сервисов, от narod.ru до google+ и точно знаю, что рано или поздно все протухает, поэтому надежнее всего держать контент у себя. Также посты могут удалять по каким-то фейковым жалобам или по DMCA, как это происходит на Medium и LiveJournal.
  • Возможность подключения своего домена — мне нужен сайт-визитка со всеми проектами и ссылками в одном месте, где можно разместить портфолио, резюме, контакты.
  • Минимум телодвижений и интерфейса — в идеале интерфейса CMS вообще не должно быть видно, админская панель не нужна, посты должны редактироваться, создаваться и просматриваться в одном месте.
  • Полноценный WYSIWYG редактор — поддержка разметки Markdown и обработка её в реальном времени, подсветка кода, вставка картинок из буфера обмена.
  • Нормальные комментарии — возможность оставлять анонимные комментарии и авторизовываться через максимум соц. сетей для персонифицированных комментариев.
  • Минималистичный внешний вид — я не хочу заниматься версткой и темами, подходящее оформление должно быть из коробки.


Внутри я рассказываю какой вижу идеальную CMS, редактор постов и комментарии, почему большинство существующих движков устарели на десять лет, и сравниваю между собой разные движки.
Total votes 94: ↑87 and ↓7+80
Comments80

iMX6ULL. Переход к процессорным модулям

Reading time8 min
Views24K

Доброго времени суток!
Внимание, много текста и фоток. На рынке можно встретить множество вариаций одноплатных ПК с шилдами или решения «все в одном». Одни заточены под конкретные задачи, например, сбор и отображение данных, другие универсальные и включают в себя всевозможные интерфейсы на все случаи жизни. Существенные отличия наблюдаются также и в конфигурации, типах крепления, соединительных разъемам, форм-факторе и т.д. Для чего разрабатывать свое устройство, спросите Вы, если можно выбрать уже имеющееся в продаже? Несколько лет назад, вертя в руках плату на IMX6Q – «BD-SL-i.MX6» от Freescale (читаем NXP) появилась идея сделать модуль, который бы …
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments41

Хельсинки: город счастья и уюта

Reading time8 min
Views54K


Финляндия — это Нокия, сауны, хоккей, лыжи, тяжёлый металл, Angry Birds. И ещё самые счастливые люди на планете на 2018 по WHR (это, скорее, экономические показатели, чем желание радостно смотреть ковёр всё время).

Краткая история: сначала была просто земля с местными народами, потом территория вошла в состав Швеции надолго, в 1809 году перешла в состав Российской Империи (но получила нехилую независимость, даже собственная марка ходила), а сразу после прихода большевиков ко власти стала отдельной страной с разрешения Ленина. То есть жители некогда части Империи пропустили весь сюжет с девяностыми и с СССР. Точнее, видели часть его в перекрестье снайперского прицела во время войн 39-44 годов.

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

Начнём с того, что это самый безопасный город мира на случай ядерной войны. Потому что лет 60 назад тут начали с азартом копать туннели и выкопали почти второй подземный город в скале.
Читать дальше →
Total votes 157: ↑150 and ↓7+143
Comments260

C++/Qt: пора валить?.

Reading time14 min
Views104K

image


Если бы раньше я запускал новый долгоживущий проект, в котором основные функции связаны с большим объёмом вычислений при каком-то взаимодействии с пользователем через графический интерфейс, я бы не задумываясь использовал С++/Qt. Это позволяло использовать один фреймворк/язык везде, независимо от структуры проекта и его компонентов, без дополнительных сложностей с зоопарком технологий и зависимостей.

Сейчас, в свете присходящего с Qt, придётся менять подход...


Читать дальше →
Total votes 100: ↑74 and ↓26+48
Comments306

Большое тестирование процессоров различных архитектур

Reading time19 min
Views36K

Предисловие


Попытка сравнить производительность процессоров на разнородных архитектурах x86-64, e2k (Эльбрус), mips и arm.


Все тесты написаны на языке C (взяты из исходных кодов, которые я не модифицировал и не оптимизировал) и компилируются под конкретную архитектуру с использованием конкретного компилятора для данной архитектуры и тесты производятся на различных дистрибутивах операционных систем на ядре Linux. На результаты может влиять как тип так и версия компилятора, а также режим оптимизаций. Хотя даже таким способом можно примерно сравнить производительность процессоров на разных архитектурах.


P.S.: Знаю, что большинство тестов для очень старых компьютеров, но они работают везде. Что даже очень неплохо.

Читать дальше →
Total votes 46: ↑44 and ↓2+42
Comments62

Игровая консоль stm32

Reading time6 min
Views16K
Немного шутеров для stm32; как, зачем, что получилось.



Предисловие


Будучи поклонником «старой» школы шутеров с одной стороны и embedded-разработчиком с другой, я всегда испытывал интерес, как и почему авторам той эпохи удавалось воплощать новый жанр, требующий совершенно новых подходов на весьма «скромном» железе. И я решил попробовать запустить нечто подобное используя решения на основе современных МК — тут и bare-metal и «скромные» ресурсы и довольно мощный инструмент отладки (stm32, имхо). И так, мой выбор пал на плату разработчика stm32f769i discovery.

Примечания


На текущий момент сборка возможна только из среды Keil MDK (загрузчик, игры) или же с помощью arm-gcc + make (только загрузчик). На данный момент доступны порты для — Quake I (+mods), Doom (+mods), Duke Nukem (+mods), Hexen, Heretic. С учетом всех модификаций, список может быть значительно расширен.

Начнем


В настоящей статье я постараюсь коротко изложить основные идеи и принципы их реализации на пути к созданию игровой консоли в частности для stm32f769i discovery. Так же, я постараюсь избегать развернутых технических подробностей, я скорее преследую цель познакомить читателя с еще одним вариантом использования современных МК. Под «игровой консолью» — я подразумеваю самостоятельное устройство с возможностью запуска «пользовательских» приложений без обновления основного ПО.
Total votes 29: ↑29 and ↓0+29
Comments11

5 бесплатных инструментов, повышающих продуктивность труда веб-разработчика

Reading time4 min
Views34K
Автор статьи, перевод которой мы сегодня публикуем, говорит, что один из способов разумной организации труда разработчика заключается в использовании инструментов, позволяющих достигать большего, прикладывая меньше усилий. Здесь он хочет рассказать о 5 замечательных инструментах, которые позволят любому разработчику повысить производительность своего труда. Вот видео, в котором сделан обзор этих инструментов.


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

Как стать долларовым миллионером за 30 лет, лежа на диване

Reading time12 min
Views239K


На Хабре недавно вышел пост ״Новичкам фондового рынка: честные разговоры о трейдинге״. Этот пост, опубликованный в одном из самых читаемых блогов Хабра, вводит людей в заблуждение и создает у них ложное представление о том, что игра на бирже — хороший способ заработка. Это вынудило меня написать комментарий, постепенно переросший в целую статью, с детальным разбором того, почему трейдинг — это не способ разбогатеть, а способ потерять деньги, и о том, как на самом деле заработать на инвестициях.
Поехали!
Total votes 308: ↑291 and ↓17+274
Comments557

React Native для самых маленьких. Опыт мобильной разработки

Reading time16 min
Views49K
Однажды, в одной продуктовой команде захотели разработать мобильное приложение, чтобы проверить гипотезу востребованности продукта и его удобства для пользователей. И то, что в команде не было мобильных разработчиков, не помешало. Два фронтенд-разработчика взяли React Native и за три месяца написали приложение. Тестирование гипотезы прошло успешно, приложение продолжает развивается и вызывает интерес других команд в компании.


Изображение из описания инструмента: www.semrush.com/news/position-tracking-on-the-go.

Это краткое описание истории команды Артёма Лашевского, который на три месяца из фронтенд-разработчика стал мобильным. Подробнее, как это произошло, читайте в расшифровке доклада Артёма на FrontendConf 2019: что такое React Native, почему именно он, пошаговая инструкция создания приложения и выбор нужных библиотек и компонентов.
Total votes 27: ↑25 and ↓2+23
Comments3

Windows Server или Linux-дистрибутивы? Выбираем серверную ОС

Reading time6 min
Views82K


Операционные системы — это краеугольный камень современной индустрии. С одной стороны они потребляют ценные ресурсы сервера, которые можно было бы пустить на что-нибудь более полезное. С другой — операционная система выступает оркестратором для приложений сервера и позволяет сделать из однозадачного вычислительного комплекса многозадачную платформу, а также облегчает взаимодействие всех заинтересованных сторон с оборудованием. Сейчас основной мейнстрим серверных ОС — это Windows Server + несколько Linux-дистрибутивов различной направленности. Каждая из этих операционных систем имеет свои плюсы, минусы и ниши применения. Сегодня мы кратко поговорим о тех системах, которые поставляются вместе с нашими серверами.
Читать дальше →
Total votes 71: ↑41 and ↓30+11
Comments151

Information

Rating
Does not participate
Registered
Activity