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

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

Send message

Shadow – гибрид сетевого симулятора и эмулятора

Reading time4 min
Views6.5K

Shadow запускает реальные приложения, такие как Tor или Bitcoin. Изначально он создавался для экспериментов над Tor, но вырос в крупный проект, который широко используется для исследований в таких местах, как Кембриджский и Колумбийский университеты. В этой статье будут рассмотрены главные особенности проекта, описаны его плюсы и минусы, а также разобран простой пример работы.
Читать дальше →

Используем GPU для повышения производительности JavaScript

Reading time7 min
Views17K
image

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

Но думали ли вы об использовании мощи GPU для повышения производительности веб-приложений?

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

Что такое GPU.js и почему его стоит использовать?


Если вкратце, GPU.js — это библиотека ускорения JavaScript, которую можно использовать для любых стандартных вычислений на GPU при работе с JavaScript. Она поддерживает браузеры, Node.js и TypeScript.

Кроме повышения производительности есть и множество других причин, по которым я рекомендую использовать GPU.js:

  • В основе GPU.js лежит JavaScript, что позволяет использовать синтаксис JavaScript.
  • Библиотека берёт на себя задачу автоматической транспиляции JavaScript на язык шейдеров и их компиляции.
  • Если в устройстве отсутствует GPU, она может «откатиться» к обычному движку JavaScript. То есть вы ничего не потеряете, работая с GPU.js.
  • GPU.js можно использовать и для параллельных вычислений. Кроме того, можно асинхронно выполнять множественные вычисления одновременно и на CPU, и на GPU.

Учитывая всё вышесказанное, я не вижу никаких причин не пользоваться GPU.js. Давайте узнаем, как его освоить.
Читать дальше →

Py4J – мост между Python и Java

Reading time4 min
Views17K


Название Py4J можно встретить разве что в списке библиотек, используемых PySpark, но не стоит недооценивать данный инструмент, который обеспечивает совместную работу Python и Java. В этой статье будет кратко описана работа Py4J, рассмотрен пример использования и перечислены сильные и слабые стороны библиотеки. В конце будут описаны альтернативные способы связи Java и Python.
Читать дальше →

Бизнес, делающий аристократов

Reading time13 min
Views6.7K

Знание истории полезно, как и любое знание, если его применять правильно.

Наверное, семья бергамцев Тассо знала ту часть истории, где рассказывалось об организации почты во времена Римской империи. И это знание позволило им со временем стать основателями самой крупной почты средневековой Европы.

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

Например, предания рассказывают о Амадео Тассо, который в 1290 году, когда Милан захватил и присоединил к себе Бергамо, силами 32 своих родственников, организовал постоянное курьерское сообщение между Миланом, Венецией и Римом. Ничего больше о той «почте» нам не известно, как долго она просуществовала и какое значение имела — не ведомо. Но знаем о папском покровительстве «бергамаскам» — этим словом, которое стало тогда синонимом слова «курьер», называли работников этой службы.
Читать дальше →

Почему стоит использовать тег <picture> вместо <img>

Reading time6 min
Views57K
image

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

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

Выбор между тегами picture и img может показаться мелким решением, но сделав правильный выбор, вы сможете повысить и удобство для пользователя, и производительность.

В этой статье мы расскажем о различиях между тегами picture и img и объясним, почему тег picture более совершенен, чем img.
Читать дальше →

Сравниваем четыре опенсорсные альтернативы Disqus

Reading time4 min
Views8.7K


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

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

Reading time5 min
Views20K
Прежде чем приступать к разбору, полезно будет вспомнить технологический уровень того времени. Типичным мобильным телефоном, доступным для потребителей в 1994 году, был Nokia 2110, имевший вес 236 г, толщину 25 мм и маленький монохромный экран с разрешением 96x96:


Nokia 2110

Ноутбуки были тяжёлыми и дорогими, смартфоны ещё не изобрели, и в течение последующих десяти лет никто и думать не мог об iPhone или Android. Таким образом, появление в 1996 году устройства Palm Pilot, относительно дешёвого и лёгкого, которое можно держать в ладони и использовать в качестве карманного персонального компьютера (КПК), стало огромным шагом вперёд. Эти устройства стали очень популярны и держались на рынке примерно десять лет.


Palm V

Также любопытно узнать, как они работали с технологической точки зрения. Сегодня уже никого не удивишь смартфоном с восьмиядерным CPU, 8 ГБ ОЗУ и AMOLED-экраном. Типичное устройство под Palm OS имело одноядерный процессор Motorola Dragonball на 16 МГц, 2 МБ ОЗУ и LCD-экран в градациях серого с разрешением 160x160. Внутри даже не было литиевого аккумулятора, только две батарейки AA. Как оно работало? Давайте начнём разбираться.
Читать дальше →

Как превратить скрипт на Python в «настоящую» программу при помощи Docker

Reading time4 min
Views76K
Никого не интересует, умеете ли вы разворачивать связанный список — всем нужно, чтобы можно было легко запускать ваши программы на их машине. Это становится возможным благодаря Docker.


Для кого предназначена эта статья?


Вам когда-нибудь передавали код или программу, дерево зависимостей которой напоминает запутанную монтажную плату?


Как выглядит управление зависимостями

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

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

В частности, мы рассмотрим скрипты, которые должны работать как фоновый процесс.
Читать дальше →

Как я обогреваю свой дом при помощи майнинга криптовалют

Reading time5 min
Views140K
После создания собственного смарт-электросчётчика из деталей за 4 доллара я начал ежедневно проверять уровень потребления электричества в доме, благодаря чему понял, насколько дорого обходится его обогрев. Особенно потому, что всё отопление и горячая вода в моём доме с низким энергопотреблением создаётся электричеством. У меня на крыше установлены солнечные панели пиковой мощностью 4,8 кВт, но зимой они по понятным причинам покрывают не так много затрат.


В холодные дни я плачу за электричество до 6 евро в день

Что у меня есть и как это улучшить



Nilan Compact P: нагревает воздух, а также имеет бойлер на 200 литров

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

Преобразуем миры Minecraft в трёхмерные фотореалистичные сцены с помощью нейросетей

Reading time6 min
Views14K


Мы представляем GANcraft — работающий без участия человека фреймворк нейронного рендеринга для генерации фотореалистичных изображений больших миров из 3D-блоков, например, таких, которые созданы в Minecraft. Наша система получает на входе мир из семантических блоков, в котором каждому блоку назначена метка, например, «земля», «дерево», «трава», «песок» или «вода».

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

Кроме позиции камеры, GANcraft позволяет пользователю задавать семантику и стиль сцены.

«Игровухи» — история компьютерных клубов в России

Reading time17 min
Views32K
image

Это место могло шокировать неподготовленного посетителя. Подвал многоэтажки. Старый, сырой и пыльный, местами черная плесень и паутина. Иногда встречалась живность в лице мышей, крыс. При советах когда-то здесь располагался склад под картошку и хозяйственный инструмент, ныне весь сворованный на всё те же хозяйственные нужды ушлыми жильцами дома.

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

Здесь царит работа обшарпанных машин, стоящих на деревянных, не менее затюканных дешёвых школьных партах и матерный гвалт, как в прибрежном порту. А в самом темном углу притаился хмурый бородатый человек с тетрадкой, время от времени выкрикивая «2-я машина, время закончилось!». Сразу же следовал писклявый встревоженный ответ, мол, ещё минуточку, но отборный «матюк» не оставлял шансы на сопротивление и если нет монет, то как говорится, прошу на выход, друг. Поход в это место был сопряжен с определенным риском, можно было остаться как без денег или вещей, так и здоровья, морального, но чаще физического. Что это за место? Прибежище орков, пиратов? Притон наркоманов или адская обитель? Всего понемногу. Это один из многих российский игровых клубов или на жаргоне — «игровуха», а на языке малолетних шалопаев просто «компы», со своим колоритом и атмосферой.

О них и поговорим.
Читать дальше →

S в аббревиатуре IoT означает «Security», или Как я лампу хакнул

Reading time5 min
Views13K


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

Полный стек лампы


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

Как без усталости кодить по восемь с лишним часов

Reading time6 min
Views89K


Всю свою жизнь я писал код неправильно.

Я думал, что достаточно просто сесть за стол, открыть ноутбук, выбрать задачу из моего списка to-do и кодить, пока не устану.

Но на самом деле такой стиль работы убивал мой уровень продуктивности спустя 2–4 часа написания кода. Я ощущал себя таким уставшим, что мне не хотелось ничего, кроме как других задач, требующих низких затрат энергии (например, code review).

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

Что же изменилось?

Мой подход к работе.

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

В статье я расскажу, как этого достиг.
Читать дальше →

Как мы устраняли ошибку Chrome, скрывавшуюся в коде со времён совместимости с Windows XP

Reading time8 min
Views15K


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

1%


Наши метрики показывают, что Chrome в среднем быстр, но временами может заметно притормаживать. Подобные страдания пользователей видны в 99-м перцентиле многих метрик, но невоспроизводимы, а поэтому с ними довольно сложно работать. Более глубокий анализ данных показывает, что «длинный хвост» производительности свойственен не 1% пользователей на медленных машинах, а множеству пользователей в 1% от общего времени.

Давайте поговорим об этом 1%.
Читать дальше →

Что делать с антинаучными теориями в интернете? Деплатформинг и гуманная цензура

Reading time7 min
Views14K


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

Хакаем WhatsApp, чтобы следить за активностью контактов

Reading time11 min
Views107K
WhatsApp сообщает пользователю статус его контактов.

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

Дисклеймер: эта статья является proof of concept, призванной привлечь внимание к проблеме, а также попрактиковать свои технические навыки. Не используйте код для слежки за людьми.



WhatsApp на Android

Эксплойт функции


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

Чтобы разобраться, я использую https://web.whatsapp.com/ в веб-браузере ноутбука вместо приложения в Android-смартфоне. То есть для создания эксплойта мне придётся иметь дело с обычным реверс-инжинирингом веб-приложения. Реверс-инжиниринг приложения для Android я оставлю на потом.
Читать дальше →

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

Reading time8 min
Views75K

Представьте, что вы могли бы работать больше и при этом быть супер-продуктивным. И знаете, что самое приятное? В этом случае вам не пришлось бы заставлять себя работать.

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

Давайте начнем.

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

Микросервисы: почему это не панацея?

Reading time5 min
Views19K


В последние годы только ленивый не слышал о микросервисах. «Долой монолитную архитектуру, микросервисы — это будущее веб-разработки!» — об этом трубят буквально все компании, в технологическом стеке которых появились Kubernetes и начали внедряться практики DevOps.

Вот только стоит ли вам что-то менять в софте, если и так все работает? Давайте разбираться.
Читать дальше →

NFT — это пирамида, и люди уже теряют на ней деньги

Reading time7 min
Views146K
image

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

Если вы ещё не создали свой первый NFT и вам интересно, как это работает, то вкратце процесс выглядит так: вы заводите кошелёк, покупаете немного Ethereum и выбираете платформу. Затем берёте одно из своих цифровых творений и платите примерно 70-100 долларов, чтобы «отчеканить» это произведение в Non-Fungible Token (невзаимозаменяемый токен). Выбираете начальную цену и ждёте, когда начнут поступать ставки. Можно даже подготовиться к аукциону, чтобы создать ажиотаж.
Читать дальше →

Портируем DOOM на serverless-платформу

Reading time7 min
Views3.8K

Благодаря своей открытой кодовой базе и чистым абстракциям DOOM компании id Software стал одной из самых портируемых в истории игр. Мне показалось, что это идеальный проект для портирования на платформу Compute@Edge, созданную в нашей вычислительной serverless-среде, для экспериментов с различными способами применения нашего продукта.

Демонстрация интерактивной работы DOOM на Compute@Edge позволила бы расширить границы производительности продукта и показать его удивительные возможности. В этой статье я расскажу, как мы этого добились.
Читать дальше →

Information

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