Search
Write a publication
Pull to refresh
1
0
Роман Сопов @sopov

Разработчик

Send message

Простой, казалось бы, вопрос по JavaScript

Reading time1 min
Views5.4K
Есть простейший с виду код:

setInterval(function(){
     var xhr = new XMLHttpRequest();
     xhr.open('GET', 'json.txt', true);
     xhr.onreadystatechange = function() {
        if(this.readyState == 4 && this.status == 200) {
           console.log(this.responseText);
        }
     };
     xhr.send('');
}, 500);


Если оставить этот код работающим в, например, Google Chorme, скажем, на 1 час, он съедает память. Съедает методично. Если посмотреть в Developer Tools на профиль использования памяти видно что память таки чистится GC но не до конца. Со временем минимальная точка на графике после GC растет.

image

Аналогично рост потребления памяти видно и по about:memory. «Отжир» памяти стабильно видно и в FF…

Важное...
  • Файл json.txt лежит на localhost, его загрузка не занимает более 500мс гарантированно (я проверял).
  • Вывод в консоль я тоже отключал — память по прежнему отжирается.
  • EDIT без включенных developer tools — тоже течет, видно на about:memory.


Кроме этого кода более на данной странице никакого кода нет вообще.

Возможно я не понимаю как работает GC в JS, но по моему понятию тут нечему течь и нечему жить вечно. Может кто-то объяснить почему?

P.S. «Настоящей» утечки таки нет, если обновить страницу — память очищается.
P.P.S. Есть локальная жизненна потребность («требования бизнеса») оставлять подобный по структуре код на гораздо большие промежутки чем 1 час.

UPD: Оказывается есть даже тикет в хромиуме: code.google.com/p/chromium/issues/detail?id=52411
UPD: Якобы fixed in 9, но я проверяю на 10.

Улучшаем интерфейс Java-приложения

Reading time27 min
Views100K
Добрый день, Хабражитель!

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

Итак, в данном посте я постарался изложить самые важные и значимые на мой взгляд моменты по работе со Swing и графикой — как создавать компоненты, как стилизовать интерфейс, чего делать не стоит и многое другое…

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

Code Signing в Windows, просто и недорого

Reading time2 min
Views45K
Хотел бы рассказать тут о такой важной особенности разработки под Windows как Code Signing. А ведь многие достаточно серьёзные разработчики до сих пор ей не пользуются, и очень зря. Помимо того что при запуске вашего неподписанного приложения появляется противная красная иконка с крестом и неприятным текстом:
«Этот файл не имеет цифровой подписи которая может подтвердить производителя. Вы должны запускать программы только от производителей которым доверяете.»
Это ещё и пропуск на корпоративный рынок.
Читать дальше →

Более 50 статей по виртуализации на русском языке

Reading time2 min
Views10K
Привет, хабрасообщество!

Наконец-то свершилось то, чего я так ждал! Мы долго трудились, и вот результат! Пожалуй, что имеет смысл сообщить просто факт: мы рады представить обновленный центр по виртуализации на Microsoft TechNet.

Мы нашли и перевели около 50 статей, которые смогут помочь как начинающим, так и уже опытным системным администраторм разобраться (местами очень непонятными) технологиями виртуализации. Мы готовили данный контент с ожиданием того, что это будет по-настоящему полезным и приятным сюрпризом для всех тех, кто занимается виртуализацией в той или иной мере. Пожалуй, что не буду попусту тратить место на экране, а просто представлю то, что у нас получилось:

1. Преимущества виртуализации

2. Виртуализация серверов

3. Виртуализация локальных настольных компьютеров

4. Виртуализация удаленных рабочих столов
Читать дальше →

60 кадров в секунду: новые впечатления от старого видео

Reading time3 min
Views240K
Здравствуйте, уважаемые читатели этой статьи.

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

Сидя вечером в начале этой недели я случайно, сразу на нескольких сайтах столкнулся с интересной новостью, гласящей «Кэмерон снимет продолжения «Аватара» со скоростью 60 кадров в секунду».
Кэмерон человек далеко не глупый, оттого мне стало интересно, что он хочет извлечь из этих 60 кадров, ведь человеческий глаз различает лишь 24-25 кадров за секунду.
Читать дальше →

Как устроен AES

Reading time7 min
Views318K

О чём эта статья



Долгое время я считал, что криптографические алгоритмы шифрования и хеширования, вроде AES и MD5, устроены очень сложно и написать их совсем не просто, даже имея под рукой полную документацию. Запутанные реализации этих алгоритмов на разных языках программирования только укрепляли это мнение. Но недавно у меня появилось много свободного времени и я решил разобраться в этих алгоритмах и написать их. Оказалось, что они очень просто устроены и для их реализации нужно совсем немного времени.

В этой статье я напишу как устроен алгоритм шифрования AES (которого иногда называют Rijndael) и напишу его на JavaScript. Почему на JavaScript? Чтобы запустить программу на этом языке, нужен только браузер в котором вы читаете эту статью. Чтобы запустить программу, скажем, на C, нужен компилятор и найдётся совсем мало желающих, готовых потратить время на компиляцию кода из какой то статьи. В конце есть ссылка по которой можно скачать архив с html страницей и несколькими js файлами — это пример реализации AES на JavaScript.

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

Новости о вашей компании в СМИ

Reading time2 min
Views2.5K
Вас приветствует компания PR Hero. Мы поможем продвинуть ваш проект или компанию, используя самый эффективный для этого метод — Press Relations, то есть построение эффективных отношений со средствами массовой информации.

image

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

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

Высокодоступное отказоустойчивое web-приложение на Apache2 и MySQL

Reading time7 min
Views18K

HA-Apache2 Web-Site and HA-MySQL


Цель: обеспечить высокую доступность web-приложения и минимальное время простоя при отказе одного как web-сервера, так и сервера баз данных.
Замечание! Схема предполагает, что web-приложение и база данных находится на разных серверах.
Для примера будем устанавливать wordpress.

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

Как хороший договор спасает нервы и монетку

Reading time14 min
Views62K
Договоры, отчеты, акты — кому охота заниматься этой скукотой, когда вокруг бьет ключом и фонтанирует идеями креативная жизнь? Особенно, если заказчик снисходительно хлопает творческого подрядчика по плечу: «Да ладно, зачем какие-то договоры. Мое слово — закон!» Остается только радостно согласиться и приступить к работе.

На заре существования нашего агентства мы вообще не стремились формализовать отношения с дорогими клиентами. Типовой договор умещался на двух машинописных листах. Содержал он минимум информации: предмет договора, сроки, цена. Если заказчиков немного, и все они — старые знакомые, то в известной степени можно положиться на их добропорядочность. Но когда клиентская база активно растет, то и проблемы множатся: задерживают выплаты, не выполняют обязательства, злоупотребляют лояльностью исполнителя. Столкнувшись с ними в полном объеме, мы собрались, подумали и составили новый типовой договор.
Читать дальше →

Изучая Vaadin

Reading time3 min
Views44K
Я хочу рассказать про Vaadin — фреймворк для разработки веб-приложений на Java. Да, на Java этих фреймворков — пруд пруди, но Vaadin заметно выделяется среди них.

Чем Vaadin отличается от других Java web фреймворков?


Если вкратце, Vaadin позволяет писать веб-приложение в стиле Swing:
import com.vaadin.ui.*;

public class HelloWorld extends com.vaadin.Application {

    public void init() { 
        Window main = new Window("Hello window"); 
        setMainWindow(main);
        main.addComponent(new Label("Hello World!")); 
    }
}

Считается преимуществом, при использовании Vaadin приходится программировать только на одном языке — Java, то есть не надо заморачиваться с XML, JavaScript, Html и т.д. и можно вовсю использовать весь мощный инструментарий Java: рефакторинг, юнит-тесты, заглушки (моки) и т.д. Ты пишешь new Label("Hello World!"), а Vaadin сам уже ломает голову, как это превратить в Html и JavaScript.

С чем можно сравнить Vaadin?

Сделай сам: регистрация ООО

Reading time6 min
Views33K
Не так давно мы размещали подкаст, в котором Антон Шаяхов поведал миру, как быстро и качественно зарегистрировать ИП. Совершенно незаслуженно мы обошли вниманием более сложный процесс. Исправляемся.

Дано: ведется деятельность в качестве ИП, есть доступ в интернет, уровень интеллекта выше среднего.
Задача: в кратчайшие сроки и с минимальными затратами закрыть ИП и зарегистрировать ООО.

Почему ООО?

Как делали новый дизайн сайта Expression Engine

Reading time11 min
Views7.5K
Представляю вашему вниманию перевод статьи "Redesigning the ExpressionEngine Site" от Jesse Bennett-Chamberlain. Перевели в компании UXDepot. Специально для пользователей Хабрахабра с одобрением издания Digital Web Magazine.


Офицер-пограничник на границе между США и Канадой: «Вы направляетесь по делам или же отдыхать, сэр?»
Я: По делам.
Офицер: Уточните причину, пожалуйста.
Я: Я веб-разработчик и еду на встречу со своим клиентом в штате Орегон для обсуждения проекта.
Пограничник: Как называется компания вашего клиента?
Я: «pMachine».
Пограничник: Вы везете какие-либо сайты с собой?
Я: *недоумевающий взгляд*
Пограничник: В вашей машине есть какие-либо сайты, сэр?
Я: Хмммммм… нет, сайты сейчас на серверах. В машине я ничего не везу.
Пограничник: Тогда как вы хотите показать их вашему клиенту?
Я: Хмм… вообще-то я просто еду на встречу с клиентом для обсуждения сайта, пока я ему ничего не везу.
Пограничник: Хорошо, тогда наслаждайтесь поездкой, сэр.

(30 секунд молчания)

Хизер: В следующий раз скажи, что мы едем на отдых.
Читать дальше →

День на бизнес, день на прототип

Reading time2 min
Views6.7K
Чтобы не отходить от заложенной американскими коллегами традиции, мы вспомнили о том, что, вообще-то Startup Weekend задумывался как мероприятие, на котором за 54 часа нужно сделать прототип проекта.

Теперь на Startup Weekend есть место и для бизнеса, и для технологии.
С технологической частью нам будут помогать наши партнеры, компания Microsoft.
Читать дальше →

Fugue Icons в сером

Reading time1 min
Views2.3K
Во многих проектах я использую известный набор иконок Fugue Icons и часто нужно создать эффект «активной\не активной» кнопки. Чтобы не перекрашивать каждый раз по иконке в серый, я перекрасил все иконки и добавил в названия файла "-gray" сохранив структуру архива.



Выкладываю архив в общее пользование, может кому пригодится.
Cкачать Fugue Icons Gray, зеркало на Яндех.Народ

Лицензия: Attribution 3.0 Unported (CC BY 3.0)
Скачать оригинальный набор Fugue Icons 3.0 можно с сайта автора или с Google Code

Mozilla Skywriter (Bespin) вошёл в состав Cloud9 IDE

Reading time1 min
Views1.2K
Замечательный онлайновый Javascript-редактор Mozilla Skywriter (с конца 2008 года был известен под названием Mozilla Bespin, переименован в октябре 2010 года) вошёл в состав интегрированной среды разработки Cloud9 IDE. Это среда, заточенная именно на JavaScript, которая работает через браузер и позиционируется как альтернатива офлайновым IDE вроде Eclipse. Сейчас находится в стадии бета-тестирования.



Mozilla Skywriter теперь слит с Javascript-редактором ACE (Ajax.org Cloud9 Editor). Тот распространяется под тремя лицензиями MPL/LGPL/GPL, которые теперь относятся и к Skywriter.

Как оградить себя от сайтов-поглотителей времени?

Reading time2 min
Views65K
Думаю многие фрилансеры и не только, задавались этим вопросом. Сначала написал целый абзац текста, а потом подумал зачем лить воду? В общем вот конкретика:
Читать дальше →

HTML в PDF

Reading time2 min
Views120K
html to pdf

В далеком 2008 году уже была написана подобная статья и я попытался применить знания, но, к сожалению, не справился с русским языком (на denwer-е работал, на хостинге нет). Возможно сказалось отсутствие опыта. А недавно нашел хорошую библиотеку и решил поделиться. Топик, скорее всего, адресован начинающим программистом и ни на, что не претендует.
Читать дальше →

В поисках пока еще неизвестного героя или Что такое RFS

Reading time3 min
Views5.9K

Ищут пожарные,
Ищет милиция,
Ищут фотографы
В нашей столице,
Ищут давно,
Но не могут найти…

С. Я. Маршак «Рассказ о неизвестном герое»


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

Мы знаем про очень многие стартапы, но мы по определению не можем объять необъятное. Поэтому мы время от времени объявляем о поиске стартапов по интересующим нас и наших партнеров-инвесторов темам. Объявления о тематическом поиске стартапов – RFS или Request For Startups – мы публикуем на нашей странице в Фейсбуке.

Итак, какие стартапы и зачем мы ищем для стратегических инвесторов?
Читать дальше →

Типовой шаблон технического задания на разработку сайта

Reading time2 min
Views450K
ОФФТОП: Хочу выразить свою благодарность, всем кто плюсанул мой предыдущей пост и карму, это позволило мне пригласить на Хабр еще несколько хороших людей.

Во многих студиях нет единого формата ТЗ, у нас его тоже не было. Просмотрев множество различных форматов и ГОСТов, мы выбрали самые значимые пункты и разработали типовой шаблон ТЗ для нашей компании.
Возможно, это будет полезно и другим студиям, т.к. если мы все будем работать по единым стандартам плюсы очевидны как для студий, так и для заказчиков.

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

Information

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