А кашу Вы из воздуха взяли? Или заботливая мама/жена ее готовила, добавляла соль и сахар, чтобы сыночку было вкусно, следила, чтобы не пригорело, чтобы не было жучков в крупе?
Кулинарные конкурсы проходят повсеместно, и лично я не возьмусь проводить грань между «стряпней» и «Едой», но знаю точно, что нормальный повар вкладывает себя даже в приготовление пельменей, особенно если лепит их вручную.
Но с едой пример чуть менее корректен, потому что на планете 7 миллиардов человек пробуют себя в качестве кулинара, а у многих нет выбора, есть или не есть. Как раз приготовление еды хорошо с архитектурой сравнивать, процент «ширпотреба» довольно велик. Или по-Вашему архитектура — тоже не искусство?
На всей электроннике вокруг Вас есть код — операционные системы, драйвера, сайты, микропрограммы контроллеров. Если бы это все был говнокод, отходы жизнедеятельности, его бы не использовали повсеместно, как Вы не пользуетесь китайскими силуминовыми отвертками или солнечными очками за $2. Посмотрите на сайт, где мы это пишем, он по-вашему сделан без души? Это естественный отбор, как и в случае с книгами, фильмами и музыкой. Конечно, есть исключения, но их и в литературе достаточно, вроде книг президента с фамилией на Я.
Код — произведение искусства. Он всегда требует отдачи, творческого подхода, содержит частичку души автора. Как и книга, код может быть монументальным или однодневным, графоманским или авангардистским, и лишь в малой доле случаев он нем и бездушен, как заказной некролог в бульварной газетенке.
я подозреваю, что 99.9% аудитории тут умеет создавать файлы и писать print(«Hello World»). Стоило сразу начать с 1й части и хотябы с рисования LUA-аналога AlertDialog/UIAlertView.
а продукт сам интересный, спасибо за наводку.
Самый большой недостаток задачи в том, что расчет эвклидового расстояния выполняется слишком быстро по сравнению с разными подготовительными операциями — загрузкой, построением дерева, делением пространства и пр.
Если бы кроме расстояния проверялись еще климатические условия планет/радиусы/гравитация/геологическое соответствие/etc., или если бы это были не планеты, а организмы с AI и они искали ближайшего врага/самку/друга, то тупой перебор был бы уже не делом 5-10 секунд, а затянулся на дни и надо было в любом случае придумывать алгоритм.
Элементарно и общеизвестно в основном в Windows, там достаточно чужому окну послать через SendMessage сообщение WM_LBUTTONDOWN/WM_LBUTTONUP. Вся программа выходит в 4-5 строк. Примеров в интернете море, например тут.
В других ОС подходы похожие, но не всегда все так прозаично. Для X пишется чуть более сложный код код с XSendEvend: gist.github.com/726474, а вообще под Unix/Linux/MacOS X есть неплохая клик-утилита xdotool.
Нативный способ в MacOS X делается через CGEventCreateMouseEvent и CGEventPost, пример есть на stackoverflow и устаревший метод тут.
Как сделать в мобильных iOS и Android (аналог MonkeyRunner?) — не представляю. Может даже и легче будет подключить через разные переходники мышку топикстартера. Вообще, описание методов для всех популярных ОС с примерами и компилируемым кодом было бы хорошей темой для статьи, чтобы собрать все вместе для потомков.
Именно в этом конкретном примере потребуется аж один дополнительный столбец в описании лота — высота картинки или ее соотношение сторон, чтобы генерировать сразу тег img c нужными размерами. Просто это никому не надо, а на 100Mb интернете и не заметно.
Такое впечатление, что многие разработчики забыли о существовании каналов в 32кбит/с (сотовый модем при не очень уверенном приеме)
Факт. Самый яркий пример — отсутствие height на картинках лотов в ebay, из-за чего страница поиска все время «ползет», пока на 100% не загрузится. Посадить бы их программистов на диалап на недельку, сразу бы все вычистили )
Моя «половинка» не работает — я давно к этому стремился и рад, что могу ее обеспечивать. Живем в загородном доме, тут всегда есть чем заняться — подстричь газон, оформить клумбу, провести время с детьми, потому вопрос «а ей не скучно?» не актуален.
Скажите, неймспес std и классы string, vector, istream тут именно от PoCo? Или используется хитрая мешанина с STL? Выглядят они откровенно чужеродными, да и смысла нет использовать сразу две кросс-платформенные библиотеки и/или два синтаксиса.
Ощущения от статьи: интересно, надо будет попробовать. Не раскрыта работа с коллекциями, XML, смутило разное форматирование параметров в format, Statement, PatternFormatter, но это не беда. Также появилось легкое предчуствие, что портирование таого зверя на новые ОС далеко не тривиально и если надо запустить код на каких-нибудь QNX/BeOS/iOS, то придется слать письма счастья разработчикам и ждать долгими зимними вечерами.
Для своих программ использую такой подход: при In-App покупке сохраняю данные транзакции, но и не не заморачиваюсь супер-валидацией. Через неделю посылаем запрос на корректность покупки и в случае явного подлога покупку откатываем. Никто не будет держать у себя фейковый DNS все время, а за неделю человек решит для себя, хочет он купить данную фичу, или она ему совсем не нужна. Ну или таки снова сломает. )
Получается как-бы расширенный триал для тех, кто не ленится ломать/джейлить. Все-равно если человек принципиально не покупает, то бороться с ним нет смысла, это только отвернет его от программы и уменьшит аудиторию продукта. Потому же и раздаю промо-коды тем, кто не ленится их попросить.
Какую ответственность? Если два человека о чем-то не договорились, то среди них нет «виноватого», просто не совпали условия, навыки, требования и пр. Обычный рабочий момент.
Это на базаре бывает, что торговались, но кто-то не уступил, или кто-то пытался обмануть. Тут же все четко — критерии соискателя и работодателя не совпали.
На собеседовании меня методично кидали лицом в грязь в течении более 2 часов
Кстати, модная сейчас тенденция. Как-то меня на собеседовании в Cr*Tek мучали 4 часа кряду. Спрашивали буквально все, что можно. Включая и заковыристые вопросы из теории баз данных, и аспекты 3д программирования (понимание вращения квартернионами). И это все при найме сетевого программиста. Видимо, стресс-тест позволяет собеседующим что-то разглядеть в соискателе. Пусть это было далеко не первое мое собеседование в жизни, чувствовал себя откровенно неуютно. В случае с автором холивара, как раз собеседование было первым, потому и избыток эмоций перетек в статью, а дальше уже понеслось )
А ведь на самом деле, ничего особенного — завернули в одном месте, возьмут в другом. Главное не опускать руки.
дом в любом случае имеет план и чертеж, разрешения, расчеты. да и хозяин зачастую имеет видение, где будет диван, а где аквариум. но строят все-равно с фундамента, а остальное держат в уме и на бумаге.
Иначе будет как в анекдоте — «Молдаване строя дом сначала прибивают все имеющиеся доски, а потом отпиливают все лишнее»
Кулинарные конкурсы проходят повсеместно, и лично я не возьмусь проводить грань между «стряпней» и «Едой», но знаю точно, что нормальный повар вкладывает себя даже в приготовление пельменей, особенно если лепит их вручную.
Но с едой пример чуть менее корректен, потому что на планете 7 миллиардов человек пробуют себя в качестве кулинара, а у многих нет выбора, есть или не есть. Как раз приготовление еды хорошо с архитектурой сравнивать, процент «ширпотреба» довольно велик. Или по-Вашему архитектура — тоже не искусство?
а продукт сам интересный, спасибо за наводку.
А где же игра? Это ведь просто Hello World на LUA с детальным описанием как создать новый файл…
может стоило хотябы этот пример на каком-то устройстве запустить и получить аутпут не в IDE под Windows, а в диалоговом окошке на девайсе?
Если бы кроме расстояния проверялись еще климатические условия планет/радиусы/гравитация/геологическое соответствие/etc., или если бы это были не планеты, а организмы с AI и они искали ближайшего врага/самку/друга, то тупой перебор был бы уже не делом 5-10 секунд, а затянулся на дни и надо было в любом случае придумывать алгоритм.
В других ОС подходы похожие, но не всегда все так прозаично. Для X пишется чуть более сложный код код с XSendEvend: gist.github.com/726474, а вообще под Unix/Linux/MacOS X есть неплохая клик-утилита xdotool.
Нативный способ в MacOS X делается через CGEventCreateMouseEvent и CGEventPost, пример есть на stackoverflow и устаревший метод тут.
Как сделать в мобильных iOS и Android (аналог MonkeyRunner?) — не представляю. Может даже и легче будет подключить через разные переходники мышку топикстартера. Вообще, описание методов для всех популярных ОС с примерами и компилируемым кодом было бы хорошей темой для статьи, чтобы собрать все вместе для потомков.
А индикатор от регулярного поглаживания большим пальцем не ввалится вовнутрь?
Факт. Самый яркий пример — отсутствие height на картинках лотов в ebay, из-за чего страница поиска все время «ползет», пока на 100% не загрузится. Посадить бы их программистов на диалап на недельку, сразу бы все вычистили )
Моя «половинка» не работает — я давно к этому стремился и рад, что могу ее обеспечивать. Живем в загородном доме, тут всегда есть чем заняться — подстричь газон, оформить клумбу, провести время с детьми, потому вопрос «а ей не скучно?» не актуален.
Ощущения от статьи: интересно, надо будет попробовать. Не раскрыта работа с коллекциями, XML, смутило разное форматирование параметров в format, Statement, PatternFormatter, но это не беда. Также появилось легкое предчуствие, что портирование таого зверя на новые ОС далеко не тривиально и если надо запустить код на каких-нибудь QNX/BeOS/iOS, то придется слать письма счастья разработчикам и ждать долгими зимними вечерами.
Получается как-бы расширенный триал для тех, кто не ленится ломать/джейлить. Все-равно если человек принципиально не покупает, то бороться с ним нет смысла, это только отвернет его от программы и уменьшит аудиторию продукта. Потому же и раздаю промо-коды тем, кто не ленится их попросить.
Это на базаре бывает, что торговались, но кто-то не уступил, или кто-то пытался обмануть. Тут же все четко — критерии соискателя и работодателя не совпали.
Кстати, модная сейчас тенденция. Как-то меня на собеседовании в Cr*Tek мучали 4 часа кряду. Спрашивали буквально все, что можно. Включая и заковыристые вопросы из теории баз данных, и аспекты 3д программирования (понимание вращения квартернионами). И это все при найме сетевого программиста. Видимо, стресс-тест позволяет собеседующим что-то разглядеть в соискателе. Пусть это было далеко не первое мое собеседование в жизни, чувствовал себя откровенно неуютно. В случае с автором холивара, как раз собеседование было первым, потому и избыток эмоций перетек в статью, а дальше уже понеслось )
А ведь на самом деле, ничего особенного — завернули в одном месте, возьмут в другом. Главное не опускать руки.
Иначе будет как в анекдоте — «Молдаване строя дом сначала прибивают все имеющиеся доски, а потом отпиливают все лишнее»