Search
Write a publication
Pull to refresh
11
0
Ролич Сергей @RAMAZAN

Go developer

Send message

Как находить и устранять утечки памяти на примере Яндекс.Почты

Reading time8 min
Views67K
На первый поверхностный взгляд, слова JavaScript и «утечка памяти» рядом стоять не могут. Настоящих утечек памяти в JS, конечно, не может быть, потому что процесс сборки мусора происходит автоматически и не может контролироваться из нашего кода. Выделить память под объект и забыть освободить невозможно. Но могут быть ситуации, связанные с ошибками в логике работы приложения, которые приводят к утечкам памяти другого рода. Например, забиндили обработчик, в котором что-то делаем с методами общего объекта и забыли его анбиндить. Или же посылаем письмо с большим телом и не очищаем тело даже после отправки.

image

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

Опыт организации WiFi на конференции

Reading time3 min
Views37K
Так получилось, что мне удалось принять участие в организации международной конференции (среднего масштаба) ISFD-11th-RCBJSF. Конференция проводилась в рамках Уральского гос. университета им. А.М. Горького.
Итак, входные данные: 5 дней конференции, более 250 участников из 25 стран. Местом проведения был выбран Центр Международной Торговли в Екатеринбурге. Задач было более чем достаточно, но рассказать я хочу про организацию беспроводной сети.
Читать дальше →

Mikrotik — Плюсы и минусы

Reading time4 min
Views468K
Периодически на Хабрахабре проскакивает упоминание данных роутеров (в основном их советуют в q&a на вопросы о выборе роутера). Также в рунете достаточно много ресурсов и тем посвященных данному железу. Но очень мало информации о плюсах и главное минусах данного решения. Данной статьёй я и хочу несколько поправить ситуацию. Также надеюсь, что в комментариях меня дополнят и расскажут что-нибудь новое.

Для начала можно обратиться к википедии ru.wikipedia.org/wiki/MikroTik и узнать, что
Mikrotīkls Ltd (торговая марка MikroTik) — латвийский производитель компьютерного сетевого оборудования. MikroTik разрабатывает, устанавливает и продает проводные и беспроводные маршрутизаторы, операционные системы к ним и сопутствующее оборудование. Компания была основана в 1995 году с целью продажи оборудования на развивающихся рынках. В 2007 году в компании работало более 70 сотрудников.

Можно разделить железо, которое называется RouterBoard и операционную систему, которая называется RouterOS. В разговорной речи, когда говорят об этом всём, говорят просто Mikrotik.

Теперь перейдём к плюсам и минусам.
Читать дальше →

Mikrotik-Qos Приоритезация по типу трафика и деление скорости

Reading time25 min
Views262K

Mikrotik-Qos Приоритезация по типу трафика и деление скорости



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

Что для вас домашняя сеть?

Reading time2 min
Views39K
Доброго дня, Хабровчане!

image
     В наше время сложно кого-то удивить дома доступом в Интернет или наличием нескольких компьютеров. Думаю у всех, задавшихся целью дать доступ в Сеть нескольким устройствам, вставал вопрос об установке роутера и создании домашней сети. Такая сеть обычно начиналась с какого-нибудь простенького роутера вроде минимальной модели D-Link и успешно справлялась с предоставлением доступа в Сеть домашним девайсам. Однако не все останавливаются на достигнутой работоспособности сети и многие пытаются довести свою «локалку» до некоего личного идеала. Об этом идеале я и хочу сегодня поговорить.
Подробности и опрос

Разработка NFC приложений для Android

Reading time7 min
Views83K

NFC (near field communication) – стандартизированная технология обмена данными на короткие расстояния, позволяющая осуществлять взаимодействия между двумя электронными устройствами простым и интуитивно понятным способом. Например, с помощью оснащенного NFC смартфона вы можете делать покупки, раздавать визитные карты, скачивать купоны на скидки и так далее. Множество новых применений для NFC будет найдено в ближайшее время.
Эта статья описывает технологии, использующие NFC и способы их применения на сегодняшний день. Также показано, как использовать NFC в Android приложениях и, наконец, приведены два примера NFC приложений с исходными кодами.
Читать дальше →

Дистанционное образование в LSE

Reading time2 min
Views10K
— Sir Humphrey gets very upset. He doesn't regard Chief Scientific Advisor as one of us.
— I thought he won the DSO at Arnhem!
— That doesn't make up for speaking with an Austrian accent. And he certainly didn't go to Oxford or Cambridge. He didn't even go to the LSE.


Yes, Prime Minister


На фоне именитых британских Оксфорда и Кембриджа London School of Economics and Political Science известна куда менее, но именно об этом вузе можно сказать «широко известен в узких кругах». За более чем сто лет существования школы – семнадцать нобелевских лауреатов, четвертое место в списке лучших экономических школ мира и одна из наиболее развитых сетей дистанционного образования.
Читать дальше →

Как перестать бояться и полюбить шопинг на Amazon

Reading time2 min
Views179K
image

Разбор полетов


По итогам прошлого поста мы выяснили, что:

  • доставка происходит в обход Почты РФ через UPS/DHL;
  • в Москву посылка приходит за 5 дней;
  • для РФ Киндл продается только в версии «без встроенной рекламы» и без аксессуаров в отдельном лоте. Поэтому чехлы, к примеру, можно взять тут.
  • Amazon оплачивает услуги таможенного брокера;
  • заказывая доставку на рабочий адрес, никак не упоминайте название компании, иначе получателем будет компания, а не вы, со всеми последствиями;
  • если ваша покупка дешевле 200 евро, включая стоимость доставки, вам не о чем переживать;
  • если вы хотите сделать покупку весом до 31 кг. и стоимостью до 1000 евро, включая стоимость доставки, то вам желательно заказывать ее на адрес в одном из городов списка (Москва, Санкт-Петербург, Краснодар, Владивосток, Ставрополь, Новороссийск и Нижний Новгород). В этом случае доступны следующие варианты развития событий:
    1. скорее всего, вам не о чем переживать, и покупку вам доставят без лишних проблем;
    2. возможно, вам позвонят\ напишут из UPS и попросят прислать им отсканированную распечатку электронной квитанции заказа из Amazon, подписанный договор оказания услуг перевозки груза и копию паспорта.
    3. самый маловероятный и худший вариант — квест по самостоятельному прохождению таможни. Не переживайте, с этой инструкцией процесс займет не больше 2 часов времени и будет не сложнее похода в библиотеку.
  • это же Amazon! При возникновении любых проблем — задержка, потеря посылки, дополнительные таможенные сборы, повреждение товара — служба поддержки придет вам на помощь вплоть до полного возмещения стоимости.


Теперь о том, что же все-таки можно купить.

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

Тест роботов-пылесосов: iRobot Roomba 780, Moneual MR7700, iClebo Arte и Neato XV-11

Reading time13 min
Views114K
В своем большинстве люди не очень-то любят работать во всех смыслах этого слова. Другими словами мы с вами достаточно ленивы. Зачастую новые технологии появляются и развиваются именно из-за лени. Робот-пылесос — очередное изобретение, призванное сократить нашу с вами тяжелую ношу. Мы занимаемся продажей бытовых роботов уже более трех лет. Многие потребители до сих пор не знают, что помимо компании iRobot на рынке есть и другие представители, которые порой имеют лучшие характеристики. Другое дело, что iRobot первый зашел на российский рынок и вложил большие деньги в рекламу, поэтому узнаваемость бренда очень высокая.

Мы считаем, что в продаже имеются только несколько конкурентных роботов-пылесосов, а именно: iRobot Roomba, Yujin Robot iClebo и Neato. Все остальные пылесосы хуже по многим параметрам, включая качество уборки и изготовления, а также отсутствие нормального сервиса. Так как в Сети нет хорошего прямого сравнения этих брендов, мы решили восполнить данный пробел. У нас вовремя под рукой оказался еще один интересный бренд Moneual со своей моделью MR7700 (в России по ошибке известен как Rydis R750), его мы тоже не поленились добавить в сравнительный обзор.

Итак, сегодня будут соревноваться в качестве уборки, преодолении порожков, удобстве эксплуатации и другим параметрам следующие модели роботов-пылесосов: iRobot Roomba 780, Moneual MR7700, Yujin Robot iClebo Arte, Neato Robotics XV-11.



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

Gradle и решение задач автоматизации

Reading time6 min
Views34K
Всем привет, сегодня я хотел бы рассказать вам о моём опыте работы с Gradle, не просто переписать мануал (хотя он отлично написан), но рассказать с какими реальными проблемами я столкнулся и как побеждал их, а также показать какие возможности предоставляет нам Gradle. Тема очень обширная поэтому, к сожалению я не смогу рассмотреть многие аспекты подробно и последовательно, надеюсь что читатели уже немного знакомы с Gradle и смогут понять суть описываемых решений.
Читать дальше →

Создание автономного робота Frank. Часть первая

Reading time5 min
Views75K
image

Уже второй месяц я собираю по вечерам автономного робота, которого зовут Frank. Почему? Не спрашивайте! Я знаю, что у каждого робота должно красиво расшифровываться имя, но я ничего еще не придумал. Если будут идеи — пишите в комментариях. Все началось достаточно давно. Мое увлечение нейронаукой, когнитивистикой, искусственными нейронными сетями и искусственным интеллектом привело меня к тому, что исследования алгоритмов в компьютере — это достаточно увлекательный процесс, но иногда хочется потрогать свое творение руками и посмотреть как оно ведет себя в реальной жизни.

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

Так как половину времени я живу в Лос Анджелесе, а половину в Москве, то возможно некоторые ссылки будут не очень актуальны. С другой стороны, мне пришлось найти магазины для покупки электроники и там и тут, так как мои постоянные разъезды никак не влияют на желание изучать робототехнику. Поэтому, по возможности, я опубликую ссылки и на наши и на западные ресурсы. Возможно, это поможет и русским читателям и тем, кто читает Хабр за рубежом.

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

Загрузка файлов в AngularJS

Reading time3 min
Views59K
Давно писал модуль для загрузки файлов и всё он был не идеальным. И тут подумал, если сейчас не опубликую, то никогда не опубликую, идеал-то не достижим!

При составлении АПИ руководствовался принципом — как можно проще. Поэтому сначала несколько мыслей о загрузке файлов:

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

Загрузка каждого файла отдельным запросом. На любом хостинге существует ограничение на максимальный размер POST-запроса (напр., 10 МБ). Если мы грузим одновременно 10 файлов, значит их вес в сумме не должен превышать 10МБ. В 99% случаев проще пожертвовать производительностью и не иметь проблем с такими ограничениями.

Никаких отложенных загрузок. Файл должен загружаться сразу после добавления (не в 2000 году, чай, живем), поэтому никаких методов работы с очередью — выбрал файл, выбрал еще 5 штук, удалил один, нажал «отправить» — не будет. Зато будет отмена загрузки.

Не стоит разделять загрузку файлов по кнопке и перетаскиванием. В моем случае любая область, помеченная директивой позволяет перетаскивать на нее файлы, а если это инпут с типом file, то еще и в проводнике можно выбрать. Очень удобно знать, что на кнопку можно перетаскивать, когда потянул в браузер 10 файлов, а дизайнер забыл подсветить поле перетаскивания, и гадаешь перетащатся ли они или откроются в новом окне.
Читать дальше →

Виртурилки прилетели!

Reading time5 min
Views96K
В продолжение темы Контроллер «Virt2real», или просто — Виртурилка

Итак, первый серьёзный (по нашим меркам) тираж железок успешно прошёл приёмку нами на заводе и официальную растаможку в России. Процент брака основных плат зашкалил за нуль и составил 0.5%. Очень неплохо, мы рассчитывали в худшем на 5-6 процентов брака. К слову, есть мысль отдать одну бракованую железку BarsMonster на вскрытие проца (если он заинтересуется, само собой).

На таможне две коробки из трёх были подвергнуты тотальной проверке, в итоге аккуратно сложенные пакетики с платами превратились в хаотичную кучу. Пакетики плотные, так что обошлось без повреждений (по прибытии тестировали, а точнее, в данный момент заканчиваем тестирование).

В общем, железки уже у нас на руках, теперь начинается самое интресное




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

Git Rebase: руководство по использованию

Reading time8 min
Views856K
Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой. Начинающие и даже опытные пользователи git иногда испытывают нежелание пользоваться ей, так как не видят смысла осваивать еще один способ объединять изменения, когда уже и так прекрасно владеют операцией merge. В этой статье я бы хотел подробно разобрать теорию и практику использования rebase.

Теория


Итак, освежим теоретические знания о том, что же такое rebase. Для начала вкратце — у вас есть две ветки — master и feature, обе локальные, feature была создана от master в состоянии A и содержит в себе коммиты C, D и E. В ветку master после отделения от нее ветки feature был сделан 1 коммит B.


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

Регулярные выражения для валидации распространенных видов данных

Reading time2 min
Views500K
Для проверки текстовых полей на валидность обычно используют регулярные выражения. Существует несколько наиболе распространенных видов таких даных, как например номер кредитки, дата в определенном формате и т. д. На сайте html5pattern.com собирается коллекция регулярных выражений для таких данных (там это позиционируется, как возможное содержимое html5-атрибута pattern у inpit-элементов, но эти регулярные выражения можно использовать и для привычной валидации с помощью javascript). Актуальные для российской аудитории примеры, вместе с соответствующими регулярными выражениями вы можете посмотреть под катом.
Читать дальше →

Что записано внутри бесконтактных карт Киевского метрополитена?

Reading time9 min
Views93K
Бесконтактные карты в киевском метро начали вводить в 2007 году (информация на сайте метро, укр), но широкое распространение и внедрение они получили только к концу 2008 года. На сегодняшний день существуют два основных типа проездных билетов: проездные со сроком действия, и проездные на количеств поездок. В проездных используются бесконтактные карты MIFARE Classic 1K.


Фото — Metromuseum.net

Об уязвимостях чипов MIFARE Classic стало известно в 2007 году. Подробную историю открытия уязвимостей можно почитать в статье. Статья хоть и 2008 года, но до сих пор актуальна, и в ней перечислены основные этапы нахождения уязвимостей. Совместив эти знания можно посмотреть, что же записывается в карты киевского метро на примере проездного на количество поездок.

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

Согласен

Учим английский: фильмы, книги, словари

Reading time10 min
Views519K
Многие из нас занимаются изучением английского языка, потому что в сфере ИТ большинство документации, форумов и просто полезной информации изложено на универсальном языке – английском. И каждый находит для себя свой подход к обучению: кто-то идет к своей цели постепенно, планомерно, кто-то более экспрессно и выборочно. В самом деле, в Интернете вы найдете более 9000 методик, о том, как эффективно и быстро выучить язык самому. В языковой школе вам предложат несколько целевых программ: от «разговорных навыков делового человека» до «целенаправленной сдачи TOEFL». Чего же нового хочу я предложить? Мы поговорим о «фоновом» изучении языка. Цель моего поста – поделиться с вами способами изучения языка, которые я использовал. Постараюсь показать концепцию в целом, который каждый из вас сможет интегрировать в свой способ познания языка.
image
Читать дальше →

Релиз elementary OS «Luna»

Reading time1 min
Views93K
Спустя два с половиной года, после релиза elementary OS с кодовым именем «Jupiter», вышла новая версия, с кодовым именем «Luna». Дистрибутив основан на Ubuntu 12.04 LTS, поэтому проблем совместимости с пакетной базой Ubuntu 12.04 не будет.


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

DLNA-сервер для дома и семьи

Reading time7 min
Views868K
Как-то так сложилось, что тег DLNA сервер чаще встречается в постах-вопросах, чем в ответах. И если в вопросах установки на домашний Windows-ПК какой-то пользовательский опыт накоплен, то определиться с выбором ПО для домашнего сервера/NAS-а/медиацентра — оказалось непросто. Распределившись по песочницам народ обособленно решает проблемы каждой программы в отдельности. А понять что из них чего стоит и нужно ли оно вообще — лично мне не удалось.

И вот, я вооружившись ссылкой с Википедии Как выбрать DLNA-сервер под Windows, Mac OS X или Linux — опробовал почти всё, что есть под Linux.

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

Pull request'ы на GitHub или Как мне внести изменения в чужой проект

Reading time6 min
Views523K
По просьбе tulskiy делаю вольный перевод частей официальной документации GitHub'а Fork A Repo и Send pull requests.

Итак, что же такое «запрос на включение (сделанных вами изменений)» (именно так я перевёл pull request)? В официальной документации гитхаба говорится следующее:
Pull request'ы позволяют вам рассказать другим о тех изменениях, которые вы разместили в своём GitHub-репозитории. Как только pull request отправлен, заинтересованные стороны рассматривают ваши изменения, обсуждают возможные правки или даже добавляют дополняющие коммиты, если нужно.

Говоря своим языком: Посылая pull request, вы говорите автору изначального репозитория (и всем заинтересованным лицам): «Смотрите, что я сделал, не хотите ли принять мои изменения и влить их в проект?»
Читать дальше, но теперь уже обо всём по порядку

Information

Rating
Does not participate
Location
Астана, Акмолинская обл. (Целиноградская обл.), Казахстан
Date of birth
Registered
Activity

Specialization

Backend Developer
Lead
Golang