войти зарегистрироваться

MySQLРезервное копирование данных в MySQL

Резервное копирование базы данных — это такая штука, которую вечно приходится настраивать для уже работающих проектов прямо на «живых» production-серверах.
Подобная ситуация легко объяснима. В самом начале любой проект еще пуст и там просто нечего копировать. В фазе бурного развития головы немногочисленных разработчиков заняты исключительно прикручиванием фишек и рюшек, а также фиксом критических багов с дедлайном «позавчера». И только когда проект «взлетит», приходит осознание, что главная ценность системы — это накопленная база данных, и её сбой станет катастрофой.
Эта обзорная статья — для тех, чьи проекты уже достигли этой точки, но жареный петух ещё не клюнул.

РобототехникаРобот-велосипедист

Пару лет назад на Хабрахабр было опубликовано видео от 2006 года с вполне прилично катающимся на велосипеде роботе. Полезность этого умения ещё тогда вызывала некоторое недоверие. Тем не менее, разрешите представить очередную поделку, представленную Масахико Ямагучи (Masahiko Yamaguchi) в этом году на IRex 2011. Мне понравилось, что этот робот действительно крутит педали, нажимая сверху, а останавливаясь ставит ноги на землю и машет ручкой (как на экзамене на категорию А). То есть, в отличие от предшественников, имеющих приваренные к велосипеду ноги, этот вполне себе автономен. Честно говоря, на этом его достижения и заканчиваются, так что дальше видео и ещё немного об его устройстве.

Энергия и элементы питания Велосипед с USB-подзарядкой



Немецкая фирма Silverback начала массовое производство велосипедов с USB-питанием.

В моделях Starke 1 и Starke 2 динамо-машина крепится на переднем колесе. Производителем динамо-колёс является компания Supernova. Компактный генератор электричества в сборе со втулкой весит 370 грамм (на фото справа), тогда как обычная втулка без генератора весит 130 граммов, так что «лишний» вес совсем небольшой. Масса всего колеса с ободом из углепластика составляет 850 или 939 граммов, в зависимости от крепления обода.

ASP.NET MVCSimpleMvcCaptcha, или мой первый опыт Open Source

Disclaimer!
Я ни в коем случае не претендую на звание разработчика идеальной капчи, равно как и на изгобретателя чего-то нового. Все, что здесь написано, было сделано мной для познавательных целей и open source. И да, я осознаю, что написать свою капчу — это изобрести велосипед.

С чего все началось


Совсем недавно я начал разрабатывать свой пока небольшой проект на ASP.NET MVC 3. Суть его заключается в том, что посетители могут добавлять на него свои сообщения, которые впоследствии появляются в публичном доступе (кому интересно, что стоит за этим запутанным объяснением — ссылка будет в конце).

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

Первое, что пришло мне в голову, была ReCaptcha от Google. Установив ее и некоторое время попользовавшись, я окончательно понял, что этот монстр — совсем не для меня и не для большинства адекватных людей, тем более русскоязычных (вывод некоторых изображений не только не читается машинно, он и людьми то не может быть прочитан). Поискав другие решения, я, к своему сожалению, не нашел чего-то нормального для MVC 3, простого и ненавязчивого в использовании. Были разные мануалы как сделать то или иное, но готового решения «взял и использовал» как-то не встретилось. Поэтому решил изобрести велосипед написать свою капчу.

OpenStreetMapOpenStreetMap в помощь велосипедистам

Вступление


Представьте, что сейчас лето, солнце светит, у вас отпуск, и вы с друзьями — заядлые велосипедисты. Возникает мысль о велосипедном походе куда-нибудь далеко. В этой статье я расскажу о том, как OpenStreetMap-технологии и некоторые другие сервисы упрощают жизнь в такой ситуации, решают проблемы планирования и позволяют быстро и просто поделиться впечатлениями. Упор делается на online, я упоминаю ресурсы:

Веб-разработкаПишем веб-сервис за 1 вечер

Предистория


Заказал я недавно одну вещицу из Англии к себе в родной Санкт-Петербург. Посылка по территории России шла EMS-отправлением. И каким же было мое удивление, когда я обнаружил, что по выданному мне трек-номеру (идентификатор отправления) я не могу отслеживать состояние посылки в автоматическом режиме. Обладая весьма нетерпеливым характером, я буквально каждое утро начинал с проверки состояния своей посылки. И еще больше огорчался, когда понимал, что она все там же, где и была 5 дней назад. Немного поразмыслив я решил, что это ужасное упущение, и решил исправить ситуацию своими силами.

JAVAВелосипед с аргументами переменной длины

В этом топике будет предложен один из вариантов получения локальных переменных из вызывающего метода, с привязкой имен. Данный метод используется в Play framework, на авторство не претендую, просто попытаюсь объяснить и изложить концепцию для тех кто не знает как это работает или ему просто интересно. Для упрощения понимания о чем собственно идет речь, приведу пример:

Есть некий бизнес метод который вызывает другой метод для формирования.., допустим JSON:
    public void someBusinessMethod() {
        HashMap<String, Object> sampleResult = new HashMap<String, Object>();
        
        sampleResult.put("someKey", "someVal");
        sampleResult.put("someKey1", "someVal1");
        .....
        sampleResult.put("someKeyN", "someValN");
        renderJSON(sampleResult);
    }


В методе renderJSON полученные данные каким-то образом обрабатываются и передаются например в шаблонный процессор, сериализатор или какой либо другой класс который сформирует представление наших данных. В большинстве случаев они на вход принимают Map или JavaBean, так как другого внятного способа передать ассоциированный массив нет. Не знаю как вас, а меня бесит генерить кучу ненужного кода (сформировать мапу, положить значение, отдать дальше). Начиная в Java 1.5 в методах появилась возможность указывать параметры переменной длины, что-то вроде такого:
    public void someBusinessMethod() {
        MyBusInAssObject someKey = .....
        ..... 
        Date someKey1 = .....        
        .....
        User someKeyN = ....
        renderJSON(someKey, someKey1, ...., someKeyN);
    }

В методе renderJSON мы получим только массив значений, а хочется получить «имя переменной»->«значение». К счастью такая возможность есть, и, если тебе интересно то добро пожаловать под кат.

PHPPDO: сериализация, поздняя инициализация и PHPUnit

Здравствуйте. Как известно, PDO не поддерживает сериализацию. С этим связано несколько интересных вещей, в частности сюрпризы с трейсами и невозможность сделать mock от PDO в PHPUnit.

Я активно использую PHPUnit и реализуя в очередной раз паттерн Dependency Injection столкнулся с описанными трудностями создания Mock-объекта от PDO.

.NETМногопоточный сервер на C# за 15 минут

C# довольно простой и гибкий язык. Вместе с .NET поставляется довольно много уже готовых классов, что делает его еще проще. Настолько, что вполне можно написать простой многопоточный HTTP-сервер для отдачи статического содержимого всего за 15 минут. Можно было бы использовать уже готовый класс HttpListener и управиться еще быстрее, но цель этой статьи — показать, как вообще можно сделать нечто подобное в C#.

GoogleВелосипед объединяется с монорельсом

image
Жаль только в будущем.
Два года назад Google запустила проект "10 в 100 степени", в рамках которого обещала профинансировать идеи, которые изменят мир. На конкурс было прислано 150 000 заявок, и вот на прошлой неделе Google огласила список из пяти победителей.