Обновить
0

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

Отправить сообщение

ЭПРА, освещение рабочего места

Время на прочтение3 мин
Охват и читатели148K
В кабинете, где я провожу своё рабочее время, нет окон на улицу, поэтому освещение целиком и полностью лежит на лампах дневного света, смонтированных на потолке. Увы, но у меня довольно чувствительные глаза, поэтому замечаю мерцание и к концу дня ощущаю себя несколько разбитым. Частично проблему решил покупкой качественной настольной лампы, а затем и специальных компьютерных очков с жёлтыми линзами.



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

Прочитав описание на википедии, а также впечатлившись рассказами коллеги, на следующий же день купил две ЭПРА (себе и жене), первые попавшиеся в местной барахолке для ламп типа T8 мощностью 18 Вт. Один поставил сразу, и тут же заметил, что не вижу раздражающего мерцания, а лампы стали светить ярче. Через пару дней подключил второй ЭПРА в светильник над рабочим местом жены, заодно решил сфотографировать весь процесс. Возможно, вам данная статья покажется тривиальной и дилетантской, но лично мне и нескольким моим коллегам эти знания были в новинку.

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

IFA 2013. Новинки компании Philips. Акустика и телевизоры

Время на прочтение5 мин
Охват и читатели29K
Мне удалось в этом году попасть на крупнейшую международную выставку IFA 2013 в Берлине. Первым делом я посетил стенд компании Philips, которая показала много интересных новинок. В основном это акустика для молодёжи и крутые телевизоры с 3D, Cloud TV, 4K и прочими новомодными технологиями. Была на стенде и бытовая техника, например, пылесосы, кофеварки, бритвы и прочие штуки, которые пригодятся в хозяйстве.



Но давайте обо всём по порядку. Аккуратно, под катом фотографии гаджетов и девушек.
Читать дальше →

RESTful API на Node.js + MongoDB

Время на прочтение16 мин
Охват и читатели262K
Я, будучи разработчиком мобильных приложений, часто нуждаюсь в backend-сервисах для хранения пользовательских данных, авторизации и прочего. Конечно, для подобных задач можно использовать BaaS (Parse, Backendless, etc…). Но свое решение — это всегда более удобно и практично.

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

В данной статье будет рассмотрено построение REST API для мобильного приложения на Node.js с использованием фреймворка Express.js и модуля Mongoose.js для работы с MongoDB. Для контроля доступа прибегнем к технологии OAuth 2.0 с помощью модулей OAuth2orize и Passport.js.

Пишу с позиции абсолютного новичка. Рад любым отзывам и поправкам по коду и логике!

Содержание

  1. Node.js + Express.js, простой web-сервер
  2. Error handling
  3. RESTful API endpoints, CRUD
  4. MongoDB & Mongoose.js
  5. Access control — OAuth 2.0, Passport.js

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

Опубликованы профессиональные стандарты РФ для программистов, админов БД и других профессий

Время на прочтение1 мин
Охват и читатели90K
В рамках федеральной программы, инициированной указом президента РФ №597 от 7 мая 2012 г., ведётся разработка новых профессиональных стандартов в области ИТ. На днях опубликованы черновики профстандартов админа БД, программиста, руководителя проектов в области информационных технологий, руководителя разработки программного обеспечения и т.д.

11-13 сентября 2013 года пройдут открытые вебинары с подробным обсуждением первой версии каждого из разрабатываемых профессиональных стандартов.
Читать дальше →

Хранение деревьев в базе данных. Часть первая, теоретическая

Время на прочтение4 мин
Охват и читатели135K
Полгода назад написал бандл ClosureTable для фреймворка Laravel 3. Поводом для написания стала вот эта замечательная презентация Билла Карвина о способах хранения и обработки иерархических данных в MySQL с использованием PHP.

Итак. Существует несколько шаблонов проектирования баз данных для хранения и обработки иерархических структур:
  • Adjacency List («список смежности»)
  • Materialized Path («материализованный путь»)
  • Nested Sets («вложенные множества»)
  • Closure Table («таблица связей»)

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

Чёрные дыры: скандалы, интриги, расследования

Время на прочтение5 мин
Охват и читатели91K
Пользуясь случаем, хотим поблагодарить всех читателей нашего блога за поддержку и здоровую критику наших статей, посвящённых космосу. Позвольте продолжить эту тему небольшой подборкой материалов о самом, пожалуй, популярном виде небесных тел после звёзд и планет: о чёрных дырах. Несмотря на то, что в целом об этих интереснейших объектах до сих пор известно очень мало, «таинственными» их можно назвать уже с большой натяжкой.

Термином чёрная дыра называют объекты, гравитация на границе и внутри которых столь велика, что покинуть этот объект не могут даже фотоны. Иными словами, даже свет не способен вырваться за пределы чёрных дыр, отсюда и такое трагично-поэтичное название. Граница, после пересечения которой уже невозможно покинуть пределы чёрной дыры, называется горизонтом событий. Не менее поэтично, не правда ли? Строго говоря, у чёрных дыр нет поверхности или какой-то иной вещественной границы. Что происходит с веществом внутри горизонта событий, никому неизвестно, поэтому условно его можно считать «поверхностью».


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

Шаблоны проектирования в адвенчурах: часть первая

Время на прочтение7 мин
Охват и читатели39K
Предлагаю к прочтению очередную статью из блога Дэна Шулера о паттернах, которые можно использовать при разработке адвенчур. В свое время мне приходила в голову идея классификации загадок, но я лишь делал небольшой обзор, а не объемную статью. Естественно, я был удивлен и рад тому, что тема была кем-то поднята. Ниже приводится описание самих паттернов, следующим постом будут более развернутые примеры их использования, а в этот решил их не включать, по причине слишком объемного перевода. Также я добавил несколько поясняющих иллюстраций и несколько комментариев от себя.

«То, что мы называем хаосом — это всего лишь закономерности, которые мы не сумели распознать. То, что мы называем случайностями — это всего лишь закономерности, которые мы не в состоянии расшифровать.»
— Чак Паланик

Как насчет абстрактного подхода к разработке адвенчу? Или, хотя бы, для загадок в адвенчурах — это может оказаться полезным!

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

Цикл разработки через Github

Время на прочтение3 мин
Охват и читатели109K

Разработка



Я расскажу о цикле разработки через Github, который я использую. Он был проверен в течении года на командах разного размера: 3 — 14 человек.

Существует 2 основных ветки: master и dev.

master — стабильная ветка, готовая к выкатыванию на production сервер в любой момент.

dev — ветка, над которой в данный момент работает команда.

Итак, в начале разработки master и dev ветки идентичны.

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

Разбор адресов «нечёткими регулярными выражениями»

Время на прочтение7 мин
Охват и читатели32K
Краткое содержание: о библиотеке написанной мною для сопоставления с заданным словарём выражений на естественном языке — в частности, городских адресов.

На деревню дедушке


Сколько существует способов написать адрес — в смысле, географический?

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

Возьмём простой пример:
улица Цветочная — может быть обозначена с сокращением, как «ул. Цветочная» и «Цветочная ул.» — кроме того «ул.» можно пропустить (если Цветочной площади в городе нет), а «Цветочная» можно написать с ошибками «Цвяточная» или «Цвиточная», равно как и «Цветошная» — всё это будет выглядеть недурно!

Пример посложнее:
2-я Конно-армейская улица — здесь душе поэта есть где разгуляться. Номер можно выразить как «2-ая» или просто «2», а можно даже прописью «Вторая» или с сокращением «Втор.» — дефис же между «конной» и «армейской» будет встречаться примерно у 50% опрошенных. До кучи выяснится что «конно-армейская» кому-то показалась длинной и сократилась до «2 Конноарм. ул.»

Другие интересные примеры связаны с именами «ул. Матроса Железняка» (или просто «Железняка»?), «пр. Мориса Тореза» (или «Мариса Тереза»?) а также совсем эпические случаи «ул. 3-я линия второй половины», «дорога на деревню Рыбацкое», «ул. Левый берег реки Ижоры» — прошу простить если и сам я их не осилил написать правильно по памяти.
Читать дальше →

Python for Programmers

Время на прочтение1 мин
Охват и читатели31K
Alex Martelli Многие знакомы с выступлением Алекса Мартелли (Alex Martelli) на Google Tech Talk под названием Python for Programmers (слайды) — в нём он чётко и лаконично рассказывает основы Питона для тех, кто уже умеет программировать, например на C, С++ или Java. По его презентации я сам учил Питон четыре года назад, перед тем как начать использовать его в преподавании программирования на матмехе СПбГУ.

Сегодня хочу представить вам интерактивный вариант этой презентации — онлайн мини-курс Python for Programmers, созданный и опубликованный под лицензией Creative Commons с разрешения Алекса. Мы добавили к его презентации интерактивных упражнений, обновили материал с Python 2.5 до Python 3.3, добавили информацию по актуальным библиотекам и разнице между 2 и 3 версиями Питона.
Читать дальше →

Всё, что вы хотели знать о динамическом программировании, но боялись спросить

Время на прочтение12 мин
Охват и читатели256K
Я был крайне удивлён, найдя мало статей про динамическое программирование (далее просто динамика) на хабре. Мне всегда казалось, что эта парадигма довольно сильно распространена, в том числе и за пределами олимпиад по программированию. Поэтому я постараюсь закрыть этот пробел своей статьёй.

# Весь код в статье написан на языке Python

Основы


Пожалуй, лучшее описание динамики в одно предложение, которое я когда либо слышал:

Динамическое программирование — это когда у нас есть задача, которую непонятно как решать, и мы разбиваем ее на меньшие задачи, которые тоже непонятно как решать. (с) А. Кумок.
Читать дальше →

Типичные ошибки «опытного заказчика» во фрилансе

Время на прочтение4 мин
Охват и читатели128K
Я, как человек более 7 лет проработавший фрилансером, и выросший из фрилансера в небольшую IT компанию из 10 человек. Не мог пройти мимо весьма познавательной статьи: 10 советов для заказчика во фрилансе.

И с позволения, написал свой ответ, так сказать, Чемберлену. С точки зрения фрилансера.
Читать дальше →

RosSpam.org или как пожаловаться на SMS-спам в пару кликов

Время на прочтение2 мин
Охват и читатели30K

С каждым днем мы получаем все больше и больше рекламных SMS. Такой вид рекламы очень хорош для рекламодателя — получателю сообщения всегда проще его удалить, чем пожаловаться. Ну, кто пойдет на сайт какого-нибудь сервиса, введет кучу данных об полученной SMS, чтоб, может быть, отписаться от данного отправителя, а на следующий день получить SMS-спам от нового?
Есть идея!

Экономия на спичках, или Неуловимый Джо возвращается

Время на прочтение4 мин
Охват и читатели30K
Данная статья не претендует на оригинальность или новизну, а лишь приоткрывает капот в этой адской машине оптимизации.
Читать дальше →

Немножко анонимен

Время на прочтение5 мин
Охват и читатели233K
Обсуждение анонимности нужно начинать не со слов прокси/тор/впн, а с определения задачи: анонимно подключиться к чужому серверу по SSH это одно, анонимно поднять свой веб-сайт это другое, анонимно работать в инете это третье, etc. — и все эти задачи решаются по-разному. Эта статья о задаче «анонимно работать в интернете как пользователь».

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

Во-первых, нужно адекватно оценивать потенциального противника. Если вы хотите быть «анонимным», значит вы пытаетесь избежать возможности связывания вашей активности в интернете с вашим физическим расположением и/или настоящим именем. Обычные пользователи и так не имеют возможности вас отслеживать (технически, социальные методы когда по вашему нику на форуме легко гуглится ваш аккаунт в соц.сетях со всеми личными данными мы здесь не рассматриваем). Ваш провайдер/соседи могут иметь возможность прослушать большую часть вашего трафика, но, как правило, вы им не интересны (да, соседи могут украсть ваши пароли, но заниматься отслеживанием вашей активности или вашей деанонимизацией они не станут). Что же касается владельцев используемых вами ресурсов (веб-сайтов, прокси/vpn-серверов, etc.) то у них в распоряжении множество средств по отслеживаю вас (DNS-leaks, Flash/Java-плагины, баннерные сети, «отпечатки браузера», множество разных видов кук, etc.) плюс серьёзный коммерческий интерес к тому, чтобы надёжно вас отслеживать (для таргетирования рекламы, продажи данных, etc.). Ну а правительство и спец.службы могут получить доступ и к данным, которые на вас собирают веб-сайты, и к данным, которые собирают провайдеры. Таким образом получается, что те, кто имеют возможность и желание вас отслеживать — имеют доступ к большинству возможных каналов утечки.

Во-вторых, каналов утечки информации очень и очень много. И они очень разнообразны (от внезапно отключившегося VPN до получения реального IP через Flash/Java-плагины браузера или отправки серийника на свой сервер каким-нить приложением при попытке обновления). Более того, регулярно обнаруживаются (и создаются) новые. Поэтому попытка блокировать каждый из них в индивидуальном порядке, уникальными для каждого методами, просто не имеет смысла, всё-равно что-то где-то протечёт.

В-третьих, при «работе в интернете» используется не только браузер — большинство пользуются так же IM, торрентами, почтой, SSH, FTP, IRC… при этом часто информация передаваемая по этим каналам пересекается и позволяет их связать между собой (.torrent-файл скачанный с сайта под вашим аккаунтом грузится в torrent клиент, ссылка пришедшая в письме/IM/IRC открывается в браузере, etc.). Добавьте сюда то, что ваша ОС и приложения тоже регулярно лазят в инет по своим делам, передавая при этом кучу деанонимизирующей вас информации…

Из всего этого логически следует то, что пытаться добавить «немножко анонимности» путём использования браузера со встроенным Tor, или настройкой торрент-клиента на работу через SOCKS — нет смысла. Большинство вас не сможет отследить и без этих мер, а тех, кто имеет возможности и желание вас отследить эти меры не остановят (максимум — немного усложнят/замедлят их работу).
Читать дальше →

Делаем «mindmap» на Javascript с локальным хранением в базе данных браузера

Время на прочтение25 мин
Охват и читатели58K

Это небольшой учебный пример редактора карты памяти. За счёт очень подробных комментариев и простого кода, понять его не составит проблем. Статья предназначена для знающих и изучающих Javascript.

Я опишу особенности создания редактора карты памяти, который использует базу данных браузера. Причём, это будет не LocalStorage, который не может превышать 5 мегабайт. Объём данных сможет превысить 100-200 мегабайт, так как используется IndexedDB или webSQL, смотря что доступно в конкретном браузере.

Исходники выложены в открытый доступ на Github.

Мы уложимся в 520 строк кода, при этом в нашей карте можно будет перетаскивать узлы между собой, удалять, переименовывать и создавать новые. А также можно будет назначать одну из 120 иконок через контекстное меню.

Секрет минимализма в том, что мы будем использовать проверенные в бою плагины:
  1. Ydn.db — хранение информации в базе данных браузера с автоматическим выбором лучшего метода и единым API
  2. jQuery context menu — контекстное меню, которое можно наполнять динамически при помощи Javascript
  3. jsPlumb — расширение позволяющее рисовать линии между HTML элементами
  4. jQuery UI — Drag&drop — перетаскивание элементов между собой


PS: Также мы научимся создавать «синглтон», облегчать себе асинхронное программирование при помощи jQuery и встроенного объекта $.Deferred(), а также при помощи плагина LiveReload, сохраним краску на клавише F5 при изменении свойств CSS и кода в HTML и Javascript.
Читать дальше →

Повесть о настоящем Интернете

Время на прочтение13 мин
Охват и читатели186K
Abstract: Рассказ про устройство Интернета, как «сети сетей» в виде текста для чтения, без двоичной системы счисления и нюансов BGP. Большая часть расказа будет не про процесс общения ноутбука с точкой доступа, а о том, что происходит после того, как данные пройдут «шлюз по умолчанию». Предупреждаю, букв много.

Вступление


Маленький провокативный вброс: ни один из читателей этой статьи к Интернету не подключен. Все подключены к сети своего провайдера, и не более. Подключение к Интернету дорогое, его сложно делать, вам потребуется очень крутое оборудование, несколько договоров с несколькими операторами связи и квалифицированные сотрудники. Простому домашнему пользователю это никак и никогда не светит. Не говоря уже о том, что в Интернете может быть не больше 4 миллиардов подключившихся (а до недавнего времени было даже «не более 65536») [1]. Даже если весь Интернет перейдёт на ipv6, это число не поменяется.

Вот число подключившихся к Интернету [2]:

По оси Y — число в штуках. Штуках, штуках. И вас в этом числе не посчитали.

Почему?

Дело в том, что Internet — это, если переводить буквально, «межсетье». Сеть Сетей. И участниками Интернета являются не пользователи (их компьютеры, планшеты, микроволновки с wifi и т.д.), а сети. Сети и только сети участвуют в работе Интернета. Интернет — это то, что связывает разные сети между друг другом.
Читать дальше →

Первые несколько миллисекунд HTTPS соединения

Время на прочтение10 мин
Охват и читатели179K
После нескольких часов чтения обзоров, Боб с нетерпением нажал на кнопку перехода к оформлению заказа на галлон цельного молока, и…
Воу, что только что произошло?


Интересно? Прошу под кат

Пак ольдскульных пиксельных иконок, скоро 4000

Время на прочтение2 мин
Охват и читатели36K
3500 иконок готово. Можно сказать спасибо. После выпуска 3000 иконок FatCow прошел почти год, страницу посетило 700к посетителей. Пошел пятый год рисования. Находить удачные метафоры становится сложнее. Пытаемся охватить набор метафор, который нужен для специфичного софта и узконаправленных сайтов.
Чтобы дойти до 4000 иконок, работы хватит до апреля 2014 года. Потом укрупняем палитру или уходим в 5000. То есть по многочисленным запросам пользователей помимо 16-го и 32-го размера намерены освоить 48x48 и 96x96. В таком случае до середины 2015-го года нарисуем первую «крупную» тысячу.



Пятилетку за четыре года, кота за день. Чтобы понять, какие именно 500 метафор было положено в основе дополнительной эмиссии, смотрим сотканный kreol2013 надстройкой над программой KhodeN «ковер»…
Читать дальше →

Навигатор по бесплатным иконкам

Время на прочтение2 мин
Охват и читатели5.1K
Вчера в который раз возник вопрос по подбору нескольких иконок в очередном веб-проекте. В основном пользуюсь готовыми иконками из бесплатных наборов. До недавнего времени прибегал к услугам сайта iconpicker.deviantech.ru. Навигация по иконкам была хоть и не самая удобная, но явно лучше, чем просто проглядывать их в Finder'е (или Explorer'е). Однако в последнее время сайт недоступен.

В итоге решил сделать собственный навигатор по иконкам:


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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность