Pull to refresh
6
0
slayerhabr @slayerhabr

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

Send message

Лекции Техносферы: Программирование на Go

Reading time2 min
Views54K

image


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


Список лекций:


Создание приложения для тренировки мозга. Выбор технологии и приемы геймификации

Reading time4 min
Views5.9K

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


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


И пока идея полностью не созрела, начался процесс поиска технологий для реализации версии сайта 2.0, плюс был интерес по изучать новые технологий и языки

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

Ресурсы для стартаперов: план действий в ссылках

Reading time3 min
Views9K
Стартапы рождаются каждый день. Некоторые из них становятся настоящей золотой жилой для своих создателей. Но лишь некоторые. Само собой, что запуск и продвижение собственного стартапа – адский, каторжный труд. И начинается он практически сразу после того, как вас угораздило озарило стать старатпером: необходимо трезво оценить перспективность идеи, получить обратную связь от потенциальных пользователей, довести проект до ума. Дальше больше: приходится прикладывать максмум усилий, чтобы о вашем детище узнали журналисты, инвесторы и возможные партнеры. Сегодня мы предлагаем вашему вниманию очередную подборку российских и зарубежных ресурсов, которые могут оказаться полезны тем отважным создателям стартапов, которых не остановливают перечисленные выше трудности.

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

M* — алгоритм поиска кратчайшего пути, через весь мир, на смартфоне

Reading time13 min
Views47K


При поиске кратчайшего пути на графах большого размера плохо работает традиционная оценка стоимости т.к. данные заведомо не помещаются в памяти и общая стоимость больше зависит от числа обращений к диску нежели от числа просмотренных рёбер. А число дисковых операций — весьма субъективный фактор, зависимый от сложно формализуемой пригодности графа к хранению на диске в форме удобной для конкретного алгоритма. Кроме того, очень важным становится компактность — количество информации в расчете на ребро и вершину.

Под катом представлена обобщенная эвристика к алгоритму A*, полезная именно в свете практической пригодности на больших графах при ограниченных ресурсах, например, на мобилке.
Читать дальше →

Centrifugo – 3.5 миллиона оборотов в минуту

Reading time9 min
Views42K


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

Профилирование и оптимизация веб-приложений на Go

Reading time12 min
Views79K

enter image description here


Привет, меня зовут Павел Мурзаков, я – разработчик в команде Features в Badoo. Нам важно, чтобы наши сервисы потребляли как можно меньше ресурсов, поскольку каждый дополнительный сервер стоит денег. Поэтому мы часто профилируем и оптимизируем код. Часть наших демонов написана на Go, с оптимизацией кода на котором мне пришлось работать в последнее время. Благо в стандартной библиотеке Go есть множество готовых инструментов для этого.


Недавно мне попалась эта статья, в которой собрана информация о многих инструментах и на конкретном примере показано, как начать ими пользоваться. Кроме того, в ней есть несколько хороших рецептов по написанию эффективного кода. Эта информация будет полезна любому начинающему Go-разработчику (более продвинутые тоже смогут найти что-то для себя), поэтому я сделал для вас перевод. Enjoy!

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

С чего начать новичку в Go

Reading time2 min
Views161K
Если вы решили попробовать замечательный язык Go, но не знаете с чего начать, вам прямая дорога в этот пост, где я постарался перечислить все необходимые для новичков ресурсы.
Читать дальше →

Бесплатное программное обеспечение для IP-камер

Reading time5 min
Views812K
За 11 лет работы на рынке видеонаблюдения, нам пришлось столкнутся с множеством программ для управления системами видеонаблюдения, с какими-то мы работали, какие то тестировали, какие хотели потестировать, но так и не успели этого сделать, про какое-то просто читали в обзорах подобных тому, что читаете вы.

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

Все программное обеспечение разбито на три группы:

  • Программное с открытым исходным кодом
  • Бесплатное программное обеспечение с ограниченным функционалом
  • Программное обеспечение бесплатное в течении пробного периода

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

Эй, запрос! Ты живой? Как легко обработать блокировки в PostgreSQL

Reading time8 min
Views61K
Доброе время суток! Администрирование и сопровождение реляционных баз данных чаще всего является нетривиальной задачей. Иногда запросы, работавшие быстро, внезапно начинают «тормозить» по непонятным причинам, размер таблиц растет и в целом производительность базы данных снижается.

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

Чтобы разобраться в сложившейся ситуации, администратору БД необходимо понять, какой процесс блокирует и какой процесс является блокируемым, а также иметь возможность отменить или «убить» блокирующий процесс и в конце проверить результат.

В этой статье я хочу коснуться темы блокировок в PostgreSQL и рассказать об инструментах для работы с ними. Но сначала попробуем разобраться в самой теме.
Читать дальше →

Мошенничество при покупке б/у MacBook: «А номер то, говорят, не настоящий!»

Reading time6 min
Views116K
image

Все компьютеры Apple имеют похожий дизайн. Многие модели одной серии невозможно отличить по внешним признакам. Этим пользуются мошенники, которые завышают год выпуска или технические характеристики, с целью продать дороже Мак. Я много лет работаю мастером по ремонту компьютеров Apple, встречал и случаи такого мошенничества. Всех кому интересно, как не дать себя обмануть при покупке б/у Мака, приглашаю под кат.
Читать дальше →

Особенности архитектуры распределённого хранилища в Dropbox

Reading time13 min
Views20K


Вниманию читателей «Хабрахабра» представляется расшифровка видеозаписи (в конце публикации) выступления Вячеслава Бахмутова на сцене конференции HighLoad++, прошедшей в подмосковном Сколково 7-8 ноября ушедшего года.

Меня зовут Слава Бахмутов, я работаю в Dropbox. Я Site Reliability Engineer (SRE). Я люблю Go и продвигаю его. С ребятами мы записываем подкаст golangshow.

Что такое Dropbox?


Это облачное хранилище, в котором пользователи хранят свои файлы. У нас 500 миллионов пользователей, у нас более 200 тысяч бизнесов, а также огромное количества данных и трафика (более 1.2 млрд новых файлов в день).

Browser Fingerprint – анонимная идентификация браузеров

Reading time14 min
Views224K


Валентин Васильев (Machinio.com)


Что же такое Browser Fingerprint? Или идентификация браузеров. Очень простая формулировка — это присвоение идентификатора браузеру. Формулировка простая, но идея очень сложная и интересная. Для чего она используется? Для чего мы хотим присвоить браузеру идентификатор?


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

Как тестировать контейнеры RoR с GitLab CI в контейнере

Reading time5 min
Views5.3K
Чем хорош GitLab, так это тем, что будучи по габаритам слоном в посудной лавке, он умеет аккуратно устанавливаться и почти всегда работает с коробки. Но плохо умеет восстанавливаться и заботиться о себе, когда очень прямые руки вроде моих нарушают привычное ему окружение. Не буду углубляться в то, как мне удавалось убить его до состояния, когда даже удаление и установка с нуля не помогает, но во избежания очередной бесконечной эпопеи с дебагом и переустановкой сервера я вынес все это дело в Docker контейнер. Удобно — на рабочей машине нет миллиона зависимостей, примонтировал директории для репозиториев, логов и базы данных и все работает. Восстановление — пересоздать контейнер и скормить бэкап (кстати, не забудьте проверить свои бэкапы, как говорит опыт GitLab, это не лишнее).

С другой стороны, есть разрабатываемое Rails приложение, которое на реальной машине держит только код; Rails, gems, и все остальное покоится в Docker контейнере. Для своей работы оно использует Redis и Postgres, каждый находится в своем контейнере. Для каждого контейнера примонтирована директория, чтобы важные для приложения данные не оставались внутри.



Задача в том, чтобы Gitlab CI нормально отработал. Вроде все просто, но — он сам находится в контейнере.
И как же нам быть?

Ищем и скачиваем непопулярные и старые файлы в интернете

Reading time14 min
Views214K
Преимущественно медиафайлы. На полном серьезе, без шуток.

Введение

Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.

Попытка скачать хотя бы один файл
Увы, частая ситуация в попытке хоть что-то скачать

Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Читать дальше →

Производительность запросов в PostgreSQL – шаг за шагом

Reading time15 min
Views94K


Илья Космодемьянский ( hydrobiont )


Для начала сразу пару слов о том, о чем пойдет речь. Во-первых, что такое оптимизация запросов? Люди редко формулируют и, бывает так, что часто недооценивают понимание того, что они делают. Можно пытаться ускорить какой-то конкретный запрос, но это не обязательно будет оптимизацией. Мы немного на эту тему потеоретизируем, потом поговорим о том, с какого конца к этому вопросу подходить, когда начинать оптимизировать, как это делать, и как понять, что какой-то запрос или набор запросов никак нельзя оптимизировать – такие случаи тоже бывают, и тогда нужно просто переделывать. Как ни странно, я почти не буду приводить примеров того, как запросы оптимизировать, потому что даже 100 примеров не приблизят нас к разгадке.

Let's Encrypt и nginx: настройка в Debian и Ubuntu

Reading time13 min
Views341K

image


Если вдруг вся эта история прошла мимо вас, Let's Encrypt — центр сертификации от некоммерческой организации ISRG, существующий при поддержке EFF и многих компаний, взявшей на себя миссию дать людям бесплатные SSL/TLS сертификаты для сайтов и серверов. Сертификаты от Let's Encrypt уже используются на более чем 10 миллионах доменов.


Кроме очевидной бесплатности у сертификатов от Let's Encrypt есть особое, отсутствующее у любых других коммерческих сертификационных центров, достоинство: если вы однажды получили сертификат от Let's Encrypt, то, при прочих равных, это навсегда. Не нужно раз в год-два вручную обновлять сертификаты. Не нужно вообще вспоминать что сертификаты где-то есть. Получил, настроил и забыл!


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


Организации автоматического обновления сертификатов в статье уделено пристальное внимание, с тем чтобы вы могли в полной мере оценить это принципиальное преимущество Let's Encrypt.

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

Как понять, что происходит на сервере

Reading time9 min
Views82K


Александр Крижановский ( krizhanovsky, NatSys Lab.)


По Сети уже давно бегает эта картинка, по крайней мере, я ее часто видел на Фейсбуке, и появилась идея рассказать про нее:


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

Sprint: как проверить любую бизнес-идею всего за 5 дней

Reading time13 min
Views40K


Рассказываем о ключевых идеях бестселлера 2016 года «Sprint: How to Solve Big Problems and Test New Ideas in Just Five Days» Джейка Наппа, Джона Зератски и Брадена Ковитца.
Читать дальше →

Как работают ИТ-специалисты. Максим Лапшин, основатель компании Flussonic

Reading time5 min
Views14K
imageМы продолжаем расспрашивать специалистов о режиме труда и отдыха, профессиональных привычках, об инструментарии, который они используют, и многом другом.

Будет интересно выяснить, что их объединяет, в чем они противоречат другу другу. Возможно, их ответы помогут выявить какие-то общие закономерности, полезные советы, которые помогут многим из нас.

Сегодня наш гость — Максим Лапшин, основатель компании Flussonic. У него достаточно категоричный взгляд на то, каким должен быть бизнесмен в ИТ. Но еще интереснее его отношение к словосочетанию «хороший инженер-программист».
Читать дальше →

Все наши проблемы с работой оттого, что никто не знает, кем он хочет стать через 5 лет

Reading time5 min
Views36K

Не упадите с карьерной лестницы...

Есть такой классический HR-ский вопрос, который все ненавидят и считают глупым. Звучит он так – «кем вы видите себя через 3/5/10 лет?»

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

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

Information

Rating
Does not participate
Location
Артек, Украина, Украина
Date of birth
Registered
Activity