Как стать автором
Обновить
9
0
Алексей @boolivar

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

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

Простые задачи на Java. Слабо решить все?

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


Привет! Мы тут собрали тусовку одних из самых крутых русскоязычных Java-практиков и попросили их дать по задаче, чтобы вы сломали зубы, мозг и бились об стену, пытаясь понять, как это работает. Собственно, мы поспорили на бутылку Хеннеси, что за 12 часов после публикации никто не пришлёт все правильные ответы. Я уверен, что кто-то сможет. Поэтому если вы это сделаете первым – с меня бутылка.

Первая задача простая, она от телезрителя Николая Гарбузова, специалиста по скалкам, любящего рекурсию, паттерн-матчинг и магию компиляции:
Скомпилируется ли следующий аспект AJC компилятором?
Если да — то что он выведет на консоль при компиляции?

public aspect QuizAspect {
    public static int count(int i) {
        return i++;
    }

    before (int n) : execution(public int QuizAspect.count(int)) 
            && args(n) && if(QuizAspect.count(1)>1) {
        System.out.println("QuizAspect " + n);
    }
}


Пока просто, правда?
Читать дальше →
Всего голосов 32: ↑24 и ↓8+16
Комментарии57

Получение пути к карте памяти SD Card на Android

Время на прочтение5 мин
Количество просмотров269K
Разрабатывая приложение для проведения соревнований, я столкнулся с проблемой хранения базы данных. Проблема состояла в том, как мне определить внешнюю карту памяти. В целом поиск в сети точного ответа не дал. Поэтому, объединив все найденные результаты, я собрал свой класс. Если кому интересно, смотрим под катом.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии16

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

Время на прочтение2 мин
Количество просмотров15K
Идея в следующем. Чтобы не было разыменования нулевого указателя, нужно, чтобы не было нулевого указателя. Ваш КО. Так сложилось, что однажды я исправил небольшую проблему в ядре Linux, но это была не текущая ветка ядра, а стабильная. В текущей, на тот момент, эту проблему тоже исправили, но по другому.
Читать дальше →
Всего голосов 38: ↑27 и ↓11+16
Комментарии17

На носу что? Google!

Время на прочтение7 мин
Количество просмотров114K
Очки Google Glass предлагают слегка дополненную версию реальности


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

В рекламной блиц-кампании были показаны несущиеся к земле парашютисты в очках Google Glass и манекенщицы, которые изо всех сил стараются выглядеть модными с умными очками на носу. В видеоролике на YouTube, рекламирующем новые очки, был показан целый день из жизни персонажа, как он встает спозаранку, ест завтрак, посещает книжный магазин, общается с друзьями, встречает закат вместе со своей девушкой… и одновременно со всем этим получает целый поток сообщений и дополнительную информацию о том, что его окружает с помощью дисплея Google Glass.
Читать дальше →
Всего голосов 93: ↑70 и ↓23+47
Комментарии95

Водитель марсохода Curiosity отвечает Хабру

Время на прочтение12 мин
Количество просмотров245K
Это свершилось! Долгожданные ответы «водителя» MSL Curiosity на вопросы, которые ему задал Хабр. Паоло Беллутта работал еще с Opportunity и Spirit, поэтому у него богатый опыт, а главное он не стесняется о нем рассказывать.

Этот замечательный перевод осуществлен Singerofthefall. Текст Паоло прислал объемный, так что мы разделили ответы напополам, и вторую часть опубликует сам переводчик. Поэтому можете его поблагодарить сейчас, а сможете и позже, когда он закончит работу над второй частью и выложит ее.[1]
[1]В квадратных скобках примечания переводчика.
Полный английский текст я выложил на гуглодоке и кто желает, может обратиться к нему, но, поверьте, в этом нет необходимости ибо перевод отличный.

Итак, начнем наше интервью:

Читать дальше →
Всего голосов 369: ↑364 и ↓5+359
Комментарии133

Задача об определении принадлежности точки многоугольнику

Время на прочтение5 мин
Количество просмотров11K
Здравствуйте, уважаемые хабравчане!
В процессе разработки приложения под Android, которое предполагает взаимодействие пользователя с графическими примитивами (точками, линиями, эллипсами, прямоугольниками и т.д.), возникла довольно неприятная ситуация: пользователь может задать произвольный многоугольник и сделать его неактивным, однако чтобы в будущем была возможность активировать данный многоугольник и продолжить с ним работь (например, переместить в другое место или добавить/удалить вершины) необходимо для неактивного объекта определить, коснулся ли пользователь данного объекта, т.е. потребовалось решить вопрос о принадлежности точки многоугольнику.

Данная задача широко известна в вычислительной геометриии и я предлагаю вашему вниманию результаты моего исследования данной темы.
Читать дальше →
Всего голосов 42: ↑35 и ↓7+28
Комментарии13

Практический опыт работы с Bitmap средствами Android

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

Не так давно по долгу службы я столкнулся с одной задачей: нужно было придумать и реализовать дизайн медиа-плеера для Android. И если продумать и организовать более или менее сносное размещение элементов управления и информации оказалось делом не хитрым, то чтобы привнести в дизайн какую-то изюминку, пришлось хорошенько подумать. К счастью, в запасе у меня был такой элемент, как картинка с обложкой альбома проигрываемой мелодии. Именно он должен был добавить красок всей картинке.
Однако, будучи просто выведенной среди кнопок и надписей, обложка выглядела бумажным стикером, наклеенным на экран. Я понял, что без обработки изображения здесь не обойтись.
Читать дальше →
Всего голосов 50: ↑43 и ↓7+36
Комментарии13

Недвоичная логика

Время на прочтение10 мин
Количество просмотров102K
В начале Второй мировой войны перед армией США остро встала проблема нехватки баллистических таблиц стрельбы, жизненно необходимых для работы артиллерии. Типичная баллистическая таблица представляет собой набор числовых данных траекторий полета снаряда, предварительно расчитанных для определенных условий стрельбы, ствола, снаряда, погодных условий и температуры воздуха. Ручной расчет лишь одной траектории занимал несколько дней, и каждая таблица обходилась в огромные количества человеко-часов.

В то время этими расчетами занимались лишь несколько высококвалифицированных специалистов, и даже увеличение штата лаборатории в 1942 году помогло незначительно. В июне этого же года был заключен контракт с Школой электротехники Мура Пенсильванского университета, которая располагала диффереренциальным анализатором конструкции Вэнивара Буша — механическим вычислителем той эпохи. Работой руководил лейтенант, а позже капитан Герман Голдстайн, получивший степень доктора математики в Чикагском университете. Именно он с профессором Брайнердом в 1943 году представил идею «электронного дифференциального анализатора» авторства Джона Мокли.

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

При общей своей примитивности (для задания программы необходимо было вручную перемещать узлы и коммутаторы) и технических трудностях эксплуатации, связанных с ненадежностью вакуумных ламп, ЭНИАК поражал своими возможностями и скоростью работы, которая не была ограничена наличием движущихся частей. В отличие от других электромеханических машин той эпохи, работавших на электрических реле, и своего преемника ЭДВАК, первый электронный цифровой компьютер общего назначения был не двоичным, а десятичным.
Читать дальше →
Всего голосов 109: ↑105 и ↓4+101
Комментарии39

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

Время на прочтение13 мин
Количество просмотров34K
В офф-топик внесены изменения

Пост написан по следующей задумке алгоритму

1.Попытка взглянуть на потенциальные (почти фантастические) возможности квантовых компьютеров
2.Обзор новых исследований и достижений
3.Обьяснить феномен квантовой сцепленности на простом примере
4. Литература


Уплотняя с помощью JPEG и MPEG визуальные материалы, вдруг странная мысль пришла в голову: в случае с виртуальной картинкой или видео речь идет сжатии двухмерного обьекта. А как же быть с трехмерным объектом (например, описанием и сжатием информационного эквивалента антропоморфного обьекта)?



Все программы сжатия данных работают по одному и тому же принципу. Программа просматривает картинку строка за строкой и разыскивает смежные пикселы, имеющие один и тот же цвет. Ясно, что описание трехмерного обьекта потребовало колоссальной по объему информации. В большом компьютере Tianhe-1A (TH-1A), предназначенном для параллельной обработки данных, содержится эквивалент 50 тыс. процессоров. А что произойдет, если заставить работать в параллель эквивалент 32 млрд процессоров?
Читать дальше →
Всего голосов 89: ↑61 и ↓28+33
Комментарии59

Создание Warcraft (часть 1)

Время на прочтение10 мин
Количество просмотров85K
Введение (от переводчика)


Так вышло, что одна из моих самых любимых игр — Warcraft II.
Каждый раз, когда эта игра где-то упоминается, или кто-то про неё вспоминает, я обычно очень радуюсь. Перед Warcraft II, разумеется, был просто Warcraft.

Патрик, автор статьиИ вот недавно случилось интересное — Патрик Вайат (Patrick Wyatt), один из тех людей, кто стоял у истоков Blizzard, и человек, который затеял разработку Warcraft начал цикл воспоминаний о тех временах. Первая статья, которую я вам предлагаю прочитать ниже — о начале разработки Warcraft. О том, откуда появилась идея; о том, какая сеть была организована у ребят в офисе, пока они грезили о мультиплеере; о EMS и тонкостях эстетики программирования под DOS; о команде проекта и так далее.

Я, увы, совсем не специалист в разработке под DOS, поэтому если читатели укажут мне на неточности в переводе, связанные с техническими деталями — буду рад и тут же исправлюсь.

Это касается, понятное дело, и любых других неточностей, опечаток, пунктуации и стилистики.




image Давным давно, в начале времен, когда игры для PC писались под операционной системой DOS, я начал работать над игрой под названием Warcraft.

Читать дальше →
Всего голосов 213: ↑200 и ↓13+187
Комментарии114

Устраиваемся программистом за рубежом

Время на прочтение16 мин
Количество просмотров63K
Как часто вас посещала мысль о трудоустройстве за границей, будь то просто временная работа или переезд на постоянное место жительство? Какую страну выбрать? Возможно ли пройти собеседования за тысячи километров по телефону и получить джоб-офер? Как будет выглядеть переезд и жизнь в другой стране? В данной статье я бы хотел поделиться личным опытом и опытом многих моих друзей работающих за рубежом.
Читать дальше →
Всего голосов 208: ↑188 и ↓20+168
Комментарии160

Механические клавиатуры

Время на прочтение17 мин
Количество просмотров762K
Все мы давно ждем массового появления всевозможных кибер-перчаток и виртуальной реальности на каждом шагу, но все равно каждый день в офисе и дома нам приходится работать за такой банальной вещью, как обычная клавиатура.

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

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

Механические клавиатуры. Путеводитель.

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

25 полезных шорткатов для Photoshop

Время на прочтение3 мин
Количество просмотров188K
Здравствуй, дорогой хабрадруг! В этой статье приводятся 25 самых полезных сочетаний клавиш (шорткатов) в Photoshop, которые вы можете использовать, для того чтобы ускорить выполнение вашей работы. Некоторые из них редко упоминаются, некоторые применяются довольно часто, а некоторые вообще доступны только в Photoshop CS5. Я надеюсь, что каждый из вас найдет новые и полезные шорткаты в этой статье. Итак, давайте же начнем!


Читать дальше →
Всего голосов 126: ↑103 и ↓23+80
Комментарии76

Паттерны проектирования

Время на прочтение2 мин
Количество просмотров48K
Здравствуй хаброчеловек!

Так уж случилось, что с этого семестра в своем вузе я записался на спецкурс по паттернам проектирования. Курс проходит в виде семинаров, на которых ты (студент) должен рассказать чему научился за неделю (имеется ввиду, какие паттерны изучил и применил на практике).
Читать дальше →
Всего голосов 47: ↑37 и ↓10+27
Комментарии29

Сайт TrueCrypt сообщает о закрытии проекта и предлагает переходить на BitLocker

Время на прочтение5 мин
Количество просмотров299K
imageРазработчики TrueCrypt ответили: сайт | твиттер
Разработчик TrueCrypt «David»: «Мы были счастливы, что аудит ничего не выявил. Мы усердно работали над проектом 10 лет, но ничего не длится вечно.»
Steven Barnhart: (перефразировано) разработчик считает, что форк навредит еще больше: «Исходный код в любом случае доступен, можете подглядывать» (The source is still available as a reference though). «Я спросил, и было очевидно в последнем ответе, что разработчики считают форк вредным, т.к. только они сами разбираются в коде». «Также он сказал, что никакого контакта с правительством, кроме когда ему предлагали „контракт на поддержку“, у него не было».
Разработчик TrueCrypt «David»: «Битлокер 'достаточно хорош' и Windows был основной целью разработки»
Цитируя разработчика: «Больше нет интереса».

TL;DR: «Новая» версия может только дешифровывать данные, и может содержать троян (хотя я и не нашел, но вы мне не верьте на слово). Бинарник подписан верным ключом разработчика. Все старые версии удалены, репозиторий тоже очищен.

На странице рассказывается о том, что разработка TrueCrypt была прекращена в мае этого года, после того, как Microsoft прекратила поддержку Windows XP, и что TrueCrypt более небезопасен и может содержать уязвимости.
Далее, на странице содержится подробная инструкция миграции с TrueCrypt на BitLocker.

На сайте есть также ссылки на бинарный файл TrueCrypt, которые ведут в раздел загрузок SourceForge, вместе с цифровой подписью. Этот файл подписан корректным (старым) ключом, а внутри него:
Читать дальше →
Всего голосов 163: ↑159 и ↓4+155
Комментарии323

Вы и ваша работа *

Время на прочтение40 мин
Количество просмотров815K
Длинный материал. Время чтения – около 40 минут.

image

Доктор Ричард Хэмминг, профессор морской школы Монтерея в штате Калифорния и отставной учёный Bell Labs, прочёл 7 марта 1986 года очень интересную и стимулирующую лекцию «Вы и ваши исследования» переполненной аудитории примерно из 200 сотрудников и гостей Bellcore на семинаре в серии коллоквиумов в Bell Communications Research. Эта лекция описывает наблюдения Хэмминга в части вопроса «Почему так мало учёных делают значительный вклад в науку и так многие оказываются в долгосрочной перспективе забыты?». В течение своей более чем сорокалетней карьеры, тридцать лет которой прошли в Bell Laboratories, он сделал ряд прямых наблюдений, задавал учёным очень острые вопросы о том, что, как, откуда, почему они делали и что они делали, изучал жизни великих учёных и великие достижения, и вёл интроспекцию и изучал теории креативности. Эта лекция о том, что он узнал о свойствах отдельных учёных, их способностях, чертах, привычках работы, мироощущении и философии.
Читать дальше →
Всего голосов 239: ↑229 и ↓10+219
Комментарии127

Использование памяти в Python

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

Сколько памяти занимает 1 миллион целых чисел?


Меня часто донимали размышление о том, насколько эффективно Python использует память по сравнению с другими языками программирования. Например, сколько памяти нужно, чтобы работать с 1 миллионом целых чисел? А с тем же количеством строк произвольной длины?
Как оказалось, в Python есть возможность получить необходимую информацию прямо из интерактивной консоли, не обращаясь к исходному коду на C (хотя, для верности, мы туда все таки заглянем).
Удовлетворив любопытство, мы залезем внутрь типов данных и узнаем, на что именно расходуется память.
Читать дальше →
Всего голосов 60: ↑54 и ↓6+48
Комментарии30

Про автоматизацию подбора аккордов

Время на прочтение17 мин
Количество просмотров59K
Меня давно занимал вопрос: «а что, если попробовать прогнать цифровую запись песни через преобразование Фурье, посмотреть зависимость спектра от времени и попытаться вытащить из полученной информации аккорды песни?». Вот, наконец, нашел время попробовать…
Читать дальше →
Всего голосов 137: ↑135 и ↓2+133
Комментарии42

Разрезание на две равные части, часть первая

Время на прочтение4 мин
Количество просмотров55K
Задачи на разрезание — это та область математики, где, как говорится, мамонт не валялся. Множество отдельных проблем, но по сути нет общей теории. Помимо всем известной теоремы Бойяи-Гервина, других фундаментальных результатов в этой области практически нет. Неопределённость — вечный спутник задач на разрезание. Мы можем, например, разрезать правильный пятиугольник на шесть частей, из которых можно сложить квадрат; однако мы не можем доказать, что пяти частей для этого было бы недостаточно.

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



Скандалы, интриги, расследования
Всего голосов 61: ↑53 и ↓8+45
Комментарии11

О модульности, хорошей архитектуре, внедрении зависимостей в С/C++ и разноцветных кружочках

Время на прочтение18 мин
Количество просмотров42K
Не в совокупности ищи единства, но более – в единообразии разделения.
Козьма Прутков


Немного воды вначале


Нельзя не заметить, что аспектно-ориентированное программирование с каждым годом берет новые рубежи популярности. На хабре было уже несколько статей посвященных этому вопросу, от Java до PHP. Пришло время обратить свой взор на С/C++. Теперь я в первом же абзаце признаюсь, что речь пойдет не об «настоящих аспектах», но о чем-то, близко с ними связанном. Также рассуждение будет вестись в контексте embedded-проектов, хотя описываемые методы могут применяться где угодно, но именно embedded, это та область, где эффект будет максимально ощутимым. Еще я буду использовать слова «хидер» и «дефайн» для обозначения, соответственно, «заголовочного файла» и «макроопределения». Сухой и академичный язык это хорошо, но в данном случае, мне кажется, все будет проще понять, если пользоваться устоявшимися англицизмами.
Читать дальше →
Всего голосов 46: ↑44 и ↓2+42
Комментарии35

Информация

В рейтинге
Не участвует
Откуда
Калуга, Калужская обл., Россия
Дата рождения
Зарегистрирован
Активность