Pull to refresh
25
13.2
Виктор Глембицкий @Iforgot

Product owner Managed IT

Send message

От игровой консоли к рабочему инструменту: Steam Deck для веб-разработки

Reading time7 min
Views5.6K

Привет, Хабр! Меня зовут Дмитрий, я уже пять лет работаю веб-программистом в компании ISPsystem. Моя задача — разработка и поддержка сайтов компании, написание интеграций для этих сайтов с продуктами, которые мы создаем (VMmanager, BILLmanager, DCImanager и DNSmanager). Например, благодаря мне наши клиенты могут заказать триальные лицензии или демоверсии продуктов прямо на сайте. Программирую уже 14 лет, а учился на инженера по специальности «Информационные системы и технологии». Получается, работаю по специальности :)

Сегодня я расскажу, как мне довелось решать рабочие задачи, используя портативный компьютер (а-ля игровая консоль) Steam Deck, когда под рукой не оказалось моего ПК, за которым я обычно работаю дома.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments18

«Я в топ 4% мира на LeetCode» — это оказалось на удивление просто и недолго

Level of difficultyEasy
Reading time4 min
Views43K

Ко мне в коучинг пришёл джентльмен. Чуть меньше 20 лет опыта в разработке. Одна из ключевых задач, которая ему была интересна — Как начать литкодить каждый день?

«То настроения, то сил нету, то задачи не понимаю.. Начинаю раз в полгода и бросаю» — самый обычный набор приколов, которые мешают.

Я предложил ему обернуть всё это в привычку и дисциплину. Я собрал свою методологию прививания привычек основываясь на:

Ежедневно он тратил на Литкод 15–20 минут. Не более. Иногда участвовал в турнирах, которые и зафиксировали результат в топ 4%.

Читать далее
Total votes 98: ↑43 and ↓55+3
Comments116

LMS.NetMap швейцарский нож для анализа сетевой инфраструктуры

Level of difficultyEasy
Reading time9 min
Views7.6K

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

Также по статистике проведенных пентестов около 70% ИТ и ИБ отделов
клиентов не имели карту сети. То есть админы даже представления не имели
как устроена топология сети и что там происходит. А ведь корпоративные
информационные системы давно стали неотъемлемой частью любого бизнеса,
являются основой множества бизнес‑процессов.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments17

Как я Markdown парсер выбирал

Reading time18 min
Views22K

Недавно я решил создать свой сайт, и мне понадобилось выбрать парсер Markdown для отрисовки статей в блоге.

То, что начиналось как: «Окей, гугл, какой парсер выбрать?», – вылилось в полноценное исследование существующих реализаций парсеров.

О том, какие открытия меня ждали на этом пути, и будет данная статья.

Читать далее
Total votes 54: ↑54 and ↓0+54
Comments29

36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql

Reading time5 min
Views115K
Сложилась ситуация, что участвую в проекте, который работает с достаточно большой нагрузкой. Как уже написал — 36 млн запросов в час. Я много чего прочитал и перепробовал за последний месяц, настраивая сервер; хотелось бы просто сжато и компактно выдать тезисно то, что работает хорошо в такой конфигурации.

Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.

У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
Читать дальше →
Total votes 111: ↑96 and ↓15+81
Comments102

Скрипт для быстрой оценки состояния Linux систем

Reading time4 min
Views23K
Обязанность системного администратора — следить за загруженностью системы, за пользователями, создавать резервную копию и бла-бла-бла. Для наиболее повторяющихся задач существуют различные сценарии, которые позволяют сохранить пальцы на руках и сделать постоянно повторяющиеся задачи более простыми. Здесь представлен скрипт, который не стремится автоматизировать задачи типичного системного администратора, но он может быть полезен для тех новичков, желающих получить часть необходимой информации об их системе, сети, пользователях, нагрузке, RAM, владельцах, внутреннем и внешнем IP и т.п.

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

Вы можете свободно использовать, изменять, распространять приведенные ниже фрагменты кода. Скрипт максимально оптимизирован, чтобы выводить только необходимые данные и обращаться только к нужным директориям — ничего лишнего.
Давайте попробуем
Total votes 44: ↑25 and ↓19+6
Comments47

Работа iOS App в фоновом режиме

Reading time4 min
Views44K
Стояла задача, чтобы программа отправляла через web socket текущие координаты по заданному пользователем интервалу. К тому же, программа должна работать в фоне и если пользователь или iOS по какой то причине её выгрузит из памяти, то желательно чтобы она перезапустилась и продолжила работу в фоне.
Поставленную задачу надо решить только средствами iOS без изменения серверной части (никаких Push Notifications).

Отправлять координаты по таймеру когда программа свернута в фон не составляет проблемы, для этого можно использовать background location mode для получения координат и long-running tasks для таймеров.

Но так как в iOS нет такой прелести как Android Background Services, то если вручную завершить программу, код перестает выполняться. Потому основная сложность заключается в том, как максимально быстро запустить программу в фоне, чтобы она продолжила выполнять свою задачу дальше, если её по каким то причинам выгрузила из памяти iOS, или если пользователь перезагрузил устройство, или если он вручную «убил» программу.

Теперь о том, что помогло решить данную задачу в приемлемом варианте:
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments28

Зачем нужны почты no-reply@?

Reading time4 min
Views158K
Почты вида noreply@domain.ru, no-reply@domain.ru и прочие — вызов здравому смыслу. Просто вдумайтесь: это действующие почтовые ящики, на которые можно отправить письмо, но делать этого не нужно. Я знаю такой же по логичности объект – это кнопка «не нажимать». Вот примерно такая:



Есть такие штуки – протоколы, стандарты, принятые шаблоны использования. Все они однозначно подсказывают, что если есть почтовый адрес, на него можно написать. Если бы нам нужен был почтовый адрес, на который нельзя писать, его бы описали вместе со всем стеком протоколов, который обеспечивает работу электронной почты. Но его такого тупо нет. И тут на сцене появляется наш noreply.
Читать дальше →
Total votes 122: ↑103 and ↓19+84
Comments207

Налоговый суслик. Особенности упрощенной системы налогообложения при работе по договорам с Apple, Google и другими

Reading time46 min
Views53K
В данной статье я постараюсь провести краткий юридический ликбез для разработчиков по некоторым положениям Гражданского кодекса, имеющим значение в контексте деятельности индивидуальных предпринимателей и организаций, применяющих упрощенную систему налогообложения, в работе по договорам с Apple, Google и другими компаниями, а также обратить внимание на некоторые не всегда очевидные налоговые нюансы, которые, как показал личный опыт изучения данной темы, довольно часто ускользают от внимания разработчиков или вызывают множество вопрос и споров.

Прочтите внимательно эту статью, если вы применяете упрощенную систему налогообложения с объектом налогообложения «доход» по ставке 6 процентов и продаете игры или приложения в Google Play, Apple App Store, а также прочий цифровой контент — например, 3D-модели — в Steam, Unity Asset Store или на других площадках, в условиях договоров с которыми фигурируют комиссии, агентские вознаграждения и прочие формы разделения выручки между сторонами.

Из материала вы узнаете:

  • Почему разработчику желательно обладать хотя бы базовой юридической грамотностью
  • Чем с точки зрения Гражданского кодекса являются игры и приложения и какие права на них есть у разработчиков помимо авторского права
  • Что такое агентский договор и почему все это важно при работе по договору с Apple или Google
  • Кто такой налоговый суслик и почему он может превратиться в пушного зверя
  • Какой «подвох» существует для применяющих «упрощенку» в части определения налоговой базы
  • Почему налог на добавленную стоимость (НДС) продолжает преследовать нас, даже когда мы не являемся его плательщиками
  • Как, с точки зрения Федеральной налоговой службы, облагаются НДС внутриигровые покупки (InApp Purchases)
Покажите мне суслика!
Total votes 40: ↑36 and ↓4+32
Comments84

Традиционное тестирование скоро умрет

Reading time2 min
Views38K
Рутинные задачи в разработке ПО автоматизируются посредством приложений Continuous Delivery и DevOps. Разработчики берут на себя все больше и больше ответственности. Мне стало интересно какова будет роль традиционного тестирования и тестировщиков если посмотреть немного вперед.


Читать дальше →
Total votes 38: ↑22 and ↓16+6
Comments64

Linux и бесплатные облачные хранилища

Reading time8 min
Views96K
В попытках подмонтировать MS Onedrive в линуксе возникла мысль — а какие вообще бывают облака, которые нормально монтируются в папку и при этом предлагают максимальный объем? Ниже — небольшой список сервисов и впечатления от попыток примонтировать их.
Сразу скажу — это все делалось только для удовлетворения любопытства, а не для последующего использования — потому не могу сказать, как себя поведут предложенные решения в долговременном плане. Но, возможно, кому-то будет полезно.
Облака выбирались по двум параметрам — максимальный бесплатный объем (желательно получаемый без нескольких десятков регистраций по вашей реферральной ссылке) и возможность монтирования в папку под линуксом.

Процесс тестирования состоял из
1) Регистрация или вспоминание пароля (если я уже был зарегистрирован на этом сервисе)
2) Попытка добавить свободное место по реферральной ссылке — чтобы проверить, как выглядит процесс и насколько просто самостоятельно «накрутить» себе место.
3) Попытка подключить облако в папку под линуксом (там, где работает WebDAV — использовал davfs2, где не работает — другие доступные варианты).
4) Если попытка удачная, то несколько попыток загрузить разные файлы — какая-нибудь мелочь в пределах мегабайта, 50-70 мегабайт и 1,6 гигабайта.
Эксперименты производились на hetzner'овском VPS с одним ядром и гигабайтом оперативки (debian stable).

Я не смотрел на: цены, удобство клиентов, возможности коллективной работы, встроенные редакторы и т.п. Это всё для полноценного сравнения сервисов, которым я заниматься не хочу. Кому лень читать буквы, в конце табличка.
Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments84

Как писать софт для всего мира

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



На самом деле в написании софта, который впоследствии легко локализуется, нет ничего ужасно сложного, если вы начинаете писать с учетом конечного результата. Мы в Alconost перевели для вас статью о техниках, помогающих серьезно сократить себе количество работы в тот момент, когда ваш продукт все же станет международным.
Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments8

Главные отличия SEO продвижения в поисковых системах Google и Yandex

Reading time3 min
Views32K
Обратили внимание, что доля поискового трафика Яндекса на Кабанчике значительно меньше, нежели доля Google. Т.е. значительно меньше, чем среднее соотношение трафика Yandex/Google по рынку.

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

image

Общие отличия Google от Yandex


  • Возраст сайта больше важен для Yandex.
  • Продвигаться по НЧ намного легче в Яндексе. Для этого достаточно писать качественный уникальный контент. В Google без ссылок на страницу продвигать НЧ тяжко. Для СЧ и НЧ Яндексу нужны трастовые доноры.
  • Скорость индексации сайта в Яндекса в разы медленнее, нежели у Google: 8-10 дней против 1-2.
  • Частое обновления контента влияет на траст в Google. Яндекс любит старые уникальные тексты.
  • По ВЧ запросам в ТОПе Яндекса можно видеть в основном главные страницы сайтов. В Google — чаще внутренние страницы.
  • На одной странице поиска Google может находится 5 ссылок с одного сайта. в Яндексе — только одна страница.
  • На Яндекс легче влиять с помощью поведенческих факторов, нежели на Google.
  • Google далеко не всегда обращает внимание на запрет к индексации в robots.txt.
  • Скорость загрузки страниц более важна для Google. Он не пускает в ТОП медленные сайты. Для Яндекса скорость загрузки сайта не так важна.
  • Яндекс больше любит поддомены для региональных запросов. Т.е. для продвижения в другом городе лучше использовать домен gorod.site.com/…
  • Для Яндекса имеет большое значение нахождение сайта в Яндекс.Каталоге.

Внутренняя оптимизация


  • Яндекс больше не любит переоптимизацию текстов. Google к этому относится попроще.
  • Яндекс лучше понимает морфологию, поэтому ценит хорошее качество текстов. Простой рерайт для Яндекса не подходит.
  • Google любит большие тексты, Яндекс — лаконичные и хорошо структурированные.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments9

Market Fit или как найти точку G у стартапа

Reading time7 min
Views14K


Основатели бизнеса стремятся приобрести как можно больше пользователей, но действительно ли проблема их роста в недостатке клиентов? Фаундеры часто полагаются на собственные догадки, игнорируют обратную связь и могут запросто «прохлопать» точку невозврата, за которой следует смерть проекта.
При этом настоящая проблема заключается не в численности базы, а в Product / Market Fit (PMF). Если вы бросаете все силы на увеличение пользователей и не получаете отдачи, эта статья для вас.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments0

Кластеризация графов и поиск сообществ. Часть 1: введение, обзор инструментов и Волосяные Шары

Reading time10 min
Views47K
Привет, Хабр! В нашей работе часто возникает потребность в выделении сообществ (кластеров) разных объектов: пользователей, сайтов, продуктовых страниц интернет-магазинов. Польза от такой информации весьма многогранна – вот лишь несколько областей практического применения качественных кластеров:

  1. Выделение сегментов пользователей для проведения таргетированных рекламных кампаний.
  2. Использование кластеров в качестве предикторов («фичей») в персональных рекомендациях (в content-based методах или как дополнительная информация в коллаборативной фильтрации).
  3. Снижение размерности в любой задаче машинного обучения, где в качестве фичей выступают страницы или домены, посещенные пользователем.
  4. Сличение товарных URL между различными интернет-магазинами с целью выявления среди них групп, соответствующих одному и тому же товару.
  5. Компактная визуализация — человеку будет проще воспринимать структуру данных.

С точки зрения машинного обучения получение подобных связанных групп выглядит как типичная задача кластеризации. Однако не всегда нам бывают легко доступны фичи наблюдений, в пространстве которых можно было бы искать кластеры. Контентые или семантические фичи достаточно трудоемки в получении, как и интеграция разных источников данных, откуда эти фичи можно было бы достать. Зато у нас есть DMP под названием Facetz.DCA, где на поверхности лежат факты посещений пользователями страниц. Из них легко получить количество посещений сайтов, как каждого в отдельности, так и совместных посещений для каждой пары сайтов. Этой информации уже достаточно для построения графов веб-доменов или продуктовых страниц. Теперь задачу кластеризации можно сформулировать как задачу выделения сообществ в полученных графах.
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments17

Мобильные телефоны для/против спецслужб

Reading time21 min
Views401K
— Здравствуйте, это вам из ФСБ звонят.
— Я знаю.
— Откуда?
— Вы мне на выключенный мобильник дозвонились.


Какой самый защищенный телефон?

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

Чем больше я копал, тем печальнее мне становилось. Каждый (второй?) человек на Земле носит с собой жучок и за просто так отдает всю свою коммуникацию на блюдечке третьим лицам. И никто об этом не парится кроме профессиональных параноиков.

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

Почему нет хакерских/опенсорсных проектов телефонов? Вон, ноутбук запилили, чем мобильник сложнее?
(Хотя вот тут есть кой-какие обсуждения).

Давайте на секунду задумаемся, как бы выглядел хакерский телефон?
Какие бы функции у него были, чем он был бы нафарширован из железа и из ПО.
А пока посмотрим, что есть на рынке, какие штучные решения уже реализованы, что можно у них подсмотреть.
Читать дальше →
Total votes 66: ↑50 and ↓16+34
Comments62

Обзор платежных агрегаторов для приема платежей

Reading time24 min
Views337K
image Если вы владелец интернет-магазина и хотите, чтобы покупатель мог оплатить товары удобным ему способом, у вас есть два пути: подключать и настраивать оплату для каждой платежной системы отдельно — мучиться с интеграцией, подписанием договоров… либо сделать все быстро и без лишней волокиты — воспользоваться услугами компании, которая является платежным агрегатором. При выборе последнего варианта вам понадобится подписать всего один договор, а ваш покупатель сможет выбрать удобный ему способ оплаты из десятков доступных. Это и оффлайн способы, и электронные кошельки и, конечно же, оплата банковской картой. Платежных агрегаторов множество.

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

Чем же платежные агрегаторы отличаются друг от друга, и на что стоит обратить внимание?


Каждую компанию было решено рассмотреть по десяти параметрам. Ниже приведено детальное описание параметра и почему на это стоит обратить внимание.
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments50

10 обязательных навыков для сотрудника службы поддержки

Reading time4 min
Views43K
10 ключевых навыков сотрудника службы поддержки

Клиенты редко замечают, какими качествами обладает ваша служба поддержки. Они просто составляют и запоминают общее впечатление от контакта. Однако существуют конкретные навыки, определяющие разницу между посредственной помощью и великолепной службой поддержки, общение с которой повышает лояльность даже трудных клиентов.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments0

Автоматизация бизнеса: 5 интересных инструментов (и их аналоги)

Reading time3 min
Views27K


Развитие технологий приводит к тому, что многие компании внедряют различные инструменты автоматизации, которые позволяют улучшить уровень обслуживания и сократить издержки. В сегодняшнем материале мы рассмотрим несколько интересных (в том числе облачных) сервисов автоматизации и их аналоги.
Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments4

Top Story уполномочен заявить: не бойтесь мобильной разработки

Reading time7 min
Views4.4K
Привет, Хабр! В августе Top Story исполняется полгода — самое время поделиться опытом разработки приложения, рассказать истории из жизни и вспомнить основные ошибки. За эти шесть месяцев наш агрегатор новостей вырос, окреп и имеет вполне завершённый бэкенд и фронтенд, поэтому нам есть о чем рассказать любителям мобильной разработки и тем, кто делает в ней первые шаги.



Мобильная разработка обрела огромную популярность — её ведут мировые гиганты, агентства, небольшие компании и программисты, появилось огромное количество инструментов, которые делают работу над приложением ещё проще. Число приложений растёт с неимоверной скоростью. Cогласно статистике Appfigures, количество приложений в App Store составило на конец года 1,21 млн, а Play Store — 1,43 млн… Мы решились войти в это число и завоевать своих пользователей. С самого начала у нас было несколько отличительных черт, на которые мы могли опираться в процессе разработки. Как вы помните из предыдущих постов, главная особенность Top Story — персонализированный подход к пользователю. Реализуя эту задачу мы набивали шишки, ставили удачные и не очень эксперименты, работали неделями над исправлением порой совершенно смешных ошибок.
Поехали!
Total votes 9: ↑6 and ↓3+3
Comments4
1
23 ...

Information

Rating
404-th
Location
Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Project Director, Chief Product Officer (CPO)
Lead
Project management
People management
Building a team
Negotiation
Optimization of business processes
Development management
Business process management
IT service management
Company management
Strategic management