Как стать автором
Обновить

Переосмысление Flappy Bird или анатомия клона «Яндекс игр»

Уровень сложности Простой
Unity *Дизайн игр *Игры и игровые консоли Разработка игр *
Ожидает приглашения

Являясь небольшой начинающей командой разработчиков, мы решили попробовать свои силы в создании клона популярной игры с добавлением новых элементов в геймплее и визуальной составляющей. Задача была найти идею с минимальным сроком производства. Выбор пал на всем известную Flappy Bird. Изначально, нам не хотелось создавать «в лобовую» клон известного проекта, задача была сделать иначе и лучше, при этом, не придумывая велосипед. Другими словами, научиться делать качественный ремейк.

Читать далее

Паттерн проектирования «Декоратор» / «Decorator»

Уровень сложности Простой
Java *ООП *Программирование *
Ожидает приглашения

Паттерн декоратор (Decorator) – один из наиболее известных и распространенных паттернов проектирования, используемых в Java. Он позволяет динамически добавлять новую функциональность к объектам, не изменяя их исходный код. Это очень удобно, когда нужно добавить дополнительные возможности к уже существующему объекту.

Пример использования паттерна декоратор в Java: Предположим, у нас есть интерфейс Pizza, который имеет методы getDescription() и getCost(). Этот интерфейс представляет собой базовый класс для разных типов пиццы.

Читать далее

Работа памяти в Python

Уровень сложности Простой
Python *
Ожидает приглашения

Python - интерпретируемый язык программирования, поэтому перед выполнением код транслируется в машиночитаемые инструкции - байт-код. Байт-код интерпретируется виртуальной машиной, определяемой реализацией языка, например, стандартной - CPython.

Python не взаимодействует с памятью - только с её виртуальным представлением. В процессе выполнения программы операционная система создаёт процесс и выделяет под него ресурсы. В отличие от С/С++ мы не можем управлять памятью из кучи напрямую, а делаем это посредством memory manager, который и обращается к памяти через Python/C API.

Читать далее

Что нужно знать для переезда на Бали?

Удалённая работа
Ожидает приглашения

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

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

На Бали кайфовый климат, всегда тепло, довольно лайтовый сезон дождей, не как в Тае, красиво, развито, есть все необходимое для длительного комфортного проживания: быстрый интернет, коворкинги, модные кафе на любой вкус и цвет, жилье на любой бюджет, а главное - огромное русскоговорящее комьюнити.

Читать далее

Освоение ремесла. Руководство по становлению квалифицированным программистом

Уровень сложности Простой
Программирование *Удалённая работа Учебный процесс в IT
Ожидает приглашения

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

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

Читать далее

Почему вы должны писать на TypeScript в 2023 году?

Уровень сложности Простой
JavaScript *Node.JS *ReactJS *TypeScript *Разработка веб-сайтов *
Ожидает приглашения

TypeScript — то же самое, что и JavaScript, но переменные не могут менять типы.

Цель создания TypeScript — сделать JavaScript лучше. TypeScript добавляет в JavaScript типы, позволяя явно задавать их для всех структур данных. Это увеличивает читаемость кода и уменьшает количество ошибок в финальной сборке приложения.

Читать далее

Clean ABAP — Как сделать код чистым, прочитав рекомендации к единому стилю? Часть 1

Уровень сложности Средний
ERP-системы *Программирование *
Ожидает приглашения

К сожалению привлечь внимание АБАПера можно лишь рассказав шутку про 1С. Но мы постараемся обойтись без шуток. У нас есть замечательная возможность обсудить стиль чистого кода, к которому надо стремиться. Надо ли?

Читать далее

Вывернул DNS наизнанку

DNS *Администрирование доменных имен *Сетевые технологии *
Ожидает приглашения

Статья о том, как написать dns сервер на python превратить служебную dns зону .arpa в свой собственный домен при помощи сервиса, предоставляющего бесплатные IPv6 адреса.

Читать далее

Оптимизация запроса и запрос оптимизации

Уровень сложности Простой
Data Engineering *Hadoop *SQL *Администрирование баз данных *
Ожидает приглашения

Как не грабить память, не пытать диск, не мучать кластер. Или делать все это всего одним запросом на Impala к Hadoop.

Среди задач аналитиков данных, в рамках которых необходимо иметь дело с большими объемами однотипных данных, выделяются задачи построения витрин данных, автоматизации процессов сбора и обработки данных. Многие аналитики используют различные реляционные базы данных, в таблицах которых хранятся огромные объемы информации, агрегация и доступ к которым может занимать долгое время, поэтому правильное составление и оптимизация запросов к этим таблицам становится критически необходимым фактором для работы аналитиков, инженеров данных и data scientist.

Читать далее

Мультиархитектурность

Программирование *
Ожидает приглашения

Привет, читатель! Возникла у меня идея порассуждать на занимательную, на мой скромный взгляд, тему. Возникла она у меня потому что, наверное, просто накипело. Эта тема, как ты уже понял из названия, мультиархитектурность (забавный термин который я сам же и придумал, хотя не уверен, быть может он существовал и до меня).

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

Читать далее

Очередное доказательство

Математика *
Ожидает приглашения

Как известно, теорема Ферма была доказана в 1995 году. Только поиски простого доказательства не остановились. Ферма, говорят, уместил его на полях книги. Предлагаю очередную попытку. С желанием разобраться в правильности или нет данного доказательства. Оно опирается на школьную математику. Правда, затрагивает лишь трехмерное пространство. Есть надежда, что этот метод подойдет и для n-мерных пространств, где n>3.

Читать далее

Как работает буферизация в Rust: стандартная библиотека std::io::{BufReader, BufWriter}

Уровень сложности Простой
Rust *
Ожидает приглашения

Для себя задался вопросом, как работает буферизация для Rust и зачем она нужна при чтении файла с текстом. Оказалось, что ответ найти сложно: про буферизацию чаще всего разбирают либо в контексте C++, либо Java, но первый вариант сложноват, а второй не подходит из-за разных подходов к работе с памятью.

Казалось бы, можно открыть стандартную библиотеку Rust, найти документацию std::io::{BufReader, BufWriter} и закончить на этом. Однако моя цель разобрать вопрос на более фундаментальном уровне, поэтому ниже попробую сделать это, несмотря на пробелы в базовых знаниях.

Читать далее

Как инвестировать россиянину в 2023, и почему именно в крипту?

Децентрализованные сети *Криптовалюты Финансы в IT
Ожидает приглашения

Как продолжить зарабатывать на собственных средствах, не боясь за их сохранность, обеспечить средства мобильностью и подобрать правильный инструмент для их хранения?

Читать далее

Как выложить свой модуль на PyPI

Python *Программирование *
Ожидает приглашения

PyPI (Python Package Index) - это каталог модулей и библиотек для языка программирования Python, которые могут использовать все. Я думаю, все, кто программируют на Python, хотя бы раз устанавливали и использовали модули. Так вот, все пользовательские модули (т. е. те модули, которые вы устанавливаете, а не те, которые идут из-под коробки) выложены на PyPI.

Что же нам нужно, чтобы выложить модуль на PyPI?

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

Command Injections Ч.1

Информационная безопасность *Тестирование веб-сервисов *
Ожидает приглашения

Уязвимость Command injection (В дальнейшем CMDi) относится к наиболее критическим типам уязвимостей. Она позволяет нам выполнять системные команды непосредственно на внутреннем сервере хостинга, что может привести к плачевным последствиям. Если веб-приложение использует управляемый пользователем ввод для выполнения системной команды на внутреннем сервере, мы можем внедрить вредоносную полезную нагрузку, чтобы выполнять наши команды.

Читать далее

Как защитить свои права владельцу опциона на долю в компании. Чек-лист

Уровень сложности Простой
Читальный зал
Ожидает приглашения

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

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

Читать далее

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

Уровень сложности Простой
Научно-популярное Учебный процесс в IT
Ожидает приглашения

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

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

Читать далее

Математика для входа в Data Science (ресурсы на английском)

Big Data *Математика *Машинное обучение *
Ожидает приглашения

Летом 2021 меня заинтересовала сфера Data Science, а конкретно Machine Learning (далее МЛ). Это не простая профессия и у нее достаточно высокий порог входа, а требования к джунам с каждым годом растут. Для входа в МЛ необходимо иметь сильный бэкграунд в математике.

Читать далее