Как стать автором
Обновить
2
0
Руслан Хужин @ramilsson

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

Отправить сообщение

Создание процессора с нуля для чайников

Время на прочтение18 мин
Количество просмотров38K

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

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

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

Читать далее
Всего голосов 112: ↑112 и ↓0+138
Комментарии70

Шутки про программистов. Классификация

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров34K
Заставка сайта The Olognion, который специализируется на сатирических «новостях» про IT-индустрию

Шутки про программистов — особый вид юмора и городского фольклора. Некоторые из них рассчитаны на самих программистов, то есть понятны только им, хотя другие доступны и более широкой аудитории. В принципе, их можно классифицировать по темам. Есть несколько типичных тематик, некоторые из них мы упомянем здесь. Естественно, с примерами.
Читать дальше →
Всего голосов 80: ↑66 и ↓14+72
Комментарии134

Создаем приложение на JavaScript с помощью React Native

Время на прочтение27 мин
Количество просмотров156K
В этом уроке мы будем изучать React Native – фреймворк от компании Facebook для создания нативных приложений под iOS и Android. У него много общего с другим очень популярным фреймворком от Facebook – React Javascript, который предназначен для построения декларативных пользовательских интерфейсов.


Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии54

Всё /var/lib/docker пожрал … docker

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров10K

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

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

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

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии9

Это один из лучших подходов к изучению английского, что я видел за последние годы — коллокации

Время на прочтение7 мин
Количество просмотров123K

Значение слова – это его использование в языке
Людвиг Витгенштейн (сурс) 

Что это вообще за магия такая? Коллокация – это просто пара или группа слов, которые часто возникают вместе. Такие комбинации звучат естественно для носителей языка, однако, тем, у кого язык не родной, бывает сложно догадаться до этой естественной комбинации.

А что если я скажу, что они улучшают сразу и вашу способность органично говорить, и канонично писать, и что совсем удивительно воспринимать английский от носителей языка на слух? И главный вопрос, который меня мучает – почему я узнал об этой технике изучения языка только полгода назад? (Рассказ об этой подготовке здесь.) 

Внимательно посмотрите на пример с картинки. Как только собеседник начал(а) произносить “pitch d…” ваш мозг, зная нужные коллокации, подскажет, что там должно быть “dark”. Даже если вы плохо расслышали эту часть. Это один из механизмов, через который коллокации позволяют лучше воспринимать язык на слух.

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

Disclaimer: если у вас филологическое образование, то вам наверное будет смешно, что кто-то открыл для себя коллокации и их использование для изучения иностранного языка в 202N году, а вот если вы, как и я, когда-то читали “randomize” как “рандомизе”, то возможно эта статья будет вам полезной.

Добро пожаловать под кат
Всего голосов 72: ↑71 и ↓1+95
Комментарии116

GOST: швейцарский нож для туннелирования и обхода блокировок

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров112K

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

Сегодня я расскажу о замечательном инструменте под названием GOST. Не пугайтесь, он не имеет никакого отношения к ГОСТ-шифрованию или чему-то подобному, на самом деле это Go Simple Tunnel. Он действительно simple (простой) в использовании и настройке, но при этом невероятно мощный, поскольку поддерживает огромное количество протоколов и транспортов, из которых вы при желании сможете построить самые упоротые и бронебойные комбинации, а именно...

Читать далее
Всего голосов 145: ↑142 и ↓3+174
Комментарии114

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

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров40K

Привет! Меня зовут Павел Ахметчанов, я руководитель направления улучшения процессов разработки. В статье расскажу про часто используемые методики оценок задач и есть ли в них ошибки. Посмотрим, как правильно ставить вопросы при оценке. Узнаем, что собой представляет время решения задач, а это далеко не очевидная вещь. Попробуем изменить свое мышление и получим рецепт для определения времени решения задач. 

Если спросить любого начинающего исследователя этой темы «А зачем нам оценка?», он скажет, что постоянно задают вопрос «Когда вы выполните эту задачу?», на который и надо ответить с помощью этой оценки. А что, если сам вопрос задан неверно?

Читать далее
Всего голосов 63: ↑61 и ↓2+66
Комментарии57

Роадмэп по современному фронтенду от KTS

Уровень сложностиПростой
Время на прочтение25 мин
Количество просмотров50K

Привет! Меня зовут Фёдор, я фронтенд-тимлид в KTS и преподаватель школы Metaclass.

Эта статья — цельный план развития во фронтенде. Расскажем, что из себя представляет современный фронтенд и какие знания нужны для востребованности на рынке труда.

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

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

Читать далее
Всего голосов 47: ↑47 и ↓0+47
Комментарии14

Scrum ужасен

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров45K

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

Давайте начнём с самого начала.

Что такое Scrum?


Scrum — это Agile-система управления проектами, «помогающая людям и командам инкрементно и совместно приносить пользу» — цитата со Scrum.org.

Что касается Agile, то если вы никогда не читали его манифеста (2001 год), то определю его как компактный список рекомендаций, которым нужно следовать при разработке ПО.

Agile не является: Библией разработки ПО, догматическим набором строгих правил, тикетами Jira или коучами Agile, суетящимися в вашей компании.

Дополнение: определения несовершенны по определению (а теперь прочитайте это ещё раз).

Я с открытой душой приму любую критику о своих определениях Scrum, Agile и любых других терминов, и лишь попрошу прочитать пост целиком, прежде чем писать разгневанные комментарии!
Читать дальше →
Всего голосов 63: ↑53 и ↓10+59
Комментарии135

Современный junior frontend developer на двух работах уровня middle с общей ЗП 400к. Реальность ли в 2023 году?

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров73K

Привет. Большая и длинная история, которая только в самом конце превращается в историю успеха. Рекомендуется всем, кто хочет войти в ИТ или уже там.

Читать далее
Всего голосов 96: ↑64 и ↓32+45
Комментарии457

Кто-нибудь, остановите feature creep

Время на прочтение6 мин
Количество просмотров7.2K

На днях Apple выпустила очередную версию macOS. Но когда на презентации этой версии холёные топ-менеджеры наперебой говорили «amazing», я смотрел на анонсированные фичи и вместо «amazing» ощущал «ну блин, зачем». В macOS позволили добавлять виджеты прямо на рабочий стол, и из-за подобных вещей ощущаю, что компания постепенно захламляет свой продукт и предаёт свою собственную идеологию минимализма.

Новые фичи могут делать продукт не только лучше, но и хуже. Кто постарше — помните, как приложение NERO Burning ROM превратилось в монстра с тысячей щупалец? Ты хочешь просто записать CD-R, а ощущаешь, словно безумный комбайн поглощает всю твою жизнь. Или вот функции редактирования видео в Photoshop — это правда нужно? Может, Photoshop и без них достаточно сложная штука, а видео лучше оставить другим приложениям? А сториз в Телеграме точно делают всем только лучше, или кому-то они замусорят инструмент рабочей коммуникации? Почему мы не умеем вовремя останавливаться?

И в случае с macOS мне особенно обидно. Ведь Apple — это компания с подходом «мы не предустанавливаем на ноутбуки стороннюю дребедень за копеечку, как делают другие». С подходом «мы не обклеиваем ноутбуки рекламными наклеечками вроде Intel Inside». С подходом «ничего лишнего». А теперь она сама превращает собственную ОС в пёстрое лоскутное одеяло (не только виджетами).

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

Читать далее
Всего голосов 31: ↑28 и ↓3+33
Комментарии60

Пристальный взгляд на отладку JavaScript приложений

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров6.3K

Всем привет!


Меня зовут Паша Востриков, я делаю на JS/TS много разного в «Лаборатории Касперского»: фронт, облачные сервисы (Node.js), штуки для коробочной поставки (OnPrem), платформенные компоненты и библиотеки. И, конечно же, Open Source.


Сегодня хотел бы затронуть тему отладки веб-приложений на JavaScript.


Итак, как отлаживаться? Как-как? console.log(1)


Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии10

Капибара, Новый Старый Пикабу

Время на прочтение8 мин
Количество просмотров73K

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

Читать далее
Всего голосов 146: ↑139 и ↓7+166
Комментарии225

ChatGPT в написании юнит тестов

Уровень сложностиПростой
Время на прочтение24 мин
Количество просмотров6.6K

Добро пожаловать в мир инновационных подходов к тестированию программного обеспечения! В данной статье я хочу поделиться своим опытом использования ChatGPT — мощной модели искусственного интеллекта — для написания Unit‑тестов.

Так начал статью ИИ по моей просьбе составить вступление к эссе о том, как использовать ChatGPT при написании Unit‑тестов. Видимо, все‑таки придется писать самому, ибо градус пафоса зашкаливает, а высокопарность вызывает испанский стыд.

В этой статье я расскажу о своих наблюдениях и размышлениях при написании Unit‑тестов с помощью ChatGPT. Я рассмотрю, как использовать ChatGPT для генерации тестовых сценариев, формулировки вопросов о правильности кода, создания заглушек (moq).

Для начала давайте вспомним, что такое Unit‑тесты.

Unit‑тестирование является фундаментальным инструментом в разработке программного обеспечения, который помогает обнаруживать ошибки и улучшать качество кода. Однако, написание Unit‑тестов может быть трудоемким процессом, особенно когда приходится создавать множество тестовых сценариев для различных частей кода.

При построении запроса для написания Unit‑тестов следует учитывать несколько основных принципов, которые обеспечат эффективность и качество ваших тестов. Вот некоторые из них:

Читать далее
Всего голосов 17: ↑13 и ↓4+9
Комментарии11

Платежные системы простыми словами. Как устроены и зачем нужны Mastercard, Visa, МИР и прочие

Время на прочтение11 мин
Количество просмотров99K

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

Читать далее
Всего голосов 299: ↑267 и ↓32+276
Комментарии256

Пишем Telegram-бота для скачивания видео из VK на Spring Boot и деплоим в Kubernetes

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров16K

В последнее время на Хабре несколько раз всплывала тема загрузки видео из VK для дальнейшего просмотра оффлайн. Я решил подойти к этому вопросу немного с другой стороны, и решить вопрос с помощью телеграм-бота.

Таким образом, убиваем сразу нескольких зайцев:

не нужно ставить никаких дополнительный приложений или плагинов: скорее всего Telegram и так уже установлен на телефоне и/или на компе;

автоматическая синхронизация видео между устройствами - поставили на закачку на компе, пошли на улицу, а тот же файл - в телефоне;

Telegram позволяет загружать файлы для последующего просмотра/прослушивания оффлайн, и это работает с выключенным экраном из коробки (привет, премиум подписки vk/youtube).

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии3

Пишем простой docker-compose.yml для контейнеризации приложения (React, Spring Boot, PostgreSQL, pgAdmin)

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров45K

В данной статье описан простой пример написания docker-compose.yml файла на примере контейнеризации приложения с использованием Spring Boot на бэкенде, React на фронте, PostgreSQL в качестве базы данных и pgAdmin - для просмотра данных в базе.

Читать далее
Всего голосов 14: ↑11 и ↓3+11
Комментарии16

Самостоятельный хостинг в 2023 году

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров22K

Оригинал блога, который вы сейчас читаете, имеет идеальный рейтинг PageSpeed 100 / 100. (По крайней мере, на момент написания статьи.) Это не хвастовство, а совсем наоборот. Оказывается, достичь этого вообще не трудно. Просто хостите статическую страницу с простыми стилями, и этого достаточно. Статическую страницу создать довольно просто. Ты выпускаешь index.html и отправляешь её по проводам. Можно изощриться и генерировать её при помощи фреймворка, как я делаю в случае Astro. Но смысл моего поста не в этом.

Смысл фразы хостить статическую страницу в слове хостить. Эта страница хостится на Raspberry Pi 4b, находящемся у меня дома. Устройство обеспечивает превосходную скорость, почти ничего не стоит и имеет бесконечные возможности бесплатного расширения. В этом посте я расскажу, насколько просто было всё настроить. И о том, насколько потрясающий, по моему мнению, опыт разработки это даёт.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+35
Комментарии26

Урок на Unity. Интерактивное взаимодействие игрока с окружающими предметами в 3D с помощью меток

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров7.7K

Урок на Unity. Интерактивное взаимодействие игрока с окружающими предметами в 3D с помощью меток.

Взаимодействие с окружением без коллайдеров и лучей, на простой математике.

Бонус урока. Делаем простое пианино!

Наверно всем знаком такой элемент в игре, как всплывающая иконка рядом с игровым объектом, позволяющая с ним интерактивно взаимодействовать.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии8

Алгоритмы балансировки нагрузок

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров38K

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

В этом посте мы рассмотрим способы, которыми один балансировщик нагрузок может распределять HTTP-запросы на множество серверов. Мы начнём снизу и проделаем весь путь вверх до современных алгоритмов балансировки нагрузок.
Читать дальше →
Всего голосов 88: ↑87 и ↓1+105
Комментарии16
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Уфа, Башкортостан(Башкирия), Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Web Developer
JavaScript
TypeScript
Node.js
React
HTML
CSS