Как стать автором
Обновить
12
0

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

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

Алгоритм Эллера для генерации лабиринтов

Время на прочтение5 мин
Количество просмотров153K
Это топик-перевод статьи Eller's Algorithm. В ней рассказывается о способе программной генерации лабиринтов. Дальнейшее повествование идет от лица автора.

 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  
|__   |__       __ __|__   |   __|  |  |  |  |
|__   |__   |__|   __ __|   __ __      |     |
|        |  |  |     |  |__      |__|  |  |  |
|__|__|  |  |   __|   __|__   |   __|__|  |__|
|   __|  |     |__ __ __|  |  |__|  |     |  |
|  |  |  |  |__|  |__   |  |   __|__ __|  |  |
|  |__    __    __ __    __|  |   __   |  |  |
|  |  |  |  |      __|  |   __|  |  |__|  |  |
|  |     |     |__   |  |  |  |  |  |__    __|
|  |  |__|__|__ __|  |     |  |  |      __|  |
|__ __|  |  |  |__   |__|   __|     |   __ __|
|   __|  |   __|__      |__   |__|  |__    __|
|  |  |     |  |     |__|  |   __    __|   __|
|   __|  |__ __|__|      __|  |  |     |  |  |
|   __ __   |      __|__|  |__   |  |  |__|  |
|__ __ __|__ __|__ __ __ __ __|__|__|__ __ __|


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

Читать дальше →
Всего голосов 122: ↑117 и ↓5+112
Комментарии35

Возвращаем приватность или большой брат следит за мной на стандартных настройках. Часть 2. Блокируем следящие скрипты на сайтах и настраиваем VPN

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

Сегодня посмотрим (и избавимся) на то, сколько статистики собирают на нас даже без использования сторонних «куки»-файлов и расскажем о пользе и настройке VPN простым языком.

Хочу сказать большое спасибо всем, кто оставлял комментарии в прошлой статье (и оставит в этой) — все ваши дельные советы будут включены в этот или последующий мануалы.


Читать дальше →
Всего голосов 46: ↑43 и ↓3+40
Комментарии50

Методы решения судоку

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

1. Основы


Большинство из нас, хабражителей, знает, что такое судоку. Не буду рассказывать про правила, а сразу перейду к методикам.
Для решения головоломки, не важно сложной или простой, изначально ищутся ячейки очевидные для заполнения.
Читать дальше →
Всего голосов 81: ↑70 и ↓11+59
Комментарии63

Сказ о том, как один нерадивый провинциал в MIT поступал

Время на прочтение9 мин
Количество просмотров411K
Всем здравствуйте, меня зовут Олег, мне 17 лет, и сегодня я расскажу вам о процессе поступления в MIT.
Дабы сохранить цельность повествования, следует отметить, что статья написана 15 марта 2013 года, в день оглашения вердиктов о зачислении студентов.
image
Картинка для привлечения внимания

Когда я поступал в Массачусетский технологический институт, я с удивлением обнаружил, что в рунете нет не то что мало-мальски съедобной «истории успеха», связанной с поступлением в MIT, а вообще хоть какого-то руководства по поступлению в топовые американские университеты своими силами. Особенно на бакалавриат. Я подумал: «Что ж, видимо, придется написать мне». Я постараюсь донести информацию в наиболее понятном виде.
Читать дальше →
Всего голосов 430: ↑418 и ↓12+406
Комментарии214

Возвращаем приватность или большой брат следит за мной на стандартных настройках. Часть 1. Браузер и настройки сервисов «Гугла»

Время на прочтение7 мин
Количество просмотров367K
Вы любите смотреть таргетированную рекламу? Вы не против того, что фейсбук сам отметит вас на фотографии друзей (а ее увидят посторонние люди)? Вам нравится видеть релевантные запросы в поисковике? Вы не против того, чтобы ваши предпочтения использовали для рекламы товаров вашим друзьям? Вам все равно, что гугл хранит всю историю вашего поиска, и вы не боитесь, что это может кто-то увидеть через 10 лет («скачать Аватар бесплатно без смс» или «как избежать проверки налоговой»)? Вы не против того, что ваши фото и комментарии увидит потенциальный работодатель или весь интернет, если вы вдруг случайно станете кому-то интересны?

Тогда этот пост вам будет не интересен — желаю вам хорошего дня. Пост не благословлен ФСБ, различными рекламными биржами (привет, «Яндекс», «Tinkoff Digital» и т. д.) и соц. сетями.

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

В этой части поговорим о настройках браузера и настройках google-аккаунта. Следующие части будут посвящены настройкам «Фейсбука», «Контакта», а также специфическим вещам в мобильных ОС на примере iOS. Любые дополнения приветствуются и будут с удовольствием включены в этот импровизированный «мануал» (или следующий, если они будут про темы следующих статей).



Читать дальше →
Всего голосов 99: ↑85 и ↓14+71
Комментарии62

Миниатюрные платы Odroid U2 и Odroid X2

Время на прочтение3 мин
Количество просмотров65K
Не так давно (~13.02.2012) начались поставки миниатюрных плат Odroid U2 и X2, по размеру близких к Raspberry Pi, но оснащённых начинкой, позволяющей использовать их в роли обычного компьютера. Не долго думая я заказал себе 2 платы: Odroid U2 и Odroid X2.

Небольшой обзор плат под катом.
Читать дальше →
Всего голосов 53: ↑45 и ↓8+37
Комментарии86

Whois: практическое руководство пользователя

Время на прочтение32 мин
Количество просмотров171K
Статья рассказывает о работе whois протокола, о существующих клиентских решениях и об особенностях коммуникации с различными whois серверами (а также о выборе правильного whois сервера). Ее основная задача — помочь в написании скриптов для получения whois информации для IP адресов и доменов.

Что такое whois?


Что такое и для чего нужен whois можно прочитать, например, здесь: http://en.wikipedia.org/wiki/Whois.

В нескольких словах, whois (от английского «who is» — «кто такой») – сетевой протокол, базирующийся на протоколе TCP. Его основное предназначение – получение в текстовом виде регистрационных данных о владельцах IP адресов и доменных имен (главным образом, их контактной информации). Запись о домене обычно содержит имя и контактную информацию «регистранта» (владельца домена) и «регистратора» (организации, которая домен зарегистрировала), имена DNS серверов, дату регистрации и дату истечения срока ее действия. Записи об IP адресах сгруппированы по диапазонам (например, 8.8.8.0 — 8.8.8.255) и содержат данные об организации, которой этот диапазон делегирован.

Читать дальше →
Всего голосов 101: ↑97 и ↓4+93
Комментарии31

Места распространения Android приложений

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

В какой-то момент разработчику андроид приложений становится тесно в рамках одного магазина Google Play. И тогда он начинает задумываться о том, как бы еще донести до пользователей свои приложения. Оказывается, достаточно много вариантов это сделать.

Перечислю те, которые попробовал сам. Сразу оговорюсь, что приложения у меня бесплатны, с рекламой внутри. С публикацией платных приложений разберусь, когда появятся достойные.
Читать далее
Всего голосов 72: ↑69 и ↓3+66
Комментарии37

Плейн- и радарспоттинг, или я болен авиацией

Время на прочтение7 мин
Количество просмотров78K
Я болен авиацией. Да, именно так и никак иначе. На моем ноутбуке хранится куча мануалов к различным самолётам от Boeing и Airbus, пособия по радиообмену, фильмы по авиационной тематике. Помимо всего этого я слушаю авиадиапазон с помощью портативной радиостанции (которая, кстати, не имеет возможности передавать на этих частотах, только слушать!). И плюс ко всему я регулярно, раз или два в месяц выбираюсь к аэропорту Шереметьево и фотографирую самолёты, заходящие на посадку. В этом посте я расскажу, как докатился до такой жизни. Может быть кто-то из вас, уважаемые читатели, тоже заболеет авиацией.
Кому интересно — прошу под кат.
Читать дальше →
Всего голосов 201: ↑193 и ↓8+185
Комментарии84

Советы по C++

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

Предыстория



За 2 года, я прочитал очень много книг по C++. Лучшим вариантом запоминания информации считаю ведение конспектов.
Несколько дней назад я остался без компьютера и интернета. Чтобы не тратить время впустую решил пересмотреть все свои записи. В тот момент ко мне и пришла идея сервиса, о котором я расскажу ниже.
Читать дальше →
Всего голосов 125: ↑108 и ↓17+91
Комментарии59

27+ ресурсов для онлайн-обучения

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

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

Статья содержит перечень ресурсов для онлайн-обучения, представляющих интерес преимущественно для программистов.

Читать дальше →
Всего голосов 174: ↑163 и ↓11+152
Комментарии68

Боевой сервер для Django-приложения: Ubuntu Server 10.04 LTS + django 1.4 + nginx + gunicorn

Время на прочтение11 мин
Количество просмотров121K
Многие учебные пособия по разработке на Django раскрывают как быстро получить работающий отладочный сервер (python manage.py runserver), а вопрос развертывания в боевом режиме часто остается нераскрытым или освещаются далеко не самые простые и эффективные методы.
Ниже я расскажу о об одном из способов развернуть сайт на Django в боевом режиме, начиная от выбора хостинга, заканчивая развертыванием веб-сервера. Таким образом статья может быть полезна тем, кто освоил разработку на базе Django, но не имеет опыта развертывания серверов. Мой способ один из многих, но он достаточно прост, эффективен в работе и легок в поддержке. Используем VPS-хостинг, Ubuntu 10.04, nginx, gunicorn.

Читать дальше →
Всего голосов 34: ↑29 и ↓5+24
Комментарии41

Сайт для программиста [на Node.js]. Просто. Стильно. Бесплатно

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

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

Меня аккаунт Вконтакте, и даже в Фейсбуке в качестве своего сайта не устраивает. Слишком много лишнего, навязанный формат и прочие неудобства.

Если бы я не был веб-разработчиком, мне пришлось бы плакать и грызть кактус. К счастью, я им являюсь, поэтому решил сделать себе сайт сам. Чтобы выкладывать на нём статьи вроде этой, небольшие хобби-проекты, и чтобы было что указать в поле «сайт» профиля на Хабре.

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

Некоторые знания HTML и JS вам пригодятся. Опыт работы с Node.js не обязателен.

Читать дальше →
Всего голосов 131: ↑90 и ↓41+49
Комментарии96

Подводные камни JavaScript

Время на прочтение6 мин
Количество просмотров150K
Мне очень нравится JavaScript и я считаю его мощным и удобным. Но для большинства начинающих JS-программистов, много проблем создаёт недопонимание аспектов языка. Часто конструкции языка ведут себя «нелогично». В данной статье я хочу привести примеры «граблей», на которые я наступил; объяснить поведение языка и дать пару советов.

Читать дальше →
Всего голосов 135: ↑115 и ↓20+95
Комментарии150

Методы монетизации интернет проектов

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

Подробности
Всего голосов 82: ↑72 и ↓10+62
Комментарии27

Полоумный дом на Siemens Logo

Время на прочтение4 мин
Количество просмотров133K
Попался на глаза пост, почитал… решил написать о своем варианте.

В общем, в 3х-комнатной квартире у меня «полоумное» освещение давным-давно. Основная его цель — поменьше жать выключатель. Изначально я в коридоре прямо в полу разместил четыре 12-вольтовых цветных точечных светильника. Потом добавил еще 2 в маленьком коридоре, потом еще 2 вставил в потолок (точнее в низ антресоли) у кухни. В полу, кстати, светильники устанавливать просто (полы то на деревянных лагах): взял насадку для дрели, которой сверлят дверные полотна под ручку. Ей и наделал аккуратные дырки прямо сквозь ламинат. Получилось как-то так:




Читать дальше →
Всего голосов 66: ↑62 и ↓4+58
Комментарии48

Как стать миллионером в AppStore или немного формул про продвижение и продажи. Часть 2

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

Great Appeal или девушка на миллион



Девушка на миллион

Итак, в прошлой статье мы закончили на том, что разобрались с тем, как получить «показы» нашего приложения в AppStore.

Иногда ошибочно считается, что запуск – это самое сложное. Это, мягко скажем, не так. Настоящая работа начинается после запуска.

Команда, искренне уверенная в качестве своего проекта, ждет вертикального взлета продаж с асимптотой к бесконечности… Но обычно получается больше похоже на новогодний фейерверк – короткий взлет, стремительное падение и забытье.

Кто виноват и что делать?
Всего голосов 116: ↑102 и ↓14+88
Комментарии27

Настройка Nginx + LAMP сервера в домашних условиях. Часть 1: Настройка frontend — backend

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

Здравствуйте. Недавно я задавал вопрос по поводу создания цикла статей. Вот первая статья.

В этом цикле статей вы узнаете как грамотно настроить LAMP сервер, аля «хостинг только мощней».
Мы будем использовать следующий стек: nginx — apache-mpm-itk — mod_php — mysql — linux/debian.

Буду освещать следующие темы:
  • Настройка frontend — backend
  • Расчет возможностей сервера, настройка mysql и backend
  • Рассказ об опыте на базе intel s3420gp

Совершенно уверенно могу сказать, что настройка LAMP сервера не ограничивается 6-10 командами установки и раскомментирования определенных строчек в файлах настройки.
Пример: по умолчанию nginx не дает возможности закачать на сервер тело запроса больше чем 1M. Если не настроить данный параметр, будет возникать ошибка 414 (Request-URI Too Large), при попытке добавления небольшой серии фотографий.
У apache совершенно противоположное: у него тело запроса по умолчанию не ограничено. Это делает возможным совершать пакости.

В этой статье мы познакомимся со всей настройкой досконально. В статье вы сможете найти конфигурационные файлы, подготовленные мной. Будучи педантом, мои конфигурационные файлы всегда сгруппированы по типу, например: «производительность», «генерация контента», «страницы ошибок», «сжатие», «другие настройки», «общие настройки». Мне кажется, что читаемость данных файлов становится намного лучше, если они сгруппированы.

Мы узнаем о том какие бывают простые атаки и как от них защищаться. Сразу скажу, что при базовой конфигурации frontend в лице nginx — backend apache все равно остается уязвим.

Я практически уверен, что я не смогу уместить все в одну статью. Добро пожаловать под кат.
Читать дальше →
Всего голосов 107: ↑75 и ↓32+43
Комментарии78

Умный дом, как я до такого докатился. Часть 1-я

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

Пару лет назад, когда стоял вопрос отделки новой квартиры, возникла тривиальная, казалось бы, задача.
Дано:
  • Кухня-студия (кухня совмещенная с холлом/коридором), три точки освещения.
  • Необходимо управлять освещением из двух точек. У входа в квартиру и на кухне.

Варианты решения:
  • Покупаем, так называемые, проходные выключатели, ставим три штуки на кухню, три в коридоре — вот оно счастье. Вот только получилось, что от коридора на кухню нужно вести 9 жил кабеля, некрасиво, спрятать некуда.
  • Покупаем готовые решения по управлению одним источником с нескольких точек.
    Точных чисел не помню, но получалось что-то около 10000р за точку освещения + 1000р за каждый выключатель, итого 36000р. Жаба.
  • Как это ни странно, но эту идею высказала жена, в общем-то далекая от IT: “ А помнишь, ты светофор в Яндексе делал? Может тут тоже что-то сам сообразишь?”
    В самом деле, а почему бы и нет, подумал я?

Но я не электронщик, я программист, причем контроллеры никогда не программировал, только полноценные сервера. Значит мозгом должен быть сервер. А раз ставить сервер, то управлять тремя лампочками — это из пушки по воробьям (даже, ядерным зарядом по мухам). Значит можно еще функций навешать.
Тут Остапа понесло (с), столица перемещается в Васюки. Три лампочки с выключателями превращаются в систему управления, мониторинга, видеонаблюдения и т. д.
Читать дальше →
Всего голосов 187: ↑180 и ↓7+173
Комментарии220

Групповая разработка сайтов через git — автоматическое создание/удаление сайтов из git-бранчей

Время на прочтение6 мин
Количество просмотров22K
В этой статье я расскажу, как создать групповую среду разработки сайтов через git с помощью git-хуков. Статья рассчитана на опытных системных администраторов, я лишь опишу алгоритм.
Многое на эту тему уже обсуждалось, а я добавлю, как автоматически создавать или удалять сайты при создании/удалении бранчей в git-репозитории. Такая возможность может пригодиться, к примеру, если над разными частями сайта работают разные программисты и нужны разные площадки (бранчи). После основной разработки и тестирования выполняется merge в основную ветку, а бранчи и тестовые сайты удаляются или архивируются.

Читать дальше →
Всего голосов 45: ↑41 и ↓4+37
Комментарии14

Информация

В рейтинге
Не участвует
Откуда
Севастополь, Республика Крым, Россия
Зарегистрирован
Активность