Search
Write a publication
Pull to refresh
51
0
Dmitry Spodarets @m31

Head of R&D at V.I.Tech

Send message

Охотимся за утечками памяти в Node.js (1-я из 12 статей о Node.js от команды Mozilla Identity)

Reading time7 min
Views27K
От переводчика: Это первая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona. Как клиентская, так и серверная часть Persona написаны на JavaScript. В ходе работы команда проекта создала несколько инструментов на все случаи жизни — от локализации до отладки, управления зависимостями и многого другого. В этой серии статей разработчики Mozilla делятся с сообществом своим опытом и этими инструментами, которые пригодятся любому, кто пишет высоконагруженный сервис на Node.js.

Первая статья цикла посвящена распространённой проблеме Node.js — утечкам памяти, особенностям утечек в высоконагруженных проектах и библиотеке node-memwatch, которая помогает найти и устранить такие утечки в Node.




Зачем заморачиваться?


Вы можете спросить, зачем вообще отслеживать утечки памяти? Неужели нет более важных дел? Почему бы просто не перезапускать процесс время от времени, или просто добавить памяти на сервер? Есть три причины, по которым устранять утечки всё-таки важно:

  1. Возможно, вы не сильно переживаете об утечках памяти, но этого нельзя сказать о V8 (движок JavaScript на котором работает Node). Чем больше памяти занято, тем активнее работает сборщик мусора, замедляя ваше приложение. Так что в Node утечки напрямую вредят производительности.
  2. Утечки могут привести к другим проблемам. Протекающий код может блокировать ограниченные ресурсы. У вас могут закончиться файловые дескрипторы или вы вдруг не сможете открыть ещё одно соединение с БД. Такие проблемы могут возникнуть задолго до того, как кончится память, но обрушат ваше приложение ничуть не хуже.
  3. Рано или поздно ваше приложение упадёт. И это наверняка случится во время наплыва посетителей. Вас все засмеют и будут писать про вас гадости на Hacker News.

Откуда доносится звук падающих капель?

Erlang для самых маленьких. Глава 1: Типы данных, переменные, списки и кортежи

Reading time8 min
Views67K

Добрый день, дорогие хабражители.

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


Если интересно - давайте начнем...

Эволюция дизайна интерфейсов операционных систем с 1981 по 2009 годы

Reading time8 min
Views51K

Перевод «Operating System Interface Design Between 1981-2009»



imageГрафический пользовательский интерфейс (GUI — Graphical User Interface) это средства позволяющие пользователям взаимодействовать с аппаратными составляющими компьютера достаточно комфортным и удобным для себя образом.
В течении многих лет для большого количества операционных систем, таких как OS/2, Macintosh, Windows, AmigaOS, Linux, Symbian OS, и т. п., было создано еще большее количество графических интерфейсов.
Давайте попробуем взглянуть на эволюцию дизайна интерфейсов этих систем, начиная с 80-х годов.
Должен заметить, этот топик демонстрирует только значительные достижения и этапы в области графического дизайна (а не операционных систем в целом), да и не все системы существуют и по сей день.

Я догадываюсь что там много графики, но все же хочу посмотреть.

Статус публичных API: онлайн + статистика за неделю

Reading time1 min
Views3K
По адресу api-status.com существует сервис, позволяющий отслеживать состояние публичных API в более-менее реальном времени (интервал обновления составляет 5 минут).
Выглядит это так:

Таким образом, кроме сиюминутного статуса можно видеть статистику за неделю.
Сайт может быть полезен для системных администраторов, занимающихся поддержкой веб-серверов клиентов (клиентские приложения частенько используют публичные API), и разработчикам (по той же причине).
Спасибо за внимание.

Photoshop в Ubuntu

Reading time2 min
Views179K

Резюме


Мы будем использовать VirtualBox с установленными windows и photoshop, затем интегрируем виртуальную машину в ubuntu. В итоге, мы, практически, не будем ощущать, что используется эмулятор.



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

NodeJS Cluster-hub. Обмен сообщениями в cluster, запросы, межпроцессные эксклюзивные блокировки (критические секции)

Reading time2 min
Views6.6K
Работая в очередной раз с модулем cluster, я столкнулся с необходимостью обмена сообщениями между рабочими процессами. К сожалению стандартный функционал модуля позволяет отправлять сообщения только с master процесса на worker, и в обратном направлении. При этом нет возможности получить какой-то ответ на сообщение, а очень хотелось бы. Поэтому я написал модуль cluster-hub. Возможно кому-нибудь он пригодится.

Модуль позволяет
  • Отправлять сообщения master->worker, worker->master, master->master
  • Отправлять запросы и получать ответы (через callback)
  • Использовать эксклюзивные блокировки по ключу (критические секции)


Кому интересно — прошу под кат.
Читать дальше →

Опыт обучения школьников программированию

Reading time13 min
Views146K
Примерно полтора года назад компания, в которой я работал, приняла решение начать образовательный проект: готовить будущих программистов со студенческой и даже школьной скамьи. Решение было вызвано как нехваткой квалифицированных программистов в нашем регионе, так и тем, что приходящих выпускников приходится очень многому доучивать – получаемое в вузе образование не полностью отвечает современным реалиям индустрии разработки ПО. Проект взаимовыгодный как для студентов, которые получают возможность познакомиться с промышленным программированием на практике, так и для компании, которая получит через несколько лет квалифицированных специалистов.

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

Договор на разработку сайта: так, а не иначе

Reading time29 min
Views153K
Присылает нам заказчик (Газпром) свою версию договора.
Понимаем — нашу они не подпишут,
вносим реквизиты и отправляем обратно.
Пропадают на две недели… возвращают протокол разногласий к договору.


Последняя неделя выдалась жаркой на переговоры с юристами заказчиков. Проекты я не веду, но так уж получилось, что все договора проходят через меня. Соответственно, я участвую в их согласовании.
Читать дальше →

Университет MIT выложил бесплатно лекции в Сеть

Reading time1 min
Views151K


Один из лучших технологических вузов мира опубликовал большинство своих обучающих курсов, лекций и семинаров в интернете на отдельном ресурсе.

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

Создаем резюме на LaTeX — как и зачем?

Reading time5 min
Views93K
Многие документы я подготавливаю в LaTeX, а не в Word. И к моменту, когда я определяюсь со следующим местом работы, я подвожу итоги сделанного, и, уж чтобы не пропадало, фиксирую их в документах, составляющих каркас моего CV. По моему личному убеждению, тщательность в создании документов для будущего работодателя нужна не столько для коммуникаций с «эйчарами», сколько для осмысления дороги, по которой идешь, и направления, в котором решаешь двигаться дальше. Итак, почему я для резюме выбрал LaTeX?

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

В Disney Research разработали систему тактильной обратной связи на основе вихревой пушки

Reading time2 min
Views46K


Хотя интерфейсы, позволяющие управлять компьютером с помощью жестов, такие как Kinect, получили достаточно широкое распространение, все они пока что не дают тактильной обратной связи. Объектами на экране компьютера можно управлять, но пощупать их нельзя. Исследования в этом направлении ведутся довольно давно, например, в Японии создали прибор, позволяющий ощутить прикосновение виртуальных объектов с помощью ультразвука. В Disney Research пошли по другому пути. Их прототип, названный AIREAL, основан на интересном аэродинамическом эффекте — образовании устойчивого тороидального вихря на выходе из воздушной камеры с круглым отверстием при резком повышении давления внутри. Устройство, производящее такие вихри, называют «вихревой пушкой». В простейшем случае — это картонная коробка с круглым окном.
Вот как она работает:

Замена Dropbox на BitTorrent Sync + Raspberry Pi

Reading time2 min
Views65K


Для Raspberry Pi нашли ещё одно полезное применение. Мини-компьютер отлично справляется с бэкапом и синхронизацией файлов между различными устройствами. К нему можно подключить внешний диск или большую флэшку, и RPi готов работать круглосуточно, синхронизируя файлы с компьютеров, ноутбуков и Android-устройств (скоро выйдет и клиент для iOS). Незачем платить за облачный сервис, если можно сделать такое же удобное «облако» у себя дома, и бесплатно.

Американский программист Джек Минарди опубликовал пошаговую инструкцию, как запустить BitTorrent Sync на Raspberry Pi.
Читать дальше →

Тенденции инвестирования в стартапы

Reading time11 min
Views15K
imageДанная статья первоначально предполагалась для прочтения инвесторами, но будет интересна и для тех, кто хочет создать свой стартап или уже находится в процессе его создания. Автор хорошо описывает тенденции в мире стартапов, что будет полезно для начинающих бизнесменов. — Прим. переводчика

Работа Y Combinator


Венчурный фонд Y Combinator на сегодняшний день профинансировал 564 стартапа, включая текущую партию из 53 стартапов. Совокупная оценочная стоимость 287 стартапов, которые были оценены (вследствие привлечения раунда финансирования, приобретения кем либо или закрытия стартапа вследствие чего либо) составляет приблизительно $11,7 миллиарда. Предшествующие текущей партии 511 стартапов вместе составили приблизительно $1,7 миллиарда. [1]

Как правило, эти цифры формируются благодаря лидерам списка. На топ-10 стартапов приходится 8,6 из этих 11,7 миллиарда. Однако за ними следует группа более молодых стартапов. Есть еще порядка 40, которые намерены стать действительно крупными.
Читать дальше →

Первый высокоуровневый язык программирования для квантовых компьютеров

Reading time2 min
Views78K
Хотя квантовые компьютеры существуют пока только в теории, но это не мешает делать обоснованные предположения об их будущей архитектуре и, что более важно, об интерфейсе взаимодействия с ними. Таким образом, уже сейчас есть возможность проектировать программные симуляторы квантовых компьютеров — и писать софт.

Группа американских учёных, получив финансирование от исследовательского центра Национальной разведки США (IARPA) разработала высокоуровневый язык программирования Quipper. Он создан на основе Haskell и лучше подходит для реализации квантовых алгоритмов, чем QCL (основан на C).

На сегодняшний день известно как минимум 45 алгоритмов для квантовых компьютеров. Все они описаны в научных статьях, но ни один не был реализован в программном коде. С появлением Quipper появилась такая возможность. В дальнейшем программисты смогут просто использовать готовые библиотеки для квантовых компьютеров, как они это делают сейчас на высокоуровневых языках для классической архитектуры.
Читать дальше →

Как делать презентацию с помощью веб-технологий?

Reading time8 min
Views88K
Все знают офисных монстров PowerPoint и Keynote, но почему-то мало кто с радостью в них работает. И действительно, что делать, если ты совсем не бухгалтер, а разработчик или просто гик и гораздо комфортнее чувствуешь себя в коде, чем в офисных пакетах? У меня для тебя хорошие новости: презентации уже очень давно можно делать прямо в браузере, а писать с помощью таких простых и знакомых вещей, как HTML, CSS или даже Маркдаун.

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




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

Включение сервера с помощью мобильного телефона из внешнего мира

Reading time3 min
Views40K
imageДоброго времени суток хабравчане! Всё началось с того, что работая удалённо в терминале понадобилось перезагрузить сервер. Толи день не задался, толи мысли были о чём-то другом и вместо команды:
sudo shutdown -r now
отправил его отдыхать после нелёгкого рабочего дня, командой:
sudo shutdown now Enter
И всё произошло машинально и так быстро, что даже сам не успел понять. Понимание стало приходить минут через 15-20, после безудержных попыток подключится удалённо к терминалу. И думаю даже не стоит говорить о том как далеко находился сервер, и добраться до него было практически невозможно. После долгих телефонных разговоров и объяснений куда кому пойти, и что где нажать, сервер всё же вернулся в рабочий ритм. После чего и появилась идея о включении сервера удалённо.
Читать дальше →

Утилиты для Windows Azure на каждый день!

Reading time5 min
Views12K
Решила поделиться с Хабропользователями утилитами, которыми пользуюсь при работе с Windows Azure для отладки или быстрого анализа ситуации.


Утилиты: комплексные (Windows Azure Tools для Microsoft Visual Studio, Windows Azure Management Studio от Cerebrata); для работы с хранилищем (CloudBerry Explorer for Azure Blob Storage, Azure Storage Explorer, CloudXplorer, Azure Throughput Analyzer, AzCopy); для работы с Service Bus (Service Bus Explorer); для работы с SQL Database (SQL Database Migration Wizard) и кроссплатформенные для работы из командой строки Windows, Linux, Mac (Windows Azure PowerShell, Command Line Interface (CLI)).
Дальше

Маленький британский шпион – закладка на Raspberry Pi

Reading time9 min
Views97K
Большой темой майского номера «Хакера» стал Raspberry Pi. Мы пообщались с создателем «малинки», Эбеном Аптоном и узнали, каковы итоги первого года проекта, и что ждет маленький компьютер в следующем. Также мы описали два концепта на основе Raspberry: незаметную закладку, которая в виду размеров может незаметно собирать данные из сети (принимая команды по SMS и скидывая логи в Evernote), а также систему видеонаблюдения, интегрированную с Google Drive. Один из этих концептов мы предлагаем вашему вниманию.




Идея дропбокса проста: если миниатюрный компьютер снабдить батареей и 3G-модемом, то можно получить шпионскую коробочку, которая незаметно подключается к исследуемой сети и передает собранные данные. Этот концепт вполне реализуем на Raspberry Pi.

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

Опубликованы исходные коды платформы онлайн-обучения edX

Reading time1 min
Views24K


1 июня был открыт доступ к репозиториям с исходными кодами платформы онлайн-обучения edX, основанной Массачусетским технологическим институтом и Гарвардским университетом. Теперь можно не только изучать огромное количество курсов на таких сайтах, как edx.org или coursera.org, но и создать свой собственный портал для дистанционного образования. Похоже, у Moodle появился конкурент.
Читать дальше →

Видеоинтервью из Кремниевой Долины. Илья Сёмин: «Мне не нужны инвесторы» — как построить бизнес в IT без привлечения инвестиций

Reading time3 min
Views25K

С вами новый выпуск познавательных интервью и репортажей из Кремниевой Долины. На этот раз интервью не с Rock Star, от которых уже наверное немного устали, а просто с талантливым предпринимателем из Долины, сумевшим недавно построить успешно развивающийся бизнес и собрать команду из 8 человек. Илья Сёмин, бывший разработчик Nokia, однажды решил бросить работу в компании и переехать через всю Америку из Бостона в Кремниевую Долину, чтобы построить свою компанию там. Илья создал приложение, которое по принципу поисковика обходит миллионы сайтов и смотрит, какие интернет-технологии на них искользуются. На основе этой информации клиенты могут, например, увидеть, когда продукт конкурента появился на одном из сайтов, и, воспользовавшись моментом, «перехватить» клиента у конкурента.

Например, если компания делает продвинутую версию Google Analytics, то Datanyze поможет ей отследить тех, кто использует данную технологию и, таким образом, даст список потенциальных клиентов, которым можно сервис предложить. Как говорит сам Илья: «Datanyze — это инструмент для того, чтобы в нужный момент в нужную компанию предложить свой продукт. Мы даем информацию о том, кому предложить, когда, их контакты и всю необходимую информацию о компании (сколько человек работает, какая у них прибыль, фандинг, год основания и т.д.).» В интервью Илья Сёмин рассказывает, почему он бросил работу в Nokia, как он создал компанию, почему не ищет инвестиций, а также поделится секретами маркетинга в Twitter и LinkedIn. Под катом больше информации и вопросы интервью.
Читать дальше →

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity