Pull to refresh
38
0
Цуканов Владимир @vltsu

Пользователь

Send message

Андроидные роботы серийного производства

Reading time4 min
Views18K
Все уже сходили на фильм Трансформеры 3: Темная сторона Луны? Специально для тех, кто еще не успел заразиться робоманией, я постараюсь это исправить. В статье мы рассмотрим несколько андроидных (человекоподобных) роботов. Но речь пойдет не про суперсовременные прототипы как, например, робот Асимо от Honda. Расскажу о тех роботах-гуманоидах, которые выпускаются серийно и доступны для покупки. Да, они не обладают встроенным синтезатором речи, возможностью самообучения, 100+ степенями свободы, но даже того набора функциональности, которыми их наделили вполне достаточно для первоначального ознакомления с азами робототехники и полезного проведения досуга.
image
Читать дальше →
Total votes 43: ↑37 and ↓6+31
Comments22

Выбор VDS хостинга для Ruby on rails проекта

Reading time2 min
Views2.7K
Задача

По опыту других рельсовиков известно, что для хостинга rails-проектов нужен VDS хостинг.
Знающие люди подсказывают, что из openVZ и Xen, лучше Xen.

Условия задачи: найти недорогой VDS-хостинг варианта Xen.

Читать дальше →
Total votes 16: ↑9 and ↓7+2
Comments10

Я хочу работать в Google! Телефонное интервью (часть 1)

Reading time4 min
Views31K
Привет Хабр! Давно не писал. Да это и понятно. Защита диссертации, получение PhD, а сейчас ещё и активный поиск работы — всё это занимает очень много драгоценного времени. Но разговор сегодня пойдёт не о том. Хотелось бы поделиться с Вами, уважаемые хабралюди, ресурсами и описанием процесса подготовки к телефонному техническому интервью с Гуглом, первый технический этап которого я уже прошёл, и теперь готовлюсь ко второму, который будет в пятницу.
Читать дальше →
Total votes 207: ↑182 and ↓25+157
Comments99

ActiveRecord Hacks

Reading time4 min
Views10K
Сегодня я поделюсь своим набором не всегда очевидных функций и возможностей Active Record, с которыми я столкнулся в процессе разработки Ruby on Rails приложений или нашел в чужих блогах.

Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments18

Аутентификация в rails-приложениях с помощью facebook, vkontakte

Reading time7 min
Views38K

Аутентификация в rails-приложениях через facebook, vkontakte



В данной статье будет рассказано, как сделать простейшую аутентификацию в rails-приложении через социальные сети vkontakte и facebook, помогают в этом гемы omniauth, omniauth-facebook, omniauth-vkontakte. Материал рассчитан на новичка. Хоть это и будет учебное приложение, но для придания законченности используем bootstrap с помощью гема twitter-bootstrap-rails.
Читать дальше →
Total votes 48: ↑47 and ↓1+46
Comments33

Датчик освещённости из веб-камеры вашего ноутбука

Reading time3 min
Views24K
image
Почти всегда на ночь (или утром, со словами «Что? Рассвет уже?») я включаю на ноутбуке фильм или сериал. Чтобы бубнило и успокаивало. Недавно заметил, что совсем не уменьшаю яркость при включении. Свет светит в глаза, мешает уснуть. Решается поворотом на другой бок или уменьшением яркости, конечно, но я слишком ленив, чтобы искать Fn+уменьшить яркость или установить и вывести апплет яркости. Уменьшение яркости при неактивности ставить не захотел, потому как это меня раздражает (пьешь себя кофе и смотришь код, тут резко до нуля так хрясь). Вспомнил про свою старую Nokia E70 (ох и шикарный телефон был), в котором был индикатор освещённости. Подумал, что такой датчик может заменить и обычная камера.
Читать дальше →
Total votes 96: ↑89 and ↓7+82
Comments31

Оповещения из Nagios телефонным звонком

Reading time2 min
Views10K
До сих пор кажется невероятным, что сервер может мне позвонить в случае проблем, но в действительности реализация оказалась даже проще, чем я думал. Своим решением спешу поделиться.
Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments37

Резервное копирование Rails проектов без затей

Reading time3 min
Views4.5K
Как известно, люди делятся на тех кто еще не делает резервных копий, тех кто уже делает, и тех кто уже делает и проверяет возможность восстановления

К счастью, 20 минут назад, когда кривой админ рецепт Capistrano напрочь снес на «боевом» сервере каталог с загруженными картинками из статей юзеров, я уже относился к категории делающих бэкапы. Вот, заодно и проверил.

А делаем мы резервные копии через gem backup

Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments16

Мои любимые ошибки в программировании

Reading time13 min
Views8K
За мою карьеру программиста я сделал огромное количество ошибок в нескольких различных языках. На самом деле, если я пишу 10 или больше строчек кода, которые работают с первого раза, я становлюсь подозрительным и принимаюсь тестировать его более тщательно, чем обычно, предполагая найти ошибку в синтаксисе, или неверную ссылку на массив, или неправильно записанную переменную, или что-то ещё.

Мне нравится подразделять эти ошибки на три большие группы: провалы, погрешности и недочеты. Провал – это когда ты сидишь тупо смотришь на экран и тихо говоришь «ой»; вещи вроде удаления базы данных или целого сайта, записи чего-либо поверх результата трехдневной работы, или случайной отсылки письма 20 тысячам человек.

Погрешности могут быть различными: от простых синтаксических ошибок (например, забыть поставить } ) до критических ошибок и ошибок в вычислениях.

Когда ошибка настолько неочевидна и неуловима, что это почти прекрасно, я зову это недочетом. Такое случается, когда кусок кода сталкивается с совершенно непредсказуемыми и весьма маловероятными обстоятельствами. Вы откидываетесь на спинку стула и думаете «Ого!», словно увидев яркую радугу или падающую звезду.
Читать дальше →
Total votes 126: ↑90 and ↓36+54
Comments108

Используйте бандлер вместо практики rvm gemset per project

Reading time1 min
Views7.5K
Наша команда долгое время использовала известную практику rvm gemset per project. Однако, после работы с пакетным менеджером nodejs мы поняли, что гораздо удобнее складывать зависимости в папку проекта (дефолт для нодовского пакетного менеджера).

Немного покопавшись в документации бандлера я обнаружил, что тоже самое можно сделать и на его основе.
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments32

Распараллеливание тестов или одна голова — хорошо, а две головы — лучше

Reading time3 min
Views5.2K
В какой-то момент, если долго и усердно стараться сохранять покрытие тестами не меньше 80% кода, прогон полного комплекта тестов начнет занимать больше времени, чем уходит на перекур и на прочтение новых статей хабра. В свою очередь это приводит к тому, что полный комплект (suite) будет запускаться все реже и реже. Hudson начнет сообщать о сломанных билдах, а дальше сработает эффект разбитого окна и сломанный билд станет нормой.

Можно стараться запускать полный прогон перед каждым коммитом. Но затраты времени на кино в виде пробегающих по экрану фич cucumberа, а также выход из потока снизят эффективность разработчиков в разы.

В одном из наших проектов, в который согласно записям redmine вложено около 400 часов работы нашего коллектива ситуация с тестами до распараллеливания выглядела так (пару дней назад):
151 scenarios (151 passed)
3997 steps (3997 passed)
17m49.257s


18 минут!!!

За это время разработчик может сварить кофе, выкурить сигарету, сходит в туалет, ущипнуть за попу симпатичную коллегу и успеть посмотреть последние 3 минуты «матрицы» на экране. Если требовать от него чтобы полный прогон запускался перед каждым коммитом, то он только и будет делать что смотреть «матрицу» и щипать попы пить кофе.

Но анализ загрузки процессора при прогоне показывает, что в работе участвует только лишь одно ядро независимо от того, сколько их всего есть. Как говорит пословица, лучше день потерять, а потом за пять минут долететь. Порыскав в гугле мы нашли гем parallel_tests. Теперь мы не с такой завистью будем смотреть на erlang группу, которые могут спокойно распараллелить свои тесты на кластер арендованных облачных машин в Selectel.
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments38

WaterSpout — веб сервер для асинхронной передачи данных

Reading time1 min
Views1.8K
Сегодня речь пойдёт об WaterSpout — веб сервере, способном обрабатывать websockets запросы, позволяя общаться в реальном времени между сервером и браузером используя websockets или long polling. Написан он на PHP.

В первую очередь идёт проверка поддерживаются ли websockets (это Chrome, Опера и FF, если включим), если нет, то ничего страшного, будет использоваться long polling.
Преимущества этой технологии: доставка сообщений мгновенна, высокая производительность. Тестировал в Chrome, FF, IE6+.
Демка.
Читать дальше →
Total votes 61: ↑54 and ↓7+47
Comments41

Репозиторий с задачами на Ruby

Reading time2 min
Views7.9K
Недавно начал изучать Ruby. Несмотря на большое количество туториалов и мануалов, отсутствие официальной документации несколько замедляет процесс обучения.(Официальная документация все-таки существует — спасибо Kane). Но тем не менее, идея от этого не теряет ценности.

Чтобы получше освоить синтаксис языка, многие советуют решать задачи из спортивного программирования. Это позволяет набить руку в максимально кратчайший срок.
Нашелся отличный сайт с ejudge — acm.mipt.ru с интерпретатором Ruby. Но при решении задач(особенно на незнакомом языке), постоянно присутствует ощущение, что может быть это можно было сделать как-то иначе — легче, быстрее, удобнее.
Читать дальше →
Total votes 30: ↑23 and ↓7+16
Comments29

10 способов улучшить свои навыки программирования

Reading time4 min
Views88K

1. Выучить новый язык программирования


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

Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

Читать дальше →
Total votes 239: ↑227 and ↓12+215
Comments96

Ruby Cross Reference

Reading time1 min
Views1.1K


Ruby, как известно, просто выглядит, но сложно работает. В особенности это относится к официальному интерпретатору, Ruby MRI: документация на многие детали реализации, например, на байткод или GC, отсутствует даже на японском.

Я попытался упростить исследование кода, открыв сайт Ruby Cross Reference по мотивам LXR. Кроме MRI, проиндекированы еще JRuby и Rubinius.
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments16

Переписываем проект с Zend Framework на Rails

Reading time9 min
Views7.8K
Около пяти месяцев назад я завязал с zend framework и пересел на рельсы. Тогда же начал переписывать свой проект www.okinfo.ru. Сейчас он уже закончен и sloccount показал что количество строк в проекте уменьшилось с 15000 до 4000. Мои знакомые php разработчики попросили success story и в итоге родилась эта статья. В ней я опишу как оно было, а так же немного расскажу о своем переходе на ruby.
Читать дальше →
Total votes 154: ↑143 and ↓11+132
Comments197

Rails: Хватит отмазываться, начинаем BDD-ить!

Reading time9 min
Views32K

Кто здесь?


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

11:24:21 PM Michael: ну хз, надо пробовать
11:24:24 PM Michael: наверное так лучше
11:24:27 PM Michael: даже я думаю наверняка
11:24:36 PM Michael: но пока меня че-то останавливает
11:24:38 PM Michael: лень наверное :)

Знакомо? «Не хочется разбираться? Нет времени?» Тогда читаем дальше. В статье расскажу, как настроить свое любимое рельсовое окружении на разработку с подходом BDD и начать новую жизнь (опционально).
Поехали!
Total votes 88: ↑77 and ↓11+66
Comments38

Выбор хостинга с упором в облака и с прицелом на развёртывание Rails 3 app

Reading time9 min
Views14K
Несмотря на наличие «Rails 3» в названии топика, и рассмотрения в теле статьи специфичных для Rails 3 аспектов, она может быть интересна всем остальным из-за освещения аспектов общего характера.

На Хабре много ответов на разные мои вопросы, но ответа на вопрос «а где же мне хостится», получить я, даже при внимательном штудировании Хабра, не смог. Я даже воспользовался q&a, пытаясь определиться: раз и два, но окончательного ответа так и не получил. Пришлось проводить самостоятельное исследование.

Я решил поделиться своими скромными изысканиями на эту тему с хабрасообществом. Они не претендуют на всеохватность. Но могут внести некоторую ясность для человека, собирающегося выбрать облачно\vds-ный хостинг, но не имеющего никакого представления о рынке.

Поскольку я не учёл ещё целой кучи хороших хостингов, то я буду очень благодарен за комментарии, которые позволят пополнить этот список. А также ввиду того, что я не пользовался почти ни одним из нижеперечисленных хостингов, я буду рад поместить отзывы из первых рук в тело статьи, если таковые будут оставлены в комментариях.

Список упоминаемых хостингов: 1gb.ru, Hostingrails, RackspaceCloud, Mediatemple, Heroku, Amazon Web Services (шапочно), Engine Yard (шапочно), Altnet (привет с Хабрахабра), justhost.com (лучи поноса), Linode, Hetzner online (выделенный сервер), Server4you

Читать дальше →
Total votes 38: ↑33 and ↓5+28
Comments59
1

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity