Pull to refresh
@Matisumiread⁠-⁠only

User

Send message

Пишем ORM для Delphi

Reading time9 min
Views17K
Всем привет!
Сегодня я расcкажу вам о своем опыте написания ORM для Delphi с использованием RTTI под влиянием практик работы с Doctrine и Java EE.

Зачем?


Под мою власть недавно попал старый проект на Delphi7 в котором ведется активная работа с базой данных под Interbase 2009. Код в этом проекте радовал, но ровно до тех пор, пока речь не заходила о самом взаимодействии с бд. Выборка данных, обновление, внесение новых записей, удаление — все это занимало немало строк в логике приложения, отчего разобраться в коде порой становилось довольно сложно (спасение в добросовестном разработчике, который круглосуточно отвечал на мои глупые вопросы). В мои руки проект был передан с целью устранения старых бед и добавления в него нового модуля, задача которого — покрыть новые таблицы БД.

Мне нравится MVC подход и очень хотелось разделить код логики с кодом модели. Да и если уж на чистоту — я не захотел для каждой новой таблицы переписывать по новой все get/set методы. Пару лет назад я познакомился с понятием ORM и мне это понравилось. Мне понравился принцип и я был в восторге, применяя его в своей работе.
В тот же момент я ринулся искать в Delphi7 хоть что-нибудь похожее на Doctrine или может генераторы Entity/Facade классов для таблиц… Ни того ни другого. Зато в поисковой выдаче нашлось несколько готовых решений. Например DORM. В целом, отличная штука и, по сути, то что нужно!
Читать дальше →

Обучение программированию на Java

Reading time8 min
Views119K

Я собираюсь переучить на Java-программистов миллион человек.
Я собрал команду и сделал обучающий сервис, которым могу гордиться.
Рад сообщить, что теперь стать программистом легко, независимо от образования и опыта.

Но обо всем по порядку, много картинок

Создаём игру, используя canvas и спрайты

Reading time15 min
Views165K
Веб сейчас везде, и предлагает очень мощную среду для создания и распространения приложений. Вместо цикла: написание кода → компиляция → запуск, просто обновите приложение или даже напиши код «на живую» в браузере. Кроме того, это относительно безболезненно позволяет распространять своё приложение на огромном количестве платформ. Интересно, что в последние несколько лет, разработка игр, используя HTML5, стала реальностью.
Элемент canvas был введен вместе с HTML5 и предоставляет API для работы с ним. API — прост, но если Вы никогда не работали с графикой, Вам потребуется время чтобы привыкнуть. Canvas поддерживается большим количество браузеров, что делает веб — хорошей площадкой для создания игр.
Читать дальше →

Игра «угадай аниме по кадру» – защита от читерства

Reading time6 min
Views8.5K
Наверное, многие участвовали в играх, где нужно было угадать фильм или сериал по кадру из него. Очень часто такие топики-игры встречаются на форумах. А недавно мне показали сайт, целиком посвящённый угадыванию аниме по кадру. С автоматизированной игрой: с учётом очков, с вариантами ответов.

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

(картинка для привлечения внимания)

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

Проблемы роста в IT бизнесе

Reading time8 min
Views97K
проблемы
Я ничему не научу вас в этом посте. Может быть просто расскажу что-то о чем вы еще не знаете, или не догадываетесь. Но вы можете с этим столкнуться, и тогда вы будете предупреждены. А значит и вооружены. И еще я очень рассчитываю на советы тех людей, которые уже прошли через эти проблемы и решили их.

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

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

Что же это за проблемы?
Читать дальше →

Как я искал работу или Как не надо проводить собеседования

Reading time6 min
Views316K
imageВ общем, решение назревало давно, и вот, одним пасмурным Питерским утром, я сказал шефу, что, к сожалению, тут наши пути расходятся. Было составлено резюме, более или менее описан десятилетний опыт работы в области web-программирования, обдумана сумма оклада, немного выше средней по Питеру, но далеко не топовая (я пока ни разу не гуру), оплачены услуги по поднятию резюме в топ каждые четыре часа, установлена прога, записывающая все входящие звонки (чтоб ничего не забыть), и я сел ждать. Собственно, это был вечер пятницы, так что ждать пришлось аж до понедельника, но в понедельник начался ад.

Звонков было много, за следующую неделю я посетил 17 собеседований, по 3-4 в день, в четверг я уже перестал соглашаться на собеседования, а звонки все шли и шли.

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

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №61 (9 — 15 июня 2013)

Reading time7 min
Views35K
Предлагаем вашему вниманию очередную подборку с ссылками на новости, интересные материалы и полезные ресурсы.


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

Сортировка треков в плейлисте VK

Reading time1 min
Views66K


Disclaimer: я начал писать этот скрипт, когда весёлые новости ещё не подоспели.

Буду краток.
  • Что оно делает?
    • Переупорядочивает треки в вашем плейлисте в VK так, чтобы с минимальным вмешательством он стал выглядеть аккуратнее.
  • Где взять?
  • Как пользоваться?
    • Понадобится Python 2.7.x. Качаете, устанавливаете. Берёте файл vk_music_organizer.py из архива, открываете в блокноте, в самом начале пишете в строках email = '...' и password = '...' свой логин и пароль соответственно. Сохраняете. Если у вас корректно установлен Python, то после этого достаточно просто запустить этот файл двойным щелчком.

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

Разработка web API

Reading time9 min
Views291K

Интро


Это краткий перевод основных тезисов из брошюры «Web API Design. Crafting Interfaces that Developers Love» Брайана Маллоя из компании Apigee Labs. Apigee занимается разработкой различных API-сервисов и консталтингом. Кстати, среди клиентов этой компании засветились такие гиганты, как Best Buy, Cisco, Dell и Ebay.

В тексте попадаются комментарии переводчика, они выделены курсивом.

Собираем API-интерфейсы, которые понравятся другим разработчикам


Понятные URL для вызовов API

Первый принцип хорошего REST-дизайна — делать вещи понятно и просто. Начинать стоит с основных URL адресов для ваших вызовов API.

Ваши адреса вызовов должны быть понятными даже без документации. Для этого возьмите себе за правило описывать любую сущность с помощью коротких и ясных базовых URL адресов, содержащих максимум 2 параметра. Вот отличный пример:
/dogs для работы со списком собак
/dogs/12345 для работы с отдельной собакой
Дальше

Одно предложение, которое делает нас сильнее

Reading time2 min
Views93K
Это мой самый короткий топик, суть которого в одном предложении. Часто именно с этого предложения начинается успешный стартап, бизнес и любое другое начинание.

Это шаблон описания сути вашей компании или проекта в одном предложении. Я открыл его для себя во время стажировки в США. Составив его, мы реально становимся сильнее. В последствии мне это помогло выбрать правильный курс, сфокусироваться и расставить приоритеты.
Читать дальше →

Боремся с дубликатами

Reading time5 min
Views9.8K
Продолжая тему использования динамического SQL, я хочу рассказать об одном полезном инструменте, реализованном мной в рамках одного из текущих проектов. Речь пойдет о дубликатах в справочниках. Под дубликатами, в этой статье, я понимаю записи, внесенные в справочники повторно, например в результате орфографической ошибки при вводе наименования.
Читать дальше →

NoName Framework или Как я велосипед изобретал

Reading time13 min
Views24K

Привет тебе, хабраюзер!

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

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

Онлайн редактор для Bootstrap— LayoutIt

Reading time1 min
Views102K
Twitter Bootstrap становится всё популярнее и популярнее, многие используют его в своих проектах, думаю еще больше людей используют для прототипирования интерфейсов. Я не исключение. И вот сегодня утром наткнулся на интересный сервис — LayoutIt. По сути LayoutIt — это онлайн редактор для создания интерфейсов с использованием Bootstrap. Редактор представляет собой Drag & Drop интерфейс.

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

Список команд чата Skype

Reading time6 min
Views693K
...Skype — это дьявольски хитрая программа, написанная бесспорно талантливыми людьми...Крис Касперски

Доброго времени суток!

Skype сейчас я встречаю чаще на компьютерах чем другие IM клиенты, мне он практически заменил icq, вся рабочая переписка ведется в skype, но речь пойдет не о том, что лучше или популярней. Часто бывает так, что участвуешь сразу в нескольких чатах где количество участников превышает 10, что собственно и приводит к тому, что на рабочем столе и в трее постоянно обновляется количество новых сообщений, а также уведомления в виде всплывающих сообщений, а теперь представьте что у вас 3 окна чата с друзьями, 1 с вашим боссом, другой с девушкой — все это в сумме начинает запутывать, отвлекать и порой раздражать. Хотелось бы расставить приоритеты…

Раньше я чаще всего настраивал «политику» уведомлений только через глобальные настройки программы
Случилось так, что я узнал, что в каждом окне чата skype возможно использование команд, например /alertsoff отключит уведомления для конкретного окна чата, соответственно /alertson включит их обратно.
Поискав немного я наткнулся на некое how-to, оказывается у skype чата довольно много текстовых команд, подобие IRC команд. Далее я постарался попробовать все возможные из них на двух имеющихся у меня платформах, как оказалось не все и не везде работает… Прошу под кат.

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

Пишем эмулятор Кубика Рубика

Reading time20 min
Views78K
OpenGL — платформонезависимая спецификация, описывающая программный интерфейс для создания компьютерных приложений, использующих двухмерную и трехмерную графику.
В этой статье я опишу, как можно создать эмулятор Кубика Рубика на OpenGL.

Кубик будет в 3D и его можно будет вращать мышкой, а переворачивать грани можно, кликая мышкой по стрелкам. При том стрелки появляются у ближайшей к зрителю грани.


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

Оптимизация 2d-приложений для мобильных устройств в Unity3d

Reading time13 min
Views107K
Недавно наша студия завершила разработку большого обновления — Captain Antarctica: Endless Run — для устройств на iOs. Кропотливая работа над обновлением затронула производительность, которая оказалась очень низкой на слабых устройствах. Я боролся с этим целую неделю и добился как минимум 30 FPS, а также значительного сокращения размера приложения. Хочу рассказать, как я это сделал, ну и как делать не стоит.
Статья пригодится любым разработчикам на Unity (причем не только менеджерам проектов и техническим специалистам, но и просто программистам, художникам и дизайнерам), потому что она затрагивает как оптимизацию на Unity в целом, так и конкретно оптимизацию 2d-приложений для мобильных устройств.

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

Юнит-тестирование для чайников

Reading time15 min
Views1.1M
Даже если вы никогда в жизни не думали, что занимаетесь тестированием, вы это делаете. Вы собираете свое приложение, нажимаете кнопку и проверяете, соответствует ли полученный результат вашим ожиданиям. Достаточно часто в приложении можно встретить формочки с кнопкой “Test it” или классы с названием TestController или MyServiceTestClient.



То что вы делаете, называется интеграционным тестированием. Современные приложения достаточно сложны и содержат множество зависимостей. Интеграционное тестирование проверяет, что несколько компонентов системы работают вместе правильно.

Оно выполняет свою задачу, но сложно для автоматизации. Как правило, тесты требуют, чтобы вся или почти вся система была развернута и сконфигурирована на машине, на которой они выполняются. Предположим, что вы разрабатываете web-приложение с UI и веб-сервисами. Минимальная комплектация, которая вам потребуется: браузер, веб-сервер, правильно настроенные веб-сервисы и база данных. На практике все еще сложнее. Разворачивать всё это на билд-сервере и всех машинах разработчиков?

We need to go deeper

Пишем игру-клон Super Mario Brothers (часть 1)

Reading time23 min
Views89K
imageДля многих из нас Super Mario Brothers была первой игрой, которая по-настоящему завораживала своим игровым процессом.
Интуитивное управление SMB и великолепный дизайн уровней от Nintendo заставляли проводить часы напролет в виртуальной вселенной сантехника и его напарника.

В этом чудесном туториале от Джейкоба Гандерсена мы создадим собственный платформер; но, так как главным героем будет Коала, мы назовем нашу игру «Super Koalio Brothers!» ;]
Также, чтобы упростить механику, мы забудем о движущихся врагах. Вместо них мы будем использовать шипованные блоки, встроенные в пол. Это позволит нам полностью сконцентрироваться на сердце платформера — физическом движке.

Внимание! Под катом невероятное количество переведенного текста, картинок, кода (код не переведен) и руководство по созданию собственного физического движка!
Читать дальше →

Применение процедурных генераторов в создании контента для real-time 3D приложений: Часть 1. Oil Rush

Reading time18 min
Views109K
Игра Oil Rush


В данной статье, состоящей из двух частей, речь пойдёт об использовании возможностей процедурных генераторов при создании контента для компьютерной игры Oil Rush и бенчмарка Valley (выйдет в феврале), разработанных на нашем собственном движке Unigine.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity