И вот, вчера, после полторамесячной задержки, мне отремонтировали телефон. Как и почему так долго - другая неинтересная история. Телефон у меня Motorola Z6, это который на Linux. Расковырянный сообществом ( по-умолчанию, это даже не смартфон считался. Но народные умельцы все таки нашли способ, и теперь телефон - компьютер на ARM процессоре с Linux'ом на борту ).
Приятно удивило, что за последнее время появилось немного интересных вещей для телефона. В частности, порадовал родной Warcraft 2, который без тормозов идет на телефоне. И вот, я вспомнил, что когда-то ( около полугода назад ) я писал эмулятор Sega на этот телефон, но в виду его корявости забил на это дело. Вчера, с новыми знаниями ( век живи, век учись ), придумал один способ, который поможет сделать работающий эмулятор Сеги. А если будет сега - будет счастье для владельцев. Т.к. этот блог для более-менее технических людей, то буду выкладывать здесь сей процесс. Сегодня вечером буду пробовать прикрутить новый рендер на виджет, а не напрямую в fb. Скорость будет ниже, но гибкость - выше. А там посмотрим.
З.Ы. А вообще-то я прочел на Хабре статью про страхи habrahabr.ru/blogs/arbeit/85875/, и решил, несмотря на всю бессмысленность этого поста, его запостить. Авось, и в этом счастье)
Приятно удивило, что за последнее время появилось немного интересных вещей для телефона. В частности, порадовал родной Warcraft 2, который без тормозов идет на телефоне. И вот, я вспомнил, что когда-то ( около полугода назад ) я писал эмулятор Sega на этот телефон, но в виду его корявости забил на это дело. Вчера, с новыми знаниями ( век живи, век учись ), придумал один способ, который поможет сделать работающий эмулятор Сеги. А если будет сега - будет счастье для владельцев. Т.к. этот блог для более-менее технических людей, то буду выкладывать здесь сей процесс. Сегодня вечером буду пробовать прикрутить новый рендер на виджет, а не напрямую в fb. Скорость будет ниже, но гибкость - выше. А там посмотрим.
З.Ы. А вообще-то я прочел на Хабре статью про страхи habrahabr.ru/blogs/arbeit/85875/, и решил, несмотря на всю бессмысленность этого поста, его запостить. Авось, и в этом счастье)
- Current Location:Работа
- Current Music:Би-2
Долго не писал, ибо не было обратной связи. Сейчас, одна дама вдохновила меня на написание поста. Напишу про волнующую меня в данный момент проблему.
Начал я свои трудовые будни с 16лет, сейчас уже год с лишним, как я день у день хожу на работу. Сейчас у меня уже вторая работа, но, сейчас и она меня начинает не устраивает. Что там, что тут я работал веб-разработчиком. Но приходит время, когда понимаешь, что все задолбало, что-то похожее до депрессии. Сейчас нет никакой мотивации работать, большую часть времени провожу не за тем, чем надо. Подумываю о смене работы, и вообще, месте жительства ( еще личные фактор за смену места жительства ).
В общих чертах охарактеризирую текущую работу:
- 8 часовой рабочий день. Жесткий график, хотя можно отпрашиваться, за прогулы не так больно бьют и т.п.
- нет дней, когда нет работы. Т.е. есть всегда что делать.
- платят стабильную з.п., не зависимо от твоих действий. Можешь из кожи рваться чтобы сделать, а можешь просиживать работу - результат тот же.
- нет развития. Делаешь то, что умеешь делать. Работа в большинстве скучная.
- работа на дядю, знаешь что за твои труды дядя получит больше в несколько раз.
Я, по натуре, такой, что не могу длительное время делать что-то одно. Мне начинает надоедать, и еще круто надоедать. Поэтому я так развит в различных областях. HTML верстка, веб-разработка, прикладное программирование ( C++, JAVA ), администрирование Linux.
Думал между тем, чтобы идти на такого же типа работу, или на вольные хлеба ( фрилансер ). В процессе обдумывания, решил, что подошла б работа с небольшой зарплатой, нестандартным графиком ( там день через два, и т.п, или "по вызову" ), в которой большинство рабочего времени "просиживал" ( я планирую это время использовать в своих целях ). Сначала подумывал про работу типа "сторож" или "вахтер", но, думаю в 17 лет трудновато будет найти.
Буквально вчера озарило: нужно идти сисадмином. Благо знания в системах Linux есть. Плюсы:
- работа по вызову, если какае-то неполадка.
- свободное время можно использовать для фриланса
- работа не пыльная, если знаешь как делать. В крайнем, гугль поможет.
И в результате получается такая схема: что основная работа - фриланс. Но т.к. это дело рисковое, и можно остаться без прибыли, то работа сисадмином - страховочный минимум, которого хватит на обязательные платежи ( за квартиру, и т.п. ). Для меня это был бы идеальный вариант.
Цель этого поста: даже незнаю. Какой-то крик души. Возможно я ставлю высокие требование до работы, и стоит забить и не рыпаться никуда. Или наоборот - пробовать, пробовать, пробовать. Незнаю.
Начал я свои трудовые будни с 16лет, сейчас уже год с лишним, как я день у день хожу на работу. Сейчас у меня уже вторая работа, но, сейчас и она меня начинает не устраивает. Что там, что тут я работал веб-разработчиком. Но приходит время, когда понимаешь, что все задолбало, что-то похожее до депрессии. Сейчас нет никакой мотивации работать, большую часть времени провожу не за тем, чем надо. Подумываю о смене работы, и вообще, месте жительства ( еще личные фактор за смену места жительства ).
В общих чертах охарактеризирую текущую работу:
- 8 часовой рабочий день. Жесткий график, хотя можно отпрашиваться, за прогулы не так больно бьют и т.п.
- нет дней, когда нет работы. Т.е. есть всегда что делать.
- платят стабильную з.п., не зависимо от твоих действий. Можешь из кожи рваться чтобы сделать, а можешь просиживать работу - результат тот же.
- нет развития. Делаешь то, что умеешь делать. Работа в большинстве скучная.
- работа на дядю, знаешь что за твои труды дядя получит больше в несколько раз.
Я, по натуре, такой, что не могу длительное время делать что-то одно. Мне начинает надоедать, и еще круто надоедать. Поэтому я так развит в различных областях. HTML верстка, веб-разработка, прикладное программирование ( C++, JAVA ), администрирование Linux.
Думал между тем, чтобы идти на такого же типа работу, или на вольные хлеба ( фрилансер ). В процессе обдумывания, решил, что подошла б работа с небольшой зарплатой, нестандартным графиком ( там день через два, и т.п, или "по вызову" ), в которой большинство рабочего времени "просиживал" ( я планирую это время использовать в своих целях ). Сначала подумывал про работу типа "сторож" или "вахтер", но, думаю в 17 лет трудновато будет найти.
Буквально вчера озарило: нужно идти сисадмином. Благо знания в системах Linux есть. Плюсы:
- работа по вызову, если какае-то неполадка.
- свободное время можно использовать для фриланса
- работа не пыльная, если знаешь как делать. В крайнем, гугль поможет.
И в результате получается такая схема: что основная работа - фриланс. Но т.к. это дело рисковое, и можно остаться без прибыли, то работа сисадмином - страховочный минимум, которого хватит на обязательные платежи ( за квартиру, и т.п. ). Для меня это был бы идеальный вариант.
Цель этого поста: даже незнаю. Какой-то крик души. Возможно я ставлю высокие требование до работы, и стоит забить и не рыпаться никуда. Или наоборот - пробовать, пробовать, пробовать. Незнаю.
Сегодня сделал замеры выполнения алгоритма: матрица 12х10 вычисляется где-то секунду с лишним. При этом делается около 500 тысяч итераций цикла. Я представляю, что будет над матрицей 1000х1000 ( игровая карта ведь не будет 12х10 ). Так что, придется отказаться от этой идеи, и выполнять поиск в реальном времени. А с другой стороны, пути будут не длинные, поэтому волновой алгоритм должен справиться на ура.
Карта в игре - двумерный массив, где координаты x и y - соответствующие индексы. Каждая клетка характеризируется типом клетки ( лес, вода, дорога и т.п.) и доступностью. Алгоритм должен просчитывать поиск пути только по доступным клеткам. Расстояние между клетками одинаковое. В принципе, можно было преобразовать матрицу в элементарный граф, и работать с графом, но это только дополнительные затраты. Вместо проверок типа С[i,j] == ∞, я создал функцию, которая проверяет на смежность две ячейки матрицы. Кстати, с помощью этой функции можно регулировать, можно ли ходить по диагонали или нет ( путем правильных проверок ).
И вот, после двух вечеров готова реализация поиска кратчайшего пути. Поступил по алгоритму Флойда, где сначала просчитываются пути от любой к любой ячейки, а потом с легкостью может быть получен кратчайший путь конкретных вершин. Это выгодно, потому как вычисления проводятся только при инициализации движка.
Вчера просто скопировал алгоритм, подставив нужные данные - не заработал ( заработал, но на половину ). Не просчитывал пути, между которыми более одной ячейки. Пришлось все таки вникать в алгоритм, и делать под себя. Но зато сейчас - полностью рабочий алгоритм.
В результате два двумерных массива размерами [x*y][x*y], где x и y - размеры карты ( матрицы ). В одном хранятся короткие пути, в другом - длинна между вершинами.
В изучении этого вопроса очень помогла статья www.dtf.ru/articles/read.php.
Кстати, если разрешить ходить по диагонали, то алгоритм этим злоупотребляет. И вместо прямой линии предпочитает ходить по диагонали из стороны в сторону. При этом длинна между вершинами не меняется.
Если кому надо, то могу выложить свою реализацию с комментариями.
И вот, после двух вечеров готова реализация поиска кратчайшего пути. Поступил по алгоритму Флойда, где сначала просчитываются пути от любой к любой ячейки, а потом с легкостью может быть получен кратчайший путь конкретных вершин. Это выгодно, потому как вычисления проводятся только при инициализации движка.
Вчера просто скопировал алгоритм, подставив нужные данные - не заработал ( заработал, но на половину ). Не просчитывал пути, между которыми более одной ячейки. Пришлось все таки вникать в алгоритм, и делать под себя. Но зато сейчас - полностью рабочий алгоритм.
В результате два двумерных массива размерами [x*y][x*y], где x и y - размеры карты ( матрицы ). В одном хранятся короткие пути, в другом - длинна между вершинами.
В изучении этого вопроса очень помогла статья www.dtf.ru/articles/read.php.
Кстати, если разрешить ходить по диагонали, то алгоритм этим злоупотребляет. И вместо прямой линии предпочитает ходить по диагонали из стороны в сторону. При этом длинна между вершинами не меняется.
Если кому надо, то могу выложить свою реализацию с комментариями.
С детства меня смущало, почему на вопросы с отрицательным глаголом отвечают идентично, как с обычным.
Например, вопрос "Не хочешь пойти купить молока?". По логике, отвечать нужно "да", если действительно не хочешь, и "нет", если хочешь. Тебе говорят какое-то утверждение, ты говоришь, правдиво это утверждение или ложно.
Так почему все наоборот? Почему на вопросы "Хочешь пойти купить молока?" и "Не хочешь пойти купить молока" ответы равноценны?
Например, вопрос "Не хочешь пойти купить молока?". По логике, отвечать нужно "да", если действительно не хочешь, и "нет", если хочешь. Тебе говорят какое-то утверждение, ты говоришь, правдиво это утверждение или ложно.
Так почему все наоборот? Почему на вопросы "Хочешь пойти купить молока?" и "Не хочешь пойти купить молока" ответы равноценны?
- Current Music:Scars on Broadway
Сегодня пару часов занимался онлайн игрой ( пора бы уже придумать название, чтобы не называть игру игрой, а по названии ). В ходе разработки структуру базы пришлось изрядно поменять. Все идеи, которые были актуальны вчера, сегодня заменились новыми, более подходящими. Реализовал базовые классы игрока, npc и их характеристики. Продумал наследования. При загрузке сервера он размещает несколько мобов на карту. За это время очень устал, поэтому, продолжать сегодня разработку наверное не буду. Пока просру проведу с пользой время, в поисках новых идей и решений.
- Current Mood:Устал
- Current Music:5nizza
Сегодня на работе пришлось столкнутся с задачей интерактивного аплоадера ( загрузка контента на сервер ). В чем проявляется интерактивность? Да в том, чтобы загрузка была в фоне, желательно с прогресс баром. Тут коллега, который уже этим занимался подсказал решение данной задачи. При том без всяческих флешов и т.п. Только JavaScript и Ajax ( ну и немного уличной магии ).
Весь фокус в модуля для nginx'а - Upload Progress Module ( описание ), который позволяет узнать о прогрессе загрузки. Как говорится на странице описания, идея взята с модуля для lighttpd mod_uploadprogress. Я с lighttpd никогда не сталкивался, поэтому ничего сказать не могу.
В теории выглядит так: при сабмите формы мы в скрипт-аплоадер ( который принимает загрузку ) передаем дополнительный параметр - уникальный ключ для этой загрузки. Потом с помощью специально настроенной странички в nginx'е проверяем статус текущей загрузки по этому ключу. Чтобы сабмит формы не перегружал страницу - делаем его в iframe.
По поводу практической реализации - напишу попозже, так как сам ее еще нет.
На странице описания модуля описан механизм, описано API и приведен простенький пример загрузчика.
Чтобы установить модуль, нужно пересобрать nginx.
Весь фокус в модуля для nginx'а - Upload Progress Module ( описание ), который позволяет узнать о прогрессе загрузки. Как говорится на странице описания, идея взята с модуля для lighttpd mod_uploadprogress. Я с lighttpd никогда не сталкивался, поэтому ничего сказать не могу.
В теории выглядит так: при сабмите формы мы в скрипт-аплоадер ( который принимает загрузку ) передаем дополнительный параметр - уникальный ключ для этой загрузки. Потом с помощью специально настроенной странички в nginx'е проверяем статус текущей загрузки по этому ключу. Чтобы сабмит формы не перегружал страницу - делаем его в iframe.
По поводу практической реализации - напишу попозже, так как сам ее еще нет.
На странице описания модуля описан механизм, описано API и приведен простенький пример загрузчика.
Чтобы установить модуль, нужно пересобрать nginx.
Недавно начал работу над собственным проектом ( якобы хобби ). Это будет онлайн-игра ( каких сейчас как говна ). Но я постараюсь реализовать ее на мобильный ( J2ME ). Причем здесь ЖЖ? Я здесь планирую писать о прогрессе развития игры. Будет самоконтролем, большей мотивацией, для уменьшения желания просто "забить", узнать мнение других, да и, думаю, другим будет интересно почитать. И еще я хотел вести свой блог ).
Сразу предупреждаю - будет много технической информации связанной с программированием ( ну а о чем еще писать, как не о приемах, которые я заюзал в своей практике ). Сервер игры будет написан на Яве ( Java ), используя базу данных MySQL, клиент на J2ME. В будущем возможен клиент и для PC. ( или сначала будет для PC, а потом для J2ME - хз ).
Про игру. Т.к. на мобильных телефона часто будет дубовый GPRS ( нужно охватить наибольшую часть аудитории ), поэтому особого экшна в игре не добиться ( представляю реакцию игрока, которого убили из-за задержки в сети ). Планирую сделать смешанный игровой процесс. Весь игровой мир будет в реальном времени, а бой будет пошаговой. При этом в бой могут присоединиться другие участники ( игроки или мобы ). Такое поведениеспижжено придумано по мотивам игры Fallout. Элементы игры, такие как персонажи, локации, предметы и т.п. еще не придумал, да и пока не надо - тружусь над реализацией логики. Но это будет игра не о гномах и орках или космических баталиях ( уж очень это банально просто ). Нужно какую-то особую идею.. Думаю появится в процессе разработки.
За два дня еще особо ничего не готово:
Еще немного расскажу про себя:
Звать меня ..., а впрочем никого не волнует как меня звать. Здесь я просто
kukunin (кстати читается как "Кукунин", от моей фамилии). Не звучит, но зато писать просто. Мне 17 лет, но свое знакомство с интернетом начал еще в далеком 7 классе. С тех пор научился хорошо верстать странички, девелопить на PHP с MySQL, а с недавних пор практикуюсь в прикладном программировании ( начинал с С++ и Qt, закончил Java'ой ). Ярый линуксоид. Венду не употребляю. Уже полгода как вместо учебы, хожу на роботу. Вот так и живу.
P.S. Раньше опыта блоговедения не имел, если что не по теме пишу - говорите, не стесняйтесь.
Сразу предупреждаю - будет много технической информации связанной с программированием ( ну а о чем еще писать, как не о приемах, которые я заюзал в своей практике ). Сервер игры будет написан на Яве ( Java ), используя базу данных MySQL, клиент на J2ME. В будущем возможен клиент и для PC. ( или сначала будет для PC, а потом для J2ME - хз ).
Про игру. Т.к. на мобильных телефона часто будет дубовый GPRS ( нужно охватить наибольшую часть аудитории ), поэтому особого экшна в игре не добиться ( представляю реакцию игрока, которого убили из-за задержки в сети ). Планирую сделать смешанный игровой процесс. Весь игровой мир будет в реальном времени, а бой будет пошаговой. При этом в бой могут присоединиться другие участники ( игроки или мобы ). Такое поведение
За два дня еще особо ничего не готово:
- создан проект в NetBeans'е ( это уже залог успеха );
- сервер на самой ранней стадии ( пока только грузит и держит в памяти локацию );
- спроектирована БД.
Еще немного расскажу про себя:
Звать меня ..., а впрочем никого не волнует как меня звать. Здесь я просто
kukunin (кстати читается как "Кукунин", от моей фамилии). Не звучит, но зато писать просто. Мне 17 лет, но свое знакомство с интернетом начал еще в далеком 7 классе. С тех пор научился хорошо верстать странички, девелопить на PHP с MySQL, а с недавних пор практикуюсь в прикладном программировании ( начинал с С++ и Qt, закончил Java'ой ). Ярый линуксоид. Венду не употребляю. Уже полгода как вместо учебы, хожу на роботу. Вот так и живу.P.S. Раньше опыта блоговедения не имел, если что не по теме пишу - говорите, не стесняйтесь.
Comments
да будет с тобой сила :-)