Search
Write a publication
Pull to refresh
-29
@svr_91read⁠-⁠only

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

Send message

N+4 полезных книг

Reading time5 min
Views82K


Привет! В посте блиц-обзор книг, которые будут полезны IT-специалистам, бизнесменам и тем, кто просто любит читать интересные технические вещи. Рядом с каждой – пояснения, чем оно может быть нужно. Этот обзор, в отличие от других ежегодных, более технически-прикладной.

Начнём со «Справочника по инженерной психологии» Вудсона и Коновера.

«Справочник по инженерной психологии» — Вудсон, Коновер


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

Amazon за $59.99 в год предлагает безлимитное облако

Reading time1 min
Views24K
image

Сегодня Amazon анонсировала два тарифных плана Unlimited Photos и Unlimited Everything для хранения данных на сервисе Amazon Cloud Drive. Второй из них предлагает даже не 10 или 100 терабайт, а действительно безлимитное хранилище данных для любых файлов за $5 в месяц или $59.99 в год. Unlimited Photos предлагает такой же безлимитный объём, но только для графических файлов за $11.99 в год. В придачу к фотографиям этого тарифного плана бесплатно прилагается 5 Гб хранилища для любых других типов файлов.
Узнать подробности

Большое обзорное тестирование языков программирования

Reading time9 min
Views67K
Недавно очередной раз отработал со студентам 2-го курса 2-семестровую дисциплину «Алгоритмические языки». Обзорно рассмотрели несколько дюжин языков программирования. Один из студентов, Вадим Шукалюк, захотел получше с ними познакомиться, получить более четкое представление о каждом из них. Посоветовал ему провести небольшое исследование. Чем и увлёк. Предлагаю свой отчёт по проделанной за несколько месяцев вместе с ним работе.

У каждого языка программирования есть свои достоинства и недостатки. Одна из важнейших характеристик транслятора с любого языка — это скорость исполнения программ. Очень трудно или даже невозможно получить точную оценку такой скорости исполнения. Ресурс http://benchmarksgame.alioth.debian.org/ предлагает игровую форму для проверки такой скорости на разных задачах. Но число языков, представленных на этом ресурсе, довольно невелико. Предельную ёмкость стека, критическую величину для рекурсивных вычислений проверить проще, но она может меняться в разных версиях транслятора и быть зависимой от системных настроек.

Тестировались следующие трансляторы: си (gcc, clang, icc), ассемблер (x86, x86-64), ява (OpenJDK), паскаль (fpc), яваскрипт (Google Chrome, Mozilla Firefox), лисп (sbcl, clisp), эрланг, хаскель (ghc, hugs), дино[1], аук (gawk, mawk, busybox), луа, рубин, бейсик (gambas, libre office), питон-2, пи-эйч-пи, постскрипт (gs), пролог (swipl, gprolog), перл, метапост, ТEХ, тикль, бэш. Исследовались как собственно скорость исполнения нескольких небольших, но трудоёмких алгоритмов, так и:

  • качество оптимизации некоторых трансляторов;
  • особенности при работе с процессорами Intel и AMD;
  • предельное число рекурсивных вызовов (ёмкость стека).

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

Пролог – декларативный язык, способный решать любые ребусы и доказывать теоремы

Reading time13 min
Views53K
Представьте себе высокоуровневый язык, в котором не нужно указывать КАК получить результат, вместо этого нужно просто указать ЧТО вы хотите получить. При этом область применения языка не ограничена и язык способен решать те же задачи, что и любой другой высокоуровневый язык, наподобие JAVA. Кажется фантастикой, не правда ли? Однако такой язык есть и называется он PROLOG. Посмотрим как PROLOG справляется с этой задачей на примере загадывания прологу некоторых загадок и попросим PROLOG выдать доказательство теоремы.

image

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

10 вещей, которых вы не знали о Java

Reading time8 min
Views106K
Итак, вы работаете на Java с самого её появления? Вы помните те дни, когда она называлась «Oak», когда про ООП говорили на каждом углу, когда сиплюсплюсники думали, что у Java нет шансов, а апплеты считались крутой штукой?

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

Задачи по алгоритмам

Reading time4 min
Views46K
Добрый день. На первом курсе бакалавриата Академического университета читается годовой курс алгоритмов. Каждая лекция сопровождается семинаром, на котором мы разбираем алгоритмические задачи. Практические семинары проходят в небольших группах. В этом семестре я читаю лекции и веду практику у одной из групп.

Сегодня хочу поделиться с Вами двумя задачами с этих семинаров.

Задача 1. На прямой даны n отрезков, нужно выбрать максимальное по размеру подмножество непересекающихся.

Задача 2. На окружности даны n дуг (отрезков), нужно выбрать максимальное по размеру подмножество непересекающихся.
Читать дальше →

Малдер и Скалли снова открывают свои секретные материалы

Reading time2 min
Views17K
image
Дэвид Духовны, Джиллиан Андерсон и Крис Картер на церемонии «Золотой глобус» в 1998 году

Телеканал Fox 24 марта сообщил о возобновлении съёмок сериала "X-Files" (на нашем ТВ – «Секретные материалы»). Главные роли исполнят те же актёры, что и раньше – Дэвид Духовны и Джиллиан Андерсон. Работать над новыми сериями будет создатель оригинального сериала Крис Картер. Всего телеканал планирует снять 6 новых эпизодов.

Съёмки начнутся этим летом, даты показа пока не определены. Картер предлагает называть 13-летний перерыв «рекламной паузой», и оптимистичен в своих прогнозах: «Мир за это время стал намного страннее – идеальное время для того, чтобы рассказать эти шесть историй».
Читать дальше →

DDR3 против DDR4. Теоретические различия

Reading time2 min
Views123K
Различия между поколениями оперативной памяти всегда достаточно существенны. Прошлогодний выход в люди стандарта DDR4 сделал серверный сегмент и high-performance desktop несколько выходящими из общего ряда. Недавний анонс серверным процессоров Intel Atom потянул за собой SO-DIMM DDR4. Все готово для массовой атаки на рынок, а не просто дебюта. Поизучаем немного теории, освежим знания? Под катом ключевые различия между DDR3 и DDR4.


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

Когнитивное сопротивление правил и инструкций

Reading time8 min
Views48K


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

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

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

Как поймать то, чего нет. Часть вторая: снаряд и броня

Reading time9 min
Views24K
Часть первая была посвящена выбору определения для понятия «вредоносная программа» и, вполне логично, что статья привлекла мало внимания — ну в самом деле, кому какая разница, какого цвета крыса — главное, чтобы кошка исправно их душила.

Во второй части мы постараемся определить, чем же должен заниматься антивирус в локальной сети. Если кто-то еще думает, что антивирус должен ловить вирусы — просим под кат.
Читать дальше →

RAII и необрабатываемые исключения

Reading time4 min
Views18K
Наверняка все знают прописную (в книгах про С++) истину о чудесной методологии RAII, если нет — приведу краткое описание из википедии.

Это шаблонное описание этой техники
Получение ресурса есть инициализация (англ. Resource Acquisition Is Initialization (RAII)) — программная идиома объектно-ориентированного программирования, смысл которой заключается в том, что с помощью тех или иных программных механизмов получение некоторого ресурса неразрывно совмещается с инициализацией, а освобождение — с уничтожением объекта.

Типичным (хотя и не единственным) способом реализации является организация получения доступа к ресурсу в конструкторе, а освобождения — в деструкторе соответствующего класса. Поскольку деструктор автоматической переменной вызывается при выходе её из области видимости, то ресурс гарантированно освобождается при уничтожении переменной. Это справедливо и в ситуациях, в которых возникают исключения. Это делает RAII ключевой концепцией для написания безопасного при исключениях кода в языках программирования, где конструкторы и деструкторы автоматических объектов вызываются автоматически, прежде всего — в C++.

Последнее предложение вроде как обещает 100% гарантию результата, но как всегда в жизни, а особенно в С++, есть нюанс.
Читать дальше →

Разбор задач тренировочного warmup-раунда Russian Code Cup 2015

Reading time4 min
Views17K


В воскресенье прошел тренировочный warmup-раунд Russian Code Cup. Первое место занял Михаил «mmaxio» Майоров из Перми. Второе — Игорь «kraskevich» Краскевич из Москвы. Третье — Валентин «ValenKof» Кофман из Москвы. Поздравляем победителей!

Впереди квалификационные раунды чемпионата. Напоминаем, что первый квалификационный раунд состоится 28 марта в 18:00 мск, а регистрация на чемпионат проходит на сайте http://www.russiancodecup.ru/ до начала третьего квалификационного раунда.

Russian Code Cup — это возможность для русскоязычных программистов со всего мира проверить свои силы и продемонстрировать мастерство, решая оригинальные задачи различной сложности, а также заявить о себе экспертному IT-сообществу. Олимпиада проходит в три этапа: квалификационные раунды, отборочный тур и финал, — на каждом из которых участникам олимпиады предлагается от четырех до восьми разноплановых задач. Задания и техническую часть соревнования обеспечивают специалисты Mail.Ru Group и эксперты Университета ИТМО — соорганизатора Russian Code Cup.

А сейчас разберемся с решением задач warmup-раунда.

Задача A. Воздушные шарики
Читать дальше →

Вычислите длину окружности

Reading time6 min
Views90K
«Пожалуйста, напишите на C++ функцию, которая получает диаметр круга как float и возвращает длину окружности как float».

Звучит как задание на первой неделе курса по C++. Но это только на первый взгляд. Сложности возникают уже на первых этапах решения задачи. Предлагаю рассмотреть несколько подходов.

Студент: Как вам такой вариант?

#include <math.h>
float CalcCircumference1(float d)
{
    return d * M_PI;
}

Преподаватель: Да, этот код может нормально откомпилироваться. А может и нет.
Читать дальше →

Использовать наши программы весело

Reading time2 min
Views36K
Эти два вымышленных парня сильно повлияли на меня в плане программирования:

image

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

image

Игры со странными дискетами от Братьев Бигл на компьютере Apple II в средней школе, и «шведский стол» всяческих программ, которые были написаны для них, стали для меня обрядом посвящения.
Читать дальше →

ZeptoLab Code Rush 2015 уже близко

Reading time3 min
Views14K
Привет Хабражителям!

В 2014 году мы провели свой первый совместный контест по спортивному программированию совместно с Codeforces, об этом мы писали здесь.

Коротко о том, как это было:

Контест состоял из 6 задач, на решение отводилось 2,5 часа (ознакомиться с задачами прошлого года и даже попробовать свои силы в их решении вы можете здесь).
Конечно же, даже на сугубо девелоперском мероприятии мы остались верны себе, поэтому все задачи были придуманы по мотивам наших игр, и, разумеется, мы их заботливо проиллюстрировали:



Впервые за всю историю Codeforces в контесте приняли участие одновременно более 2148 человек (зарегистрировалось более 4600 (!) со всего мира. К слову сказать, первые 3 места заняли
Читать дальше →

Ошибка в формуле проверки условия Делоне

Reading time3 min
Views24K

Введение


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


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

Можно ли верить коду в редакторе? bi-directional текст

Reading time2 min
Views23K
def maps():
	print "maps maps maps"

def spam():
	print "Erasing everything..."
	print "done."

Вы знаете, что если очень долго смотреть на следующую строку, то там останутся только три слова «spam»?

s = "spam‮" ,spam ,"‬spam"
s[1]()

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

Посмотреть на ideone. (Для тех кто не знает: там внизу есть вывод выполнившейся программы)
Читать дальше →

Грабли 2: Виртуальное наследование

Reading time4 min
Views63K
Статья о том, как множественное наследование все усложняет. Как виртуальное наследование, на первый взгляд, реализовано нелогично. Как на второй взгляд логика появляется, но уровень сложности и запутанности продолжает расти. В общем, чем сложнее задача, тем более простые нужно подбирать инструменты.

Все основано на реальных событиях, но примеры были максимально упрощены, чтобы в них осталась лишь суть проблемы.
Читать дальше →

10 самых интересных технологий 2015 года

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

1. Автомобили на топливных ячейках


Нам обещали их давно. У них есть много преимуществ перед электрическими и углеводородными машинами. Однако, мы только приблизились к моменту, когда промышленность готова выпускать их в широкое производство. Изначально цены на автомобили будут находиться в районе $70000, но должны сильно упасть с увеличением производства за следующие пару лет.
Читать дальше →

Началась регистрация на пятый ежегодный чемпионат по спортивному программированию Russian Code Cup

Reading time3 min
Views9.4K


С 5 марта открыта регистрация на участие в главном российском чемпионате по спортивному программированию — Russian Code Cup (RCC). Победители чемпионата завоюют звание лучших программистов года и разделят призовой фонд в размере 750 000 рублей. В RCC ежегодно принимают участие несколько тысяч русскоговорящих участников со всего мира. Они сражаются за звание не только самого талантливого, но и самого быстрого программиста, поскольку решение оригинальных и сложных задач чемпионата оценивается сразу по двум критериям: качество и скорость. Этот чемпионат дает молодым программистам прекрасную возможность продемонстрировать свое мастерство, получить признание профессионального сообщества и обратить на себя внимание крупных IT-компаний.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity