Search
Write a publication
Pull to refresh
3
0
Дмитрий Куликов @DmitryKulikov

User

Send message

CodingDead — события, технологии и новости Ruby/Rails/Javascript сообщества

Reading time1 min
Views4.2K


Чуть больше года назад мы открыли информационный поток на Google+ посвященный Ruby/Rails. Не смотря на разные отзывы в духе «а давайте здесь рекламировать группы Вконтакте» и скромный +1 посту, к сообществу присоединилось более 500 разработчиков, которые и по сей день получают (более или менее регулярно) новости, ссылки и пищу для размышлений.
Читать дальше →

ЭБ 112.3. Подготовка к сдаче II группы электробезопасности

Reading time33 min
Views624K

Всем доброго времени суток. В процессе трудового пути доблестные инженеры обязаны сдавать экзамены по электробезопасности, получая, подтверждая или повышая свою группу. Даже если доблестные инженеры все время сидят на стуле. Даже если стул при этом заземлен.
Когда эта задача встала передо мной, я погуглил пару часов и вспотел, прежде чем нашел все необходимое. Проблема в том, что полезная информация затеряна среди рекламы, недешевых курсов и кучи спама. Прочтение данного поста поможет в запоминании правильных ответов билетов и сорвет покровы с того, зачем нужна электробезопасность.
Под катом я собрал все, что необходимо для сдачи II группы по ЭБ — элементы законодательства, методику подготовки, билеты с ответами и теорию. Большие массивы информации собраны в спойлеры. Вскрывайте то, что нужно. Никакой рекламы, и, конечно же, уточки!


ЭБ 112.3

01 — Виртуализация рабочих мест. Что это и с чем едят

Reading time7 min
Views89K
Как мы и обещали в анонс-посте, мы открываем цикл статей по виртуализации рабочего пространства.

Тема “модная” на западе, и ее развивают достаточно давно, как технологически (программно), так и с точки зрения аппаратной части. Если вы слышали о таких словах, как “тонкие клиенты”, “виртуализация”, “bring your own device”, “удаленный доступ к данным”, то, скорее всего, вы слышали о какой-либо из частей этого необъятного моря виртуализации рабочих мест.

И, прежде чем углубляться в изучение данной темы, пожалуй, стоит провести небольшой ликбез и ответить на самые простые вопросы, чтобы упорядочить те обрывки информации, которые уже есть у некоторых читателей в головах. Ну а тем, кто уже “в теме”, думаем, тоже будет интересно почитать, вдруг что-нибудь новое узнаете, или увидите проблему под другим углом?

Итак, виртуализация рабочего места. Что она из себя представляет? Прежде чем ответить на данный вопрос, предлагаем вам задуматься вообще о самом термине «рабочее пространство» и такой фразе, как «виртуализация рабочего места».
С точки зрения IT, конечно же...

Обработка и классификация запросов. Часть вторая: навигационные запросы

Reading time9 min
Views19K
Чего мы больше всего хотим, когда открываем интернет-поисковик? Мы хотим как можно быстрее его покинуть, как это ни парадоксально. Формулируем наше желание, жмём кнопку и скорее отправляемся туда, где оно должно исполниться (мы надеемся).



Есть всего два основных способа выражения желаний: либо описать, что нужно получить (или сделать), либо указать, куда нужно «телепортироваться». В первом случае система пытается понять запрос, правильно выбрав лучшие из ответов cети, взвешивая сотни их свойств на деревьях принятия решений. Во втором правильный ответ, как правило, всего один, и мы ожидаем, что поисковик его знает.

Запросы второго типа, отвечающие на вопросы куда или где — навигационные запросы. Предлагаю вашему вниманию небольшой рассказ о том, как мы с ними работаем.
Читать дальше →

AppFog и Django. С чего начать?

Reading time4 min
Views20K
Доброго времени суток, уважаемые хабровчане! Недавно я заинтересовался Python и, в частности, веб-фреймворком Django. После ознакомления с основными возможностями захотелось найти бесплатный хостинг с поддержкой Django. Каюсь, в тот момент напрочь забыл про GAE, но, почитав вчера про оный, понял, что выбор получился ничуть не хуже. Итак, встречайте, AppFog! (осторожно, под катом картинки!)
Читать дальше →

Облачная платформа Lagoa для 3D-рендеринга

Reading time2 min
Views36K

Рендеринг интерьера и освещения с помощью движка Lagoa

В 2010 году канадский разработчик Тиаго Коста (Thiago Costa) выпустил первую версию движка для рендеринга Lagoa Multiphysics 1.0.

Демонстрационное видео Lagoa Multiphysics 1.0

Технология оказалась настолько продвинутой, что компания Autodesk купила лицензию на использование плагина Lagoa Multiphysics в своей программе Softimage.

Тиаго Коста не остановился на достигнутом. За прошедшее время он зарегистрировал коммерческую компанию, нанял команду разработчиков, разработал бэкенд для 3D-рендеринга, а неделю назад запустил облачный веб-сервис Lagoa.com. Это система для удалённого 3D-рендеринга прямо «в браузере», где для обсчитывания сложнейших сцен вообще не задействуются ресурсы вашего компьютера.
Читать дальше →

pymorphy2

Reading time16 min
Views85K
В далеком 2009 году на хабре уже была статья "Кузявые ли бутявки.." про pymorphy — морфологический анализатор для русского языка на Python (штуковину, которая умеет склонять слова, сообщать информацию о части речи, падеже и т.д.)

В 2012м я начал потихоньку делать pymorphy2 (github, bitbucket) — думаю, самое время представить эту библиотеку тут: pymorphy2 может работать в сотни раз быстрее, чем pymorphy (втч без использования C/C++ расширений) и при этом требовать меньше памяти; там лучше словари, лучше качество разбора, лучше поддержка буквы ё, проще установка и более «честный» API. Из негатива — не все возможности pymorphy сейчас реализованы в pymorphy2.

Эта статья о том, как pymorphy2 создавался (иногда с довольно скучными техническими подробностями), и сколько глупостей я при этом наделал; если хочется просто все попробовать, то можно почитать документацию.

Читать дальше →

YaUI — буддийская кросплатформенная нативная JavaScript библиотека UI

Reading time12 min
Views18K
Эта история началась, когда мой друг и соратник, Яп Чэ-шень, сказал мне следующее:

— Я больше не хочу никогда в своей жизни писать на Дельфи! Я поклялся: больше ни единой строчки! С сегодняшнего дня все свои проекты и библиотеки перевожу на JavaScript!

Яп — китаец, с классическим менталитетом, свойственным его народу. Я многие годы работаю с ним над гуманитарными проектами в области оцифровки древней литературы, в первую очередь, «Буддийской библии» — Типитаки. Познания Япа, как в области самых древних текстов, так и самого современного программирования, не перестают удивлять меня уже более десяти лет — с тех пор, как мы начали сотрудничать и общаться на самые разные темы. Для себя я давно понял, что, если Яп что-то говорит, а я не согласен или не понимаю, то это лишь значит, что надо продолжать обсуждение, и вся громада причин и следствий в размышлениях моего друга выйдет на поверхность, и как всегда окажется, что Яп прав. Кажущаяся эмоциональность китайцев, на самом деле, необычайно рациональна.
Читать дальше →

02 — «Тонкий» клиент и «толстый» сервер

Reading time3 min
Views35K
Всем отличного дня! В прошлом выпуске нашего блога мы рассказывали о том, что такое виртуализация и как она работает в общих чертах. Сегодня поговорим о железе, на котором крутится все это великолепие.

image
Поехали!

MiTM атака на SSH

Reading time2 min
Views45K
В новой версии Intercepter-NG появилась возможность провести полноценную атаку на SSH-2 протокол.

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

Генерация случайных лиц в PaperJS

Reading time1 min
Views27K


Синтетические изображения обычно выглядят неестественно, не по-человечески, и тренированный глаз сразу их отличает от настоящих. Проект Weird Faces Study — это попытка объединить традиционную технику «человеческого» рисунка и компьютерные алгоритмы. Результат — сгенерированные компьютерные лица, каждое из которых уникально и выглядит как оригинальная авторская работа.
Читать дальше →

Алгоритм Эллера для генерации лабиринтов

Reading time5 min
Views155K
Это топик-перевод статьи Eller's Algorithm. В ней рассказывается о способе программной генерации лабиринтов. Дальнейшее повествование идет от лица автора.

 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  
|__   |__       __ __|__   |   __|  |  |  |  |
|__   |__   |__|   __ __|   __ __      |     |
|        |  |  |     |  |__      |__|  |  |  |
|__|__|  |  |   __|   __|__   |   __|__|  |__|
|   __|  |     |__ __ __|  |  |__|  |     |  |
|  |  |  |  |__|  |__   |  |   __|__ __|  |  |
|  |__    __    __ __    __|  |   __   |  |  |
|  |  |  |  |      __|  |   __|  |  |__|  |  |
|  |     |     |__   |  |  |  |  |  |__    __|
|  |  |__|__|__ __|  |     |  |  |      __|  |
|__ __|  |  |  |__   |__|   __|     |   __ __|
|   __|  |   __|__      |__   |__|  |__    __|
|  |  |     |  |     |__|  |   __    __|   __|
|   __|  |__ __|__|      __|  |  |     |  |  |
|   __ __   |      __|__|  |__   |  |  |__|  |
|__ __ __|__ __|__ __ __ __ __|__|__|__ __ __|


Алгоритм Эллера позволяет создавать лабиринты, имеющие только один путь между двумя точками. Сам по себе алгоритм очень быстр и использует память эффективнее, чем другие популярные алгоритмы (такие как Prim и Kruskal), требуя памяти пропорционально числу строк. Это позволяет создавать лабиринты большого размера при ограниченных размерах памяти.

Читать дальше →

Google опубликовал руководство разработчика по Glass Mirror API и лучшие практики

Reading time2 min
Views15K
Сегодня Google объявил о начале поставок первых Google Glass и заодно опубликовал значительную часть документации по разработке приложений для них.

В первую очередь это руководство разработчика по Glass Mirror API. Сам доступ к API пока находится в ограниченном доступе и открыт только для разработчиков, у кого есть само устройство. Остальные пока, как в лучшие времена, могут начать делать приложения основываясь на документации, но протестировать их они не смогут.

Эта первая версия API, которая позволяет разработчикам писать то, что Google называет Glassware, относительно бедна на функционал и самой лучшей функцией, вероятно, является возможность получения местоположения владельца очков. Так как каждое приложение взаимодействует с Очками через сервисы Google, API поддерживает RESTful службы и полностью облачное – никакой код на самих Очках не выполняется.

Читать дальше →

Хроники LinguaLeo: как мы сделали «Диалоги на английском» с Node.js и DynamoDB

Reading time5 min
Views37K


Пользователи LinguaLeo начинают изучать английский язык в Джунглях — хранилище тысяч материалов разного уровня сложности, формата и тематик; шаг за шагом учатся слышать и понимать речь носителей языка и расширять словарный запас. Кому нужна грамматика — идут в Курсы. Словарный запас пополняется не только из Джунглей, при добавлении незнакомых слов в Личный словарь, но и с помощью подготовленных Наборов слов, доступных для индивидуального изучения. В разделе Общение можно вести Диалоги на английском, чтобы практиковать язык с другими пользователями LinguaLeo в режиме real-time, выбирая темы для общения. Общение только на английском!

Для создания Диалогов на английском мы использовали Node.js, DynamoDB (все на AWS). Сейчас поделимся нашим опытом.
Читать дальше →

Стартует митап-группа «Moscow Cassandra Users»

Reading time1 min
Views2K
Друзья,

рад сообщить, что в Москве при поддержке компании DataStax стартует группа, посвященная NoSQL-хранилищу Apache Cassandra.

Всего в рамках группы планируется проводить 6 встреч в году. Некоторые из них будут проходить с участием разработчиков и архитекторов DataStax, т.е. будет возможность задать свои вопросы и высказать наболевшее лично людям, которые активно развивают продукт.
Узнать подробности

Хвостовое масштабирование

Reading time18 min
Views13K
Взаимодействие с системами, которые реагируют на запросы пользователя быстро (в течение 100 мс), ощущается тем же пользователем, как более плавное и естественное, чем взаимодействие с системами, которые реагируют долго. Развитие Интернета и возникновение датацентр-масштабных вычислительных систем (warehouse-scale computing systems) дало возможность появлению появлению веб-сервисов, обладающих высокой скоростью реакции и в тоже время, обрабатывающих терабайтные массивы данных, расположенные на тысячах серверов. Например, поисковая система Google обновляет результаты выдачи в ответ запроса одновременно с тем, как пользователь печатает, при этом система предсказывает наиболее вероятный запрос, основываясь на напечатанном префиксе, и осуществляет поиск и отображение результатов за десятки милисекунд. Устройствам дополненной реальности (таким как, например, Google Glass), которые только-только начали выходить на рынок, понадобятся веб-сервисы с еще более высокой скоростью реакции, дабы гарантировать естественность взаимодействия.
Читать дальше →

Хорошая беседа о борьбе с прокрастинацией

Reading time1 min
Views61K
Давно знаком и являюсь поклонником Яны Франк (ака Миумау в ЖЖ — www.miumau.lj.ru). Был на ее встрече позавчера, записал всю встречу на видео. Что мне понравилось: много дельных советов о борьбе с творческим кризисом, прокрастинацией в личном развитии и астенизацией. Все эти подходы применимы не только среди «художников», или тех чьи профессии считаются «творческими», но и вообще среди людей, которые хотят получать удовольствие от работы.

Вначале пару минут вступления-хождения.

Создание и хранение резервных копий баз данных в MS SQL. Практические советы

Reading time3 min
Views23K
По роду деятельности я немного администратор баз данных. Так или иначе мне приходится обслуживать несколько десятков БД.
Наткнувшись на статью, опубликованную недавно, посчитал нужным дополнить ее некоторыми практическими рекомендациями. То что затрагивалось в прошлой статье, в этой опускалось.

1. Размер резервной копии


Оценить размер резервной копии можно с помощью хранимой процедуры sp_spaceused

К примеру вот такой запрос:

USE your_database;
GO
EXEC sp_spaceused @updateusage = N'TRUE';
GO

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

Переносим функциональность bash в cmd.exe

Reading time2 min
Views115K
Мне, как и многим из вас, работать с bash и стандартными утилитами Linux гораздо удобнее и приятнее, чем с cmd.exe. Однако, к сожалению, порой обстоятельства складываются так, что операционную систему выбирать не приходится. Например, в моём случае корпоративным стандартом является Windows 7. К счастью есть способ сделать жизнь линуксоида в командной строке Windows комфортнее, о нём и пойдет речь ниже.

Читать дальше →

Foreman — менеджер процессов для ваших веб-приложений

Reading time4 min
Views33K
Все более популярной становится модель разработки веб-приложений, основанная на идее масштабирования с помощью процессов. Современное приложение представляет из себя набор выполняющихся процессов, не хранящих состояния, причем каждый изолирован друг от друга. Каждому такому процессу назначается свой локальный порт, что позволяет прозрачно экспортировать ваши сервисы для последующего их потребления кем-нибудь еще, возможно даже, что друг другом (например, один обслуживает http-запросы от пользователей, принимая url-адреса видео, а другой медленно, но верно, загружает их и конвертирует). Как правило, в большинстве случаев http-сервисы просто ставят за reverse proxy в nginx, но возможны варианты.

Не секрет, что у каждого разработчика есть свой арсенал инструментов, позволяющий ему так или иначе сделать свою жизнь проще. Сегодня мы поговорим о таком инструменте, как Foreman. Используя его, вы можете объявить в одном месте все процессы, которые необходимы для запуска вашего приложения. Для этого используется так называемый Procfile, который выглядит как-то так:

web:    mono ./awesome-app --port $PORT
api:    node ./api.js -p $PORT
worker: bundle exec rake resque:work QUEUE=*
habr:   bundle exec ./bin/thin -a localhost -p $PORT

Как видите, все довольно просто, в каждой строчке файла содержится по названию типа процесса и строка для его запуска.
Так зачем оно нужно и что же там есть такого вкусного?

Information

Rating
Does not participate
Location
Саров (Нижегородская обл.), Нижегородская обл., Россия
Date of birth
Registered
Activity