?

Log in

No account? Create an account

Каким должен быть интернет
yurikravchik
Ломается бесконечное количество копий о том чем плох или хорош html, css и другие буквы. Какими они задумывались, что в них испортилось, как правильно, или правильно так как есть. Куда нужно эволюционировать, спасёт ли всех новая редакция стандарта, как жить с джаваскриптом, какие подходы или библиотеки спасут всех...

Но настоящая проблема лежит в стороне. Мы привязаны к одному стандарту, к одной платформе - это html с джаваскриптом.
А настоящая эволюция и прогресс наступит тогда, когда в интернете смогут конкурировать разные платформы.
Наподобие флэша. Вполне себе платформа, со своими минусами, но можно полностью не то что страничку, а целое приложение собрать не выходя в html. Вот о таком уровне "платформ" я говорю. Silverlight туда же.

Только работать они должны не поверх html, а совершенно независимо. Т.е. перешли на страничку другой платформы - там полностью свой движок, свой формат общения с сервером (хоть udp), своя система кеширования (или вообще без неё), свой рендерер (хоть unreal engine на С++).

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

Вот тогда была бы конкуренция и возможности развития новых подходов и кардинального переосмысления. Вплоть до того что общаться с сервером по udp, а рендерить напрямую в OpenGL.
Адобе во флэше баги не фиксит? Разработчики валят на "гугл-лайтнинг" (придумал название). Там тоже плохо? Идут на "микрософт-зандер".
В том числе придёт и свобода в выборе - у кого-то таблички быстро рендерятся и много UI компонентов, у кого-то платформа заточена под быстрый рендер и хорошие звуки.

В итоге что будем иметь? Конкуренцию html+css, флэша, сильвер-лайта, <вашего лучшего на свете языка с llvm/>, и других подобных вещей. А каждый кто стенает по поводу неправильных концепций - просто сможет сделать "как надо".

Java + midi
yurikravchik
Миди использовать в джаве очень просто, апи не-по-джавовски простое и работает оно везде. Но если джава не найдёт в системе sound-bank - звучать будет запасной, а звучит он - как говно. И даже если в системе есть получше - на другой машине его может не быть, или он может быть другой.

Так что хинт №1 - сразу включайте в проект sound-bank и загружайте его в самом начале. Не полагайтесь на default.

В нете легче всего находится банк, лежащий на оракле, но (сюрприз!) он не заработает, потому что он старой версии и не поддерживается с джавы 1.6.

Так что хинт №2 - ищите FluidR3_GM.sf2 например. Он весит 150М. Можно найти банк и поменьше. Или, банк только с нужным инструментом в пару сотен килобайт. Или в сотню мегабайт (как весит одно пианино acoustic_grand_piano_ydp_20080910.sf2).

3D мышь бесплатно!
yurikravchik
А точнее, я заопенсорсил свой 6DOF манипулятор (ака 3D мышь).
1. там есть примитивный редактор, на котором можно увидеть как оно вообще работает и что может
2. есть и "сервер" - штука, которая всё распознаёт, и пихает в localhost:9353 - 3D координаты и ориентацию манипулятора. А их можно считывать уже где угодно, хоть в этом вашем сипипи, хоть в плагине для макса, маи, итп.
Да, а сам манипулятор - это бумажный лист со специальной распечатанной и вырезанной картинкой.
Видео, инфа, и простой способ запуска.
Сурцы на гитхабе.
Реализация на джаве, но есть несколько либ (и для линуха и для винды), которые нужны для работы с веб-камерой.

ctrl + backspace
yurikravchik
ctrl + backspace должен стирать не слова, а Х символов. 5 или 10. Около того. Потому что стирать слова - это (если задуматься) чрезвычайно неудобно.
Почему. Обычно, удаляются не слова, а символы "до некоторого места". А удаление per-word - непредсказуемо, к нему нельзя привыкнуть - все слова разной длины, и оно то пол-строчки за секунду удаляет, то пять символов (если это короткие слова, запятые, итп).
А вот с фиксированным количеством удалённых символов - мир стал бы чуточку лучше.

Изобретайте велосипеды
yurikravchik
В обучении нейронной сети распознаванию образов, есть такая техника. Из набора картинок для обучения - спициально убирают половину, и не учат по ней. А потом, после обучения - используют эту половину для ПРОВЕРКИ качества обучения.



Тот же подход (только наоборот) можно использовать для развитии в себе навыка изобретения новых вещей. Когда вы берётесь за новую тему - (геометрия/физика/киент-сервер/что угодно), не спешите запихнуть в себя готовое решение и дейстовать по накатанной - это сузит ваш кругозор и вы упустите шанс научиться решать такие задачи, если они не решены до вас.
Попытайтесь сначала решить задачу самостоятельно. Да, изобретайте велосипеды. Грубо говоря - собираясь изучить теорему Пифагора - не спешите просто прочитать ответ. Представьте себя Пифагором, попытайтесь изобрести её. Вам это будет гораздо легче чем ему - вы знаете что решение есть, можете в подсказки глянуть, если оказались в тупике. А главное - в процессе вы будете приобретать навыки самостоятельного поиска решения. И когда вы окажетесь перед проблемами, которые действительно до вас никто не решал - будете знать что делать.

(no subject)
yurikravchik
Архитектурное решение может характеризоваться ещё и таким важным качеством, как возможность сделать то, что НУЖНО, а не только то, что позволяет система.
Речь о том, что в систему иногда закладывают ограничение (вынужденно или умышленно), не позволяющее использовать её "некрасиво". Это, с одной стороны, не даёт развиваться проекту "неправильно", но с другой - не позволяет совмещать новую архитектуру со старой там, где это необходимо, пусть даже временно.

Дрон-киллер
yurikravchik
Коллега натолкнул на мысль о квадрокоптерах с пистолетом. Интересная задача, имеющая несколько алгоритмических вызовов. Железо относительно простое, а вот "мозги" должны распознавать изображение, моделировать окружающее пространство и всё такое.

Приближение №1
Квадрокоптер зависает, целится сколь-угодно долго, совершает выстрел. Здесь должно уже быть минимальное вмешателсьство оператора.

Приближение №2
Квадрокоптер стреляет "на пролёте". Т.е. выстрел происходит без остановки, без стабилизации, без всего. Т.е. саму траекторию уже нужно построить заранее, и заранее знать в каком её месте нужно нажать на спусковой крючёк. Т.к. времени на прицеливание нет, стрельба происходит уже "вслепую". На сцену выходит второй квадрокоптер, делающий предварительный пролёт и делающий ряд снимков мишени. "Исполнитель" (дрон с пистолетом), пролетает вслед за ним через 1-5 секунд. За это время успевает обработаться информация, составиться 3D модель окружения, успевают произвестись и последние корректировки траектории и уточнение момента стрельбы.
Коротко: тандем из двух квадрокоптеров, пролетающих с зазором в пару секунд. Первый делает снимки для расчёта выстрела, второй - стреляет по этим расчётам вслепую.

Приближение №3
Тандем из многих дронов. Первый делает снимки и расчёты. Второй - стреляет в стекло, делая в нём дыру, третий - сквозь дыру совершает контрольный выстрел в мишень. 2й и 3й пролетают с зазором в пол-секунды.
Или 2-й, 3-й n-й могут просто поражать каждый свою мишень (из многих, сидящих, к примеру, в одной комнате).

Приближение №4
Не квадрокоптеры, а самолёты. Самолёт эффективнее - может дальше летать, больший груз поднимать.
Точно так же - первый самолёт пролетает для создания модели, второй стреляет уже по этой модели в мишень, вслепую. Скорость пролёта может быть высокая. При этом, гипотетически, можно обеспечить высокую надёжность поражения.

1. пролёт первого дрона - фотографирование и моделирование
Screenshot from 2014-07-04 15:11:45

2. пролёт второго дрона - выстрел в мишень вслепую
Screenshot from 2014-07-04 15:11:56

Робот разрисовывающий улицы
yurikravchik
Отличная идея для технологического стартапа.

Рисунками могут быть - классические узоры, учитывающие контекст, вензеля обрамляющие люк/перекрёсток, или... выбоину. Через пару недель, когда рисунок поблекнет под дождём - можно сменить тематику, и нарисовать абстракционизм какой-нибудь.
Могут быть и рисунки, или рисунки в проекции. Причём, расставляться изображения должны, как и узоры, с учётом местности. Например, рисунок с проекцией можно расположить с учётом дорожки, по которой в основном ходят люди.
Перерисовывать такое можно часто, т.е. не требовать от краски долговечности. Скорее важным требованием будет - быстрое высыхание.

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

Т.к. рисунок автоматический, легко представить, к примеру, тротуар, с нарисованными фигурными плитками, каждая разных цветов. Или с постепенно изменяющимися размерами или формой. Или составляющими вместе "витраж", цельный рисунок которого, виден с соседнего моста. Про узоры и вензеля уже писал. В общем, спросите у спецов по генерации текстур, они раскажут, что интересного можно сотворить.

Фантастический молекулярный генератор
yurikravchik
Screenshot from 2014-06-26 11:18:09
1 - ионные и электронные пушки
2 - область сбора молекулы
3 - поток готовых молекул

Суть такова. Ионные и электронные пушки (1) стреляют в область фокуса (2), где сталкиваясь в правильной последовательности и в правильном направлении - связываются в молекулы. Необходимая скорость разгона, очевидно, зависит от энергетического уровня молекулы.
Для конфигурации молекулы - нужно правильно расположить пушки, и выставить частоту и фазу выстрелов. А сновная фишка в том, что это макроскопические параметры!

Фантастический молекулярный двигатель
yurikravchik
Screenshot from 2014-06-25 10:54:59

1 - космический корабль
2 - генератор молекулы
3 - ускоритель
4 - молекула

Суть такова. Генератор молекулы (2) растит её, с большой скоростью. Молекула (4) обладает большой прочностью. Ускоритель (3) - проталкиает её через себя, создавая тягу. Молекулу выбрасывает с большой силой назад, корабль, соответственно, ускоряется вперёд.
По сравнению с двигателем, который просто выбрасывает реактивную струю, в том, что часть струи-молекулы, уже вышедшая из двигателя - продолжает использоваться - ускоритель проталкивая через себя переднюю часть молекулы, в т.ч. отталкивает и массу части молекулы уже вышедшую.