Немного познакомился с алгоритмами на графах. Решая одну весьма практическую задачу, я внезапно понял, что ее можно свести к абстрактной на графах. Задача по удалению ненужного. Строим граф связанных друг с другом вещей, вершин. И нужно оставить только те вершины в графе, через которые есть путь от начала в конец. Остальное удалить. Алгоритм Дейкстры по…
Читать дальше
Что мы делаем в Рождество? Кодим на ассемблере конечно же! В одном из программистких чатиков была предложена задача по удалению пробелов из строки. Понятно, что во многих языках для этого есть библиотечные функции. Однако здесь же предлагалось подумать над своей реализацией. Я сначала удивился простоте задачи, минут за 5 набросал решение на С++ с использованием…
Читать дальше
Тима играет в кубики. Для лучшего представления работы с памятью компьютера. Оранжевый дальний кубик, самый последний — это граница выделенной памяти, она двигается системным вызовом brk. Красный стоячий кубик — освобожденная память. Пока мы ее можем только пометить как свободную, но не можем освободить реально. Не можем подвинуть границу brk. Иначе бы нам пришлось сдвигать…
Читать дальше
Сегодня я делал самое необычное тестовое задание в своей жизни. Приходит некоторая фирма, приносит бинарь на 1,5 кб. Говорит, где-то внутри есть вызов MessageBox, но он заблокирован, исполнение до него не доходит. Нужно ответить что написано в сообщении MessageBox. Это задание настолько необычно для меня!!! Я привык писать код, а не реверс-инжинирить его.В общем, сначала…
Читать дальше
Хожу по собеседованиям в поиске работы. На одной из бесед дали вот такую интересную задачку. Я решал ее на языке Swift, поскольку собеседуюсь на iOS-программиста, но на самом деле язык неважен для решения. На само решение давалось 20 минут. Скажу честно, я не успел решить за столь короткое отведенное время. Может быть волнение дало о…
Читать дальше