Pull to refresh
20
0
Ярослав @YKapodastr

User

Send message

Паттерны ООП в метафорах

Reading time17 min
Views558K
Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
Читать дальше →
Total votes 214: ↑201 and ↓13+188
Comments86

Huawei Ascend P6: подлинная история создания и подробное исследование самого тонкого китайского смартфона в мире

Reading time12 min
Views73K
В абсолютном большинстве случаев мы не можем восстановить историю создания смартфонов. Все происходит в глубине корпораций, над каждой моделью работают десятки, а то и сотни людей, и потому выявить логику принятия решений крайне затруднительно. Приехавший для обзора Huawei Ascend P6 тоже был темной лошадкой, пока он не подвергся полной разборке. Увиденное внутри позволило нам с мастером Левченко представить и записать историю возникновения этого непростого аппарата.

image

Итак, весна 2012 года, центр китайского Шеньженя, штаб-квартира Huawei.

Ричард Ю, глава Huawei Devices, стоял у огромного, на всю стену окна своего кабинета на 36-м этаже и смотрел на закат солнца. Он был, как обычно, одет в френч защитного цвета. В руках у Ричарда была трубка. У круглого стола сидели и напряженно молчали восемнадцать мужчин в черных костюмах.

Ричард перестал смотреть на красный круг солнца и повернулся к собравшимся.

— Товарищи, — сказал он, — У меня есть для вас пренеприятнейшее известие. Час назад мне звонил Тим Кук.
Читать дальше →
Total votes 56: ↑42 and ↓14+28
Comments36

Место сценариста в команде разработки игр

Reading time8 min
Views92K


Здравствуйте, меня зовут Мария Кочакова, я сценарист проекта Skyforge в Allods Team. Эта статья подытоживает два года моей работы игровым сценаристом. Все это суровые реалии жизни сценаристов компьютерных игр, то, с чем мы сталкиваемся ежедневно. Категоричность формы продиктована важностью содержания.

Сценарий компьютерной игры

Нарративная (повествовательная) часть игры состоит из сеттинга, сюжета и текста.

Сеттинг — это мир игры, его законы и реалии. Примеры сеттинга: постапокалипсис, фэнтези-средневековье, киберпанк…
Читать дальше →
Total votes 76: ↑62 and ↓14+48
Comments64

Тонкости в процессе дизайна для стартапов

Reading time7 min
Views28K
Эта статья вышла из моего пути “проб и ошибок”, и почти каждый тезис так или иначе связан с неудачей или успехом на этапе проектирования и дизайна для какого-либо стартапа.



Надеюсь, что она поможет дизайнерам избежать тех же ошибок, на которые натолкнулась в свое время я. Людям, которые решили сделать свой стартап, эта статья поможет учесть тонкости, связанные с процессом разработки и сделать более качественный продукт.
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments13

Мега-Учебник Flask, Часть 1: «Привет, Мир!»

Reading time6 min
Views572K
Это первая статья в серии, где я буду документировать мой опыт написания веб-приложения на Python, используя микрофреймворк Flask.

Здесь список всех статей в серии:
Часть 1: Привет, Мир!
Часть 2: Шаблоны
Часть 3: Формы
Часть 4: База данных
Часть 5: Вход пользователей
Часть 6: Страница профиля и аватары
Часть 7: Unit-тестирование
Часть 8: Подписчики, контакты и друзья
Часть 9: Пагинация
Часть 10: Полнотекстовый поиск
Часть 11: Поддержка e-mail
Часть 12: Реконструкция
Часть 13: Дата и время
Часть 14: I18n and L10n
Часть 15: Ajax
Часть 16: Отладка, тестирование и профилирование
Часть 17: Развертывание на Linux (даже на Raspberry Pi!)
Часть 18: Развертывание на Heroku Cloud

Моя предыстория


Я разработчик ПО с двузначным числом лет опыта разработки комплексных приложений на нескольких языках. Впервые я познакомился с Python для создания привязок к C++ библиотеке на работе. Вдобавок к Python, я писал веб-приложения на PHP, Ruby, Smalltalk и, верите вы или нет, еще на С++. Из всего этого, я нахожу комбинацию Python/Flask самой гибкой.
Я хочу начать это долгое и удивительное путешествие
Total votes 63: ↑60 and ↓3+57
Comments31

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

Reading time5 min
Views969K

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

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

Читать дальше →
Total votes 174: ↑163 and ↓11+152
Comments68

Опыт вывода приложения в Toп русского App Store: цифры, графики, расследования

Reading time7 min
Views42K
Всем привет!
Всегда с удовольствием читаю case study разработчиков под iOs и хочу внести посильный вклад в понимание магии App Store — рассказать нашу историю создания и продвижения приложения в категории Entertainment для iPhone.

Немного тизеров:
1. Про нас написало большинство крупных площадок России и Украины. Вся аналитика и выводы представлены.
2. Мы поднялись до 3 места в общем Топе App Store России и Украины, 1-2 место в категории. На текущий момент мы уже 4-й день в Топ-5 с более чем 60К установок и около 500 отзывами/оценками в App Store.
3. Мы тщательно документировали весь процесс и по пути делали много скриншотов.


Читать дальше →
Total votes 49: ↑41 and ↓8+33
Comments47

Пишем платформер на Python, используя pygame

Reading time11 min
Views349K
image
Сразу оговорюсь, что здесь написано для самых маленькихначинающих.

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

Что такое платформер?


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

Одними из моих любимых игр данного жанра являются «Super Mario Brothers» и «Super Meat Boy». Давайте попробуем создать нечто среднее между ними.
Читать дальше →
Total votes 93: ↑89 and ↓4+85
Comments46

Посты-рекордсмены

Reading time5 min
Views104K
На Хабре я недавно (чуть меньше месяца), до этого Хабр практически не читал. Пришёл, огляделся, походил по тематическим «хабам», почитал «Лучшее за всё время», просмотрел статьи отдельных, заинтересовавших меня персонажей и понял, что для того, чтобы получше понять, как живёт и чем дышит это замечательное сообщество, мне придётся Хабр распарсить и позадавать ему разные вопросы. К тому же, раз уж в своих статьях я писал в основном об автореферентности в разных её проявлениях, как не написать на Хабре статью о Хабре?

Посмотрю, интересно ли это всё кому-либо кроме меня. Если интересно, напишу ещё несколько постов, идей и материала для этого более чем достаточно.

Если я ничего не пропустил в интерфейсе сайта, единственные списки самых-самых, которые можно посмотреть — это общий рейтинг пользователей и список статей, т.н. «Лучшее за всё время». Оба списка отсортированы по рейтингу (пользователей и статей, соответственно). Между тем, существует ещё куча параметров, по которым было бы интересно всё отранжировать.
Читать дальше →
Total votes 215: ↑202 and ↓13+189
Comments59

Много бесплатных книг по программированию

Reading time7 min
Views345K
Читать дальше →
Total votes 202: ↑192 and ↓10+182
Comments42

Открытая разработка игры — отчет №0

Reading time1 min
Views16K
В первую очередь благодаря Хабру мы начали активную разработку проекта, у которого теперь появилось рабочее название Хексагон(Hexagon). После предыдущей статьи у нас в команде появилось много единомышленников некоторые ушли, а некоторые подключились после.


Читать дальше →
Total votes 94: ↑78 and ↓16+62
Comments53

Как построить разработку дизайна очень большого и долгого проекта

Reading time7 min
Views80K
Когда проект большой, дизайнеров над ним работает много, одновременно и очень далеко друг от друга — постоянно возникают проблемы.



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

Посмотрим как они выкрутятся?
Читать дальше →
Total votes 123: ↑117 and ↓6+111
Comments66

Правильные социальные share-кнопки

Reading time2 min
Views80K
Социальные сети все сильнее проникают в нашу жизнь: сегодня наличие у сайта страницы или группы в социальных сетях — скорее норма, чем исключение, а многие пользователи Вконтакте используют свою ленту в качестве агрегатора новостей с интересующих их сайтов. Самый простой и, наверное, эффективный способ привлечения трафика из соцсетей — это размещение share-кнопок на страницах сайта. В этой статье немного рассуждений о проблемах таких кнопок и попытка найти идеальное решение.

Внешний вид


Читать дальше →
Total votes 113: ↑85 and ↓28+57
Comments78

Компонент «Фильтрация и управление фильтрами» 1.2 для MODX Revolution

Reading time3 min
Views19K
tagManager Наконец-то дошли руки довести до ума компонент «Фильтрация и управление фильтрами» (tagManager). Первая его версия была очень сырая, даже пришлось сделать дополнительно упрощённый вариант фильтрации. Теперь всё, что было задумано реализовано в нормальном виде и хочу рассказать об этом компоненте сообществу MODX и всем интересующимся.

Функции:
  • Сортировка групп фильтров и отдельно их значений.
  • Настройка активности групп фильтров и отдельных значений (чекбокс).
  • Изменение значений (по двойному клику появляется поле) для всех товаров, у которых есть это значение.
  • Ajax-фильтрация и сортировка товаров в каталоге.
  • Выводится число товаров по каждому фильтру. Блокируется получение пустого результата поиска.
  • Поддержка типов ввода TV с выбором одновременно нескольких значений — Флажки(checkbox), Список (множественный выбор).

Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments12

Сайт сделали, что дальше? Организация службы поддержки web-студии

Reading time5 min
Views25K


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

Что происходит при отсутствии выделенной службы поддержки? Клиент ждет ответа, ждет доработок — да хоть какой-то реакции! — и не получает ее в ожидаемое время с ожидаемым качеством. Тогда клиент ищет другие варианты.

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

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

Читать дальше →
Total votes 27: ↑18 and ↓9+9
Comments37

Ни за что не угадаете

Reading time1 min
Views81K


Дорогие Хабразнатоки!

Некоторое время назад нам удалось найти в закромах Родины необычное программно-аппаратное средство производства нашей компании. И предлагаем Вам угадать, что это. Под катом видео и немного подробностей

Читать дальше →
Total votes 87: ↑66 and ↓21+45
Comments454

Про jQuery и велосипеды — мое дополнение

Reading time6 min
Views64K
Сразу спешу сообщить вам, что я никоим образом не связан с автором предыдущей статьи. Однако, прочитав ее и увидев такой положительный отклик сообщества на статью, я тоже вдохновился и решил добавить немного своих наблюдений и знаний, к тому же это может послужить моей входной точкой в круги хабрасообщества.

Для затравки начнем с простого.
Читать дальше →
Total votes 242: ↑230 and ↓12+218
Comments126

Разработка 2D игр под Windows и HTML5 без программирования

Reading time4 min
Views38K
image

Привет Хабраюзеры!

Сегодня я хочу представить вашему вниманию замечательный конструктор 2D игр (для Windows и в частности для HTML5) Scirra Construct.

Основным плюсом данного конструктора является то, что для создания игр не требуется никаких знаний языков программирования, все делается посредством построения действий во встроенной системе событий.
Читать дальше →
Total votes 102: ↑90 and ↓12+78
Comments49

Определение доминирующих тонов на изображении

Reading time4 min
Views26K

Предыстория


Очень давно, когда мои познания в PHP были на уровне мат операций и вывода результатов, а нашел очень полезный класс, написанный Kalpeh Gamit, его сайт уже давно недоступен, поэтому, к сожалению контакты оставить не могу. Класс распространяется под именем GetImageColor и лицензией GPL 2.0.

Пользовался я этим классом частенько. Он принимает в качестве входного параметра изображение (только в формате JPEG, но за минуту дополняется всеми остальными), количество возвращаемых цветов и шаг обработки. Скрипт считывает цвет с фотографии с заданным шагом и заносит его в массив цветов. Итоговый массив отсортирован по вхождениям цветов и возвращается только заданное количество цветов.
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments35
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity