Search
Write a publication
Pull to refresh
-5
@cosmolevread⁠-⁠only

User

Send message

Sun против Intel: Питерское противостояние 2004-го года

Reading time11 min
Views18K

Эта история произошла 18 лет назад. Все сроки давности уже прошли, так что можно рассказать о тех событиях и как так получилось, что две огромных технологических компании буквально дрались за коллектив из 150 человек. Но прежде надо немного объяснить, что же это был за коллектив и чем он был примечателен.


Прежде, чем начать, хочу отметить, что на протяжении всего изложения мои симпатии будут с Sun.

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

Linux за 2$/100 рублей: Какой UMPC можно получить, покопавшись на барахолках?

Reading time6 min
Views21K

Всем привет! Вот и подошла следующая часть из моего цикла статей очень дешевых девайсов, которым я всегда стараюсь найти применение. И на этот раз, я хочу вам показать еще одну классную сторону онлайн-барахолок(дабы не было рекламой - названия не упоминаю, но вы и сами догадались). Китайцы многое делают, чтобы сделать рынок UMPC как можно более дешевым и доступным - Lctech выпустили свою высокоинтегрированную плату Pi Zero на бутербродном AllWinner F1C100S - в который уже встроено 32/64мб ОЗУ, и цена которого - около 900руб на AliExpress. Я же предлагаю собрать UMPC за 100-500 рублей, и без единого кликбейта, на гораздо более мощном железе и с встроенным Wi-Fi, иногда 3G, полным USB стеком и встроенной NAND памятью 4-8гб. Интересно? Добро пожаловать под кат!

Окунуться в мир UMPC

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

Reading time5 min
Views38K

Всем привет! Меня зовут Максим, я управляющий партнёр в KTS и сегодня делаю каминг-аут: я сутулый. Компрессионный перелом позвоночника в детстве пошатнул здоровье моей спины, а работа за компьютером его добила. Рассказываю и показываю, как я справился с этой проблемой.

Читать далее

Виды анимации на верстке: свойства, особенности, примеры кода

Reading time10 min
Views29K

Frontend-разработчик нашей компании Данила Абрамов рассказывает, как оптимизировать анимации и делать их плавными. В статье разберем CSS Transition, CSS Animation, SVG animation, JS-Анимацию, JS canvas и JS. WebGL / ThreeJs.

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

Читать далее

rate limiter (sliding window)

Reading time2 min
Views10K

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

1) хранить историю во внешнем источнике данных, как redis. Для вычисления возможности отправить запрос, нужно каждый раз ходить в этот источник данных, что может быть непозволительно в некоторых сферах (так как существенно увеличивается время обработки запроса)

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

3) хранить историю запросов локально, но использовать алгоритм leaked bucket, но это не позволяет накидать несколько запросов и ждать

4) хранить историю запросов локально, но использовать алгоритм sliding window, можно накидать запросов и ждать какое-то известное время

О реализации sliding window для java пойдет речь в этой статье.

Читать далее

Как ускорить работу PostgreSQL с помощью конфигурации базы и оптимизации запросов

Reading time12 min
Views51K

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

Администратор баз данных в Southbridge и ведущий инженер компании Data Driven Lab Иван Чувашов занимается базами данных 15 лет и сегодня хочет поговорить про оптимизацию запросов. Разбирать все будет на примере PostgreSQL, так как именно с этой базой он сейчас работает плотнее всего.

Эта статья — конспект бесплатного вебинара об оптимизации PostgreSQL от «Слёрма». Если вам удобнее смотреть, а не читать, переходите на YouTube.

Читать далее

Почему после 25+ лет в профессии и десятка-другого языков я бы рекомендовал начинать с Java

Reading time8 min
Views12K

Когда-то в мире был только Си. Или Бэйсик. Или Паскаль. Это если не считать ассемблер для КР580ВМ. И хотя в книгах можно было найти упоминание ещё и о Фортране, но уже тогда, вместе с упоминаниями, были и предостережения о не самом удачном выборе, если бы вам вдруг захотелось писать на этом языке. Так выглядел мир глазами школьника из СССР.

Начинать тогда предлагалось с Бэйсика. Журнал "Наука и жизнь" так прямо и указывал. А заодно предлагал серию статей, заменявших вводный курс программирования начинающим хакерам. Была, конечно, ещё и "Техника молодёжи" с её занимательно составленным введением в программирование, но только на программируемом калькуляторе. Сегодня, наверное, сложно себе представить, как можно было увлечься каким-то программируемым калькулятором, ведь все с детства привыкли к айфонам с андроидами, но в те стародавние времена, когда книг с фантастикой в местной библиотеке было мало, школьники как некое чудо воспринимали коротенькие фантастические рассказы в "Технике молодёжи", сопровождавшиеся показом, как можно самостоятельно рассчитать все манёвры главного героя около Луны и летавшей где-то неподалёку окололунной станции.

Так мы входили в АйТи. Или в IT? Ну тогда мы даже аббревиатуры такой не знали. А потом пришлось взрослеть.

Читать далее

Превращаем старый телефон на Android в веб-сервер

Reading time4 min
Views51K

Есть ли у вас старый телефон на Android? Наверняка есть! В мире накопилось безумное количество всевозможного электронного мусора, и в среднем гражданин развитой страны меняет телефон каждую пару лет, поэтому старые телефоны, вероятно, один из самых распространённых видов электронных отходов.

У меня залежался собиравший пыль старый Motorola G5 Cedric, поэтому я решил сделать с ним что-нибудь, и теперь на нём работает веб-сервер Puma с простым веб-приложением на Sinatra.

Читать далее

Что означает I в ACID и как это можно использовать

Reading time8 min
Views6.2K

Пройдя много собеседований, выяснилось, что довольно приличная часть собеседующих, спрашивавших или как-то затрагивавших тему транзакций и их работы, не знают как работают транзакции и что означает для разработчика термин изоляция. Вплоть до архитектора в одной очень большой российской компании, для которого выводы, использованные мною для формулирования решения при прохождении архитектурной секции оказались чем-то вроде бреда. Пока готовится вторая статья (Миллиард абитуриентов МИРЭА 2), можно отвлечься и разобрать тему, продемонстрировать разработчикам что означает для них I в ACID.

Попробовать заблокировать запись

История зарождения Linux — как это было?

Reading time5 min
Views20K


25 августа 1991 года, ровно 31 год назад, в USENET-конференции comp.os.minix появилось сообщение от молодого человека по имени Линус Бенедикт Торвальдс о том, что он создал бесплатную операционную систему для 386 и 486-совместимых ПК, с отдельным примечанием: в качестве хобби, новинка не претендует на лавры серьезного профессионального проекта вроде GNU. Так началась история Linux. Официальные источники гласят, что к творчеству Торвальдса сподвигли лицензионные и функциональные ограничения ОС MINIX, в которой он тогда работал. Кое-где даже упоминается, что он вдохновлялся книгой создателя MINIX профессора Эндрю Таненбаума «Операционные системы: разработка и реализация» (Operating Systems: Design and Implementation). Однако изучая историю Linux, я случайно наткнулся на воспоминания однокурсника Торвальдса — Ларса Вирзениуса, вовлеченного в разработку Linux с самых первых дней существования этого проекта. Ларс рассказывал эту историю из «первых рук», причем излагал ее немного не так, как она описана в «Википедии».
Читать дальше →

Разбираемся что MySQL пишет на диск и зачем [часть 1]

Level of difficultyHard
Reading time8 min
Views22K

Разработчики предъявляют высокие требования к базам данных: максимальная надежность (ничего из того, что было записано не должно быть утеряно ни при каких обстоятельствах), и, одновременно, максимальная производительность при различных видах нагрузки (Запись/Чтение или OLTP/OLAP). Достичь этих требований может быть не просто. Давайте попробуем разобраться, как это делает MySQL.

Размышляя о базе данных, легко представить таблицу базы данных как HashMap/BinaryTree, отображающие первичный ключ (primary key) в структурированные записи с данными. Такое хранилище может работать in memory. Но, как только мы захотим записать данные на диск, придется использовать какие-то алгоритмы во внешней памяти. Просто положить наш HashMap на диск не получится, потому что память и диски слишком разные: чтение/запись диска производится блоками, latency диска больше чем у RAM, а еще нельзя будет воспользоваться обычными указателями и аллокаторами памяти - все это придется заменить самостоятельно.

Читать далее

Заменит ли no-code программистов? Вопрос некорректен

Reading time3 min
Views19K


Найм профессионального программиста — это слишком дорого, да и программирование — совсем не быстрый процесс. А бизнесу всегда нужно "вчера" и желательно бесплатно. Поэтому всё более популярным становится no-code подход: вы не пишете код, а просто, используя кнопки в интерфейсе и мышку, компонуете своё приложение. Звучит красиво. Так можно создать типовое приложение, накидав туда компоненты. Вот пример рекламной статьи no-code системы Bubble, в которой, по сути, говорят, что для стартапа программисты уже не нужны, по крайней мере — на начальном этапе.


Или если у вас есть условный эксель, где вы можете выделить нужные строки и посчитать их сумму, построить график, и т.д. — вам не надо это всё программировать на каком-либо языке. Всё делается в пару кликов. Это тоже no-code.


Но что же будет, если этот подход разовьётся до небес? Можно ли будет его использовать для всё более и более сложных систем? Можно ли выкинуть программистов на улицу?


Вопрос некорректен

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

Отмена релокейта в Болгарию, плесень и ремонт, или как я переехал в деревню

Reading time11 min
Views20K

Всем привет. Меня зовут Павел Кишеня, я работаю в REG.RU системным администратором. Два года назад я переехал из Минска в область, деревню Лещёвцы. В этой статье я расскажу, как и почему я переехал, какие здесь условия для работы и жизни и причем здесь плесень.

Читать далее

Пособие по программированию модулей ядра Linux. Ч.1

Reading time19 min
Views49K

Перед вами последняя версия пособия по программированию модулей ядра Linux, вышедшего 2 июля 2022 года. Пособие большое, поэтому материал будет разбит на серию статей. В первой части мы разберём, что такое модули ядра, рассмотрим необходимые подготовительные этапы для их создания и в завершении по традиции напишем первый простейший модуль «Hello world», попутно разобрав вопросы лицензирования, передачу аргументов командной строки и прочие нюансы. Это пособие вы можете смело воспроизводить и изменять в соответствии с условиями Open Software License v 3.0.
Читать дальше →

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

Reading time8 min
Views71K

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

Не ждите, пока он обустроится


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

It is Wednesday, my java dudes, или насколько сложно сделать свою JVM

Reading time11 min
Views11K

Что делать, если накануне переезда повысилась тревожность, а привычные методы не приносят успокоения?

Конечно же вырабатывать дофамин через решение упоротых инженерных задач!

Мне стало интересно - насколько тяжко было бы сделать свой интерпретатор байт-кода Java? И насколько сложно было бы научить его “новым трюкам”?

Писать я буду на Rust, поэтому и проект, не мудрствуя лукаво, назвал Rjava.

Читать далее

Как я развёртывал прямой proxy на базе nginx

Level of difficultyMedium
Reading time6 min
Views47K

Ты как специалист в области IT, после февральских событий скорее всего столкнулся с проблемой недоступности некоторых ресурсов и наверняка подумал о том, как это дело обойти. Но использовать "бесплатный" или сторонний сервис кажется небезопасным или не даёт нужную ширину канала. У тебя есть навыки работы с Linux и свой сервер где-нибудь за бугром. Почему бы собственно говоря не сделать свой прямой прокси?

Читать далее

Майк Роу и его софт: как 17-летний школьник случайно развязал битву за доменное имя

Reading time6 min
Views30K

Если посетить сайт MikeRoweSoft.com, произойдет автоматическая переадресация на главную страницу портала Microsoft. Неужели это одно из доменных имен, выкупленных корпорацией в целях защиты от киберсквоттинга или фишинга? Ответ на этот вопрос – и да, и нет. Под катом мы расскажем историю появления «странного» доменного имени MikeRoweSoft.com и узнаем, что стало с его автором, канадским парнишкой Майком Роу.

Читать далее

SEO стратегия — 5 бесплатных инструментов от Google для обновления

Reading time4 min
Views3K

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

Читать далее

Information

Rating
Does not participate
Registered
Activity