Рубрика «Программирование» - 1029

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

11 декабря команда Intel Developer Zone проводит мероприятие Bloggers Meet-up в Москве. Мы пригласили блогеров из Intel, участников сообщества IDZ и самых активных комментаторов блога Intel на хабре. На встрече будем говорить о разработке софта, новых технологиях и проектах участников, пообщаемся с нашим специальным гостем Алексом Экслером на тему, как привлечь и удержать читателей своего блога, а также разыграем коммуникатор МегаФон Mint — тот самый, что так горячо обсуждался на Хабре, вызывая недовольство своей ценой. Теперь у вас есть неплохой шанс получить его бесплатно.

На сегодняшний день у нас еще остается несколько вакантных мест. И у вас есть шанс их занять! Пропускной билет на встречу – это ваш пост, связанный с Intel и нашими технологиями. Если в этом году вы публиковали подобную статью на хабре или в своем личном блоге, то оставьте ссылку в комментариях. Мы посмотрим статьи и пригласим авторов на мероприятие. Если вы живете не в Москве, то мы готовы оплатить проезд, так что расстояние – не проблема.

image
Читать полностью »

Defensive Programming

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

тыц

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

Читать полностью »

Оригинал: Starting out on Game Programming

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

Вы только что закончили ваш первый курс по С++ и хотите начать делать игры. Кто-то указал вам на этот сайт и вы, возможно, поэкспериментировали немного с руководством. Вы изучили несколько лаконичных примеров, но не нашли руководства о том, как сделать целую игру. И на то есть причина.

Руководства хороши для обучения чему-то шаг за шагом, например тому, как перемещать изображение точки по экрану. Для того чтобы собрать игру воедино, вам нужны навыки решения возникающих проблем, приобретаемые лишь с опытом. Это не то, чему можно научится из руководств. Лучший способ научится делать игры — это начать их делать.
Читать полностью »

Довольно часто заказчики просят неизведанного, поэтому приходится рехтовать движок в хвост и в гриву. Webasyst с точки зрения логичности кода непостижим и загадочен, а в интернете очень мало адекватных мануалов. Поэтому напишу здесь то, что я постиг на собственном горьком опыте проб и ошибок. В вебасисте несколько разновидностей модулей, я планирую написать о каждом из них, но буду рассказывать только о методах встраивания своих модулей в движок, а не о программировании непосредственно.
Предполагается, что php владеет каждый, кто читает эту статью.
Читать полностью »

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

Введение

Можно представить, что знания человека — это алгоритмы, только хранятся они в виде мыслеформ в мозге человека. Каждый день человек узнает для себя что-то новое, получая информацию из вне благодаря всем своим органам чувств. В частности, IT-шники больше всего используют для этого глаза. Попробуем провести исследование приобретения новых знаний:
Читать полностью »

Представьте на минутку обычного программиста. Допустим, его зовут Вася и ему нужно сделать анимированную менюшку на сайт/десктоп приложение/мобильный апп. Знаете, которые выезжают сверху вниз, как меню у окна Windows или меню с яблочком у OS X. Вот такое.

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

var opened = false;

Вроде, работает. Но, если быстро кликать по кнопке, меню начинает моргать, открываясь и закрываясь не успев доанимироваться в конечное состояние. Вася добавляет флаг animating. Теперь код у нас такой:

var opened = false;
var animating = false;

function onClick(event) {
  if (animating) return;
  if (opened) close();
  else open();
}

Через какое-то время Васе говорят, что меню может быть полностью выключено и неактивно. Не вопрос! Мы-то с вами тут программисты опытные, все понимаем, что… нужно добавить ЕЩЕ ОДИН ФЛАГ! И, всего-то через пару дней разработки, код меню уже пестрит двустрочными IF-ами типа вот такого:

if (enabled && opened && !animating && !selected && finishedTransition && !endOfTheWorld && ...) { ... }

Вася начинает задаваться вопросами: как вообще может быть, что animating == true и enabled == false; почему у него время от времени все глючит; как тут вообще поймешь в каком состоянии находится меню. Ага! Состояния... О них дальше и пойдет речь.

Знакомьтесь, это Вася.

Простые стейт машины на службе у разработчика
Читать полностью »

В продолжение к моей первой статье решил написать эту, в которой расскажу про более продвинутые алгоритмы поиска гамильтонова цикла в большом полном графе
Читать полностью »

Про дерево Фенвика многие знают. Многие его используют. Однако считается, что деревом Фенвика нельзя находить максимум/минимум.
Мол, эта операция не ассоциативна. Однако небольшие изменения алгоритма позволяют нам решить и эту задачу тоже.
NB: Статья написана для тех, кто знает, что такое дерево Фенвика и описывает его модификацию для максимума.Тем, кто не знает, что такое дерево Фенвика, рекомендуется прочитать об этом где-нибудь, хоть в Кормене, хоть в статье на хабре
Читать полностью »

1. Постановка задачи

Полный взвешенный граф из 500 вершин задан матрицей смежности.
Необходимо найти гамильтонов цикл в этом графе как можно меньшей суммарной стоимости.
Читать полностью »

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

Cloud9

«Это Google Docs, только для кода» — так говорят о проекте. Облачный сервис вырос из Mozilla Bespin. Основные фишки: SSH, drag-and-drop и возможность разработки оффлайн.

Онлайн инструменты для кодеровЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js