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

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

  • Подписчики 2
  • Подписки 8
  • Публикации
  • Комментарии

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

Блог компании JUG Ru GroupНенормальное программированиеСпортивное программированиеJava


Привет! Мы тут собрали тусовку одних из самых крутых русскоязычных 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
Просмотры49K
Комментарии 57

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

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

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

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

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

Гаджеты
Перевод
Очки Google Glass предлагают слегка дополненную версию реальности


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

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

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

РобототехникаФототехникаИнтервью
Это свершилось! Долгожданные ответы «водителя» MSL Curiosity на вопросы, которые ему задал Хабр. Паоло Беллутта работал еще с Opportunity и Spirit, поэтому у него богатый опыт, а главное он не стесняется о нем рассказывать.

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

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

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

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

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

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

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

Разработка под Android

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

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

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

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

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

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

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

Научно-популярноеНанотехнологии
Из песочницы
В офф-топик внесены изменения

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

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


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



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

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

История IT
Перевод
Введение (от переводчика)


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

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

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

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




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

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

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

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

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

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

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

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

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

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

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

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


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

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

Чулан
Здравствуй хаброчеловек!

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

Профессиональная иммиграция в Австралию, IT и жизнь на другом континенте

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

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



Читать дальше →
Всего голосов 200: ↑196 и ↓4+192
Просмотры151K
Комментарии 125

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

Информационная безопасность
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
Просмотры291K
Комментарии 322

А как же всё-таки работает многопоточность? Часть II: memory ordering

JavaСистемное программированиеПараллельное программирование
картинка для привлечения внимания

Знание об управлении потоками, которое мы получили в прошлом топике, конечно, велико, но вопросов остаётся всё равно много. Например: «Как работает happens-before?», «Правда ли, что volatile — это сброс кешей?», «Зачем вообще было городить какую-то модель памяти? Нормально же всё было, что началось-то такое?»

Как и прошлая статья, эта построена по принципу «сначала кратко опишем, что должно происходить в теории, а потом отправимся в исходники и посмотрим, как это происходит там». Таким образом, первая часть во многом применима не только к Java, а потому и разработчики под другие платформы могут найти для себя что-то полезное.
Go Deeper
Всего голосов 86: ↑85 и ↓1+84
Просмотры78K
Комментарии 45

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

GTD
Перевод
Длинный материал. Время чтения – около 40 минут.

image

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

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

PythonПрограммирование
Из песочницы
image

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


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

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

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

Информация

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