• Технологии для создания походовой браузерной игры

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Я бы использовал стандартные PHP+MySQL+JS, ИМХО. Т.к.
    Времени на ход от 15 минут до 48 часов
    , то можно спокойно записывать всю информацию в MySQL, сервер-сайд сделать на PHP.
    По поводу карты, то советовал бы саму карту генерировать на сервере, заполнять массив данными о клетке, либо в объект записывать. Если объект, то можно потом использовать serialize и bs64_decode(encode) для хранения карт в базе в текстовом формате. На клиенте все реализуй AJAX-ом, т.к. игра все-таки :) По поводу отрисовки карты, то могу посоветовать фреймворк EaseJS либо нативный drawImage. Если будешь просто спрайты загружать, то используй лучше нативный. Если же будешь со слоями, анимациями и играться и т.п. — то EaseJS.
    Ответ написан
    4 комментария
  • Как правильно сделать кросс-доменный редирект в AJAX-запросе?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Можешь просто JSON тоже использовать. Только тогда нужно в header, который принимает данные, прописать разрешение на это дело:
    Access-Control-Allow-Origin: *
    
    Ответ написан
    4 комментария
  • Kак ставить маркеры на OSM у себя на сайте?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Вам нужно смотреть на такие вещи как OpenLayers.Marker или OpenLayers.Feature.Vector. Чтобы создать маркер с такими-то координатами, я использую вот такой код:
    addVehicle: function (layerName, coordinates, attributes) {
            attributes = this.parent.BaseFunc.extendConfigFromDefault(attributes, defaultOptions.vehicleOptions);
            var layer = this.parent.Layer.getLayerByName(layerName);
            if (this.parent.BaseFunc.checkUndefined(layer) || !layer) {
                this.parent.Console.writeError('Func: addVehicle | Layer ' + layerName + ' doesn\'t exists!');
                return false;
            }
            var feature = this.parent.Layer.getFeatureById(layerName, attributes.id);
            if (!this.parent.BaseFunc.checkUndefined(feature) || feature) {
                this.parent.Console.writeWarning('Func: addVehicle | Layer ' + layerName + ' already have feature with this ID: ' + attributes.id + '!');
                return false;
            }
            var point = new OpenLayers.Geometry.Point(coordinates.longitude, coordinates.latitude);
            point.transform(new OpenLayers.Projection(attributes.projection), new OpenLayers.Projection(this.parent.Map.getProjectionObject()));
            layer.addFeatures(new OpenLayers.Feature.Vector(point, attributes));
            return true;
        }
    

    Так же можете почитать вот эту статью. Было время, когда мне нужно было упростить такие шаблонные участки и я написал это мини-плагин.

    В документации OpenLayers есть вот такое дело. В этом направлении и нужно копать.
    Ответ написан
    1 комментарий
  • Подскажите сканеры уязвимостей для сайтов, работающие под Linux

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Поставь на виртуальную машину или флешку BackTrack 5. В ней собраны разные утилиты по проверке на vulnerability, включая и твои требования.

    Для SQL-иньекции могу посоветовать sqlmap. Написан на питоне, есть на гитхабе.
    Ответ написан
    2 комментария
  • Лучший монитор для разработки (+ ноутбук)

    ghaiklor
    @ghaiklor Автор вопроса
    NodeJS TechLead
    Если же есть необходимость во втором экране — монитор чуть-чуть поворачивается (благо очень удобная подставка) и ноутбук ставится туда, где удобнее.

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

    Работаю всегда под Linux, поэтому пока не уверен, как на это отреагирует. Но при подключении через HDMI телевизора подхватило сразу.
    По поводу игр, то конечно сбоку стоит винда на случаи отдохнуть от работы и хотелось бы посмотреть на это в действии :)
    Единственное смотря характеристики вспомнил про вебкамеру — вот ей в такой конфигурации не очень удобно пользоваться. Для комфортного видеочата нужно будет либо отдельную докупать, или чатиться без монитора.

    Я редко веб-чатом пользуюсь, поэтому это не главная проблема. Обычно голосовой чат и все.
    Ответ написан
    2 комментария
  • Как реализовать алгоритм поиска пути?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Вот здесь очень хорошо показан принцип работы поиска путей визуально. И его же можно использовать для поиска путей. В нем уже реализованы такие алгоритмы, как А* и другие.
    Ответ написан
    5 комментариев
  • Как правильно работать на oDesk?

    Ubran_Hera
    @Ubran_Hera
    Начинал ~2 года назад (август/сентябрь) на oDesk (это была не первая моя попытка), выставил 14..15 баксов, без портфолио и истории. Первый заказ был получасовой, на 7 баксов, практически случайный (от новичка) — немного напортачил, но всё исправил, потратил времени в разы больше, но добился положительного отзыва.
    Общение сразу пошло через Skype и электронную почту, оплата — через PayPal. Это против правил, но так предложил заказчик.

    Затем оказалось, что работы у него непочатый край. До Нового Года переделывал маленькие сайтики (бизнес-проекты одного и того же человека). Взял меньшую плату, но повысил себе статистическую «среднюю ставку».

    Самое сложное было в графике и работе из дома — жена (девушка) не подходила ко мне когда я говорил по Skype/SIP, но в остальные моменты очень мешала и сбивала с толку. Ещё обижалась, что я ничего не делаю по дому и ложусь спать/встаю с разницей 3..4 часа по отношению к ней — одна комната, горящий монитор, гудящий вентилятор и т.д. Очень сложно было когда мы оба заболели (простуда).

    В итоге я понял, что никак не могу в таком режиме работать дольше 2 недель (у меня ещё есть постоянная работа в телекоме по сменному и практически ненормированному графику), а потом требуется месяц (!) отдыха. С девушкой пришлось расстаться, меня постигло разочарование во фрилансе на следующий год, когда я за месяц заработал сумму порядка $2000, но ни разу не покатался на велике (это был июль) и не побывал на природе/на пляже.

    Шашлык и вино действительно хоть каждый день и стойкое желание переехать куда-нибудь в англоязычную Канаду (тем более, что часто звали). Ставка на почасовые заказы сейчас 20..35.
    Иногда чувствую себя зомби (3 часа сна два дня подряд, потом 12 часов и всё равно не выспался, 6 часов, опять 2 дня по 3 часа, потом 14..15 на выходных).

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

    Success story неполная — не даю ссылки на профиль (у меня их несколько, в т.ч. приходилось заказывать самому у себя, но это оказалось ненужной глупостью). Так что не просите — за треть проектов, особенно первых ужасно стыдно, при том, что посмотрев на некоторые из них клиенты просят «и мне так же сделай», причём никогда не угадаешь заранее что может понравиться.

    Единственное, что радует — UK, CA, NZ, US AU — WeekEnd для них — это святое. На душе легко и спокойно с 3 утра субботы до 15:00 понедельника.
    Но бывает, что заказчик шлёт мне в полседьмого утра письмо с вопросом «Как продвигается наш проект» в 6:30 утра по его часовому поясу.

    С точки зрения разработки хорошо, что разделение testing/development/working environment очень чёткое и всегда есть время откатиться — начинаю обычно в час ночи и заканчиваю полпятого утра по их TimeZone, на живом, боевом сервере никогда не экспериментирую.

    Ну и по поводу каналов в Интернет — у меня 2 FTTx и 3 «свистка» — иногда так медленно заливается на хостинг, что приходится вспоминать командную строку и перепробовать их все.

    Зато индусы иногда вымораживают своим менталитетом, даже при хороших ставках.

    Ну и естественно, я стал замечать за собой НЕНАВИСТЬ к нашим местным наебизнесменам-работадателям, которые предлагают оклады 15..22 тыс. руб./мес. работникам с образованием и опытом, особенно после того, как устроившись в одну из местных фирм-конкурентов «тайным покупателем», вернее разработчиком (чтобы посмотреть workflow, т.к. это довольно успешный бизнес-проект с большой клиентской базой) увидел тот же Job Offer с oDesk, но очень плохо, безграмотно переведённый топ-менеджером компании в редких перерывах между поездками на дайвинги.

    В «малый бизнес» я тоже пытался уйти — очень сильная конкуренция, ценовая со школотой. Потом оказалось, что это ещё не главная проблема — рынок заказчиков всё равно растёт быстрее рынка исполнителей. Главная проблема — это чудовищная пропасть между опытом заказчика — НЕ ЗНАЮТ ЗАЧЕМ ИМ ИНТЕРНЕТ И НЕ ЗНАЮТ ЧЕГО ХОТЯТ и… ПОЛНЫМ ОТСУТСТВИЕМ ЖЕЛАНИЯ ПЛАТИТЬ профессионалам.

    Ещё поразило соотношение между уровнем разработчиков и наглостью в сочетаниями с понтами у менеджеров компаний-конкурентов. Не знаю кого винить — Фурсенко, или сразу Вашингтонский кагал, но пока встречался с потенциальными заказчиками (сейчас только телефон, а лучше -электронная почта) по три раза на дню бывал в ситуации, когда выплеснув на меня ушат откровенной технической ахинеи дядя-Вася-на-джипе на вопрос «Где вы нашли эту чушь?» начинал быковать в духе «Это мне сказали девушки в конторе ИП XYZ, А У НИХ ВСЁ ЧЁТКО, ВЕДЬ У НИХ САМ ИВАН МОИСЕИЧ ЗАКАЗЫВАЕТ САЙТЫ!»

    Короче oDesk — единственный шанс для заМКАДья, кроме восстания конечно.
    Ответ написан
    8 комментариев
  • Кто бы хотел в свободное время поучаствовать в небольшом стартапе?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Очень интересно, можем поговорить :)
    Skype: ghaiklor.
    Ответ написан
    Комментировать
  • ООП в Javascript

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    В первом случае, при создании нового объекта var a = new A(), в этот объект будет каждый раз записываться значения a и b.
    var a = new A(); var b = new A();
    И в a, и в b будут свойства со значениями. И там, и там, будет лежать 100 и 200. То есть, попросту говоря, в первом случае каждый новый объект будет иметь в себе свойства a и b при его создании.
    Во втором же случае объект при создании будет иметь лишь свойство a. Т.к. прототипы довольно интересная вещь и советую почитать о них статьи. Но уже при созданном объект будет и свойство b, т.к. прототипы, как уже сказалось выше, дополняют готовый объект. Единственное отличие в том, что все созданные объекты будут иметь каждый свое свойство a и одно свойство на всех b.
    Прототипирование обычно используется для описания методов объекта. Создал конструктор, в котором описал все свойства объекта, а в прототипе описал методы объекта.
    Ответ написан
    Комментировать
  • Библиотека для разработчика?

    ghaiklor
    @ghaiklor Автор вопроса
    NodeJS TechLead
    Спасибо) Теперь хоть будет с чего выбрать, адаптируя под конкретную цель. Слышал про Common && RequireJS, но не работал. Думаю с них начну. Еще раз спасибо)
    Ответ написан
    Комментировать
  • С чего начать и как изучить веб-дизайн, дизайн интерфейсов в целом?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    htmlbook.ru
    Не воспринимайте за рекламу, но достойный самоучитель. Регулярно обновляется информация о css + html атрибутах, тегах и т.д. и т.п.
    В общем, если захотел что-то верстать свое, то это твоя Библия, Коран, неважно)
    Ответ написан
    4 комментария
  • Какие есть программы для проведения тестов(вопрос-ответ) на проверку заний?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Лучше TCExam.
    Ответ написан
    Комментировать
  • Как пишутся игры под Андроид вроде Talking Tom Cat?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Можно взять игровой движок, например Unity 3D, он кросплатформенный. Берутся модели, анимации, текстуры. Все это бросают в ресурсы. Кодом управляешь анимациями и местоположением моделей и т.д. и т.п. Это если вкратце.
    Ответ написан
    1 комментарий