Pull to refresh
-1
0.1
Send message

Оптимизация на примере. Муравьиный алгоритм (ACS) против Метода отжига. Часть 2

Reading time12 min
Views21K
Продолжаю цикл статей «Оптимизация на примере». В данной статье сравниваются два эвристических алгоритма на избитой симметричной задаче коммивояжера. Сегодня чуть углубимся в данную тему и разберем определенную модификацию муравьиного алгоритма.


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

Советы по пропорциям и масштабу в играх

Reading time5 min
Views22K


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

Очевидно, если в вашей игре нет персонажей, этот пост может быть бесполезен для вас (но может быть, он пригодится вам в следующем проекте). Такой подход не ограничивается гуманоидными песонажами и может применяться к антропоморфным и неодушевлённым объектам.
Читать дальше →

Простые и удобные уведомления

Reading time2 min
Views23K
Привет! Достаточно часто разработчики и системные администраторы сталкиваются с необходимостью присылать уведомления, например об ошибках или отчёт о работе таска, а у кого-то это финансовый отчёт за день. Тут всё ограничено фантазией и поставленными задачами. Каждый сам выбирает удобный инструмент или пишет что-то своё.

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

Определил требования:

  • бесплатно (плату за трафик не учитываем)
  • работает на большинстве популярных платформ
  • групповые и индивидуальные уведомления
  • простая реализация отправки

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

Книга «Графический дизайн. Visual Grammar»

Reading time3 min
Views26K
image Какими бы видами графического дизайна вы ни занимались, ваша основная задача — донести до адресата некое сообщение. Для того чтобы целевая аудитория получила и приняла нужную информацию, необходимо грамотно оформить ее при помощи инструментов визуальной коммуникации. Именно этому — языку визуальной коммуникации — посвящена книга дизайнера и преподавателя Кристиана Леборга. Он начинает с таких базовых понятий, как форма, цвет, насыщенность, баланс, симметрия, отражение, повторение, движение, направление и так далее, и уделяет внимание всем основным правилам графического дизайна. Книга может служить удобным справочником для дизайнеров любых областей.
Читать дальше →

Шпаргалка по Flexbox (CSS3 Flexible Box)

Reading time1 min
Views373K
Мне не нова магия Flexbox, но я не часто ее использую, и поэтому после паузы в использовании мне приходится открывать вот этот пост на CSS-Tricks чтобы освежить память.

Я решила создать краткую визуальную шпаргалку по Flexbox для тех случаев освежения памяти после паузы в будущем. Думаю, что у меня получилась шпаргалка, основанная на… шпаргалках.


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

Я унылый программист и горжусь этим

Reading time3 min
Views48K
«Героизм возникает от некомпетентности: герои нужны тогда, когда дело организовано плохо и люди не способны исполнять свои обязанности.»
— Борис Стругацкий

image

Должен кое в чём признаться — я не рок-звезда программирования. И не хакер. Я не владею ниндзюцу. Никто никогда не называл меня волшебником.

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

Тем не менее, каждую неделю я вижу, как ищут ниндзя-программистов, которые, полагаю, нарезают строки кода с невероятной точностью. Я читаю о технарях рок-звёздах и представляю, что они пишут такие же красивые функции, как соло “Stairway to Heaven”. Я слышу, как люди бросаются словом «хакер» (и связанными с ним «хак», «хакфест» и «хакатон»), как будто рандомно ломать что-то на кусочки или вламываться в несанкционированную систему — хорошо.

И нельзя забывать про этих потрясных волшебников, которые из ничего создают нечто с помощью своей… *магии*

Наверняка с такими крутыми прозвищами и подразумеваемыми мистическими навыками всё это звучит так, будто это те образы, к подражанию которым все программисты должны стремиться.

Но что, если вы, как и я, не соответствуете этим ярлыкам?

Если вы не разделяете чувства рок-звёзд-ниндзя-хакеров-волшебников, то делаете что-то не так? Не-а.
Читать дальше →

Joker 2016: Вертикальное масштабирование

Reading time7 min
Views8K


Помимо «чисел Joker 2016», перечисленных нами заранее, теперь можно назвать ещё одно: на конференции наши фотографы сделали более 5000 снимков. Неудивительно, что на обработку ушло ощутимое время, и на Хабре уже успел появиться отзыв глазами участника от dbelob — а теперь мы публикуем свой.

Резкие отличия Joker 2016 от предыдущих «Джокеров» бросались в глаза сразу. В чём они состояли, о чём рассказывали на конференции в этот раз, и какие доклады по зрительским оценкам оказались лучшими?
Читать дальше →

Kerio Connect 9.2 упрощает общение и повышает качество совместной работы

Reading time2 min
Views12K

В крайнем последнем выпуске популярного решения для обмена сообщениями и совместной работы мы включили важные нововведения централизованного управления, новые клиенты для настольных ПК и Мак, интегрировали решение Kerio Connect с продвинутым почтовым клиентом Spark, хотите узнать больше, милости просим под кат…
Читать дальше →

Как работает Git

Reading time19 min
Views152K
В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

Эссе концентрируется на структуре графа, на которой основан Git, и на том, как свойства этого графа определяют поведение Git. Изучая основы, вы строите своё представление на достоверной информации, а не на гипотезах, полученных из экспериментов с API. Правильная модель позволит вам лучше понять, что сделал Git, что он делает и что он собирается сделать.

Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.

После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
Читать дальше →

Найден новый способ получения энергии из ходьбы

Reading time4 min
Views20K


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

2D магия в деталях. Часть вторая. Структура

Reading time19 min
Views31K


Помните небезызвестный мем про "корованы"? Наверное, каждый, кто разрабатывает игры (или хотел бы этим заняться) раздумывает о неком "проекте мечты", где можно будет "грабить корованы" и "набигать". А ещё, чтобы погода менялась динамически, и на грязи следы от сапог оставались, и деревья росли в реальном времени. И ещё, чтобы ...


Понятно, что в реальном игровом проекте такая погоня за хотелками — смерти подобна. А вот в техно-демке — самое то.

Правила хорошего вкуса от Линуса Торвальдса. Делаем код быстрее, проще и понятнее

Reading time5 min
Views49K
«Вкус — это способность судить о прекрасном»
И. Кант

Дирк Хондел, один из тех, кто стоял у истоков Linux, однажды сказал о создателе Linux Линусе Торвальдсе: «Линус не только блестящий программист: у него хороший вкус. Торвальдс находит простые и разумные пути решения проблем, умеет всё «разложить по полочкам». Сложные вещи он делает простыми. По-моему, это и есть главное отличие превосходного программиста от просто хорошего».

image

В недавнем интервью, примерно на 14-й минуте, Линус Торвальдс коснулся темы «хорошего вкуса в программировании». Хороший вкус? Ведущий попросил его остановиться на этом подробнее, и Линус, пришедший не с пустыми руками, показал пару слайдов.
Читать дальше →

Голуби брутфорсят парадокс Монти Холла лучше людей

Reading time6 min
Views57K

Голуби дают людям фору в решении дилеммы Монти Холла, что могло бы позволить им успешно выступать на одноименном ток-шоу. Это закономерность может, в свою очередь, излить свет на то, почему людям так трудно она дается.



Чем примечательна эта дилемма? При кажущейся простоте, она запутывает логические цепочки наших умозаключений, заставляя людей (но не голубей), в буквальном смысле, блуждать в трех соснах, вернее — в дверях. Это свойственно представителям самых разных культурных традиций: американцы, китайцы, шведы и бразильцы совершают одинаково неверный выбор.


Когнитивный психолог Massimo Piattelli-Palmarini заметил по этому поводу: Ни одна статистическая задача даже рядом не стоит по способности дурачить всех людей и во все времена.


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

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

Высокопроизводительная система освещения для 2D-игр

Reading time5 min
Views10K


Привет, меня зовут Александер Бирке (Alexander Birke), недавно я выпустил свою первую игру в Steam под названием Laser Disco Defenders. Мне кажется, было бы интересно раскрыть некоторые технические и дизайнерские решения, вошедшие в игру. Начну с собственной системы освещения, позволяющей работать со множеством двухмерных источников света даже на слабых компьютерах. LDD создана в Unity, но этот подход сработает в любом другом игровом движке, позволяющем создавать процедурные сетки (meshes).
Читать дальше →

Критерии простоты

Reading time4 min
Views13K

Львиная доля программистов с чистой совестью заявит, что предпочитает решать задачи просто, руководствуясь прежде всего здравым смыслом. Вот только это "просто" у каждого свое и как правило отличное от других. После одного долгого и неконструтивного спора с коллегой я решил изложить, что именно считаю простым сам и почему. Это не привело к немедленному согласию, но позволило понять логику друг друга и свести к минимуму лишние дискуссии.


Первый критерий


Особенности мозга человека таковы, что он плохо хранит и отличает более 7-9 элементов в одном списке при оптимальном их количестве 1-3.


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

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

Почему мы в «Дадате» тратим 2 млн долларов в год на 99,99% точность обработки данных

Reading time6 min
Views13K

Вы когда-нибудь задумывались, почему вообще возможно исправить ошибки и опечатки в текстовых данных, например, в адресах и именах? Почему мы думаем, что «Терская» — это, скорее всего, Тверская улица, а не какая-нибудь фантастическая улица Василиятёрского? А вдруг это Комсомольский проспект, в котором сделано двадцать опечаток?


Наш жизненный опыт говорит о том, что упорядоченные низкоэнтропийные состояния менее вероятны, чем высокоэнтропийные неупорядоченные. То есть «Терская» скорее Тверская с одной опечаткой, чем Комсомольский проспект с двадцатью опечатками. Однако в жизни возникает много спорных случаев, где вероятности не так однозначны.

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

Анатомия KD-Деревьев

Reading time14 min
Views52K
image

Эта статья полностью посвящена KD-Деревьям: я описываю тонкости построения KD-Деревьев, тонкости реализации функций поиска 'ближнего' в KD-Дереве, а также возможные 'подводные камни', которые возникают в процессе решения тех или иных подзадач алгоритма. Дабы не запутывать читателя терминологией(плоскость, гипер-плоскость и т.п), да и вообще для удобства, полагается что основное действо разворачивается в трехмерном пространстве. Однако же, где нужно я отмечаю, что мы работаем в пространстве другой размерности. По моему мнению статья будет полезна как программистам, так и всем тем, кто заинтересован в изучении алгоритмов: кто-то найдет для себя что-то новое, а кто-то просто повторит материал и возможно, в комментариях дополнит статью. В любом случае, прошу всех под кат.
Читать дальше →

Дональд Кнут и «Сюрреальные числа»: Я творил шесть дней, а на седьмой отдыхал (40,41,42/97)

Reading time9 min
Views23K
«Эксперты по computer science сказали бы, что я допустил самую огромную ошибку, когда взялся за этот проект.»

image

Это уникальное событие в моей жизни. Оно произошло в ранних 70-ых. Я познакомился с Джоном Конвейем, вероятно с одним из величайших математиков. Я встретил его по пути в университет Калгари в 71-м и мы вместе пообедали. Он набросал на салфетке новую теорию, которая пришла ему в голову, и, на мой взгляд, она была действительно потрясающей. Это чисто математическая теория о новом способе определения чисел. Ее суть в том, что они могут быть не только целыми или дробными, но также бывают бесконечные числа, и квадратный корень из бесконечности, и бесконечность бесконечности, и бесконечность квадратных корней бесконечности и все это имеет смысл. Год спустя я был в отпуске в Норвегии и посреди ночи ко мне пришла мысль «Вау, эта теория так красива, что было бы интересно рассказать историю, написать книгу, в которой герои откроют теорию Конвея. Они найдут её правила на каменной скрижали, расшифруют её и смогут сами доказать все эти вещи о бесконечности и прочем».

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

Дональд Кнут: Я сидел на задних партах и травил шутки, а учителя смирились и не часто били по заднице (1,2,3,7/97)

Reading time7 min
Views19K


Дональд Кнут рассказывает про маму и папу, вспоминает о том, как он учился читать, как шкодил в школе. Откровенничает о первом писательском опыте и намекает на «пасхалки» со звездой эротики в своих книгах.

Решение головоломок помогает только в решении головоломок

Reading time4 min
Views61K


Если вы занимаетесь спортом, то хорошо знаете, как физические упражнения развивают силу, ловкость, выносливость. Это полезные качества в реальной жизни: вы сможете поднять мешок картошки одной рукой, забежать на 20-й этаж без лифта, обогнать автомобиль на велосипеде (средняя скорость движения автомобилей в Москве составляет 24 км/ч). Тренировки тела действительно помогают в реальной жизни.

А что насчёт тренировок мозга? Казалось бы, тот же принцип должен срабатывать в тренировке когнитивных способностей. К сожалению, это не так.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity