Search
Write a publication
Pull to refresh
0
Александр @Sleipnirread⁠-⁠only

User

Send message

Почему проекты в IT занимают в 2-3 раза дольше, чем планируется?

Reading time3 min
Views24K
Мы с другом решаем пойти в поход от Сан Франциско до Лос Аджелеса, чтобы заскочить в гости к нашим друзьям на Ньюпорт Бич. Посмотрим на карту и примерно прикинем путь по берегу:

image

Путь займёт около 400 миль, в день мы можем пройти 4 мили в час по десять часов, так что придём мы туда примерно через 10 дней. Мы звоним друзьям и бронируем столик на 6 вечера в воскресенье.

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

Используем хабракомментарии как машину Тьюринга

Reading time1 min
Views7.6K

Как это вообще взбрело мне в голову?



У каждого хабракомментария есть свой адрес. Строение адреса коментария:
habrahabr.ru/blogs/gtd/135090/#comment_4486120
То что до "#" — это ссылка на топик, а после — якорь, указывающий положение комментария на странице.
Если в комментариях указывать ссылки на другие комментарии, а потом жмякать по ним, то страница будет прокручиваться до нужного места. Еще у самих коментариев есть пара стрелок ↑ ↓ позволяющих перемещаться между ответами на комментарии.
«Эй!» — подумал я, — «что-то в этом есть». Сначала я размышлял над пределом запутанности комментариев, если в них ставить ссылки друг на друга. Но потом понял что тут кроется вообще что-то из элементарного программирования, сильно похожее на машину Тьюринга. Но какой-то детали не хватало, а ссылки в содержании комментариев использовать не хотелось. На помощь пришло добавление в избранное!
Читать дальше →

Новая технология позволяет быстро встраивать новые объекты в изображения

Reading time2 min
Views3.4K


В принципе, даже для опытного графического дизайнера встраивание какого-либо нового объекта в существующее изображение (фотографию) — довольно сложная задача. Конечно, уровень сложности подобной проблемы варьируется, но все же это не дело пары минут. А вот разработчик Кевин Карч, PhD университета Иллинойса, создал собственный «Photoshop» с тем-то и теми-то. Технология, созданная Кевином, позволяет встраивать практически любые объекты на любые изображения с высокой степенью точности.

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

Процесс изготовления печатной платы на дому

Reading time3 min
Views154K

Введение


Кому не приходилось изготавливать печатную плату? Дело это не очень сложное, а результат придаёт проекту завершённость. В этом посте я бы хотел рассказать о процессе создания печатной платы на дому. Я опишу фоторезистивный метод создания платы. Он довольно прост в применении и позволяет печатать весьма сложные платы. Более того, я обошёлся струйным принтером.

Пост содержит фотографии, видео и схемы.
Читать дальше →

Сдача сессии по-английски

Reading time9 min
Views21K
Так получилось, что мне выдалась возможность поучиться в магистратуре в университете City University London. За полгода, которые уже прошли, я увидел много нового, в том числе то, как устроена местная система образования, и успел её оценить.

На мой взгляд, подход к процессу обучения студентов за границей достаточно сильно отличается от российского — особенностей довольно много. В частности, процесс построен так, чтобы человеческий фактор в выставлении оценок всегда был минимальный, а знания, данные студенту, были измерены максимально объективно.

Так как сейчас у многих читателей Хабра сессия, я решил, что пост на эту тему мог бы быть кстати и хотел бы рассказать о том, каким образом в одном из ВУЗов Лондона проводятся экзамены, и как выставляются оценки за пройденные предметы.
Читать дальше →

Стандартный программист

Reading time3 min
Views17K
Примерно неделю назад принимал участие в конкурсе на открытую вакансию Microsoft. И провалился. Прошла неделя, мысли в голове (как же так? не может быть!) немного улеглись и я сделал некоторые выводы из этого опыта, коими и хочу поделиться с хабражителями.
Читать дальше →

Самая маленькая игра в мире (58 байт)

Reading time3 min
Views56K
Для тех, кто читал статью в песочнице: добавил раздел «Можно ли сделать игру меньше?».

Прочитав историю одного байта, вспомнил свою историю.

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

Первый прототип, размером 80 байт, был готов на следующий день. (Поскольку о контроле версий тогда я даже не догадывался, то остается верить воспоминаниям). С этого момента началась моя борьба за байты. Помню, довольно быстро размер был уменьшен до 65 (или около того), дальше каждый байт давался все с большим и большим трудом. К концу лета результат был 58 байт.

Сюжет и управление


Вы несетесь по трассе на грузовике с двумя прицепами. Слева от вас разделительная полоса, справа обочина укрытая травой. На дороге встречаются люди и деревья (может ямы). Ваша задача: не сбивать людей и не врезаться в деревья (не попадать в ямы).
Управление: стрелки влево-вправо — поворот; Esc — пауза.

Скриншоты и код

Делаем твёрдый переплёт для любимых книжек

Reading time6 min
Views552K
Небольшое вступление

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

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

Большое вступление

Некоторое время назад мне захотелось прочитать цикл Дугласа Адамса «Автостопом по галактике». Я попробовал почитать несколько переводов и не один меня не устроил. Поэтому было принято решение — читать на английском! Найти эти книги в оригинале в наших книжных магазинах довольно сложно. А если и есть, то только первая часть цикла. В электронном виде найти несколько проще. Но я предпочитаю читать с бумаги (читалку на E-ink куплю обязательно — очень нравятся), поэтому книги я распечатываю.

Первые две книги выглядели так:
image

Я их прочитал с огромным удовольствием, но выглядели они не очень хорошо. И я решил, что «Life, the Universe, and Everything» нужно делать книжкой.

Процесс с картинками и комментариями под катом. Осторожно, действительно много картинок.
Читать дальше →

Очнитесь, на дворе XXI век

Reading time5 min
Views32K


Начать статью я хотел бы с констатации того факта, что прямо за окном находится 2011 год (пруфлинк), середина апреля. Напоминаю я это в первую очередь себе, поскольку меня периодически посещают в этом сомнения. Дело в том, что как по работе, так и ради хобби я часто читаю код на С++, написанный лет 10-20 назад (но поддерживаемый и поныне) или код написанный совсем недавно, но людьми, которые учились программировать на С++ те же 20 лет назад. И вот после этого у меня и возникает ощущение, что никакого прогресса за эти годы не было, ничего не менялось и не развивалось, а по Земле до сих пор бродят мамонты.
Читать дальше →

Декодирование JPEG для чайников

Reading time9 min
Views282K

[FF D8]


Вам когда-нибудь хотелось узнать как устроен jpg-файл? Сейчас разберемся! Прогревайте ваш любимый компилятор и hex-редактор, будем декодировать это:


Jpeg file in hex editor


Специально взял рисунок поменьше. Это знакомый, но сильно пережатый favicon Гугла: Google favicon


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


Даже не зная, как происходит кодирование, мы уже можем кое-что извлечь из файла.


[FF D8] — маркер начала. Он всегда находится в начале всех jpg-файлов.


Следом идут байты [FF FE]. Это маркер, означающий начало секции с комментарием. Следующие 2 байта [00 04] — длина секции (включая эти 2 байта). Значит в следующих двух [3A 29] — сам комментарий. Это коды символов ":" и ")", т.е. обычного смайлика. Вы можете увидеть его в первой строке правой части hex-редактора.

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

Полупроводниковая электроника

Reading time30 min
Views385K


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



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





Иллюстраций: 34, символов: 51 609.



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

О том, что сегодня произошло с «аськой» (часть 1-я)

Reading time3 min
Views18K
Итак, по просьбе Shoohurt рассказываю все известное нам (команде разработчиков Miranda IM) на данный момент о проделках AOL.

Сегодня, около 13.00 МСК почти все пользователи неофициальных клиентов после входа в сеть и загрузки контакт-листа получали от пользователя с UIN 1 сообщение о том, что используемая версия клиента не используется и неавторизованна. На официальном сайте прямо на главной появилось сообщение, гласящее о том, что отныне поддерживаются только официальные версии программ, которые вот прям тут и можно скачать.

Пользователи, которые уже находились в сети, никаких изменений не почувствовали и не были отключены от сервера. У тех, кто пытался подключиться в первые час-полтора это получалось с переменным успехом: это объясняется тем, что что сеть icq распределенная и состоит из множества серверов, и даже после входа вас могут перебросить на другой, и судя по всему изменения применялись на них по очереди.

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

Решив, что сегодня повторилась ситуация 8-го декабря, когда клиенты перестали работать из-за того что во время логина идентифицировали себя как icq5.1 и более ранние версии, мы попробовали идентифицировать себя как icq6.5 последней модели. Это не принесло никаких результатов. Стало понятно, что в этот раз АОЛ пошел путем глубокой защиты — видимо теперь уже стали учитываться отправляемые капсы (capabilities, информация о поддерживаемых клиентом фишках протокола). Действительно, подмена их набора на тот, что использует icq6 помогла, однако только на время первого входа — если после этого переподключиться, то это уже не поможет. Судя по всему в последовательность входа и начальной инициализации внесли какие то изменения, при невыполнении которых клиент считается альтернативным. Разработчики QIP высказали предположение о том, что серверу нужен некий дополнительный ключ, который может как просто быть зашит в клиент, так и вычисляться на основе полученной от сервера информации. Они в настоящий момент тоже усиленно работают над поиском причины отказа клиента.

Надеюсь в течение ближайших суток — двух мы найдем причину.

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

UPD: Сейчас разработчик QIP, INF, поделился со мной мыслью о том, что все дело в используемом начальном значении идентификатора последовательности у отправляемых пакетов. Все неофициальные клиенты генерируют их случайным образом, и это может быть тот самый ключ. Основная проблема заключается в том чтобы узнать алгоритм его генерации.

Еще небольшой UPD: для наглядности можете сравнить скриншоты сайта icq.com, отдаваемые российским и американским посетителям

Обсуждение происходящего ведется в жаббере, в конфе icq_stop@conference.jabber.ru

UPD2: Как сообщает Shoohurt, завтра, возможно, в течение дня будут комментарии со стороны господ, имеющих непосредственное отношение к русской версией ICQ (Рамблер-ICQ). Следите за обновлениями.

UPD3: Сейчас нашли корреляцию между временем входа и используемым номером последовательности, так что есть зацепка, что для генерации все же используется какое то случайное число, но эту версию надо проверять. Так же как оказалось коннектятся все старые клиенты, даже icq2003b, и TestBuddy 2002 года. Плюс есть несколько сообщений о том что у некоторых провайдеров в Омске все работает нормально. В общем сейчас конечный вывод — «асечники» нашли коренное различие между официальным клиентом и всеми клонами и активно его используют.

Похоже что команда разработчиков QIP нашла решение проблемы, уже доступны рабочие билды QIP Infium 9022

Как и обещал — исправленная версия плагина Miranda IM ICQ+ — качаем

Господа, прошу терпения. Я сегодня вымотан на нет и уже больше суток без сна. Завтра я выложу весь код и объясню суть моего решения. Оно довольно тривиальное, и основано на том что исходное предположение про seq ид верно. И вообще оно слегка на подпорках.

Внимание! Продолжение истории :)

Сон и продуктивная деятельность

Reading time8 min
Views106K

Вступление


Доброго времени суток, %habrauser%! Думаю, в этой статье я не открыл ничего нового. Просто меня самого заинтересовала тема продуктивного сна. Несколько последних лет я был приверженцем мнения, что сон – это бесполезная трата времени, к сожалению необходимая организму. И посему, я максимально старался сократить время сна. Но чем больше я это делал, тем больше я начинал походить на зомби. И тогда я стал искать альтернативу. И результатом обобщения всей найденной мной информацией и стала эта статья. Итак, поехали!
Читать дальше →

Делаем приватный монитор из старого LCD монитора

Reading time2 min
Views983K


Вы наконец-то можете сделать кое-что со своим старым LCD монитором, который завалялся у Вас в гараже. Превратите его в шпионский монитор! Для всех вокруг он будет выглядеть просто белым экраном, но не для Вас, потому что у Вас будут специальные «волшебные» очки.

Всё что Вам нужно – это пара старых очков, нож для бумаги и растворитель для краски.

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

Извлечение квадратного корня с помощью нормальных алгоритмов Маркова

Reading time2 min
Views12K
Захотел я однажды вычислить квадратный корень с помощью нормальных алгоритмов Маркова (НАМ).

Кратко о НАМ:
  • Существует список замен одной подстроки на другую, называемых правилами
  • Ищем с начала списка первое правило которое можем применить и применяем его для первого вхождения
  • Если такое правило было обнаружено, то возвращаемся к предыдущему пункту и просматриваем список правил сначала
  • Если правило было заключительным, то завершаем работу
  • Если больше нет правил, которые мы можем применить, то завершаем работу

Итак, вроде бы все просто? Однако, как писать программы на НАМ?
Для себя я сделал примерно такой план:
  • Пытаемся написать обычный алгоритм использующий только строки
  • Следим за тем, чтобы последние замены не пересекались с первыми
  • Переворачиваем алгоритм и записываем с конца к началу

Итак, вернемся к вычислению квадратного корня. Мы будем использовать «детский» метод (он же арифметический), который основывается на том простом факте, что квадрат числа — это сумма нечетных чисел от 1 до 2n-1:
  • 1 = 12 = 1
  • 1 + 3 = 22 = 4
  • 1 + 3 + 5 = 32 = 9
Читать дальше →

Создаём аппаратный генератор случайных чисел

Reading time12 min
Views60K
Я хочу представить вашему вниманию программно-аппаратный вариант получения случайных чисел. Забегая вперёд, скажу, что данный вариант не единственный, и этот пост открывает мою небольшую серию статей о получении, генерации и изучении случайных чисел, или точнее сказать просто случайностей.



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

Пишем icq-бот на perl

Reading time8 min
Views2.9K
Если вы не знаете, но хотите узнать, как сделать программу, которая постоянно висит в памяти и что-то нужное периодически выполняет, и при этом вы пишете на языке perl — попытаюсь рассказать об этом как можно более понятно.
Я сам люблю подробные инструкции, которые подразумевают, что человек, её читающий, не обязан знать всё, что было пропущено. Пусть лучше он сам пропустит то, что знает и так. Тем более, что о чём-то он может иметь ошибочное представление.

Ну а чтобы не было скучно, совместим этот пример с ещё одной темой — icq, чтобы у нас получился icq-bot.

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

Новые бесплатные онлайн курсы от Stanford

Reading time1 min
Views24K
В начале текущего учебного года Stanford организовал 3 бесплатных онлайн курса (основаные на трёх стационарных курсах Стэнфорда): Machine learning, Artificial intelligence и Introduction to Database. Все курсы идут с видео лекциями и домашними заданиями. Для курсов Artificial intelligence и Introduction to Database предусмотрены ещё и экзамены. После успешного окончания любого из курсов будет выслан сертификат (digital-signed pdf) от преподавателя.

И вот, были анонсированы ещё несколько онлайн курсов, которые будут стартовать в январе/феврале 2012 года.

У нас есть замечательный шанс послушать некоторые знаменитые Стэнфордские курсы, записывайтесь!

Update Спасибо recky, который заметил, что добавились ещё несколько курсов. Один из CS секции — по криптографии, и два из Entrepreneurship секции:

UUpdate продолжают радовать, новый доступный курс:

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

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

Reading time6 min
Views116K
image

Речь пойдёт о далёком 2005 году, когда только-только вышла Civilization4 от Sid Meier. К тому времени я плотно висел в Civilization3, прошёл её раз дцать на самых разных картах, и тут вышла долгожданная четвёрка. Это были годы P3-512Mb для mid-end и P4-1Gb в hi-end. Только топовые конфиги в те годы имели два гига памяти на борту.

Civilization 4 вышла с графикой уровня года 2002-2003го, что в принципе нормально для мэинстрима тех времён, особенно учитывая что это пошаговая стратегия, а не шутер. Но жрала с течением игры до 900Mb оперативки, что приводило к жуткому свопу, особенно на больших картах, особенно к концу игры, особенно на ноутбуках. Народ недоумевал, я тоже. Учитывая, что в те же годы вышел Far Cry с куда более красивой графикой, и который вполне игрался на максимуме даже с 512Mb на борту, такое поведение Civilization 4 выглядело крайне странным. Захотелось разобраться и покарать…
Читать дальше →

Моё путешествие в будущее

Reading time5 min
Views134K


Был тихий осенний вечер. Ничто не предвещало беды. Смеркалось. Я заканчивал плановый upgrade компьютера, в процессе которого по затерявшимся уже в истории причинам понадобилось сбросить BIOS. Дело не хитрое. Расположение батарейки и перемычки Reset на материнской плате известны – вперед! После включения и загрузки Windows 7 мне в ультимативном порядке было заявлено, что на дворе далекое будущее, а именно – 14201-ый год.



Приключения только начинались…
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity